@quoreadmin/ui 1.7.6 → 1.7.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.
Files changed (123) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index115.js +24 -18
  3. package/dist/index140.js +374 -352
  4. package/dist/index142.js +10 -5
  5. package/dist/index171.js +14 -14
  6. package/dist/index172.js +3 -3
  7. package/dist/index175.js +4 -4
  8. package/dist/index182.js +10 -10
  9. package/dist/index184.js +10 -10
  10. package/dist/index190.js +9 -9
  11. package/dist/index191.js +1 -1
  12. package/dist/index192.js +1 -1
  13. package/dist/index193.js +1 -1
  14. package/dist/index20.js +26 -19
  15. package/dist/index201.js +4 -4
  16. package/dist/index202.js +84 -29
  17. package/dist/index203.js +400 -109
  18. package/dist/index204.js +22 -36
  19. package/dist/index205.js +161 -26
  20. package/dist/index206.js +225 -33
  21. package/dist/index207.js +37 -9
  22. package/dist/index208.js +10 -19
  23. package/dist/index209.js +33 -10
  24. package/dist/index210.js +116 -10
  25. package/dist/index211.js +35 -50
  26. package/dist/index212.js +26 -43
  27. package/dist/index213.js +35 -3
  28. package/dist/index214.js +9 -39
  29. package/dist/index215.js +19 -21
  30. package/dist/index216.js +10 -88
  31. package/dist/index217.js +9 -406
  32. package/dist/index218.js +51 -22
  33. package/dist/index219.js +39 -157
  34. package/dist/index220.js +3 -19
  35. package/dist/index221.js +38 -19
  36. package/dist/index222.js +21 -22
  37. package/dist/index223.js +113 -185
  38. package/dist/index224.js +25 -57
  39. package/dist/index225.js +77 -31
  40. package/dist/index226.js +19 -39
  41. package/dist/index227.js +19 -126
  42. package/dist/index228.js +16 -34
  43. package/dist/index229.js +20 -80
  44. package/dist/index230.js +10 -10
  45. package/dist/index231.js +160 -19
  46. package/dist/index232.js +10 -10
  47. package/dist/index233.js +15 -13
  48. package/dist/index234.js +194 -156
  49. package/dist/index235.js +66 -224
  50. package/dist/index236.js +34 -37
  51. package/dist/index237.js +39 -9
  52. package/dist/index241.js +8 -8
  53. package/dist/index242.js +2 -2
  54. package/dist/index248.js +2 -2
  55. package/dist/index249.js +2 -2
  56. package/dist/index250.js +8 -8
  57. package/dist/index259.js +6 -6
  58. package/dist/index260.js +1 -1
  59. package/dist/index261.js +1 -1
  60. package/dist/index274.js +2 -2
  61. package/dist/index279.js +2 -54
  62. package/dist/index280.js +1 -1
  63. package/dist/index281.js +3 -26
  64. package/dist/index282.js +26 -21
  65. package/dist/index283.js +53 -21
  66. package/dist/index284.js +26 -16
  67. package/dist/index285.js +22 -17
  68. package/dist/index286.js +21 -22
  69. package/dist/index287.js +16 -2
  70. package/dist/index288.js +17 -3
  71. package/dist/index289.js +23 -27
  72. package/dist/index290.js +1518 -79
  73. package/dist/index291.js +386 -22
  74. package/dist/index292.js +2698 -902
  75. package/dist/index293.js +85 -21
  76. package/dist/index294.js +3770 -20
  77. package/dist/index295.js +59 -19
  78. package/dist/index296.js +15 -69
  79. package/dist/index297.js +84 -19
  80. package/dist/index298.js +201 -18
  81. package/dist/index299.js +246 -22
  82. package/dist/index300.js +78 -21
  83. package/dist/index301.js +22 -63
  84. package/dist/index302.js +909 -1492
  85. package/dist/index303.js +22 -386
  86. package/dist/index304.js +20 -2731
  87. package/dist/index305.js +19 -85
  88. package/dist/index306.js +58 -3759
  89. package/dist/index307.js +19 -60
  90. package/dist/index308.js +19 -15
  91. package/dist/index309.js +21 -83
  92. package/dist/index31.js +34 -27
  93. package/dist/index310.js +22 -202
  94. package/dist/index311.js +63 -246
  95. package/dist/index332.js +1 -1
  96. package/dist/index337.js +1 -1
  97. package/dist/index342.js +2 -2
  98. package/dist/index347.js +1 -1
  99. package/dist/index348.js +2 -2
  100. package/dist/index355.js +2 -2
  101. package/dist/index369.js +100 -16
  102. package/dist/index370.js +90 -100
  103. package/dist/index371.js +98 -91
  104. package/dist/index372.js +16 -97
  105. package/dist/index43.js +535 -501
  106. package/dist/index44.js +100 -84
  107. package/dist/index95.js +23 -15
  108. package/dist/src/components/data-filter/data-filter.d.ts +10 -0
  109. package/dist/src/components/data-list/data-list.d.ts +10 -0
  110. package/dist/src/components/date-picker/date-picker.d.ts +10 -0
  111. package/dist/src/components/date-picker/date-picker.stories.d.ts +20 -0
  112. package/dist/src/components/form-group/form-group.stories.d.ts +10 -0
  113. package/dist/src/components/grid/grid.stories.d.ts +28 -0
  114. package/dist/src/components/input/input.d.ts +10 -0
  115. package/dist/src/components/input/input.stories.d.ts +40 -0
  116. package/dist/src/components/list/list.stories.d.ts +9 -0
  117. package/dist/src/components/modal/modal.stories.d.ts +9 -0
  118. package/dist/src/components/room-details-popover/room-details-popover.d.ts +24 -7
  119. package/dist/src/components/select/select.d.ts +9 -0
  120. package/dist/src/components/select/select.stories.d.ts +27 -0
  121. package/dist/src/views/lists.vue.d.ts +20 -0
  122. package/dist/src/views/tables.vue.d.ts +10 -0
  123. package/package.json +1 -1
package/dist/index140.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { defineComponent as mt, ref as i, computed as y, watch as B, onMounted as vt, onUnmounted as pt } from "vue";
2
2
  import { useI18n as ft } from "vue-i18n";
3
- import { DateTime as _ } from "./index163.js";
3
+ import { DateTime as w } from "./index163.js";
4
4
  import "./index186.js";
5
5
  import ht from "./index2.js";
6
- import yt from "./index3.js";
7
- import gt from "./index4.js";
6
+ import gt from "./index3.js";
7
+ import yt from "./index4.js";
8
8
  import _t from "./index21.js";
9
9
  import wt from "./index28.js";
10
10
  import It from "./index39.js";
@@ -17,8 +17,8 @@ const Gt = mt({
17
17
  name: "QRoomDetailsPopover",
18
18
  components: {
19
19
  QAccordion: ht,
20
- QActivityItem: yt,
21
- QAvatar: gt,
20
+ QActivityItem: gt,
21
+ QAvatar: yt,
22
22
  QDatePicker: Dt,
23
23
  QDivider: _t,
24
24
  QIcon: wt,
@@ -145,24 +145,21 @@ const Gt = mt({
145
145
  }
146
146
  },
147
147
  emits: ["create:callback", "create:todo", "refresh:pms", "show:toast", "toggle"],
148
- setup(s, { emit: h }) {
149
- const { t: c } = ft(), r = i(null), ie = i(!1), ue = i("left"), X = i([
148
+ setup(o, { emit: h }) {
149
+ const { t: u } = ft(), r = i(null), ie = i(!1), ue = i("left"), X = i([
150
150
  {
151
151
  id: 1,
152
- label: c("HC_DEPARTMENT")
153
- // need to localize
152
+ label: u("HC_DEPARTMENT")
154
153
  },
155
154
  {
156
155
  id: 2,
157
- label: c("HC_PERSON")
158
- // need to localize
156
+ label: u("HC_PERSON")
159
157
  },
160
158
  {
161
159
  id: 0,
162
- label: c("HC_ANYONE")
163
- // need to localize
160
+ label: u("HC_ANYONE")
164
161
  }
165
- ]), A = i(""), p = i({
162
+ ]), b = i(""), p = i({
166
163
  checkInDate: /* @__PURE__ */ new Date(),
167
164
  checkOutDate: /* @__PURE__ */ new Date(),
168
165
  guestEmail: "",
@@ -174,15 +171,19 @@ const Gt = mt({
174
171
  problem: null,
175
172
  notes: "",
176
173
  tokenId: r.value?.tokenId
177
- }), G = i(250), W = i(290), N = i([]), we = i([]), Z = i(!0), ee = i(!0), M = i({
174
+ }), G = i(250), U = i(290), M = i([]), Ie = i([]), Z = i(!0), ee = i(!0), N = i({
178
175
  info: !0,
179
176
  tickets: !0,
180
177
  comments: !0
181
- }), te = i(!0), be = i(s.guestDetails), T = i([]), b = i({
178
+ }), te = i(!0), Ce = i(o.guestDetails), O = i([]), g = i({
179
+ actionItems: !1,
180
+ conversationToggle: !1,
181
+ messages: !1,
182
182
  pms: !1,
183
183
  roomNotices: !1,
184
+ sendingMessage: !1,
184
185
  tickets: !1
185
- }), C = i([]), ce = i([]), de = i("bottom"), R = i(null), H = i(!1), U = i(!1), j = i(""), me = i(!1), S = i(!1), O = i(null), $ = i(null), Ce = 3e4, u = i({
186
+ }), C = i([]), ce = i([]), de = i("bottom"), R = i(null), H = i(!1), W = i(!1), j = i(""), me = i(!1), A = i(!1), k = i(null), $ = i(null), Me = 3e4, d = i({
186
187
  assignType: null,
187
188
  department: null,
188
189
  due: /* @__PURE__ */ new Date(),
@@ -195,34 +196,32 @@ const Gt = mt({
195
196
  }), Q = i([
196
197
  {
197
198
  id: 0,
198
- label: c("HC_STAFF_MEMBER")
199
- // need to localize
199
+ label: u("HC_STAFF_MEMBER")
200
200
  },
201
201
  {
202
202
  id: 1,
203
- label: c("HC_HOTEL_GUEST")
204
- // need to localize
203
+ label: u("HC_HOTEL_GUEST")
205
204
  }
206
- ]), Ne = i(!1), k = i(null), w = i({
205
+ ]), ve = i(!1), E = i(null), I = i({
207
206
  endDate: /* @__PURE__ */ new Date(),
208
207
  issue: null,
209
208
  notes: "",
210
209
  startDate: /* @__PURE__ */ new Date()
211
- }), ae = i([]), oe = i(!1), E = i([]), L = i([]), Me = i([
210
+ }), ae = i([]), se = i(!1), S = i([]), L = i([]), Ne = i([
212
211
  {
213
- label: c("HC_COMPLAINT"),
212
+ label: u("HC_COMPLAINT"),
214
213
  id: "complaint"
215
214
  },
216
215
  {
217
- label: c("HC_REQUEST"),
216
+ label: u("HC_REQUEST"),
218
217
  id: "request"
219
218
  },
220
219
  {
221
- label: c("HC_ROOM_NOTICE"),
220
+ label: u("HC_ROOM_NOTICE"),
222
221
  id: "room_notice"
223
222
  },
224
223
  {
225
- label: c("HC_WORK_ORDER"),
224
+ label: u("HC_WORK_ORDER"),
226
225
  id: "work_order"
227
226
  }
228
227
  ]), J = i(), P = i(null), v = i({
@@ -234,7 +233,7 @@ const Gt = mt({
234
233
  notes: "",
235
234
  person: null,
236
235
  requestedBy: null
237
- }), ve = i([]), q = i([]), x = i([]), pe = y(() => {
236
+ }), pe = i([]), q = i([]), x = i([]), fe = y(() => {
238
237
  switch (r.value.cleaning?.name || r.value.cleaningStatus) {
239
238
  case "CLEAN":
240
239
  case "INSPECTED":
@@ -247,46 +246,46 @@ const Gt = mt({
247
246
  default:
248
247
  return "";
249
248
  }
250
- }), Re = y(() => pe.value === "CLEAN" ? "blue-10" : pe.value === "DIRTY" ? "red-10" : "gray-30"), He = y(() => {
249
+ }), Re = y(() => fe.value === "CLEAN" ? "blue-10" : fe.value === "DIRTY" ? "red-10" : "gray-30"), He = y(() => {
251
250
  const e = r.value.cleaning?.name || r.value.cleaningStatus;
252
- return e ? c(`HC_${e}`) : "";
251
+ return e ? u(`HC_${e}`) : "";
253
252
  }), Le = y(() => {
254
- const e = A.value.toLowerCase();
255
- return s.quickReplies.filter((a) => a.toLowerCase().match(e));
253
+ const e = b.value.toLowerCase();
254
+ return o.quickReplies.filter((t) => t.toLowerCase().match(e));
256
255
  }), Pe = y(() => {
257
256
  if (!C.value.length) return [];
258
257
  const e = [];
259
- let a = null;
260
- return C.value.forEach((t) => {
261
- const o = _.fromFormat(
262
- t.dateUtc,
258
+ let t = null;
259
+ return C.value.forEach((a) => {
260
+ const s = w.fromFormat(
261
+ a.dateUtc,
263
262
  "yyyy-MM-dd HH:mm:ss",
264
263
  { zone: "utc" }
265
- ).setZone(s.propertyTimeZone), n = o.toFormat("yyyy-MM-dd-HH");
266
- n !== a && (e.push({
264
+ ).setZone(o.propertyTimeZone), n = s.toFormat("yyyy-MM-dd-HH");
265
+ n !== t && (e.push({
267
266
  type: "separator",
268
- label: o.toFormat("ccc, LLL d 'at' h:mma").replace("AM", "am").replace("PM", "pm"),
267
+ label: s.toFormat("ccc, LLL d 'at' h:mma").replace("AM", "am").replace("PM", "pm"),
269
268
  hourKey: n
270
- }), a = n), e.push({
269
+ }), t = n), e.push({
271
270
  type: "message",
272
- ...t,
273
- formattedTime: o.toFormat("h:mma").replace("AM", "am").replace("PM", "pm")
271
+ ...a,
272
+ formattedTime: s.toFormat("h:mma").replace("AM", "am").replace("PM", "pm")
274
273
  });
275
274
  }), e;
276
- }), Ie = y(() => E.value.length ? !!E.value.find(
277
- (a) => a.type === "complaint"
278
- ) : !1), qe = y(() => E.value.length ? !!E.value.find(
279
- (a) => a.type === "callback"
275
+ }), De = y(() => S.value.length ? !!S.value.find(
276
+ (t) => t.type === "complaint"
277
+ ) : !1), qe = y(() => S.value.length ? !!S.value.find(
278
+ (t) => t.type === "callback"
280
279
  ) : !1), xe = y(() => {
281
280
  let e = [];
282
- return T.value[0] && T.value[0].options === void 0 ? T.value.forEach((a) => {
281
+ return O.value[0] && O.value[0].options === void 0 ? O.value.forEach((t) => {
283
282
  e.push({
284
- id: parseInt(a.id),
285
- label: a.display_name
283
+ id: parseInt(t.id),
284
+ label: t.display_name
286
285
  });
287
- }) : e = T.value, e;
288
- }), De = y(() => r.value.occupancy?.name === "OCCUPIED" || r.value.occupancyStatus === "OCCUPIED"), Fe = y(() => De.value && Ie.value ? "HK_ROOM_STATUS_Occupied_Complaint" : "HK_ROOM_STATUS_Occupied"), Be = y(() => {
289
- switch (k.value?.id) {
286
+ }) : e = O.value, e;
287
+ }), Te = y(() => r.value.occupancy?.name === "OCCUPIED" || r.value.occupancyStatus === "OCCUPIED"), Fe = y(() => Te.value && De.value ? "HK_ROOM_STATUS_Occupied_Complaint" : "HK_ROOM_STATUS_Occupied"), Be = y(() => {
288
+ switch (E.value?.id) {
290
289
  case "request":
291
290
  case "work_order":
292
291
  return X.value[0];
@@ -294,18 +293,18 @@ const Gt = mt({
294
293
  return null;
295
294
  }
296
295
  }), Ge = y(() => {
297
- if (N.value)
298
- switch (k.value?.id) {
296
+ if (M.value)
297
+ switch (E.value?.id) {
299
298
  case "request":
300
- return N.value.find((e) => parseInt(e.id) === 4);
299
+ return M.value.find((e) => parseInt(e.id) === 4);
301
300
  case "work_order":
302
- return N.value.find((e) => parseInt(e.id) === 2);
301
+ return M.value.find((e) => parseInt(e.id) === 2);
303
302
  default:
304
303
  return null;
305
304
  }
306
305
  return null;
307
- }), We = y(() => {
308
- switch (k.value?.id) {
306
+ }), Ue = y(() => {
307
+ switch (E.value?.id) {
309
308
  case "request":
310
309
  return Q.value[1];
311
310
  case "work_order":
@@ -313,116 +312,118 @@ const Gt = mt({
313
312
  default:
314
313
  return null;
315
314
  }
316
- }), Ue = y(() => {
315
+ }), We = y(() => {
317
316
  let e = "";
318
317
  if (r.value && r.value.reservations[0]) {
319
- const a = _.fromISO(
318
+ const t = w.fromISO(
320
319
  r.value.reservations[0].arrivalDate
321
- ), t = a.toFormat("MMM"), o = a.day, n = a.year, l = _.fromISO(
320
+ ), a = t.toFormat("MMM"), s = t.day, n = t.year, l = w.fromISO(
322
321
  r.value.reservations[0].departureDate
323
- ), d = l.toFormat("MMM"), m = l.day, f = l.year;
324
- e += t + " " + o, n !== f && (e += ", " + n), t === d ? e += "-" + m : e += " - " + d + " " + m, e += ", " + f;
322
+ ), c = l.toFormat("MMM"), m = l.day, f = l.year;
323
+ e += a + " " + s, n !== f && (e += ", " + n), a === c ? e += "-" + m : e += " - " + c + " " + m, e += ", " + f;
325
324
  }
326
325
  return e;
327
326
  }), je = y(() => {
328
327
  let e = ae.value;
329
328
  return e = [...new Set(e)], e;
330
329
  }), $e = y(() => {
331
- const e = k.value?.id;
330
+ const e = E.value?.id;
332
331
  if (!e)
333
332
  return !1;
334
333
  switch (e) {
335
334
  case "room_notice":
336
- return w.value.issue && w.value.startDate && w.value.endDate;
335
+ return I.value.issue && I.value.startDate && I.value.endDate;
337
336
  case "complaint":
338
337
  return p.value.problem && p.value.guestName && p.value.guestMood;
339
338
  case "work_order":
340
339
  return v.value.item && v.value.issue && v.value.requestedBy && v.value.due && (v.value.assignType && v.value.assignType.id === 0 || v.value.assignType && v.value.assignType.id === 1 && v.value.department || v.value.assignType && v.value.assignType.id === 2 && v.value.person);
341
- case "request": {
342
- const a = u.value.item && u.value.requestedBy && u.value.due && (u.value.assignType && u.value.assignType.id === 0 || u.value.assignType && u.value.assignType.id === 1 && u.value.department || u.value.assignType && u.value.assignType.id === 2 && u.value.person), t = s.allowWhenWhere ? u.value.when && u.value.where : !0;
343
- return a && t;
344
- }
340
+ case "request":
341
+ return d.value.item && d.value.requestedBy && d.value.due && (d.value.assignType && d.value.assignType.id === 0 || d.value.assignType && d.value.assignType.id === 1 && d.value.department || d.value.assignType && d.value.assignType.id === 2 && d.value.person);
345
342
  default:
346
343
  return !1;
347
344
  }
348
- }), Te = () => {
349
- oe.value = !1, H.value = !1, ie.value = !1, T.value = [], ce.value = [], ve.value = [], q.value = [], x.value = [], k.value = null, w.value.issue = null, w.value.startDate = /* @__PURE__ */ new Date(), w.value.endDate = /* @__PURE__ */ new Date(), w.value.notes = "", p.value.guestName = "", p.value.guestEmail = "", p.value.guestPhone = "", p.value.guestMood = null, p.value.guestLoyalty = "", p.value.problem = null, p.value.checkInDate = /* @__PURE__ */ new Date(), p.value.checkOutDate = /* @__PURE__ */ new Date(), p.value.notes = "", v.value.assignType = null, v.value.department = null, v.value.person = null, v.value.due = /* @__PURE__ */ new Date(), v.value.item = null, v.value.issue = null, v.value.notes = "", u.value.assignType = null, u.value.department = null, u.value.person = null, u.value.due = /* @__PURE__ */ new Date(), u.value.item = null, u.value.notes = "", u.value.when = null, u.value.where = null;
345
+ }), Oe = () => {
346
+ se.value = !1, H.value = !1, ie.value = !1, ve.value = !1, O.value = [], ce.value = [], pe.value = [], q.value = [], x.value = [], E.value = null, I.value.issue = null, I.value.startDate = /* @__PURE__ */ new Date(), I.value.endDate = /* @__PURE__ */ new Date(), I.value.notes = "", p.value.guestName = "", p.value.guestEmail = "", p.value.guestPhone = "", p.value.guestMood = null, p.value.guestLoyalty = "", p.value.problem = null, p.value.checkInDate = /* @__PURE__ */ new Date(), p.value.checkOutDate = /* @__PURE__ */ new Date(), p.value.notes = "", v.value.assignType = null, v.value.department = null, v.value.person = null, v.value.due = /* @__PURE__ */ new Date(), v.value.item = null, v.value.issue = null, v.value.notes = "", d.value.assignType = null, d.value.department = null, d.value.person = null, d.value.due = /* @__PURE__ */ new Date(), d.value.item = null, d.value.notes = "", d.value.when = null, d.value.where = null;
350
347
  }, Qe = async () => {
351
348
  h("create:callback", r.value), h("toggle", !1);
352
349
  }, F = (e) => {
353
- const a = [];
354
- (Array.isArray(e) ? e : Object.values(e)).forEach((o) => {
355
- const n = o.senderType || o.sender_type, l = o.senderName || "", d = o.senderId || o.sender_id, m = o.profileImg || o.profile_img, f = l ? l.split(" ") : ["", ""], g = o.user_first_name || o.guest_first_name || f[0] || "", z = o.user_last_name || o.guest_last_name || f.slice(1).join(" ") || "", re = g && z ? `${g} ${z}` : g || "Auto-Reply", le = n === "system" || n === "user", I = n === "guest";
356
- let D = {
357
- id: o.id,
350
+ const t = [];
351
+ (Array.isArray(e) ? e : Object.values(e)).forEach((s) => {
352
+ const n = s.senderType || s.sender_type, l = s.senderName || "", c = s.senderId || s.sender_id, m = s.profileImg || s.profile_img, f = l ? l.split(" ") : ["", ""], _ = s.user_first_name || s.guest_first_name || f[0] || "", z = s.user_last_name || s.guest_last_name || f.slice(1).join(" ") || "", re = _ && z ? `${_} ${z}` : _ || "Auto-Reply", le = n === "system" || n === "user", D = n === "guest";
353
+ let T = {
354
+ id: s.id,
358
355
  isPropertyEmployee: n === "user",
359
- isSent: !!o.sent,
356
+ isSent: !!s.sent,
360
357
  isSystemMessage: n === "system",
361
358
  isStaffMessage: le,
362
- isGuestMessage: I,
363
- comment: o.content,
364
- dateUtc: o.sent || o.created,
359
+ isGuestMessage: D,
360
+ comment: s.content,
361
+ dateUtc: s.sent || s.created,
365
362
  user: {
366
- firstName: g || "Auto-Reply",
363
+ firstName: _ || "Auto-Reply",
367
364
  icon: "",
368
- id: d || "system-message",
365
+ id: c || "system-message",
369
366
  initials: "",
370
367
  lastName: z || "",
371
368
  name: re,
372
369
  src: m || ""
373
370
  }
374
371
  };
375
- D.user.firstName && D.user.lastName ? D.user.initials = D.user.firstName[0] + D.user.lastName[0] : D.user.firstName && (D.user.initials = D.user.firstName[0]), le && (D.user.icon = "property-fill"), a.push(D);
376
- }), C.value = a;
372
+ T.user.firstName && T.user.lastName ? T.user.initials = T.user.firstName[0] + T.user.lastName[0] : T.user.firstName && (T.user.initials = T.user.firstName[0]), le && (T.user.icon = "property-fill"), t.push(T);
373
+ }), C.value = t;
377
374
  }, Je = (e) => {
378
375
  if (!e || e.length === 0) return;
379
- (Array.isArray(e) ? e : Object.values(e)).forEach((t) => {
380
- if (C.value.some((D) => D.id === t.id))
376
+ (Array.isArray(e) ? e : Object.values(e)).forEach((a) => {
377
+ if (C.value.some((T) => T.id === a.id))
381
378
  return;
382
- const o = t.senderType || t.sender_type, n = t.senderName || "", l = t.senderId || t.sender_id, d = t.profileImg || t.profile_img, m = n ? n.split(" ") : ["", ""], f = t.user_first_name || t.guest_first_name || m[0] || "", g = t.user_last_name || t.guest_last_name || m.slice(1).join(" ") || "", z = f && g ? `${f} ${g}` : f || "Auto-Reply", re = o === "system" || o === "user", le = o === "guest";
383
- let I = {
384
- id: t.id,
385
- isPropertyEmployee: o === "user",
386
- isSent: !!t.sent,
387
- isSystemMessage: o === "system",
379
+ const s = a.senderType || a.sender_type, n = a.senderName || "", l = a.senderId || a.sender_id, c = a.profileImg || a.profile_img, m = n ? n.split(" ") : ["", ""], f = a.user_first_name || a.guest_first_name || m[0] || "", _ = a.user_last_name || a.guest_last_name || m.slice(1).join(" ") || "", z = f && _ ? `${f} ${_}` : f || "Auto-Reply", re = s === "system" || s === "user", le = s === "guest";
380
+ let D = {
381
+ id: a.id,
382
+ isPropertyEmployee: s === "user",
383
+ isSent: !!a.sent,
384
+ isSystemMessage: s === "system",
388
385
  isStaffMessage: re,
389
386
  isGuestMessage: le,
390
- comment: t.content,
391
- dateUtc: t.sent || t.created,
387
+ comment: a.content,
388
+ dateUtc: a.sent || a.created,
392
389
  user: {
393
390
  firstName: f || "Auto-Reply",
394
391
  icon: "",
395
392
  id: l || "system-message",
396
393
  initials: "",
397
- lastName: g || "",
394
+ lastName: _ || "",
398
395
  name: z,
399
- src: d || ""
396
+ src: c || ""
400
397
  }
401
398
  };
402
- I.user.firstName && I.user.lastName ? I.user.initials = I.user.firstName[0] + I.user.lastName[0] : I.user.firstName && (I.user.initials = I.user.firstName[0]), re && (I.user.icon = "property-fill"), C.value.push(I);
399
+ D.user.firstName && D.user.lastName ? D.user.initials = D.user.firstName[0] + D.user.lastName[0] : D.user.firstName && (D.user.initials = D.user.firstName[0]), re && (D.user.icon = "property-fill"), C.value.push(D);
403
400
  });
404
- }, fe = async (e = !1) => {
405
- if (s.showComments && r.value.tokenId)
401
+ }, he = async (e = !1) => {
402
+ if (o.showComments && r.value.tokenId) {
403
+ e || (g.value.messages = !0);
406
404
  try {
407
- let a = `/api/client/connect/getMessages.php?tokenId=${r.value.tokenId}`;
408
- e && O.value !== null && (a += `&lastMsgId=${O.value}`);
409
- const o = await (await fetch(a, {
405
+ let t = `/api/client/connect/getMessages.php?tokenId=${r.value.tokenId}`;
406
+ e && k.value !== null && (t += `&lastMsgId=${k.value}`);
407
+ const s = await (await fetch(t, {
410
408
  method: "GET",
411
409
  credentials: "include"
412
410
  })).json();
413
- if (o.status === "error")
414
- throw new Error(o.message || "Failed to get messages");
415
- if (S.value = !o.closed, o.messages && o.messages.length > 0) {
416
- O.value = o.messages[o.messages.length - 1].id, e ? Je(o.messages) : F(o.messages);
411
+ if (s.status === "error")
412
+ throw new Error(s.message || "Failed to get messages");
413
+ if (A.value = !s.closed, s.messages && s.messages.length > 0) {
414
+ k.value = s.messages[s.messages.length - 1].id, e ? Je(s.messages) : F(s.messages);
417
415
  const n = setTimeout(V, 100);
418
416
  L.value.push(n);
419
- } else e || F(o.messages || []);
420
- } catch (a) {
421
- console.error("getChatMessages error:", a);
417
+ } else e || F(s.messages || []);
418
+ } catch (t) {
419
+ console.error("getChatMessages error:", t);
420
+ } finally {
421
+ e || (g.value.messages = !1);
422
422
  }
423
+ }
423
424
  }, Ye = (e) => {
424
- const a = _.utc(), t = _.fromFormat(e, "yyyy-MM-dd HH:mm:ss", { zone: "utc" }), o = a.diff(
425
- t,
425
+ const t = w.utc(), a = w.fromFormat(e, "yyyy-MM-dd HH:mm:ss", { zone: "utc" }), s = t.diff(
426
+ a,
426
427
  [
427
428
  "years",
428
429
  "months",
@@ -430,83 +431,83 @@ const Gt = mt({
430
431
  "hours",
431
432
  "minutes"
432
433
  ]
433
- ), n = Math.floor(o.years), l = Math.floor(o.months), d = Math.floor(o.days), m = Math.floor(o.hours), f = Math.floor(o.minutes);
434
+ ), n = Math.floor(s.years), l = Math.floor(s.months), c = Math.floor(s.days), m = Math.floor(s.hours), f = Math.floor(s.minutes);
434
435
  if (n)
435
- return n === 1 ? c("HC_ONE_YEAR_AGO") : c("HC_X_YEARS_AGO", { years: n });
436
+ return n === 1 ? u("HC_ONE_YEAR_AGO") : u("HC_X_YEARS_AGO", { years: n });
436
437
  if (l)
437
- return l === 1 ? c("HC_ONE_MONTH_AGO") : c("HC_X_MONTHS_AGO", { months: l });
438
- if (d)
439
- return d === 1 ? c("HC_ONE_DAY_AGO") : c("HC_X_DAYS_AGO", { days: d });
438
+ return l === 1 ? u("HC_ONE_MONTH_AGO") : u("HC_X_MONTHS_AGO", { months: l });
439
+ if (c)
440
+ return c === 1 ? u("HC_ONE_DAY_AGO") : u("HC_X_DAYS_AGO", { days: c });
440
441
  if (m)
441
- return m === 1 ? c("HC_ONE_HOUR_AGO") : c("HC_X_HOURS_AGO", { hours: m });
442
+ return m === 1 ? u("HC_ONE_HOUR_AGO") : u("HC_X_HOURS_AGO", { hours: m });
442
443
  if (f)
443
- return f === 1 ? c("HC_ONE_MINUTE_AGO") : c("HC_X_MINUTES_AGO", { minutes: f });
444
+ return f === 1 ? u("HC_ONE_MINUTE_AGO") : u("HC_X_MINUTES_AGO", { minutes: f });
444
445
  if (f === 0)
445
- return c("HC_A_MOMENT_AGO");
446
+ return u("HC_A_MOMENT_AGO");
446
447
  }, Ve = async () => {
447
- s.showGuestDetails && se(), ne(), Y(), h("refresh:pms", r.value);
448
- }, se = async () => {
448
+ o.showGuestDetails && oe(), ne(), Y(), h("refresh:pms", r.value);
449
+ }, oe = async () => {
449
450
  try {
450
- b.value.pms = !0;
451
- const e = new AbortController(), a = setTimeout(() => e.abort(), 45e3);
452
- L.value.push(a);
453
- const t = s.pmsBaseUrl;
454
- if (!t)
451
+ g.value.pms = !0;
452
+ const e = new AbortController(), t = setTimeout(() => e.abort(), 45e3);
453
+ L.value.push(t);
454
+ const a = o.pmsBaseUrl;
455
+ if (!a)
455
456
  throw new Error("PMS base URL is required");
456
- const o = {
457
+ const s = {
457
458
  Authorization: "Bearer " + (() => {
458
- const g = `; ${document.cookie}`.split("; QV2Auth=");
459
- return g.length === 2 && g.pop()?.split(";").shift() || "";
459
+ const _ = `; ${document.cookie}`.split("; QV2Auth=");
460
+ return _.length === 2 && _.pop()?.split(";").shift() || "";
460
461
  })(),
461
462
  "Content-Type": "application/json"
462
- }, n = r.value?.qv2Rooms?.qRoomId || r.value?.id || s.room.id, l = await fetch(
463
- `${t}/vendors/properties/statuses/${s.propertyId}/rooms`,
463
+ }, n = r.value?.qv2Rooms?.qRoomId || r.value?.id || o.room.id, l = await fetch(
464
+ `${a}/vendors/properties/statuses/${o.propertyId}/rooms`,
464
465
  {
465
466
  method: "POST",
466
- headers: o,
467
+ headers: s,
467
468
  signal: e.signal,
468
469
  body: JSON.stringify({ roomsIds: [n] })
469
470
  }
470
471
  );
471
- clearTimeout(a), l.ok || ke(l);
472
- const d = await l.json(), m = d.data?.pmsRooms || d.data?.rooms || d.rooms || [];
472
+ clearTimeout(t), l.ok || Ee(l);
473
+ const c = await l.json(), m = c.data?.pmsRooms || c.data?.rooms || c.rooms || [];
473
474
  R.value = m, m.length > 0 ? r.value = {
474
475
  ...m[0],
475
- tokenId: m[0].tokenId || s.room.tokenId
476
- } : r.value = s.room, b.value.pms = !1;
476
+ tokenId: m[0].tokenId || o.room.tokenId
477
+ } : r.value = o.room, g.value.pms = !1;
477
478
  } catch (e) {
478
- return b.value.pms = !1, h("show:toast", {
479
+ return g.value.pms = !1, h("show:toast", {
479
480
  show: !0,
480
- message: c("HC_FAILED_TO_LOAD_PMS_DATA"),
481
+ message: u("HC_FAILED_TO_LOAD_PMS_DATA"),
481
482
  variant: "error",
482
483
  icon: "exclamation-circle"
483
484
  }), e;
484
485
  }
485
486
  }, ne = async () => {
486
487
  try {
487
- b.value.roomNotices = !0;
488
+ g.value.roomNotices = !0;
488
489
  const e = await fetch(
489
- "/api/client/common/getRoomNotices.php?propertyId=" + s.propertyId + "&roomIds=[" + s.room.id + "]"
490
+ "/api/client/common/getRoomNotices.php?propertyId=" + o.propertyId + "&roomIds=[" + o.room.id + "]"
490
491
  );
491
492
  if (!e.ok)
492
493
  throw new Error(`HTTP error! status: ${e.status}`);
493
- const a = await e.json();
494
- ae.value = a.notices;
494
+ const t = await e.json();
495
+ ae.value = t.notices;
495
496
  } catch (e) {
496
497
  console.error("Error getting room notices:", e), ae.value = [], h("show:toast", {
497
498
  show: !0,
498
- message: c("HC_FAILED_TO_LOAD_ROOM_NOTICES"),
499
+ message: u("HC_FAILED_TO_LOAD_ROOM_NOTICES"),
499
500
  variant: "error",
500
501
  icon: "exclamation-circle"
501
502
  });
502
503
  } finally {
503
- b.value.roomNotices = !1;
504
+ g.value.roomNotices = !1;
504
505
  }
505
- }, he = async () => {
506
+ }, ge = async () => {
506
507
  try {
507
508
  const e = new FormData();
508
- e.append("property_id", s.propertyId), e.append("filter", "tasks_new");
509
- const [a, t] = await Promise.all([
509
+ e.append("property_id", o.propertyId), e.append("filter", "tasks_new");
510
+ const [t, a] = await Promise.all([
510
511
  fetch("/api/client/common/getDepartments.php", {
511
512
  method: "POST"
512
513
  }),
@@ -514,47 +515,47 @@ const Gt = mt({
514
515
  method: "POST",
515
516
  body: e
516
517
  })
517
- ]), o = await a.json(), n = await t.json();
518
- if (o.departments && (o.departments.forEach((l) => {
518
+ ]), s = await t.json(), n = await a.json();
519
+ if (s.departments && (s.departments.forEach((l) => {
519
520
  l.label = l.display_name;
520
- }), N.value = o.departments), n.users) {
521
+ }), M.value = s.departments), n.users) {
521
522
  const l = [];
522
- let d = {
523
+ let c = {
523
524
  group: "",
524
525
  options: []
525
526
  };
526
527
  n.users.forEach((m) => {
527
- m.translated_department !== d.group && (d.group && l.push({ ...d }), d.group = m.translated_department, d.options = []), d.options.push(m);
528
- }), d.group && l.push({ ...d }), we.value = l;
528
+ m.translated_department !== c.group && (c.group && l.push({ ...c }), c.group = m.translated_department, c.options = []), c.options.push(m);
529
+ }), c.group && l.push({ ...c }), Ie.value = l;
529
530
  }
530
531
  } catch (e) {
531
532
  console.error("Error getting shared data:", e), h("show:toast", {
532
533
  show: !0,
533
- message: c("HC_FAILED_TO_LOAD_SHARED_DATA"),
534
+ message: u("HC_FAILED_TO_LOAD_SHARED_DATA"),
534
535
  variant: "error",
535
536
  icon: "exclamation-circle"
536
537
  });
537
538
  }
538
- }, Oe = async () => {
539
+ }, ke = async () => {
539
540
  try {
540
- const a = await (await fetch(
541
+ const t = await (await fetch(
541
542
  `/api/client/connect/getStayDetails.php?tokenId=${r.value.tokenId}`,
542
543
  {
543
544
  method: "GET",
544
545
  credentials: "include"
545
546
  }
546
547
  )).json();
547
- if (a.status === "error")
548
- throw new Error(a.message || "Failed to get stay details");
549
- a.userName && (p.value.guestName = a.userName), a.cellPhone && (p.value.guestPhone = a.cellPhone), a.email && (p.value.guestEmail = a.email), a.checkIn && (p.value.checkInDate = _.fromISO(
550
- a.checkIn
551
- ).toJSDate()), a.checkOut && (p.value.checkOutDate = _.fromISO(
552
- a.checkOut
548
+ if (t.status === "error")
549
+ throw new Error(t.message || "Failed to get stay details");
550
+ t.userName && (p.value.guestName = t.userName), t.cellPhone && (p.value.guestPhone = t.cellPhone), t.email && (p.value.guestEmail = t.email), t.checkIn && (p.value.checkInDate = w.fromISO(
551
+ t.checkIn
552
+ ).toJSDate()), t.checkOut && (p.value.checkOutDate = w.fromISO(
553
+ t.checkOut
553
554
  ).toJSDate());
554
555
  } catch (e) {
555
556
  console.error("getStayDetails error:", e), h("show:toast", {
556
557
  show: !0,
557
- message: c("HC_FAILED_TO_LOAD_STAY_DETAILS"),
558
+ message: u("HC_FAILED_TO_LOAD_STAY_DETAILS"),
558
559
  variant: "error",
559
560
  icon: "exclamation-circle"
560
561
  });
@@ -587,54 +588,54 @@ const Gt = mt({
587
588
  }
588
589
  }, Y = async () => {
589
590
  try {
590
- b.value.tickets = !0;
591
+ g.value.tickets = !0;
591
592
  const e = await fetch(
592
- "/api/client/common/getAllToDos.php?propertyId=" + s.propertyId + "&roomIds=[" + s.room.id + "]"
593
+ "/api/client/common/getAllToDos.php?propertyId=" + o.propertyId + "&roomIds=[" + o.room.id + "]"
593
594
  );
594
595
  if (!e.ok)
595
596
  throw new Error(`HTTP error! status: ${e.status}`);
596
- const a = await e.json();
597
- E.value = a.tickets;
597
+ const t = await e.json();
598
+ S.value = t.tickets;
598
599
  } catch (e) {
599
- console.error("Error getting tickets:", e), E.value = [], h("show:toast", {
600
+ console.error("Error getting tickets:", e), S.value = [], h("show:toast", {
600
601
  show: !0,
601
- message: c("HC_FAILED_TO_LOAD_TICKETS"),
602
+ message: u("HC_FAILED_TO_LOAD_TICKETS"),
602
603
  variant: "error",
603
604
  icon: "exclamation-circle"
604
605
  });
605
606
  } finally {
606
- b.value.tickets = !1;
607
+ g.value.tickets = !1;
607
608
  }
608
- }, ke = async (e) => {
609
- const a = await e.text();
610
- let t;
609
+ }, Ee = async (e) => {
610
+ const t = await e.text();
611
+ let a;
611
612
  try {
612
- t = JSON.parse(a).response;
613
+ a = JSON.parse(t).response;
613
614
  } catch {
614
- t = { code: e.status, message: a };
615
+ a = { code: e.status, message: t };
615
616
  }
616
- return t.code === 401 ? (window.location.href = "/logout.php?unauthorized=1", { error: t }) : t;
617
+ return a.code === 401 ? (window.location.href = "/logout.php?unauthorized=1", { error: a }) : a;
617
618
  }, Xe = (e) => {
618
- const a = document.querySelectorAll(".pulse");
619
- if (a && a.length) {
620
- const t = r.value?.qv2Rooms?.qRoomId || r.value?.id || s.room?.id, o = document.getElementById("room-" + t), n = o?.classList;
619
+ const t = document.querySelectorAll(".pulse");
620
+ if (t && t.length) {
621
+ const a = r.value?.qv2Rooms?.qRoomId || r.value?.id || o.room?.id, s = document.getElementById("room-" + a), n = s?.classList;
621
622
  switch (e) {
622
623
  case "room_notice":
623
- (n?.contains("roombox_unsel") || n?.contains("roombox_unsel_active")) && (o?.classList.remove(), o?.classList.add("roomnoticeroombox_sel"));
624
+ (n?.contains("roombox_unsel") || n?.contains("roombox_unsel_active")) && (s?.classList.remove(), s?.classList.add("roomnoticeroombox_sel"));
624
625
  break;
625
626
  case "complaint":
626
- !n?.contains("smsroombox_sel") && !n?.contains("callbackroombox_sel") && (o?.classList.remove(), o?.classList.add("complaintsroombox_sel"));
627
+ !n?.contains("smsroombox_sel") && !n?.contains("callbackroombox_sel") && (s?.classList.remove(), s?.classList.add("complaintsroombox_sel"));
627
628
  break;
628
629
  case "request":
629
- !n?.contains("smsroombox_sel") && !n?.contains("callbackroombox_sel") && !n?.contains("complaintsroombox_sel") && (o?.classList.remove(), o?.classList.add("guestrequestroombox_sel"));
630
+ !n?.contains("smsroombox_sel") && !n?.contains("callbackroombox_sel") && !n?.contains("complaintsroombox_sel") && (s?.classList.remove(), s?.classList.add("guestrequestroombox_sel"));
630
631
  break;
631
632
  case "work_order":
632
- !n?.contains("smsroombox_sel") && !n?.contains("callbackroombox_sel") && !n?.contains("complaintsroombox_sel") && !n?.contains("guestrequestroombox_sel") && (o?.classList.remove(), o?.classList.add("workordersroombox_sel"));
633
+ !n?.contains("smsroombox_sel") && !n?.contains("callbackroombox_sel") && !n?.contains("complaintsroombox_sel") && !n?.contains("guestrequestroombox_sel") && (s?.classList.remove(), s?.classList.add("workordersroombox_sel"));
633
634
  break;
634
635
  }
635
636
  const l = setTimeout(() => {
636
- a.forEach((d) => {
637
- d.classList.remove("pulse");
637
+ t.forEach((c) => {
638
+ c.classList.remove("pulse");
638
639
  });
639
640
  }, 4500);
640
641
  L.value.push(l);
@@ -642,114 +643,122 @@ const Gt = mt({
642
643
  }, Ze = () => {
643
644
  window.open("/guest/overview.php", "_blank");
644
645
  }, et = (e) => {
645
- let a = "";
646
+ let t = "";
646
647
  switch (e.type) {
647
648
  case "complaint":
648
- a = `/complaints/complaints_view.php?id=${e.id}`;
649
+ t = `/complaints/complaints_view.php?id=${e.id}`;
649
650
  break;
650
651
  case "request":
651
- a = `/tasks/hk_request.php?id=${e.id}`;
652
+ t = `/tasks/hk_request.php?id=${e.id}`;
652
653
  break;
653
654
  case "satisfaction-call":
654
- a = `/tasks/task_callback.php?id=${e.id}`;
655
+ t = `/tasks/task_callback.php?id=${e.id}`;
655
656
  break;
656
657
  case "work-order":
657
- a = `/tasks/workorder.php?id=${e.id}`;
658
+ t = `/tasks/workorder.php?id=${e.id}`;
658
659
  break;
659
660
  case "task":
660
- a = `/tasks/task.php?id=${e.id}`;
661
+ t = `/tasks/task.php?id=${e.id}`;
661
662
  break;
662
663
  default:
663
664
  return "#";
664
665
  }
665
- window.open(a, "_blank");
666
+ window.open(t, "_blank");
666
667
  }, tt = async () => {
667
- const e = r.value?.qv2Rooms?.qRoomId || r.value?.id || s.room?.id, a = r.value?.qv2Rooms?.qRoomName || r.value?.name || s.room?.name, t = {
668
- type: k.value?.id,
669
- propertyId: s.propertyId,
668
+ ve.value = !0;
669
+ const e = r.value?.qv2Rooms?.qRoomId || r.value?.id || o.room?.id, t = r.value?.qv2Rooms?.qRoomName || r.value?.name || o.room?.name, a = {
670
+ type: E.value?.id,
671
+ propertyId: o.propertyId,
670
672
  userId: P.value,
671
673
  areaId: e,
672
- areaName: a
674
+ areaName: t
673
675
  };
674
- switch (k.value?.id) {
676
+ switch (E.value?.id) {
675
677
  case "complaint":
676
- t.tokenId = r.value.tokenId, t.problemId = p.value.problem.id, t.guestName = p.value.guestName, t.guestPhone = p.value.guestPhone, t.guestEmail = p.value.guestEmail, t.guestLoyalty = p.value.guestLoyalty, t.guestMood = p.value.guestMood.id, t.checkInDate = _.fromJSDate(p.value.checkInDate).toFormat(
678
+ a.tokenId = r.value.tokenId, a.problemId = p.value.problem.id, a.guestName = p.value.guestName, a.guestPhone = p.value.guestPhone, a.guestEmail = p.value.guestEmail, a.guestLoyalty = p.value.guestLoyalty, a.guestMood = p.value.guestMood.id, a.checkInDate = w.fromJSDate(p.value.checkInDate).toFormat(
677
679
  "yyyy-MM-dd"
678
- ), t.checkOutDate = _.fromJSDate(p.value.checkOutDate).toFormat(
680
+ ), a.checkOutDate = w.fromJSDate(p.value.checkOutDate).toFormat(
679
681
  "yyyy-MM-dd"
680
- ), t.notes = p.value.notes, t.inHouse = 2, t.source = "dashboard", h("create:todo", t);
682
+ ), a.notes = p.value.notes, a.inHouse = 2, a.source = "dashboard", h("create:todo", a);
681
683
  break;
682
684
  case "request":
683
- t.itemId = u.value.item.id, t.assignType = u.value.assignType.id, t.occupied = u.value.requestedBy.id, t.notes = u.value.notes, t.dueDate = _.fromJSDate(u.value.due).toFormat("yyyy-MM-dd"), u.value.assignType.id === 1 && (t.department = u.value.department.id), u.value.assignType.id === 2 && (t.person = u.value.person.id), s.allowWhenWhere && (t.requestWhen = u.value.when ? u.value.when.id : "", t.requestWhere = u.value.where ? u.value.where.id : ""), h("create:todo", t);
685
+ a.itemId = d.value.item.id, a.assignType = d.value.assignType.id, a.occupied = d.value.requestedBy.id, a.notes = d.value.notes, a.dueDate = w.fromJSDate(d.value.due).toFormat("yyyy-MM-dd"), d.value.assignType.id === 1 && (a.department = d.value.department.id), d.value.assignType.id === 2 && (a.person = d.value.person.id), o.allowWhenWhere && (a.requestWhen = d.value.when ? d.value.when.id : "", a.requestWhere = d.value.where ? d.value.where.id : ""), h("create:todo", a);
684
686
  break;
685
687
  case "room_notice":
686
- t.issueId = w.value.issue.id, t.startDate = _.fromJSDate(w.value.startDate).toFormat("yyyy-MM-dd"), t.endDate = _.fromJSDate(w.value.endDate).toFormat("yyyy-MM-dd"), t.notes = w.value.notes, t.sendPush = "1", h("create:todo", t);
688
+ a.issueId = I.value.issue.id, a.startDate = w.fromJSDate(I.value.startDate).toFormat("yyyy-MM-dd"), a.endDate = w.fromJSDate(I.value.endDate).toFormat("yyyy-MM-dd"), a.notes = I.value.notes, a.sendPush = "1", h("create:todo", a);
687
689
  break;
688
690
  case "work_order":
689
- t.itemId = v.value.item.id, t.issueId = v.value.issue.id, t.assignType = v.value.assignType.id, t.occupied = v.value.requestedBy.id, t.notes = v.value.notes, t.dueDate = _.fromJSDate(v.value.due).toFormat("yyyy-MM-dd"), v.value.assignType.id === 1 && (t.department = v.value.department.id), v.value.assignType.id === 2 && (t.person = v.value.person.id), h("create:todo", t);
691
+ a.itemId = v.value.item.id, a.issueId = v.value.issue.id, a.assignType = v.value.assignType.id, a.occupied = v.value.requestedBy.id, a.notes = v.value.notes, a.dueDate = w.fromJSDate(v.value.due).toFormat("yyyy-MM-dd"), v.value.assignType.id === 1 && (a.department = v.value.department.id), v.value.assignType.id === 2 && (a.person = v.value.person.id), h("create:todo", a);
690
692
  break;
691
693
  }
692
694
  }, at = (e) => {
693
- ge(), _e(), s.hover && h("toggle", e);
694
- }, ot = (e) => {
695
- Se(), A.value = e;
696
- }, st = async (e) => {
697
- if (console.log("selected:", e), k.value = e, T.value = [], w.value.issue = null, p.value.problem = null, v.value.item = null, v.value.issue = null, u.value.item = null, !k.value)
695
+ _e(), we(), o.hover && h("toggle", e);
696
+ }, st = (e) => {
697
+ Ae(), b.value = e;
698
+ }, ot = async (e) => {
699
+ if (console.log("selected:", e), E.value = e, O.value = [], I.value.issue = null, p.value.problem = null, v.value.item = null, v.value.issue = null, d.value.item = null, !E.value) {
700
+ g.value.actionItems = !1;
698
701
  return;
699
- const a = r.value?.qv2Rooms?.qRoomId || r.value?.id || s.room?.id, t = new FormData();
700
- switch (t.append("property_id", s.propertyId), t.append("area_id", a), e.id) {
702
+ }
703
+ g.value.actionItems = !0;
704
+ const t = r.value?.qv2Rooms?.qRoomId || r.value?.id || o.room?.id, a = new FormData();
705
+ switch (a.append("property_id", o.propertyId), a.append("area_id", t), e.id) {
701
706
  case "complaint":
702
707
  try {
703
- r.value.tokenId && await Oe();
708
+ r.value.tokenId && await ke();
704
709
  const n = await (await fetch("/api/client/common/getComplaintProblemsByPropertyId.php", {
705
710
  method: "POST",
706
- body: t
711
+ body: a
707
712
  })).json();
708
- n.items && (T.value = n.items);
713
+ n.items && (O.value = n.items);
709
714
  const l = await K.post(
710
715
  "/api/client/common/getComplaintMoods.php"
711
716
  );
712
- l.data.items.forEach((d) => {
713
- d.label = d.display_name;
717
+ l.data.items.forEach((c) => {
718
+ c.label = c.display_name;
714
719
  }), ce.value = l.data.items;
715
- } catch (o) {
716
- console.error("Error loading complaint options:", o), h("show:toast", {
720
+ } catch (s) {
721
+ console.error("Error loading complaint options:", s), h("show:toast", {
717
722
  show: !0,
718
- message: c("HC_FAILED_TO_LOAD_COMPLAINT_OPTIONS"),
723
+ message: u("HC_FAILED_TO_LOAD_COMPLAINT_OPTIONS"),
719
724
  variant: "error",
720
725
  icon: "exclamation-circle"
721
726
  });
727
+ } finally {
728
+ g.value.actionItems = !1;
722
729
  }
723
730
  break;
724
731
  case "room_notice":
725
732
  try {
726
733
  const n = await (await fetch("/api/client/common/getRoomNoticeIssuesByPropertyId.php", {
727
734
  method: "POST",
728
- body: t
735
+ body: a
729
736
  })).json();
730
- n.items && (T.value = n.items);
731
- } catch (o) {
732
- console.error("Error loading room notice options:", o), h("show:toast", {
737
+ n.items && (O.value = n.items);
738
+ } catch (s) {
739
+ console.error("Error loading room notice options:", s), h("show:toast", {
733
740
  show: !0,
734
- message: c("HC_FAILED_TO_LOAD_ROOM_NOTICE_OPTIONS"),
741
+ message: u("HC_FAILED_TO_LOAD_ROOM_NOTICE_OPTIONS"),
735
742
  variant: "error",
736
743
  icon: "exclamation-circle"
737
744
  });
745
+ } finally {
746
+ g.value.actionItems = !1;
738
747
  }
739
748
  break;
740
749
  case "request":
741
750
  try {
742
- u.value.requestedBy = Q.value[1], u.value.assignType = X.value[0];
751
+ d.value.requestedBy = Q.value[1], d.value.assignType = X.value[0];
743
752
  const n = await (await fetch("/api/client/common/getHousekeepingItemsByPropertyId.php", {
744
753
  method: "POST",
745
- body: t
754
+ body: a
746
755
  })).json();
747
- if (n.items && (T.value = n.items), await he(), u.value.department = N.value.find(
756
+ if (n.items && (O.value = n.items), await ge(), d.value.department = M.value.find(
748
757
  (l) => parseInt(l.id) === 4
749
- ), s.allowWhenWhere)
758
+ ), o.allowWhenWhere)
750
759
  try {
751
760
  const l = new FormData();
752
- l.append("property_id", s.propertyId);
761
+ l.append("property_id", o.propertyId);
753
762
  const m = await (await fetch(
754
763
  "/api/client/common/getWhenWhereOptions.php",
755
764
  {
@@ -769,18 +778,20 @@ const Gt = mt({
769
778
  } catch (l) {
770
779
  console.error("Error loading When/Where options:", l), q.value = [], x.value = [], h("show:toast", {
771
780
  show: !0,
772
- message: c("HC_FAILED_TO_LOAD_WHEN_WHERE_OPTIONS"),
781
+ message: u("HC_FAILED_TO_LOAD_WHEN_WHERE_OPTIONS"),
773
782
  variant: "error",
774
783
  icon: "exclamation-circle"
775
784
  });
776
785
  }
777
- } catch (o) {
778
- console.error("Error loading request options:", o), h("show:toast", {
786
+ } catch (s) {
787
+ console.error("Error loading request options:", s), h("show:toast", {
779
788
  show: !0,
780
- message: c("HC_FAILED_TO_LOAD_REQUEST_OPTIONS"),
789
+ message: u("HC_FAILED_TO_LOAD_REQUEST_OPTIONS"),
781
790
  variant: "error",
782
791
  icon: "exclamation-circle"
783
792
  });
793
+ } finally {
794
+ g.value.actionItems = !1;
784
795
  }
785
796
  break;
786
797
  case "work_order":
@@ -788,44 +799,47 @@ const Gt = mt({
788
799
  v.value.requestedBy = Q.value[0], v.value.assignType = X.value[0];
789
800
  const n = await (await fetch("/api/client/common/getItemsByRoomId.php", {
790
801
  method: "POST",
791
- body: t
802
+ body: a
792
803
  })).json(), l = [];
793
- let d = {
804
+ let c = {
794
805
  group: "",
795
806
  options: []
796
807
  };
797
808
  n.items && (n.items.forEach((m) => {
798
- m.section_name !== d.group && (d.group && l.push({ ...d }), d.group = m.section_name, d.options = []), m.label && d.options.push(m);
799
- }), d.group && l.push({ ...d })), T.value = l, await Promise.all([
809
+ m.section_name !== c.group && (c.group && l.push({ ...c }), c.group = m.section_name, c.options = []), m.label && c.options.push(m);
810
+ }), c.group && l.push({ ...c })), O.value = l, await Promise.all([
800
811
  K.post(
801
812
  "/api/client/common/getWorkOrderIssues.php"
802
813
  ),
803
- he()
814
+ ge()
804
815
  ]).then((m) => {
805
816
  const f = m[0];
806
- f.data.issues.forEach((g) => {
807
- g.label = g.display_name;
808
- }), ve.value = f.data.issues;
809
- }), v.value.department = N.value.find(
817
+ f.data.issues.forEach((_) => {
818
+ _.label = _.display_name;
819
+ }), pe.value = f.data.issues;
820
+ }), v.value.department = M.value.find(
810
821
  (m) => parseInt(m.id) === 2
811
822
  );
812
- } catch (o) {
813
- console.error("Error loading work order options:", o), h("show:toast", {
823
+ } catch (s) {
824
+ console.error("Error loading work order options:", s), h("show:toast", {
814
825
  show: !0,
815
- message: c("HC_FAILED_TO_LOAD_WORK_ORDER_OPTIONS"),
826
+ message: u("HC_FAILED_TO_LOAD_WORK_ORDER_OPTIONS"),
816
827
  variant: "error",
817
828
  icon: "exclamation-circle"
818
829
  });
830
+ } finally {
831
+ g.value.actionItems = !1;
819
832
  }
820
833
  break;
821
834
  default:
835
+ g.value.actionItems = !1;
822
836
  return;
823
837
  }
824
838
  }, nt = () => {
825
- oe.value = !oe.value, ie.value = !1;
826
- }, Ee = () => {
827
- const e = document.getElementById("comment-field"), a = document.getElementById("hidden-text");
828
- e.style.height = a?.offsetHeight + "px";
839
+ se.value = !se.value, ie.value = !1;
840
+ }, Se = () => {
841
+ const e = document.getElementById("comment-field"), t = document.getElementById("hidden-text");
842
+ e.style.height = t?.offsetHeight + "px";
829
843
  }, V = () => {
830
844
  const e = document.getElementById("comments-container");
831
845
  e?.scroll({
@@ -833,90 +847,98 @@ const Gt = mt({
833
847
  behavior: "smooth"
834
848
  });
835
849
  }, rt = async (e) => {
836
- if (e && e.type === "keydown" && e.preventDefault(), r.value.tokenId && A.value && !H.value)
850
+ if (e && e.type === "keydown" && e.preventDefault(), r.value.tokenId && b.value && !H.value) {
851
+ g.value.sendingMessage = !0;
837
852
  try {
838
- const a = new FormData();
839
- a.append("tokenId", r.value.tokenId), a.append("content", A.value), a.append("senderId", P.value || "");
840
- const t = await K.post(
853
+ const t = new FormData();
854
+ t.append("tokenId", r.value.tokenId), t.append("content", b.value), t.append("senderId", P.value || "");
855
+ const a = await K.post(
841
856
  "/api/client/connect/sendMessage.php",
842
- a
857
+ t
843
858
  );
844
- if (t.data.status === "error") {
859
+ if (a.data.status === "error") {
845
860
  h("show:toast", {
846
861
  show: !0,
847
- message: c("HC_FAILED_TO_SEND_MESSAGE"),
862
+ message: u("HC_FAILED_TO_SEND_MESSAGE"),
848
863
  variant: "error",
849
864
  icon: "exclamation-circle"
850
865
  });
851
866
  return;
852
867
  }
853
- A.value = "", S.value = !t.data.closed, t.data.messages && (F(t.data.messages), t.data.messages.length > 0 && (O.value = t.data.messages[t.data.messages.length - 1].id)), V();
854
- } catch (a) {
855
- console.error("sendChatMessage error:", a), h("show:toast", {
868
+ b.value = "", A.value = !a.data.closed, a.data.messages && (F(a.data.messages), a.data.messages.length > 0 && (k.value = a.data.messages[a.data.messages.length - 1].id)), V();
869
+ } catch (t) {
870
+ console.error("sendChatMessage error:", t), h("show:toast", {
856
871
  show: !0,
857
- message: c("HC_FAILED_TO_SEND_MESSAGE"),
872
+ message: u("HC_FAILED_TO_SEND_MESSAGE"),
858
873
  variant: "error",
859
874
  icon: "exclamation-circle"
860
875
  });
876
+ } finally {
877
+ g.value.sendingMessage = !1;
861
878
  }
879
+ }
862
880
  }, lt = async () => {
863
- if (!(!r.value.tokenId || !P.value))
881
+ if (!(!r.value.tokenId || !P.value)) {
882
+ g.value.conversationToggle = !0;
864
883
  try {
865
- const e = S.value ? "/api/client/connect/closeConversation.php" : "/api/client/connect/openConversation.php", a = new FormData();
866
- a.append("tokenId", r.value.tokenId), a.append("userId", P.value), S.value && O.value !== null && a.append("lastMsgId", O.value.toString());
867
- const t = await K.post(e, a);
868
- if (t.data.status === "error") {
884
+ const e = A.value ? "/api/client/connect/closeConversation.php" : "/api/client/connect/openConversation.php", t = new FormData();
885
+ t.append("tokenId", r.value.tokenId), t.append("userId", P.value), A.value && k.value !== null && t.append("lastMsgId", k.value.toString());
886
+ const a = await K.post(e, t);
887
+ if (a.data.status === "error") {
869
888
  h("show:toast", {
870
889
  show: !0,
871
- message: c("HC_FAILED_TO_UPDATE_CONVERSATION"),
890
+ message: u("HC_FAILED_TO_UPDATE_CONVERSATION"),
872
891
  variant: "error",
873
892
  icon: "exclamation-circle"
874
893
  });
875
894
  return;
876
895
  }
877
- S.value = !t.data.closed, t.data.messages && (F(t.data.messages), t.data.messages.length > 0 && (O.value = t.data.messages[t.data.messages.length - 1].id)), h("show:toast", {
896
+ A.value = !a.data.closed, a.data.messages && (F(a.data.messages), a.data.messages.length > 0 && (k.value = a.data.messages[a.data.messages.length - 1].id)), h("show:toast", {
878
897
  show: !0,
879
- message: S.value ? c("HC_CONVERSATION_REOPENED") : c("HC_CONVERSATION_CLOSED"),
898
+ message: A.value ? u("HC_CONVERSATION_REOPENED") : u("HC_CONVERSATION_CLOSED"),
880
899
  variant: "success",
881
900
  icon: "check-circle"
882
901
  });
883
902
  } catch (e) {
884
903
  console.error("toggleMarkOpenClose error:", e), h("show:toast", {
885
904
  show: !0,
886
- message: c("HC_FAILED_TO_UPDATE_CONVERSATION"),
905
+ message: u("HC_FAILED_TO_UPDATE_CONVERSATION"),
887
906
  variant: "error",
888
907
  icon: "exclamation-circle"
889
908
  });
909
+ } finally {
910
+ g.value.conversationToggle = !1;
890
911
  }
912
+ }
891
913
  }, it = async () => {
892
- if (s.isTestEnvironment && !(!r.value?.tokenId || !j.value.trim())) {
914
+ if (o.isTestEnvironment && !(!r.value?.tokenId || !j.value.trim())) {
893
915
  me.value = !0;
894
916
  try {
895
917
  const e = new FormData();
896
918
  e.append("tokenId", r.value.tokenId), e.append("content", j.value.trim());
897
- const a = await K.post(
919
+ const t = await K.post(
898
920
  "/api/client/connect/simulateInbound.php",
899
921
  e
900
922
  );
901
- if (a.data.status === "error") {
923
+ if (t.data.status === "error") {
902
924
  h("show:toast", {
903
925
  show: !0,
904
- message: c("HC_FAILED_TO_SIMULATE_MESSAGE"),
926
+ message: u("HC_FAILED_TO_SIMULATE_MESSAGE"),
905
927
  variant: "error",
906
928
  icon: "exclamation-circle"
907
929
  });
908
930
  return;
909
931
  }
910
- a.data.messages && (F(a.data.messages), S.value = !a.data.closed, a.data.messages.length > 0 && (O.value = a.data.messages[a.data.messages.length - 1].id)), j.value = "", U.value = !1, V(), h("show:toast", {
932
+ t.data.messages && (F(t.data.messages), A.value = !t.data.closed, t.data.messages.length > 0 && (k.value = t.data.messages[t.data.messages.length - 1].id)), j.value = "", W.value = !1, V(), h("show:toast", {
911
933
  show: !0,
912
- message: c("HC_SIMULATED_GUEST_REPLY"),
934
+ message: u("HC_SIMULATED_GUEST_REPLY"),
913
935
  variant: "success",
914
936
  icon: "check-circle"
915
937
  });
916
938
  } catch (e) {
917
939
  console.error("simulateGuestReply error:", e), h("show:toast", {
918
940
  show: !0,
919
- message: c("HC_FAILED_TO_SIMULATE_MESSAGE"),
941
+ message: u("HC_FAILED_TO_SIMULATE_MESSAGE"),
920
942
  variant: "error",
921
943
  icon: "exclamation-circle"
922
944
  });
@@ -925,174 +947,174 @@ const Gt = mt({
925
947
  }
926
948
  }
927
949
  }, ut = () => {
928
- U.value = !U.value, U.value || (j.value = "");
950
+ W.value = !W.value, W.value || (j.value = "");
929
951
  }, ct = () => {
930
952
  $.value || ($.value = setInterval(() => {
931
- document.visibilityState === "visible" && fe(!0);
932
- }, Ce));
953
+ document.visibilityState === "visible" && he(!0);
954
+ }, Me));
933
955
  }, ye = () => {
934
956
  $.value && (clearInterval($.value), $.value = null);
935
- }, ge = () => {
936
- if (s.align === "left" || s.align === "right") {
937
- const e = J.value?.getBoundingClientRect().left, a = window.innerWidth;
938
- ue.value = a - e < W.value ? "right" : "left";
957
+ }, _e = () => {
958
+ if (o.align === "left" || o.align === "right") {
959
+ const e = J.value?.getBoundingClientRect().left, t = window.innerWidth;
960
+ ue.value = t - e < U.value ? "right" : "left";
939
961
  } else {
940
- const e = J.value?.getBoundingClientRect().top, a = window.innerHeight;
941
- ue.value = a - e < G.value ? "bottom" : "top";
962
+ const e = J.value?.getBoundingClientRect().top, t = window.innerHeight;
963
+ ue.value = t - e < G.value ? "bottom" : "top";
942
964
  }
943
- }, _e = () => {
944
- if (s.position === "top" || s.position === "bottom") {
945
- const e = J.value?.getBoundingClientRect().top, a = window.innerHeight;
946
- de.value = a - e < G.value ? "top" : "bottom";
965
+ }, we = () => {
966
+ if (o.position === "top" || o.position === "bottom") {
967
+ const e = J.value?.getBoundingClientRect().top, t = window.innerHeight;
968
+ de.value = t - e < G.value ? "top" : "bottom";
947
969
  } else {
948
- const e = J.value?.getBoundingClientRect().left, a = window.innerWidth;
949
- de.value = a - e < W.value ? "left" : "right";
970
+ const e = J.value?.getBoundingClientRect().left, t = window.innerWidth;
971
+ de.value = t - e < U.value ? "left" : "right";
950
972
  }
951
- }, Se = () => {
952
- H.value = !H.value, H.value ? (A.value = "", M.value.info = ee.value, M.value.tickets = te.value, M.value.comments = Z.value, ee.value = !1, te.value = !1, document.getElementById("comment-field")?.focus()) : (ee.value = M.value.info, te.value = M.value.tickets, Z.value = M.value.comments);
953
- }, dt = async (e, a) => {
954
- const t = r.value?.qv2Rooms?.qRoomId || r.value?.id || s.room?.id, o = new FormData();
955
- if (o.append("property_id", s.propertyId), o.append("room_ids", JSON.stringify([t])), await Y(), E.value) {
973
+ }, Ae = () => {
974
+ H.value = !H.value, H.value ? (b.value = "", N.value.info = ee.value, N.value.tickets = te.value, N.value.comments = Z.value, ee.value = !1, te.value = !1, document.getElementById("comment-field")?.focus()) : (ee.value = N.value.info, te.value = N.value.tickets, Z.value = N.value.comments);
975
+ }, dt = async (e, t) => {
976
+ const a = r.value?.qv2Rooms?.qRoomId || r.value?.id || o.room?.id, s = new FormData();
977
+ if (s.append("property_id", o.propertyId), s.append("room_ids", JSON.stringify([a])), await Y(), S.value) {
956
978
  const n = [];
957
- E.value.forEach((l) => {
958
- l.id === e && l.type === a ? n.unshift({
979
+ S.value.forEach((l) => {
980
+ l.id === e && l.type === t ? n.unshift({
959
981
  ...l,
960
982
  isNew: !0
961
983
  }) : n.push({
962
984
  ...l,
963
985
  isNew: !1
964
986
  });
965
- }), n.sort((l, d) => l.id === e ? -1 : d.id === e ? 1 : 0), E.value = [...n];
987
+ }), n.sort((l, c) => l.id === e ? -1 : c.id === e ? 1 : 0), S.value = [...n];
966
988
  }
967
989
  };
968
- B(() => s.open, () => {
969
- if (s.open && s.showComments && C.value.length) {
990
+ B(() => o.open, () => {
991
+ if (o.open && o.showComments && C.value.length) {
970
992
  const e = setTimeout(V, 500);
971
993
  L.value.push(e);
972
994
  }
973
- s.open || (Te(), ye(), O.value = null, C.value = [], S.value = !1);
995
+ o.open || (Oe(), ye(), k.value = null, C.value = [], A.value = !1);
974
996
  }), B(
975
- () => [s.open, s.showComments, Z.value, r.value?.tokenId],
976
- ([e, a, t, o]) => {
977
- e && a && t && o ? ct() : ye();
997
+ () => [o.open, o.showComments, Z.value, r.value?.tokenId],
998
+ ([e, t, a, s]) => {
999
+ e && t && a && s ? ct() : ye();
978
1000
  }
979
- ), B(A, () => {
980
- const e = setTimeout(Ee, 100);
1001
+ ), B(b, () => {
1002
+ const e = setTimeout(Se, 100);
981
1003
  L.value.push(e);
982
- }), B(() => s.allowWhenWhere, (e, a) => {
983
- a === !0 && e === !1 && (u.value.when = null, u.value.where = null, q.value = [], x.value = []);
1004
+ }), B(() => o.allowWhenWhere, (e, t) => {
1005
+ t === !0 && e === !1 && (d.value.when = null, d.value.where = null, q.value = [], x.value = []);
984
1006
  });
985
- const Ae = () => !!(s.room.reservations || s.room.cleaning || s.room.occupancy);
986
- return B(() => s.open, async (e, a) => {
987
- e && !a && (Ae() ? (r.value = s.room, R.value = [s.room]) : s.showGuestDetails && !R.value ? await se() : r.value || (r.value = s.room), Y(), ne(), s.showComments && fe());
1007
+ const be = () => !!(o.room.reservations || o.room.cleaning || o.room.occupancy);
1008
+ return B(() => o.open, async (e, t) => {
1009
+ e && !t && (be() ? (r.value = o.room, R.value = [o.room]) : o.showGuestDetails && !R.value ? await oe() : r.value || (r.value = o.room), Y(), ne(), o.showComments && he());
988
1010
  }), B(
989
- () => s.room.id,
990
- (e, a) => {
991
- e !== a && (r.value = s.room, R.value = null, s.open && (Ae() ? R.value = [s.room] : s.showGuestDetails && se(), Y(), ne()));
1011
+ () => o.room.id,
1012
+ (e, t) => {
1013
+ e !== t && (r.value = o.room, R.value = null, o.open && (be() ? R.value = [o.room] : o.showGuestDetails && oe(), Y(), ne()));
992
1014
  }
993
1015
  ), vt(async () => {
994
1016
  const e = JSON.parse(
995
1017
  window.localStorage.getItem("authenticated")
996
1018
  );
997
- P.value = e?.user?.id || window.userId || "", r.value = s.room, s.size === "sm" && (G.value = 140, W.value = 160), s.size === "lg" && (G.value = 250, W.value = 440), ge(), _e();
1019
+ P.value = e?.user?.id || window.userId || "", r.value = o.room, o.size === "sm" && (G.value = 140, U.value = 160), o.size === "lg" && (G.value = 250, U.value = 440), _e(), we();
998
1020
  }), pt(() => {
999
1021
  L.value.forEach((e) => {
1000
1022
  clearTimeout(e);
1001
1023
  }), ye();
1002
1024
  }), {
1003
- DateTime: _,
1025
+ DateTime: w,
1004
1026
  // Refs
1005
1027
  actionMenuOpen: ie,
1006
1028
  alignment: ue,
1007
1029
  assignTypes: X,
1008
- comment: A,
1030
+ comment: b,
1009
1031
  complaint: p,
1010
1032
  componentHeight: G,
1011
- componentWidth: W,
1012
- departments: N,
1013
- departmentUsers: we,
1033
+ componentWidth: U,
1034
+ departments: M,
1035
+ departmentUsers: Ie,
1014
1036
  expandComments: Z,
1015
1037
  expandGuestInfo: ee,
1016
- expandedStates: M,
1038
+ expandedStates: N,
1017
1039
  expandTickets: te,
1018
- guestDetailsData: be,
1019
- itemOptions: T,
1020
- loading: b,
1040
+ guestDetailsData: Ce,
1041
+ itemOptions: O,
1042
+ loading: g,
1021
1043
  messages: C,
1022
1044
  moodOptions: ce,
1023
1045
  pmsData: R,
1024
1046
  positioning: de,
1025
1047
  quickReplyOpen: H,
1026
- request: u,
1048
+ request: d,
1027
1049
  requestedByOptions: Q,
1028
- requestLoading: Ne,
1029
- requestType: k,
1050
+ requestLoading: ve,
1051
+ requestType: E,
1030
1052
  roomDetailsData: r,
1031
- roomNotice: w,
1053
+ roomNotice: I,
1032
1054
  roomNotices: ae,
1033
- showCreateRequest: oe,
1034
- ticketsList: E,
1035
- todoOptions: Me,
1055
+ showCreateRequest: se,
1056
+ ticketsList: S,
1057
+ todoOptions: Ne,
1036
1058
  trigger: J,
1037
1059
  userId: P,
1038
1060
  workOrder: v,
1039
- workOrderIssues: ve,
1061
+ workOrderIssues: pe,
1040
1062
  whenOptions: q,
1041
1063
  whereOptions: x,
1042
1064
  // Guest Connect state
1043
- isConversationOpen: S,
1044
- lastMessageId: O,
1065
+ isConversationOpen: A,
1066
+ lastMessageId: k,
1045
1067
  // Simulate Guest Reply state (test environments only)
1046
- simulateOpen: U,
1068
+ simulateOpen: W,
1047
1069
  simulateContent: j,
1048
1070
  simulateLoading: me,
1049
1071
  // Computed
1050
- cleanliness: pe,
1072
+ cleanliness: fe,
1051
1073
  cleanlinessColor: Re,
1052
1074
  cleanlinessTooltipContent: He,
1053
1075
  filteredReplies: Le,
1054
1076
  groupedMessages: Pe,
1055
1077
  hasGuestCallback: qe,
1056
- hasComplaint: Ie,
1078
+ hasComplaint: De,
1057
1079
  itemOptionsList: xe,
1058
- occupied: De,
1080
+ occupied: Te,
1059
1081
  occupancyTooltipContent: Fe,
1060
1082
  selectedAssignType: Be,
1061
1083
  selectedDepartment: Ge,
1062
- selectedRequestedBy: We,
1063
- stayDetails: Ue,
1084
+ selectedRequestedBy: Ue,
1085
+ stayDetails: We,
1064
1086
  tagsList: je,
1065
1087
  validateToDo: $e,
1066
1088
  // Methods
1067
- closeRequest: Te,
1089
+ closeRequest: Oe,
1068
1090
  createCallback: Qe,
1069
1091
  createMessageList: F,
1070
- getChatMessages: fe,
1092
+ getChatMessages: he,
1071
1093
  getHowLongAgo: Ye,
1072
- getPMSData: se,
1094
+ getPMSData: oe,
1073
1095
  getRoomNotices: ne,
1074
- getSharedData: he,
1075
- getStayDetails: Oe,
1096
+ getSharedData: ge,
1097
+ getStayDetails: ke,
1076
1098
  getTicketColor: ze,
1077
1099
  getTicketIcon: Ke,
1078
1100
  getTickets: Y,
1079
- handleFailedResponse: ke,
1101
+ handleFailedResponse: Ee,
1080
1102
  handlePulse: Xe,
1081
1103
  onClickEditConnectGuest: Ze,
1082
1104
  onClickTicket: et,
1083
1105
  onCreateRequestSubmit: tt,
1084
1106
  onHoverToggle: at,
1085
- onSelectQuickReply: ot,
1086
- onSelectToDo: st,
1107
+ onSelectQuickReply: st,
1108
+ onSelectToDo: ot,
1087
1109
  openRequest: nt,
1088
1110
  refreshPMSData: Ve,
1089
- resizeTextarea: Ee,
1111
+ resizeTextarea: Se,
1090
1112
  scrollToConnectBottom: V,
1091
1113
  sendChatMessage: rt,
1092
- setAlignment: ge,
1093
- setPositioning: _e,
1114
+ setAlignment: _e,
1115
+ setPositioning: we,
1094
1116
  toggleMarkOpenClose: lt,
1095
- toggleQuickReply: Se,
1117
+ toggleQuickReply: Ae,
1096
1118
  updateTickets: dt,
1097
1119
  // Simulate Guest Reply methods (test environments only)
1098
1120
  simulateGuestReply: it,