@kenyaemr/esm-appointments-app 8.1.2-pre.154 → 8.1.2-pre.163

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 (120) hide show
  1. package/.turbo/turbo-build.log +26 -27
  2. package/dist/{460.js → 132.js} +1 -1
  3. package/dist/144.js +2 -0
  4. package/dist/144.js.LICENSE.txt +19 -0
  5. package/dist/144.js.map +1 -0
  6. package/dist/{261.js → 146.js} +1 -1
  7. package/dist/167.js +1 -0
  8. package/dist/167.js.map +1 -0
  9. package/dist/{228.js → 173.js} +1 -1
  10. package/dist/{788.js → 197.js} +1 -1
  11. package/dist/214.js +1 -0
  12. package/dist/214.js.map +1 -0
  13. package/dist/216.js +2 -0
  14. package/dist/{372.js.LICENSE.txt → 216.js.LICENSE.txt} +2 -2
  15. package/dist/216.js.map +1 -0
  16. package/dist/{272.js → 241.js} +1 -1
  17. package/dist/{240.js → 294.js} +1 -1
  18. package/dist/300.js +1 -0
  19. package/dist/323.js +1 -0
  20. package/dist/323.js.map +1 -0
  21. package/dist/{807.js → 335.js} +1 -1
  22. package/dist/41.js +2 -0
  23. package/dist/41.js.map +1 -0
  24. package/dist/442.js +1 -0
  25. package/dist/449.js +1 -0
  26. package/dist/449.js.map +1 -0
  27. package/dist/457.js +2 -0
  28. package/dist/{123.js.LICENSE.txt → 457.js.LICENSE.txt} +11 -24
  29. package/dist/457.js.map +1 -0
  30. package/dist/{566.js → 468.js} +1 -1
  31. package/dist/495.js +1 -0
  32. package/dist/495.js.map +1 -0
  33. package/dist/538.js +1 -0
  34. package/dist/55.js +1 -0
  35. package/dist/618.js +1 -0
  36. package/dist/651.js +1 -0
  37. package/dist/651.js.map +1 -0
  38. package/dist/652.js +1 -1
  39. package/dist/{271.js → 661.js} +1 -1
  40. package/dist/{378.js → 679.js} +1 -1
  41. package/dist/690.js +1 -0
  42. package/dist/712.js +1 -0
  43. package/dist/{529.js.map → 712.js.map} +1 -1
  44. package/dist/{539.js → 723.js} +1 -1
  45. package/dist/745.js +1 -0
  46. package/dist/745.js.map +1 -0
  47. package/dist/753.js +2 -0
  48. package/dist/753.js.LICENSE.txt +3 -0
  49. package/dist/753.js.map +1 -0
  50. package/dist/830.js +1 -0
  51. package/dist/830.js.map +1 -0
  52. package/dist/831.js +2 -0
  53. package/dist/831.js.map +1 -0
  54. package/dist/833.js +1 -1
  55. package/dist/84.js +1 -0
  56. package/dist/84.js.map +1 -0
  57. package/dist/840.js +1 -0
  58. package/dist/859.js +1 -0
  59. package/dist/876.js +1 -0
  60. package/dist/876.js.map +1 -0
  61. package/dist/{644.js → 879.js} +1 -1
  62. package/dist/900.js +1 -0
  63. package/dist/913.js +2 -0
  64. package/dist/{591.js.LICENSE.txt → 913.js.LICENSE.txt} +3 -3
  65. package/dist/913.js.map +1 -0
  66. package/dist/944.js +1 -0
  67. package/dist/99.js +1 -0
  68. package/dist/kenyaemr-esm-appointments-app.js +1 -1
  69. package/dist/kenyaemr-esm-appointments-app.js.buildmanifest.json +313 -286
  70. package/dist/kenyaemr-esm-appointments-app.js.map +1 -1
  71. package/dist/main.js +1 -1
  72. package/dist/main.js.LICENSE.txt +7 -2
  73. package/dist/main.js.map +1 -1
  74. package/dist/routes.json +1 -1
  75. package/package.json +1 -1
  76. package/dist/111.js +0 -2
  77. package/dist/111.js.LICENSE.txt +0 -15
  78. package/dist/111.js.map +0 -1
  79. package/dist/123.js +0 -2
  80. package/dist/123.js.map +0 -1
  81. package/dist/130.js +0 -2
  82. package/dist/130.js.map +0 -1
  83. package/dist/139.js +0 -1
  84. package/dist/139.js.map +0 -1
  85. package/dist/171.js +0 -1
  86. package/dist/171.js.map +0 -1
  87. package/dist/2.js +0 -1
  88. package/dist/2.js.map +0 -1
  89. package/dist/236.js +0 -1
  90. package/dist/269.js +0 -1
  91. package/dist/269.js.map +0 -1
  92. package/dist/319.js +0 -1
  93. package/dist/325.js +0 -1
  94. package/dist/325.js.map +0 -1
  95. package/dist/336.js +0 -1
  96. package/dist/372.js +0 -2
  97. package/dist/372.js.map +0 -1
  98. package/dist/443.js +0 -1
  99. package/dist/443.js.map +0 -1
  100. package/dist/529.js +0 -1
  101. package/dist/574.js +0 -1
  102. package/dist/581.js +0 -1
  103. package/dist/581.js.map +0 -1
  104. package/dist/591.js +0 -2
  105. package/dist/591.js.map +0 -1
  106. package/dist/673.js +0 -1
  107. package/dist/705.js +0 -1
  108. package/dist/711.js +0 -1
  109. package/dist/711.js.map +0 -1
  110. package/dist/727.js +0 -1
  111. package/dist/737.js +0 -1
  112. package/dist/744.js +0 -1
  113. package/dist/757.js +0 -1
  114. package/dist/784.js +0 -2
  115. package/dist/784.js.map +0 -1
  116. package/dist/899.js +0 -1
  117. package/dist/923.js +0 -1
  118. package/dist/923.js.map +0 -1
  119. /package/dist/{784.js.LICENSE.txt → 41.js.LICENSE.txt} +0 -0
  120. /package/dist/{130.js.LICENSE.txt → 831.js.LICENSE.txt} +0 -0
package/dist/833.js CHANGED
@@ -1 +1 @@
1
- "use strict";(globalThis.webpackChunk_kenyaemr_esm_appointments_app=globalThis.webpackChunk_kenyaemr_esm_appointments_app||[]).push([[833],{5833:e=>{e.exports=JSON.parse('{"action":"פעולה","actions":"פעולות","add":"הוספה","age":"גיל","allDay":"כל היום","appointmentCancelError":"שגיאה בביטול התור","appointmentCancelled":"התור בוטל","appointmentCancelledSuccessfully":"התור בוטל בהצלחה","appointmentCheckedIn":"Appointment Checked In","appointmentColor":"צבע התור","appointmentConflict":"סתירת תורים","appointmentEdited":"התור נערך","appointmentEditError":"שגיאה בעריכת תור","appointmentEnded":"התור הסתיים","appointmentEndedAndVisitClosedSuccessfully":"התור הסתיים והביקור נסגר בהצלחה","appointmentEndedButVisitNotClosedError":"התור הסתיים אבל אירעה שגיאה בסגירת הביקור","appointmentEndedSuccessfully":"התור הסתיים בהצלחה.","appointmentEndError":"שגיאה בסיום תור","appointmentFormError":"שגיאה בתזמון התור","appointmentHistory":"היסטוריית התורים","appointmentMarkedChecked":"Appointment marked as Checked In","appointmentMetrics":"מדדי התורים","appointmentMetricsLoadError":"","appointmentNoteLabel":"הצגת הערה נוספ","appointmentNotePlaceholder":"כאן ניתן לכתוב נקודות נוספות","appointmentNotes":"הערות לתור","appointmentNowVisible":"התור מופיע כעת בעמוד התורים","appointments":"תורים","Appointments":"תורים","appointments_lower":"תורים","appointmentsCalendar":"לוח תורים","appointmentScheduled":"התור נקבע","appointmentService":"שירות התורים","appointmentServiceCreate":"שירות התורים נוצר בהצלחה","appointmentServiceName":"שם שירות התורים","appointmentsScheduledForToday":"תורים שתוזמנו להיום","appointmentsTable":"טבלת תורים","appointmentStatus":"מצב התור","appointmentToFulfill":"נא לבחור תור למילוי","appointmentType":"סוג התור","appointmentType_title":"סוג התור","back":"חזרה","calendar":"לוח שנה","cameEarly":"הקדמה","cancel":"ביטול","cancelAppointment":"ביטול תור","cancelAppointmentModalConfirmationText":"לבטל את התור הזה?","cancelled":"בוטל","checkedIn":"נרשם","checkedOut":"נסגר","checkFilters":"נא לסמן את המסננים לעיל","checkIn":"הרשמה","checkOut":"סגירה","chooseAppointmentType":"בחירת סוג תור","chooseLocation":"נא לבחור מקום","chooseProvider":"נא לבחור ספק","chooseService":"בחירת שירות","completed":"הושלם","Contact":"יצירת קשר עם {{index}}","countMore_one":"עוד {{count}}","countMore_other":"עוד {{count}}","createAppointmentService":"יצירת שירותי תורים","createNewAppointment":"יצירת תור חדש","date":"תאריך","date&Time":"תאריך ושעה","dateAppointmentIssuedCannotBeAfterAppointmentDate":"תאריך התור שהונפק לא יכול להיות אחרי תאריך התור","dateOfBirth":"תאריך לידה","dateScheduled":"הונפק תאריך לתור","dateScheduledDetail":"הונפק תאריך לתור","dateTime":"תאריך ושעה","day":"יום","daysOfWeek":"ימי השבוע","discard":"סגירה מבלי לשמור","download":"הורדה","durationErrorMessage":"המשך צריך להיות גדול מאפס","durationInMinutes":"משך (דקות)","durationMins":"משך בדקות","edit":"עריכה","editAppointment":"עריכת תור","editAppointments":"עריכת תור","emptyStateText":"אין <1>{{displayText}}</1> להצגה","encounters":"פגישות","encounterType":"סוג הפגישה","endAppointmentAndVisitConfirmationMessage":"Checking the patient out will mark the appointment as complete, and close out the active visit for this patient.","endAppointmentConfirmation":"Are you sure you want to check the patient out for this appointment?","endAppointmentConfirmationMessage":"Checking the patient out will mark the appointment as complete.","endDate":"תאריך סיום","endTime":"שעת סיום","errorCreatingAppointmentService":"שגיאה ביצירת שירות התור","expected":"צפוי","filterTable":"סינון הטבלה","gender":"מגדר","highestServiceVolume":"השירות הכי עמוס: {{time}}","identifier":"מזהה","invalidNumber":"המספר שגוי","isRecurringAppointment":"זה תור חוזר?","itemsPerPage":"פריטים בעמוד","loading":"בטעינה","location":"מקום","medications":"תרופות","missed":"הוחמץ","next":"הבא","nextMonth":"חודש הבא","nextPage":"העמוד הבא","no":"לא","noAppointmentsToDisplay":"אין תורים להצגה","noContent":"אין תוכן","noCurrentAppointments":"אין תורים מתוזמנים להצגה עבור מטופל זה ליום הזה","noEncountersFound":"לא נמצאו פגישות","noPastAppointments":"אין תורי עבר להצגה עבור מטופל/ת אלה","noPreviousVisitFound":"לא נמצא ביקור קודם","notArrived":"לא הגיע/ה","note":"הערה","notes":"הערות","noUpcomingAppointments":"לא נמצאו תורים עתידיים","noUpcomingAppointmentsForPatient":"לא נמצאו תורים עתידיים למטפל/ת האלה","pageNumber":"מספר עמוד","past":"עבר","patientDetails":"פרטי המטופל","patientDoubleBooking":"למטופל/ת כבר הוזמן תור במועד הזה","patientName":"שם המטופל","patients":"מטופלים","period":"תקופה","prev":"הקודם","previousMonth":"החודש הקודם","previousPage":"העמוד הקודם","provider":"ספק","providers":"ספקים","providersBooked":"ספקים שהוזמנו: {{time}}","recurringAppointment":"תור חוזר","recurringAppointmentShouldHaveEndDate":"לתור חוזר צריך להיות תאריך סיום","repeatEvery":"חוזר כל","save":"שמירה","saveAndClose":"שמירה וסגירה","scheduled":"מתוזמן","scheduledAppointments":"תורים מתוזמנים","scheduledForToday":"מתוזמן להיום","selectALocation":"בחירת מקום","selectAppointmentStatus":"בחירת מצב","selectAppointmentType":"בחירת סוג תור","selectLocation":"בחירת מקום","selectOption":"בחירת אפשרות","selectProvider":"בחירת ספק","selectService":"בחירת שירות","selectServiceType":"בחירת סוג שירות","service":"שירות","serviceName":"שם השירות","serviceType":"סוג השירות","serviceUnavailable":"זמן התור הוא מחוץ לשעות השירות","startDate":"תאריך התחלה","startTime":"שעת התחלה","status":"מצב","time":"זמן","today":"היום","todays":"להיום","type":"סוג","unscheduled":"לא מתוזמן","unscheduledAppointments":"תורים שאינם מתוזמנים","unscheduledAppointments_lower":"תורים שאינם מתוזמנים","upcoming":"בקרוב","upcomingAppointments":"תורים עתידיים","updateError":"Error updating upcoming appointment","view":"הצגה","vitals":"מדדים","week":"Week","yes":"כן"}')}}]);
1
+ "use strict";(globalThis.webpackChunk_kenyaemr_esm_appointments_app=globalThis.webpackChunk_kenyaemr_esm_appointments_app||[]).push([[833],{9214:n=>{n.exports=JSON.parse('{"action":"Hành động","actions":"Hành động","add":"Thêm","age":"Tuổi","allDay":"Tất cả các ngày","appointmentCancelError":"Lỗi khi hủy cuộc hẹn","appointmentCancelled":"Cuộc hẹn dã hủy","appointmentCancelledSuccessfully":"Hủy cuộc hẹn thành công","appointmentCheckedIn":"Appointment Checked In","appointmentColor":"Màu cuộc hẹn","appointmentConflict":"Xung đột cuộc hẹn","appointmentEdited":"Cuộc hẹn đã được chỉnh sửa","appointmentEditError":"Lỗi khi chỉnh sửa cuộc hẹn","appointmentEnded":"Cuộc hẹn Đã kết thúc","appointmentEndedAndVisitClosedSuccessfully":"Appointment successfully ended and visit successfully closed","appointmentEndedButVisitNotClosedError":"Cuộc hẹn đã kết thúc, nhưng lỗi đóng lượt khám","appointmentEndedSuccessfully":"Cuộc hẹn đã kết thúc thành công.","appointmentEndError":"Lỗi khi kết thúc cuộc hẹn","appointmentFormError":"Lỗi khi lên lịch hẹn","appointmentHistory":"Lịch sử cuộc hẹn","appointmentMarkedChecked":"Appointment marked as Checked In","appointmentMetrics":"Số liệu cuộc hẹn","appointmentMetricsLoadError":"","appointmentNoteLabel":"Viết thêm một ghi chú","appointmentNotePlaceholder":"Viết thêm bất kỳ điểm nào ở đây","appointmentNotes":"Ghi chú cuộc hẹn","appointmentNowVisible":"Bây giờ thể nhìn thấy trên trang Cuộc hẹn","appointments":"Cuộc hẹn","Appointments":"Cuộc hẹn","appointments_lower":"cuộc hẹn","appointmentsCalendar":"Lịch hẹn","appointmentScheduled":"Đã lên lịch hẹn","appointmentService":"Dịch vụ cuộc hẹn","appointmentServiceCreate":"Dịch vụ hẹn đã được tạo thành công","appointmentServiceName":"Tên dịch vụ hẹn gặp","appointmentsScheduledForToday":"cuộc hẹn đã lên lịch cho hôm nay","appointmentsTable":"Bàn hẹn","appointmentStatus":"Trạng thái cuộc hẹn","appointmentToFulfill":"Chọn cuộc hẹn để thực hiện","appointmentType":"Loại cuộc hẹn","appointmentType_title":"Loại cuộc hẹn","back":"Quay lại","calendar":"Lịch","cameEarly":"Đến sớm","cancel":"Hủy","cancelAppointment":"Hủy cuộc hẹn","cancelAppointmentModalConfirmationText":"Bạn chắc chắn muốn hủy cuộc hẹn này không?","cancelled":"Đã hủy","checkedIn":"Đã kiểm tra","checkedOut":"Đã trả phòng","checkFilters":"Kiểm tra các bộ lọc ở trên","checkIn":"Đăng ký vào","checkOut":"Đăng ký ra","chooseAppointmentType":"Chọn loại cuộc hẹn","chooseLocation":"Chọn một vị trí","chooseProvider":"Chọn một nhà cung cấp","chooseService":"Chọn dịch vụ","completed":"Hoàn thành","Contact":"Liên hệ {{index}}","countMore_one":"{{count}} nữa","countMore_other":"{{count}} nữa","createAppointmentService":"Tạo dịch vụ cuộc hẹn","createNewAppointment":"Tạo cuộc hẹn mới","date":"Ngày","date&Time":"Ngày & giờ","dateAppointmentIssuedCannotBeAfterAppointmentDate":"Ngày cấp giấy hẹn không được sau ngày hẹn","dateOfBirth":"Ngày sinh","dateScheduled":"Ngày ban hành cuộc hẹn","dateScheduledDetail":"Ngày ban hành cuộc hẹn","dateTime":"Ngày & giờ","day":"Ngày","daysOfWeek":"Các ngày trong tuần","discard":"bỏ đi","download":"Tải xuống","durationErrorMessage":"Thời lượng phải lớn hơn 0","durationInMinutes":"Thời lượng (phút)","durationMins":"Thời gian tối thiểu","edit":"Chỉnh sửa","editAppointment":"Sửa cuộc hẹn","editAppointments":"Sửa cuộc hẹn","emptyStateText":"Không 1{{displayText}}1 để hiển thị","encounters":"Cuộc gặp","encounterType":"Loại cuộc gặp","endAppointmentAndVisitConfirmationMessage":"Việc kiểm tra bệnh nhân sẽ đánh dấu cuộc hẹn đã hoàn tất kết thúc chuyến thăm khám đang diễn ra của bệnh nhân này.","endAppointmentConfirmation":"Bạn chắc chắn muốn cho bệnh nhân ra ngoài cuộc hẹn này không?","endAppointmentConfirmationMessage":"Việc trả phòng cho bệnh nhân sẽ đánh dấu cuộc hẹn đã hoàn tất.","endDate":"Ngày kết thúc","endTime":"Thời gian kết thúc","errorCreatingAppointmentService":"Lỗi khi tạo dịch vụ hẹn gặp","expected":"Kỳ vọng","filterTable":"Bảng lọc","gender":"Giới tính","highestServiceVolume":"Dịch vụ khối lượng cao nhất: {{hour}}","identifier":"Mã định danh","invalidNumber":"Số không hợp lệ","isRecurringAppointment":"Đây phải là cuộc hẹn định kỳ không?","itemsPerPage":"Số mục trên mỗi trang","loading":"Đang tải","location":"Vị trí","medications":"Thuốc men","missed":"Bỏ lỡ","next":"Kế tiếp","nextMonth":"Tháng tới","nextPage":"Trang tiếp theo","no":"Số","noAppointmentsToDisplay":"Không cuộc hẹn nào để hiển thị","noContent":"Không có nội dung","noCurrentAppointments":"Không cuộc hẹn nào được lên lịch cho hôm nay để hiển thị cho bệnh nhân này","noEncountersFound":"Không tìm thấy cuộc gặp gỡ nào","noPastAppointments":"Không cuộc hẹn nào trước đây để hiển thị cho bệnh nhân này","noPreviousVisitFound":"Không tìm thấy lần ghé thăm trước","notArrived":"Không đến","note":"Ghi chú","notes":"Ghi chú","noUpcomingAppointments":"Không tìm thấy cuộc hẹn sắp tới","noUpcomingAppointmentsForPatient":"Không cuộc hẹn sắp tới nào để hiển thị cho bệnh nhân này","pageNumber":"Số trang","past":"Quá khứ","patientDetails":"Chi tiết bệnh nhân","patientDoubleBooking":"Bệnh nhân đã đặt lịch hẹn vào thời điểm này","patientName":"Tên bệnh nhân","patients":"Bệnh nhân","period":"Giai đoan","prev":"Trước đó","previousMonth":"Tháng trước","previousPage":"Trang trước","provider":"Nhà cung cấp","providers":"Nhà cung cấp","providersBooked":"Nhà cung cấp đã đặt: {{time}}","recurringAppointment":"Cuộc hẹn định kỳ","recurringAppointmentShouldHaveEndDate":"Một cuộc hẹn định kỳ phải có ngày kết thúc","repeatEvery":"Lặp lại mỗi","save":"Lưu","saveAndClose":"Lưu và đóng","scheduled":"Đã lên lịch","scheduledAppointments":"Cuộc hẹn đã lên lịch","scheduledForToday":"Đã lên lịch cho hôm nay","selectALocation":"Lựa chọn vị trí","selectAppointmentStatus":"Chọn trạng thái","selectAppointmentType":"Chọn một loại cuộc hẹn","selectLocation":"Lựa chọn vị trí","selectOption":"Chọn một tùy chọn","selectProvider":"Chọn một nhà cung cấp","selectService":"Chọn một dịch vụ","selectServiceType":"Chọn loại dịch vụ","service":"Dịch vụ","serviceName":"Tên dịch vụ","serviceType":"Loại dịch vụ","serviceUnavailable":"Thời gian hẹn ngoài giờ làm việc","startDate":"Ngày bắt đầu","startTime":"Ngày kết thúc","status":"Trạng thái","time":"Thời gian","today":"Hôm nay","todays":"Hôm nay","type":"Loại","unscheduled":"Không theo lịch trình","unscheduledAppointments":"Cuộc hẹn không theo lịch trình","unscheduledAppointments_lower":"cuộc hẹn không theo lịch trình","upcoming":"Sắp tới","upcomingAppointments":"Cuộc hẹn sắp tới","updateError":"Error updating upcoming appointment","view":"Xem","vitals":"Các yếu tố quan trọng","week":"Tuần","yes":""}')}}]);
package/dist/84.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(globalThis.webpackChunk_kenyaemr_esm_appointments_app=globalThis.webpackChunk_kenyaemr_esm_appointments_app||[]).push([[84],{3084:(e,a,n)=>{n.r(a),n.d(a,{default:()=>s});var t=n(1343),p=n.n(t),i=n(7829);const s=function(e){var a=e.patientUuid;return p().createElement(i.A,{patientUuid:a})}}}]);
package/dist/84.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"84.js","mappings":"yNAcA,QAJ8F,Y,IAAGA,EAAAA,EAAAA,YAC/F,OAAO,kBAACC,EAAAA,EAAuBA,CAACD,YAAaA,GAC/C,C","sources":["webpack://@kenyaemr/esm-appointments-app/./src/patient-appointments/patient-appointments-detailed-summary.component.tsx"],"names":["patientUuid","PatientAppointmentsBase"],"sourceRoot":""}
package/dist/840.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(globalThis.webpackChunk_kenyaemr_esm_appointments_app=globalThis.webpackChunk_kenyaemr_esm_appointments_app||[]).push([[840],{6840:e=>{e.exports=JSON.parse('{"action":"Action","actions":"Actions","add":"Add","age":"Age","allDay":"All day","appointmentCancelError":"Error cancelling appointment","appointmentCancelled":"Appointment Cancelled","appointmentCancelledSuccessfully":"Appointment cancelled successfully","appointmentCheckedIn":"Appointment Checked In","appointmentColor":"Appointment color","appointmentConflict":"Appointment conflict","appointmentEdited":"Appointment edited","appointmentEditError":"Error editing appointment","appointmentEnded":"Appointment ended","appointmentEndedAndVisitClosedSuccessfully":"Appointment successfully ended and visit successfully closed","appointmentEndedButVisitNotClosedError":"Appointment ended, but error closing visit","appointmentEndedSuccessfully":"Appointment successfully ended.","appointmentEndError":"Error ending appointment","appointmentFormError":"Error scheduling appointment","appointmentHistory":"Appointment History","appointmentMarkedChecked":"Appointment marked as Checked In","appointmentMetrics":"Appointment metrics","appointmentMetricsLoadError":"","appointmentNoteLabel":"Write an additional note","appointmentNotePlaceholder":"Write any additional points here","appointmentNotes":"Appointment Notes","appointmentNowVisible":"It is now visible on the Appointments page","appointments":"Appointments","Appointments":"Appointments","appointments_lower":"appointments","appointmentsCalendar":"Appointments calendar","appointmentScheduled":"Appointment scheduled","appointmentService":"Appointment service","appointmentServiceCreate":"Appointment service created successfully","appointmentServiceName":"Appointment service name","appointmentsScheduledForToday":"appointments scheduled for today","appointmentsTable":"Appointments table","appointmentStatus":"Appointment status","appointmentToFulfill":"Select appointment to fulfill","appointmentType":"Appointment type","appointmentType_title":"Appointment Type","back":"Back","calendar":"Calendar","cameEarly":"Came Early","cancel":"Cancel","cancelAppointment":"Cancel Appointment","cancelAppointmentModalConfirmationText":"Are you sure you want to cancel this appointment?","cancelled":"Cancelled","checkedIn":"Checked in","checkedOut":"Checked out","checkFilters":"Check the filters above","checkIn":"Check In","checkOut":"Check out","chooseAppointmentType":"Choose appointment type","chooseLocation":"Choose a location","chooseProvider":"Choose a provider","chooseService":"Select service","completed":"Completed","Contact":"Contact {{index}}","countMore_one":"{{count}} more","countMore_other":"{{count}} more","createAppointmentService":"Create appointment services","createNewAppointment":"Create new appointment","date":"Date","date&Time":"Date & time","dateAppointmentIssuedCannotBeAfterAppointmentDate":"Date appointment issued cannot be after the appointment date","dateOfBirth":"Date of birth","dateScheduled":"Date appointment issued","dateScheduledDetail":"Date appointment issued","dateTime":"Date & Time","day":"Day","daysOfWeek":"Days of the week","discard":"Discard","download":"Download","durationErrorMessage":"Duration should be greater than zero","durationInMinutes":"Duration (minutes)","durationMins":"Duration min","edit":"Edit","editAppointment":"Edit Appointment","editAppointments":"Edit Appointment","emptyStateText":"There are no <1>{{displayText}}</1> to display","encounters":"Encounters","encounterType":"Encounter type","endAppointmentAndVisitConfirmationMessage":"Checking the patient out will mark the appointment as complete, and close out the active visit for this patient.","endAppointmentConfirmation":"Are you sure you want to check the patient out for this appointment?","endAppointmentConfirmationMessage":"Checking the patient out will mark the appointment as complete.","endDate":"End date","endTime":"End Time","errorCreatingAppointmentService":"Error creating appointment service","expected":"Expected","filterTable":"Filter table","gender":"Gender","highestServiceVolume":"Highest volume service: {{time}}","identifier":"Identifier","invalidNumber":"Number is not valid","isRecurringAppointment":"Is this a recurring appointment?","itemsPerPage":"Items per page","loading":"Loading","location":"Location","medications":"Medications","missed":"Missed","next":"Next","nextMonth":"Next month","nextPage":"Next page","no":"No","noAppointmentsToDisplay":"No appointments to display","noContent":"No Content","noCurrentAppointments":"There are no appointments scheduled for today to display for this patient","noEncountersFound":"No encounters found","noPastAppointments":"There are no past appointments to display for this patient","noPreviousVisitFound":"No previous visit found","notArrived":"Not arrived","note":"Note","notes":"Notes","noUpcomingAppointments":"No upcoming appointments found","noUpcomingAppointmentsForPatient":"There are no upcoming appointments to display for this patient","pageNumber":"Page number","past":"Past","patientDetails":"Patient Details","patientDoubleBooking":"Patient already booked for an appointment at this time","patientName":"Patient name","patients":"Patients","period":"Period","prev":"Prev","previousMonth":"Previous month","previousPage":"Previous page","provider":"Provider","providers":"Providers","providersBooked":"Providers booked: {{time}}","recurringAppointment":"Recurring Appointment","recurringAppointmentShouldHaveEndDate":"A recurring appointment should have an end date","repeatEvery":"Repeat every","save":"Save","saveAndClose":"Save and close","scheduled":"Scheduled","scheduledAppointments":"Scheduled appointments","scheduledForToday":"Scheduled For Today","selectALocation":"Select a location","selectAppointmentStatus":"Select status","selectAppointmentType":"Select an appointment type","selectLocation":"Select location","selectOption":"Select an option","selectProvider":"Select a provider","selectService":"Select a service","selectServiceType":"Select service type","service":"Service","serviceName":"Service name","serviceType":"Service Type","serviceUnavailable":"Appointment time is outside of service hours","startDate":"Start date","startTime":"Start Time","status":"Status","time":"Time","today":"Today","todays":"Today\'s","type":"Type","unscheduled":"Unscheduled","unscheduledAppointments":"Unscheduled appointments","unscheduledAppointments_lower":"unscheduled appointments","upcoming":"Upcoming","upcomingAppointments":"Upcoming appointments","updateError":"Error updating upcoming appointment","view":"View","vitals":"Vitals","week":"Week","yes":"Yes"}')}}]);
package/dist/859.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(globalThis.webpackChunk_kenyaemr_esm_appointments_app=globalThis.webpackChunk_kenyaemr_esm_appointments_app||[]).push([[859],{6859:e=>{e.exports=JSON.parse('{"action":"Action","actions":"Actions","add":"Add","age":"Age","allDay":"All day","appointmentCancelError":"Error cancelling appointment","appointmentCancelled":"Appointment Cancelled","appointmentCancelledSuccessfully":"Appointment cancelled successfully","appointmentCheckedIn":"Appointment Checked In","appointmentColor":"Appointment color","appointmentConflict":"Appointment conflict","appointmentEdited":"Appointment edited","appointmentEditError":"Error editing appointment","appointmentEnded":"Appointment ended","appointmentEndedAndVisitClosedSuccessfully":"Appointment successfully ended and visit successfully closed","appointmentEndedButVisitNotClosedError":"Appointment ended, but error closing visit","appointmentEndedSuccessfully":"Appointment successfully ended.","appointmentEndError":"Error ending appointment","appointmentFormError":"Error scheduling appointment","appointmentHistory":"Appointment History","appointmentMarkedChecked":"Appointment marked as Checked In","appointmentMetrics":"Appointment metrics","appointmentMetricsLoadError":"","appointmentNoteLabel":"Write an additional note","appointmentNotePlaceholder":"Write any additional points here","appointmentNotes":"Appointment Notes","appointmentNowVisible":"It is now visible on the Appointments page","appointments":"Appointments","Appointments":"Appointments","appointments_lower":"appointments","appointmentsCalendar":"Appointments calendar","appointmentScheduled":"Appointment scheduled","appointmentService":"Appointment service","appointmentServiceCreate":"Appointment service created successfully","appointmentServiceName":"Appointment service name","appointmentsScheduledForToday":"appointments scheduled for today","appointmentsTable":"Appointments table","appointmentStatus":"Appointment status","appointmentToFulfill":"Select appointment to fulfill","appointmentType":"Appointment type","appointmentType_title":"Appointment Type","back":"Back","calendar":"Calendar","cameEarly":"Came Early","cancel":"Cancel","cancelAppointment":"Cancel Appointment","cancelAppointmentModalConfirmationText":"Are you sure you want to cancel this appointment?","cancelled":"Cancelled","checkedIn":"Checked in","checkedOut":"Checked out","checkFilters":"Check the filters above","checkIn":"Check In","checkOut":"Check out","chooseAppointmentType":"Choose appointment type","chooseLocation":"Choose a location","chooseProvider":"Choose a provider","chooseService":"Select service","completed":"Completed","Contact":"Contact {{index}}","countMore_one":"{{count}} more","countMore_other":"{{count}} more","createAppointmentService":"Create appointment services","createNewAppointment":"Create new appointment","date":"Date","date&Time":"Date & time","dateAppointmentIssuedCannotBeAfterAppointmentDate":"Date appointment issued cannot be after the appointment date","dateOfBirth":"Date of birth","dateScheduled":"Date appointment issued","dateScheduledDetail":"Date appointment issued","dateTime":"Date & Time","day":"Day","daysOfWeek":"Days of the week","discard":"Discard","download":"Download","durationErrorMessage":"Duration should be greater than zero","durationInMinutes":"Duration (minutes)","durationMins":"Duration min","edit":"Edit","editAppointment":"Edit Appointment","editAppointments":"Edit Appointment","emptyStateText":"There are no <1>{{displayText}}</1> to display","encounters":"Encounters","encounterType":"Encounter type","endAppointmentAndVisitConfirmationMessage":"Checking the patient out will mark the appointment as complete, and close out the active visit for this patient.","endAppointmentConfirmation":"Are you sure you want to check the patient out for this appointment?","endAppointmentConfirmationMessage":"Checking the patient out will mark the appointment as complete.","endDate":"End date","endTime":"End Time","errorCreatingAppointmentService":"Error creating appointment service","expected":"Expected","filterTable":"Filter table","gender":"Gender","highestServiceVolume":"Highest volume service: {{time}}","identifier":"Identifier","invalidNumber":"Number is not valid","isRecurringAppointment":"Is this a recurring appointment?","itemsPerPage":"Items per page","loading":"Loading","location":"Location","medications":"Medications","missed":"Missed","next":"Next","nextMonth":"Next month","nextPage":"Next page","no":"No","noAppointmentsToDisplay":"No appointments to display","noContent":"No Content","noCurrentAppointments":"There are no appointments scheduled for today to display for this patient","noEncountersFound":"No encounters found","noPastAppointments":"There are no past appointments to display for this patient","noPreviousVisitFound":"No previous visit found","notArrived":"Not arrived","note":"Note","notes":"Notes","noUpcomingAppointments":"No upcoming appointments found","noUpcomingAppointmentsForPatient":"There are no upcoming appointments to display for this patient","pageNumber":"Page number","past":"Past","patientDetails":"Patient Details","patientDoubleBooking":"Patient already booked for an appointment at this time","patientName":"Patient name","patients":"Patients","period":"Period","prev":"Prev","previousMonth":"Previous month","previousPage":"Previous page","provider":"Provider","providers":"Providers","providersBooked":"Providers booked: {{time}}","recurringAppointment":"Recurring Appointment","recurringAppointmentShouldHaveEndDate":"A recurring appointment should have an end date","repeatEvery":"Repeat every","save":"Save","saveAndClose":"Save and close","scheduled":"Scheduled","scheduledAppointments":"Scheduled appointments","scheduledForToday":"Scheduled For Today","selectALocation":"Select a location","selectAppointmentStatus":"Select status","selectAppointmentType":"Select an appointment type","selectLocation":"Select location","selectOption":"Select an option","selectProvider":"Select a provider","selectService":"Select a service","selectServiceType":"Select service type","service":"Service","serviceName":"Service name","serviceType":"Service Type","serviceUnavailable":"Appointment time is outside of service hours","startDate":"Start date","startTime":"Start Time","status":"Status","time":"Time","today":"Today","todays":"Today\'s","type":"Type","unscheduled":"Unscheduled","unscheduledAppointments":"Unscheduled appointments","unscheduledAppointments_lower":"unscheduled appointments","upcoming":"Upcoming","upcomingAppointments":"Upcoming appointments","updateError":"Error updating upcoming appointment","view":"View","vitals":"Vitals","week":"Week","yes":"Yes"}')}}]);
package/dist/876.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(globalThis.webpackChunk_kenyaemr_esm_appointments_app=globalThis.webpackChunk_kenyaemr_esm_appointments_app||[]).push([[495,876],{9876:(e,a,t)=>{t.r(a),t.d(a,{default:()=>l,immutable:()=>s});var n=t(5216),p=t(2372);const s=e=>(a,t,n)=>(n.revalidateOnFocus=!1,n.revalidateIfStale=!1,n.revalidateOnReconnect=!1,e(a,t,n)),l=(0,p.Ht)(n.Ay,s)}}]);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"876.js","mappings":"qOAGA,MAAMA,EAAaC,GAAa,CAACC,EAAKC,EAASC,KAEvCA,EAAOC,mBAAoB,EAC3BD,EAAOE,mBAAoB,EAC3BF,EAAOG,uBAAwB,EACxBN,EAAWC,EAAKC,EAASC,IAElCI,GAAkB,QAAe,KAAQR,E","sources":["webpack://@kenyaemr/esm-appointments-app/../../node_modules/swr/dist/immutable/index.mjs"],"names":["immutable","useSWRNext","key","fetcher","config","revalidateOnFocus","revalidateIfStale","revalidateOnReconnect","useSWRImmutable"],"sourceRoot":""}
@@ -1 +1 @@
1
- "use strict";(globalThis.webpackChunk_kenyaemr_esm_appointments_app=globalThis.webpackChunk_kenyaemr_esm_appointments_app||[]).push([[644],{1644:e=>{e.exports=JSON.parse('{"action":"操作","actions":"操作","add":"添加","age":"年龄","allDay":"全天","appointmentCancelError":"取消预约时出现错误","appointmentCancelled":"预约已取消","appointmentCancelledSuccessfully":"预约已成功取消","appointmentCheckedIn":"Appointment Checked In","appointmentColor":"预约颜色","appointmentConflict":"Appointment conflict","appointmentEdited":"预约已编辑","appointmentEditError":"编辑预约时出现错误","appointmentEnded":"Appointment ended","appointmentEndedAndVisitClosedSuccessfully":"Appointment successfully ended and visit successfully closed","appointmentEndedButVisitNotClosedError":"Appointment ended, but error closing visit","appointmentEndedSuccessfully":"Appointment successfully ended.","appointmentEndError":"Error ending appointment","appointmentFormError":"安排预约时出现错误","appointmentHistory":"预约历史","appointmentMarkedChecked":"Appointment marked as Checked In","appointmentMetrics":"预约指标","appointmentMetricsLoadError":"","appointmentNoteLabel":"输入附加备注","appointmentNotePlaceholder":"在这里输入任何额外的要点备注","appointmentNotes":"预约备注","appointmentNowVisible":"现在在预约页面上可见","appointments":"预约","Appointments":"预约","appointments_lower":"预约","appointmentsCalendar":"Appointments calendar","appointmentScheduled":"预约已安排","appointmentService":"预约服务","appointmentServiceCreate":"预约服务创建成功","appointmentServiceName":"预约服务名称","appointmentsScheduledForToday":"今日预约","appointmentsTable":"预约表","appointmentStatus":"预约状态","appointmentToFulfill":"选择要履行的预约","appointmentType":"预约类型","appointmentType_title":"预约类型","back":"返回","calendar":"日历","cameEarly":"提前到达","cancel":"取消","cancelAppointment":"取消预约","cancelAppointmentModalConfirmationText":"您确定要取消这个预约吗?","cancelled":"已取消","checkedIn":"已签到","checkedOut":"已结账","checkFilters":"检查上方的筛选条件","checkIn":"签到","checkOut":"结账","chooseAppointmentType":"选择预约类型","chooseLocation":"选择一个地点","chooseProvider":"选择一个提供者","chooseService":"选择服务","completed":"已完成","Contact":"Contact {{index}}","countMore_one":"{{count}} more","countMore_other":"{{count}} more","createAppointmentService":"创建预约服务","createNewAppointment":"创建新预约","date":"日期","date&Time":"日期&时间","dateAppointmentIssuedCannotBeAfterAppointmentDate":"Date appointment issued cannot be after the appointment date","dateOfBirth":"出生日期","dateScheduled":"Date appointment issued","dateScheduledDetail":"Date appointment issued","dateTime":"日期&时间","day":"天","daysOfWeek":"星期几","discard":"放弃","download":"下载","durationErrorMessage":"持续时间应大于零","durationInMinutes":"持续时间(分钟)","durationMins":"持续时间(分钟)","edit":"编辑","editAppointment":"编辑预约","editAppointments":"编辑预约","emptyStateText":"没有<1>{{displayText}}</1>可显示","encounters":"问诊","encounterType":"问诊类型","endAppointmentAndVisitConfirmationMessage":"Checking the patient out will mark the appointment as complete, and close out the active visit for this patient.","endAppointmentConfirmation":"Are you sure you want to check the patient out for this appointment?","endAppointmentConfirmationMessage":"Checking the patient out will mark the appointment as complete.","endDate":"结束日期","endTime":"结束时间","errorCreatingAppointmentService":"创建预约服务时出现错误","expected":"预期的","filterTable":"筛选表格","gender":"性别","highestServiceVolume":"最高量服务:{{time}}","identifier":"ID","invalidNumber":"数值无效","isRecurringAppointment":"这是一个定期预约吗?","itemsPerPage":"每页条目数","loading":"加载中","location":"地点","medications":"药物","missed":"未就诊","next":"Next","nextMonth":"Next month","nextPage":"下一页","no":"否","noAppointmentsToDisplay":"没有预约可显示","noContent":"没有内容","noCurrentAppointments":"该患者没有安排在今日的预约","noEncountersFound":"未找到问诊记录","noPastAppointments":"该患者没有历史预约","noPreviousVisitFound":"未找到先前的就诊","notArrived":"未到达","note":"备注","notes":"备注","noUpcomingAppointments":"未找到即将到来的预约","noUpcomingAppointmentsForPatient":"该患者没有即将到来的预约","pageNumber":"页码","past":"过往","patientDetails":"患者详情","patientDoubleBooking":"Patient already booked for an appointment at this time","patientName":"患者姓名","patients":"患者","period":"周期","prev":"Prev","previousMonth":"Previous month","previousPage":"上一页","provider":"提供者","providers":"提供者","providersBooked":"提供者预订:{{time}}","recurringAppointment":"定期预约","recurringAppointmentShouldHaveEndDate":"A recurring appointment should have an end date","repeatEvery":"重复每","save":"保存","saveAndClose":"保存并关闭","scheduled":"已安排","scheduledAppointments":"已安排的预约","scheduledForToday":"Scheduled For Today","selectALocation":"Select a location","selectAppointmentStatus":"选择状态","selectAppointmentType":"选择一个预约类型","selectLocation":"选择地点","selectOption":"选择一个选项","selectProvider":"选择一个提供者","selectService":"选择一个服务","selectServiceType":"选择服务类型","service":"服务","serviceName":"服务名称","serviceType":"服务类型","serviceUnavailable":"Appointment time is outside of service hours","startDate":"开始日期","startTime":"开始时间","status":"状态","time":"时间","today":"今日","todays":"今日","type":"Type","unscheduled":"未安排","unscheduledAppointments":"未安排的预约","unscheduledAppointments_lower":"未安排的预约","upcoming":"即将到来","upcomingAppointments":"即将到来的预约","updateError":"Error updating upcoming appointment","view":"查看","vitals":"生命体征","week":"周","yes":"是"}')}}]);
1
+ "use strict";(globalThis.webpackChunk_kenyaemr_esm_appointments_app=globalThis.webpackChunk_kenyaemr_esm_appointments_app||[]).push([[879],{9879:e=>{e.exports=JSON.parse('{"action":"操作","actions":"操作","add":"添加","age":"年龄","allDay":"全天","appointmentCancelError":"取消预约时出现错误","appointmentCancelled":"预约已取消","appointmentCancelledSuccessfully":"预约已成功取消","appointmentCheckedIn":"Appointment Checked In","appointmentColor":"预约颜色","appointmentConflict":"Appointment conflict","appointmentEdited":"预约已编辑","appointmentEditError":"编辑预约时出现错误","appointmentEnded":"Appointment ended","appointmentEndedAndVisitClosedSuccessfully":"Appointment successfully ended and visit successfully closed","appointmentEndedButVisitNotClosedError":"Appointment ended, but error closing visit","appointmentEndedSuccessfully":"Appointment successfully ended.","appointmentEndError":"Error ending appointment","appointmentFormError":"安排预约时出现错误","appointmentHistory":"预约历史","appointmentMarkedChecked":"Appointment marked as Checked In","appointmentMetrics":"预约指标","appointmentMetricsLoadError":"","appointmentNoteLabel":"输入附加备注","appointmentNotePlaceholder":"在这里输入任何额外的要点备注","appointmentNotes":"预约备注","appointmentNowVisible":"现在在预约页面上可见","appointments":"预约","Appointments":"预约","appointments_lower":"预约","appointmentsCalendar":"Appointments calendar","appointmentScheduled":"预约已安排","appointmentService":"预约服务","appointmentServiceCreate":"预约服务创建成功","appointmentServiceName":"预约服务名称","appointmentsScheduledForToday":"今日预约","appointmentsTable":"预约表","appointmentStatus":"预约状态","appointmentToFulfill":"选择要履行的预约","appointmentType":"预约类型","appointmentType_title":"预约类型","back":"返回","calendar":"日历","cameEarly":"提前到达","cancel":"取消","cancelAppointment":"取消预约","cancelAppointmentModalConfirmationText":"您确定要取消这个预约吗?","cancelled":"已取消","checkedIn":"已签到","checkedOut":"已结账","checkFilters":"检查上方的筛选条件","checkIn":"签到","checkOut":"结账","chooseAppointmentType":"选择预约类型","chooseLocation":"选择一个地点","chooseProvider":"选择一个提供者","chooseService":"选择服务","completed":"已完成","Contact":"Contact {{index}}","countMore_one":"{{count}} more","countMore_other":"{{count}} more","createAppointmentService":"创建预约服务","createNewAppointment":"创建新预约","date":"日期","date&Time":"日期&时间","dateAppointmentIssuedCannotBeAfterAppointmentDate":"Date appointment issued cannot be after the appointment date","dateOfBirth":"出生日期","dateScheduled":"Date appointment issued","dateScheduledDetail":"Date appointment issued","dateTime":"日期&时间","day":"天","daysOfWeek":"星期几","discard":"放弃","download":"下载","durationErrorMessage":"持续时间应大于零","durationInMinutes":"持续时间(分钟)","durationMins":"持续时间(分钟)","edit":"编辑","editAppointment":"编辑预约","editAppointments":"编辑预约","emptyStateText":"没有<1>{{displayText}}</1>可显示","encounters":"问诊","encounterType":"问诊类型","endAppointmentAndVisitConfirmationMessage":"Checking the patient out will mark the appointment as complete, and close out the active visit for this patient.","endAppointmentConfirmation":"Are you sure you want to check the patient out for this appointment?","endAppointmentConfirmationMessage":"Checking the patient out will mark the appointment as complete.","endDate":"结束日期","endTime":"结束时间","errorCreatingAppointmentService":"创建预约服务时出现错误","expected":"预期的","filterTable":"筛选表格","gender":"性别","highestServiceVolume":"最高量服务:{{time}}","identifier":"ID","invalidNumber":"数值无效","isRecurringAppointment":"这是一个定期预约吗?","itemsPerPage":"每页条目数","loading":"加载中","location":"地点","medications":"药物","missed":"未就诊","next":"Next","nextMonth":"Next month","nextPage":"下一页","no":"否","noAppointmentsToDisplay":"没有预约可显示","noContent":"没有内容","noCurrentAppointments":"该患者没有安排在今日的预约","noEncountersFound":"未找到问诊记录","noPastAppointments":"该患者没有历史预约","noPreviousVisitFound":"未找到先前的就诊","notArrived":"未到达","note":"备注","notes":"备注","noUpcomingAppointments":"未找到即将到来的预约","noUpcomingAppointmentsForPatient":"该患者没有即将到来的预约","pageNumber":"页码","past":"过往","patientDetails":"患者详情","patientDoubleBooking":"Patient already booked for an appointment at this time","patientName":"患者姓名","patients":"患者","period":"周期","prev":"Prev","previousMonth":"Previous month","previousPage":"上一页","provider":"提供者","providers":"提供者","providersBooked":"提供者预订:{{time}}","recurringAppointment":"定期预约","recurringAppointmentShouldHaveEndDate":"A recurring appointment should have an end date","repeatEvery":"重复每","save":"保存","saveAndClose":"保存并关闭","scheduled":"已安排","scheduledAppointments":"已安排的预约","scheduledForToday":"Scheduled For Today","selectALocation":"Select a location","selectAppointmentStatus":"选择状态","selectAppointmentType":"选择一个预约类型","selectLocation":"选择地点","selectOption":"选择一个选项","selectProvider":"选择一个提供者","selectService":"选择一个服务","selectServiceType":"选择服务类型","service":"服务","serviceName":"服务名称","serviceType":"服务类型","serviceUnavailable":"Appointment time is outside of service hours","startDate":"开始日期","startTime":"开始时间","status":"状态","time":"时间","today":"今日","todays":"今日","type":"Type","unscheduled":"未安排","unscheduledAppointments":"未安排的预约","unscheduledAppointments_lower":"未安排的预约","upcoming":"即将到来","upcomingAppointments":"即将到来的预约","updateError":"Error updating upcoming appointment","view":"查看","vitals":"生命体征","week":"周","yes":"是"}')}}]);
package/dist/900.js ADDED
@@ -0,0 +1 @@
1
+ "use strict";(globalThis.webpackChunk_kenyaemr_esm_appointments_app=globalThis.webpackChunk_kenyaemr_esm_appointments_app||[]).push([[900],{9900:e=>{e.exports=JSON.parse('{"action":"Action","actions":"Actions","add":"Add","age":"Age","allDay":"All day","appointmentCancelError":"Error cancelling appointment","appointmentCancelled":"Appointment Cancelled","appointmentCancelledSuccessfully":"Appointment cancelled successfully","appointmentCheckedIn":"Appointment Checked In","appointmentColor":"Appointment color","appointmentConflict":"Appointment conflict","appointmentEdited":"Appointment edited","appointmentEditError":"Error editing appointment","appointmentEnded":"Appointment ended","appointmentEndedAndVisitClosedSuccessfully":"Appointment successfully ended and visit successfully closed","appointmentEndedButVisitNotClosedError":"Appointment ended, but error closing visit","appointmentEndedSuccessfully":"Appointment successfully ended.","appointmentEndError":"Error ending appointment","appointmentFormError":"Error scheduling appointment","appointmentHistory":"Appointment History","appointmentMarkedChecked":"Appointment marked as Checked In","appointmentMetrics":"Appointment metrics","appointmentMetricsLoadError":"","appointmentNoteLabel":"Write an additional note","appointmentNotePlaceholder":"Write any additional points here","appointmentNotes":"Appointment Notes","appointmentNowVisible":"It is now visible on the Appointments page","appointments":"Appointments","Appointments":"Appointments","appointments_lower":"appointments","appointmentsCalendar":"Appointments calendar","appointmentScheduled":"Appointment scheduled","appointmentService":"Appointment service","appointmentServiceCreate":"Appointment service created successfully","appointmentServiceName":"Appointment service name","appointmentsScheduledForToday":"appointments scheduled for today","appointmentsTable":"Appointments table","appointmentStatus":"Appointment status","appointmentToFulfill":"Select appointment to fulfill","appointmentType":"Appointment type","appointmentType_title":"Appointment Type","back":"Back","calendar":"Calendar","cameEarly":"Came Early","cancel":"Cancel","cancelAppointment":"Cancel Appointment","cancelAppointmentModalConfirmationText":"Are you sure you want to cancel this appointment?","cancelled":"Cancelled","checkedIn":"Checked in","checkedOut":"Checked out","checkFilters":"Check the filters above","checkIn":"Check In","checkOut":"Check out","chooseAppointmentType":"Choose appointment type","chooseLocation":"Choose a location","chooseProvider":"Choose a provider","chooseService":"Select service","completed":"Completed","Contact":"Contact {{index}}","countMore_one":"{{count}} more","countMore_other":"{{count}} more","createAppointmentService":"Create appointment services","createNewAppointment":"Create new appointment","date":"Date","date&Time":"Date & time","dateAppointmentIssuedCannotBeAfterAppointmentDate":"Date appointment issued cannot be after the appointment date","dateOfBirth":"Date of birth","dateScheduled":"Date appointment issued","dateScheduledDetail":"Date appointment issued","dateTime":"Date & Time","day":"Day","daysOfWeek":"Days of the week","discard":"Discard","download":"Download","durationErrorMessage":"Duration should be greater than zero","durationInMinutes":"Duration (minutes)","durationMins":"Duration min","edit":"Edit","editAppointment":"Edit Appointment","editAppointments":"Edit Appointment","emptyStateText":"There are no <1>{{displayText}}</1> to display","encounters":"Encounters","encounterType":"Encounter type","endAppointmentAndVisitConfirmationMessage":"Checking the patient out will mark the appointment as complete, and close out the active visit for this patient.","endAppointmentConfirmation":"Are you sure you want to check the patient out for this appointment?","endAppointmentConfirmationMessage":"Checking the patient out will mark the appointment as complete.","endDate":"End date","endTime":"End Time","errorCreatingAppointmentService":"Error creating appointment service","expected":"Expected","filterTable":"Filter table","gender":"Gender","highestServiceVolume":"Highest volume service: {{time}}","identifier":"Identifier","invalidNumber":"Number is not valid","isRecurringAppointment":"Is this a recurring appointment?","itemsPerPage":"Items per page","loading":"Loading","location":"Location","medications":"Medications","missed":"Missed","next":"Next","nextMonth":"Next month","nextPage":"Next page","no":"No","noAppointmentsToDisplay":"No appointments to display","noContent":"No Content","noCurrentAppointments":"There are no appointments scheduled for today to display for this patient","noEncountersFound":"No encounters found","noPastAppointments":"There are no past appointments to display for this patient","noPreviousVisitFound":"No previous visit found","notArrived":"Not arrived","note":"Note","notes":"Notes","noUpcomingAppointments":"No upcoming appointments found","noUpcomingAppointmentsForPatient":"There are no upcoming appointments to display for this patient","pageNumber":"Page number","past":"Past","patientDetails":"Patient Details","patientDoubleBooking":"Patient already booked for an appointment at this time","patientName":"Patient name","patients":"Patients","period":"Period","prev":"Prev","previousMonth":"Previous month","previousPage":"Previous page","provider":"Provider","providers":"Providers","providersBooked":"Providers booked: {{time}}","recurringAppointment":"Recurring Appointment","recurringAppointmentShouldHaveEndDate":"A recurring appointment should have an end date","repeatEvery":"Repeat every","save":"Save","saveAndClose":"Save and close","scheduled":"Scheduled","scheduledAppointments":"Scheduled appointments","scheduledForToday":"Scheduled For Today","selectALocation":"Select a location","selectAppointmentStatus":"Select status","selectAppointmentType":"Select an appointment type","selectLocation":"Select location","selectOption":"Select an option","selectProvider":"Select a provider","selectService":"Select a service","selectServiceType":"Select service type","service":"Service","serviceName":"Service name","serviceType":"Service Type","serviceUnavailable":"Appointment time is outside of service hours","startDate":"Start date","startTime":"Start Time","status":"Status","time":"Time","today":"Today","todays":"Today\'s","type":"Type","unscheduled":"Unscheduled","unscheduledAppointments":"Unscheduled appointments","unscheduledAppointments_lower":"unscheduled appointments","upcoming":"Upcoming","upcomingAppointments":"Upcoming appointments","updateError":"Error updating upcoming appointment","view":"View","vitals":"Vitals","week":"Week","yes":"Yes"}')}}]);
package/dist/913.js ADDED
@@ -0,0 +1,2 @@
1
+ /*! For license information please see 913.js.LICENSE.txt */
2
+ "use strict";(globalThis.webpackChunk_kenyaemr_esm_appointments_app=globalThis.webpackChunk_kenyaemr_esm_appointments_app||[]).push([[913],{2913:(e,t,r)=>{r.r(t),r.d(t,{AbortedDeferredError:()=>X,Await:()=>or,BrowserRouter:()=>Ir,Form:()=>Jr,HashRouter:()=>zr,Link:()=>$r,MemoryRouter:()=>Zt,NavLink:()=>Vr,Navigate:()=>er,NavigationType:()=>n,Outlet:()=>tr,Route:()=>rr,Router:()=>nr,RouterProvider:()=>Fr,Routes:()=>ar,ScrollRestoration:()=>Yr,UNSAFE_DataRouterContext:()=>ot,UNSAFE_DataRouterStateContext:()=>it,UNSAFE_ErrorResponseImpl:()=>ne,UNSAFE_FetchersContext:()=>Tr,UNSAFE_LocationContext:()=>ut,UNSAFE_NavigationContext:()=>lt,UNSAFE_RouteContext:()=>ct,UNSAFE_ViewTransitionContext:()=>_r,UNSAFE_useRouteId:()=>Ot,UNSAFE_useScrollRestoration:()=>cn,createBrowserRouter:()=>Cr,createHashRouter:()=>Pr,createMemoryRouter:()=>fr,createPath:()=>v,createRoutesFromChildren:()=>cr,createRoutesFromElements:()=>cr,createSearchParams:()=>br,defer:()=>Z,generatePath:()=>O,isRouteErrorResponse:()=>ae,json:()=>q,matchPath:()=>F,matchRoutes:()=>E,parsePath:()=>y,redirect:()=>ee,redirectDocument:()=>te,renderMatches:()=>dr,replace:()=>re,resolvePath:()=>I,unstable_HistoryRouter:()=>Hr,unstable_usePrompt:()=>hn,useActionData:()=>Ht,useAsyncError:()=>$t,useAsyncValue:()=>Kt,useBeforeUnload:()=>dn,useBlocker:()=>Jt,useFetcher:()=>on,useFetchers:()=>sn,useFormAction:()=>an,useHref:()=>ht,useInRouterContext:()=>ft,useLinkClickHandler:()=>Zr,useLoaderData:()=>It,useLocation:()=>pt,useMatch:()=>vt,useMatches:()=>Bt,useNavigate:()=>gt,useNavigation:()=>Ft,useNavigationType:()=>mt,useOutlet:()=>St,useOutletContext:()=>wt,useParams:()=>Et,useResolvedPath:()=>Rt,useRevalidator:()=>Nt,useRouteError:()=>Wt,useRouteLoaderData:()=>zt,useRoutes:()=>xt,useSearchParams:()=>en,useSubmit:()=>nn,useViewTransitionState:()=>fn});var n,a=r(1343),o=r(3144),i=r.t(o,2);function s(){return s=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},s.apply(this,arguments)}!function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"}(n||(n={}));const l="popstate";function u(e){void 0===e&&(e={});let t,{initialEntries:r=["/"],initialIndex:a,v5Compat:o=!1}=e;t=r.map(((e,t)=>d(e,"string"==typeof e?null:e.state,0===t?"default":void 0)));let i=u(null==a?t.length-1:a),s=n.Pop,l=null;function u(e){return Math.min(Math.max(e,0),t.length-1)}function c(){return t[i]}function d(e,r,n){void 0===r&&(r=null);let a=m(t?c().pathname:"/",e,r,n);return f("/"===a.pathname.charAt(0),"relative pathnames are not supported in memory history: "+JSON.stringify(e)),a}function h(e){return"string"==typeof e?e:v(e)}return{get index(){return i},get action(){return s},get location(){return c()},createHref:h,createURL:e=>new URL(h(e),"http://localhost"),encodeLocation(e){let t="string"==typeof e?y(e):e;return{pathname:t.pathname||"",search:t.search||"",hash:t.hash||""}},push(e,r){s=n.Push;let a=d(e,r);i+=1,t.splice(i,t.length,a),o&&l&&l({action:s,location:a,delta:1})},replace(e,r){s=n.Replace;let a=d(e,r);t[i]=a,o&&l&&l({action:s,location:a,delta:0})},go(e){s=n.Pop;let r=u(i+e),a=t[r];i=r,l&&l({action:s,location:a,delta:e})},listen:e=>(l=e,()=>{l=null})}}function c(e){return void 0===e&&(e={}),g((function(e,t){let{pathname:r,search:n,hash:a}=e.location;return m("",{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){return"string"==typeof t?t:v(t)}),null,e)}function d(e){return void 0===e&&(e={}),g((function(e,t){let{pathname:r="/",search:n="",hash:a=""}=y(e.location.hash.substr(1));return r.startsWith("/")||r.startsWith(".")||(r="/"+r),m("",{pathname:r,search:n,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||"default")}),(function(e,t){let r=e.document.querySelector("base"),n="";if(r&&r.getAttribute("href")){let t=e.location.href,r=t.indexOf("#");n=-1===r?t:t.slice(0,r)}return n+"#"+("string"==typeof t?t:v(t))}),(function(e,t){f("/"===e.pathname.charAt(0),"relative pathnames are not supported in hash history.push("+JSON.stringify(t)+")")}),e)}function h(e,t){if(!1===e||null==e)throw new Error(t)}function f(e,t){if(!e){"undefined"!=typeof console&&console.warn(t);try{throw new Error(t)}catch(e){}}}function p(e,t){return{usr:e.state,key:e.key,idx:t}}function m(e,t,r,n){return void 0===r&&(r=null),s({pathname:"string"==typeof e?e:e.pathname,search:"",hash:""},"string"==typeof t?y(t):t,{state:r,key:t&&t.key||n||Math.random().toString(36).substr(2,8)})}function v(e){let{pathname:t="/",search:r="",hash:n=""}=e;return r&&"?"!==r&&(t+="?"===r.charAt(0)?r:"?"+r),n&&"#"!==n&&(t+="#"===n.charAt(0)?n:"#"+n),t}function y(e){let t={};if(e){let r=e.indexOf("#");r>=0&&(t.hash=e.substr(r),e=e.substr(0,r));let n=e.indexOf("?");n>=0&&(t.search=e.substr(n),e=e.substr(0,n)),e&&(t.pathname=e)}return t}function g(e,t,r,a){void 0===a&&(a={});let{window:o=document.defaultView,v5Compat:i=!1}=a,u=o.history,c=n.Pop,d=null,f=y();function y(){return(u.state||{idx:null}).idx}function g(){c=n.Pop;let e=y(),t=null==e?null:e-f;f=e,d&&d({action:c,location:w.location,delta:t})}function b(e){let t="null"!==o.location.origin?o.location.origin:o.location.href,r="string"==typeof e?e:v(e);return r=r.replace(/ $/,"%20"),h(t,"No window.location.(origin|href) available to create URL for href: "+r),new URL(r,t)}null==f&&(f=0,u.replaceState(s({},u.state,{idx:f}),""));let w={get action(){return c},get location(){return e(o,u)},listen(e){if(d)throw new Error("A history only accepts one active listener");return o.addEventListener(l,g),d=e,()=>{o.removeEventListener(l,g),d=null}},createHref:e=>t(o,e),createURL:b,encodeLocation(e){let t=b(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:function(e,t){c=n.Push;let a=m(w.location,e,t);r&&r(a,e),f=y()+1;let s=p(a,f),l=w.createHref(a);try{u.pushState(s,"",l)}catch(e){if(e instanceof DOMException&&"DataCloneError"===e.name)throw e;o.location.assign(l)}i&&d&&d({action:c,location:w.location,delta:1})},replace:function(e,t){c=n.Replace;let a=m(w.location,e,t);r&&r(a,e),f=y();let o=p(a,f),s=w.createHref(a);u.replaceState(o,"",s),i&&d&&d({action:c,location:w.location,delta:0})},go:e=>u.go(e)};return w}var b;!function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"}(b||(b={}));const w=new Set(["lazy","caseSensitive","path","id","index","children"]);function S(e,t,r,n){return void 0===r&&(r=[]),void 0===n&&(n={}),e.map(((e,a)=>{let o=[...r,String(a)],i="string"==typeof e.id?e.id:o.join("-");if(h(!0!==e.index||!e.children,"Cannot specify children on an index route"),h(!n[i],'Found a route id collision on id "'+i+"\". Route id's must be globally unique within Data Router usages"),function(e){return!0===e.index}(e)){let r=s({},e,t(e),{id:i});return n[i]=r,r}{let r=s({},e,t(e),{id:i,children:void 0});return n[i]=r,e.children&&(r.children=S(e.children,t,o,n)),r}}))}function E(e,t,r){return void 0===r&&(r="/"),R(e,t,r,!1)}function R(e,t,r,n){let a=B(("string"==typeof t?y(t):t).pathname||"/",r);if(null==a)return null;let o=D(e);!function(e){e.sort(((e,t)=>e.score!==t.score?t.score-e.score:function(e,t){return e.length===t.length&&e.slice(0,-1).every(((e,r)=>e===t[r]))?e[e.length-1]-t[t.length-1]:0}(e.routesMeta.map((e=>e.childrenIndex)),t.routesMeta.map((e=>e.childrenIndex)))))}(o);let i=null;for(let e=0;null==i&&e<o.length;++e){let t=N(a);i=j(o[e],t,n)}return i}function x(e,t){let{route:r,pathname:n,params:a}=e;return{id:r.id,pathname:n,params:a,data:t[r.id],handle:r.handle}}function D(e,t,r,n){void 0===t&&(t=[]),void 0===r&&(r=[]),void 0===n&&(n="");let a=(e,a,o)=>{let i={relativePath:void 0===o?e.path||"":o,caseSensitive:!0===e.caseSensitive,childrenIndex:a,route:e};i.relativePath.startsWith("/")&&(h(i.relativePath.startsWith(n),'Absolute route path "'+i.relativePath+'" nested under path "'+n+'" is not valid. An absolute child route path must start with the combined path of all its parent routes.'),i.relativePath=i.relativePath.slice(n.length));let s=$([n,i.relativePath]),l=r.concat(i);e.children&&e.children.length>0&&(h(!0!==e.index,'Index routes must not have child routes. Please remove all child routes from route path "'+s+'".'),D(e.children,t,l,s)),(null!=e.path||e.index)&&t.push({path:s,score:U(s,e.index),routesMeta:l})};return e.forEach(((e,t)=>{var r;if(""!==e.path&&null!=(r=e.path)&&r.includes("?"))for(let r of C(e.path))a(e,t,r);else a(e,t)})),t}function C(e){let t=e.split("/");if(0===t.length)return[];let[r,...n]=t,a=r.endsWith("?"),o=r.replace(/\?$/,"");if(0===n.length)return a?[o,""]:[o];let i=C(n.join("/")),s=[];return s.push(...i.map((e=>""===e?o:[o,e].join("/")))),a&&s.push(...i),s.map((t=>e.startsWith("/")&&""===t?"/":t))}const P=/^:[\w-]+$/,L=3,k=2,_=1,T=10,A=-2,M=e=>"*"===e;function U(e,t){let r=e.split("/"),n=r.length;return r.some(M)&&(n+=A),t&&(n+=k),r.filter((e=>!M(e))).reduce(((e,t)=>e+(P.test(t)?L:""===t?_:T)),n)}function j(e,t,r){void 0===r&&(r=!1);let{routesMeta:n}=e,a={},o="/",i=[];for(let e=0;e<n.length;++e){let s=n[e],l=e===n.length-1,u="/"===o?t:t.slice(o.length)||"/",c=F({path:s.relativePath,caseSensitive:s.caseSensitive,end:l},u),d=s.route;if(!c&&l&&r&&!n[n.length-1].route.index&&(c=F({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},u)),!c)return null;Object.assign(a,c.params),i.push({params:a,pathname:$([o,c.pathname]),pathnameBase:V($([o,c.pathnameBase])),route:d}),"/"!==c.pathnameBase&&(o=$([o,c.pathnameBase]))}return i}function O(e,t){void 0===t&&(t={});let r=e;r.endsWith("*")&&"*"!==r&&!r.endsWith("/*")&&(f(!1,'Route path "'+r+'" will be treated as if it were "'+r.replace(/\*$/,"/*")+'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "'+r.replace(/\*$/,"/*")+'".'),r=r.replace(/\*$/,"/*"));const n=r.startsWith("/")?"/":"",a=e=>null==e?"":"string"==typeof e?e:String(e);return n+r.split(/\/+/).map(((e,r,n)=>{if(r===n.length-1&&"*"===e)return a(t["*"]);const o=e.match(/^:([\w-]+)(\??)$/);if(o){const[,e,r]=o;let n=t[e];return h("?"===r||null!=n,'Missing ":'+e+'" param'),a(n)}return e.replace(/\?$/g,"")})).filter((e=>!!e)).join("/")}function F(e,t){"string"==typeof e&&(e={path:e,caseSensitive:!1,end:!0});let[r,n]=function(e,t,r){void 0===t&&(t=!1),void 0===r&&(r=!0),f("*"===e||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were "'+e.replace(/\*$/,"/*")+'" because the `*` character must always follow a `/` in the pattern. To get rid of this warning, please change the route path to "'+e.replace(/\*$/,"/*")+'".');let n=[],a="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,((e,t,r)=>(n.push({paramName:t,isOptional:null!=r}),r?"/?([^\\/]+)?":"/([^\\/]+)")));return e.endsWith("*")?(n.push({paramName:"*"}),a+="*"===e||"/*"===e?"(.*)$":"(?:\\/(.+)|\\/*)$"):r?a+="\\/*$":""!==e&&"/"!==e&&(a+="(?:(?=\\/|$))"),[new RegExp(a,t?void 0:"i"),n]}(e.path,e.caseSensitive,e.end),a=t.match(r);if(!a)return null;let o=a[0],i=o.replace(/(.)\/+$/,"$1"),s=a.slice(1);return{params:n.reduce(((e,t,r)=>{let{paramName:n,isOptional:a}=t;if("*"===n){let e=s[r]||"";i=o.slice(0,o.length-e.length).replace(/(.)\/+$/,"$1")}const l=s[r];return e[n]=a&&!l?void 0:(l||"").replace(/%2F/g,"/"),e}),{}),pathname:o,pathnameBase:i,pattern:e}}function N(e){try{return e.split("/").map((e=>decodeURIComponent(e).replace(/\//g,"%2F"))).join("/")}catch(t){return f(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent encoding ('+t+")."),e}}function B(e,t){if("/"===t)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let r=t.endsWith("/")?t.length-1:t.length,n=e.charAt(r);return n&&"/"!==n?null:e.slice(r)||"/"}function I(e,t){void 0===t&&(t="/");let{pathname:r,search:n="",hash:a=""}="string"==typeof e?y(e):e,o=r?r.startsWith("/")?r:function(e,t){let r=t.replace(/\/+$/,"").split("/");return e.split("/").forEach((e=>{".."===e?r.length>1&&r.pop():"."!==e&&r.push(e)})),r.length>1?r.join("/"):"/"}(r,t):t;return{pathname:o,search:J(n),hash:Y(a)}}function z(e,t,r,n){return"Cannot include a '"+e+"' character in a manually specified `to."+t+"` field ["+JSON.stringify(n)+"]. Please separate it out to the `to."+r+'` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.'}function H(e){return e.filter(((e,t)=>0===t||e.route.path&&e.route.path.length>0))}function W(e,t){let r=H(e);return t?r.map(((e,t)=>t===r.length-1?e.pathname:e.pathnameBase)):r.map((e=>e.pathnameBase))}function K(e,t,r,n){let a;void 0===n&&(n=!1),"string"==typeof e?a=y(e):(a=s({},e),h(!a.pathname||!a.pathname.includes("?"),z("?","pathname","search",a)),h(!a.pathname||!a.pathname.includes("#"),z("#","pathname","hash",a)),h(!a.search||!a.search.includes("#"),z("#","search","hash",a)));let o,i=""===e||""===a.pathname,l=i?"/":a.pathname;if(null==l)o=r;else{let e=t.length-1;if(!n&&l.startsWith("..")){let t=l.split("/");for(;".."===t[0];)t.shift(),e-=1;a.pathname=t.join("/")}o=e>=0?t[e]:"/"}let u=I(a,o),c=l&&"/"!==l&&l.endsWith("/"),d=(i||"."===l)&&r.endsWith("/");return u.pathname.endsWith("/")||!c&&!d||(u.pathname+="/"),u}const $=e=>e.join("/").replace(/\/\/+/g,"/"),V=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),J=e=>e&&"?"!==e?e.startsWith("?")?e:"?"+e:"",Y=e=>e&&"#"!==e?e.startsWith("#")?e:"#"+e:"",q=function(e,t){void 0===t&&(t={});let r="number"==typeof t?{status:t}:t,n=new Headers(r.headers);return n.has("Content-Type")||n.set("Content-Type","application/json; charset=utf-8"),new Response(JSON.stringify(e),s({},r,{headers:n}))};class X extends Error{}class G{constructor(e,t){let r;this.pendingKeysSet=new Set,this.subscribers=new Set,this.deferredKeys=[],h(e&&"object"==typeof e&&!Array.isArray(e),"defer() only accepts plain objects"),this.abortPromise=new Promise(((e,t)=>r=t)),this.controller=new AbortController;let n=()=>r(new X("Deferred data aborted"));this.unlistenAbortSignal=()=>this.controller.signal.removeEventListener("abort",n),this.controller.signal.addEventListener("abort",n),this.data=Object.entries(e).reduce(((e,t)=>{let[r,n]=t;return Object.assign(e,{[r]:this.trackPromise(r,n)})}),{}),this.done&&this.unlistenAbortSignal(),this.init=t}trackPromise(e,t){if(!(t instanceof Promise))return t;this.deferredKeys.push(e),this.pendingKeysSet.add(e);let r=Promise.race([t,this.abortPromise]).then((t=>this.onSettle(r,e,void 0,t)),(t=>this.onSettle(r,e,t)));return r.catch((()=>{})),Object.defineProperty(r,"_tracked",{get:()=>!0}),r}onSettle(e,t,r,n){if(this.controller.signal.aborted&&r instanceof X)return this.unlistenAbortSignal(),Object.defineProperty(e,"_error",{get:()=>r}),Promise.reject(r);if(this.pendingKeysSet.delete(t),this.done&&this.unlistenAbortSignal(),void 0===r&&void 0===n){let r=new Error('Deferred data for key "'+t+'" resolved/rejected with `undefined`, you must resolve/reject with a value or `null`.');return Object.defineProperty(e,"_error",{get:()=>r}),this.emit(!1,t),Promise.reject(r)}return void 0===n?(Object.defineProperty(e,"_error",{get:()=>r}),this.emit(!1,t),Promise.reject(r)):(Object.defineProperty(e,"_data",{get:()=>n}),this.emit(!1,t),n)}emit(e,t){this.subscribers.forEach((r=>r(e,t)))}subscribe(e){return this.subscribers.add(e),()=>this.subscribers.delete(e)}cancel(){this.controller.abort(),this.pendingKeysSet.forEach(((e,t)=>this.pendingKeysSet.delete(t))),this.emit(!0)}async resolveData(e){let t=!1;if(!this.done){let r=()=>this.cancel();e.addEventListener("abort",r),t=await new Promise((t=>{this.subscribe((n=>{e.removeEventListener("abort",r),(n||this.done)&&t(n)}))}))}return t}get done(){return 0===this.pendingKeysSet.size}get unwrappedData(){return h(null!==this.data&&this.done,"Can only unwrap data on initialized and settled deferreds"),Object.entries(this.data).reduce(((e,t)=>{let[r,n]=t;return Object.assign(e,{[r]:Q(n)})}),{})}get pendingKeys(){return Array.from(this.pendingKeysSet)}}function Q(e){if(!function(e){return e instanceof Promise&&!0===e._tracked}(e))return e;if(e._error)throw e._error;return e._data}const Z=function(e,t){return void 0===t&&(t={}),new G(e,"number"==typeof t?{status:t}:t)},ee=function(e,t){void 0===t&&(t=302);let r=t;"number"==typeof r?r={status:r}:void 0===r.status&&(r.status=302);let n=new Headers(r.headers);return n.set("Location",e),new Response(null,s({},r,{headers:n}))},te=(e,t)=>{let r=ee(e,t);return r.headers.set("X-Remix-Reload-Document","true"),r},re=(e,t)=>{let r=ee(e,t);return r.headers.set("X-Remix-Replace","true"),r};class ne{constructor(e,t,r,n){void 0===n&&(n=!1),this.status=e,this.statusText=t||"",this.internal=n,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}}function ae(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"boolean"==typeof e.internal&&"data"in e}const oe=["post","put","patch","delete"],ie=new Set(oe),se=["get",...oe],le=new Set(se),ue=new Set([301,302,303,307,308]),ce=new Set([307,308]),de={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},he={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},fe={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},pe=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,me=e=>({hasErrorBoundary:Boolean(e.hasErrorBoundary)}),ve="remix-router-transitions";function ye(e){const t=e.window?e.window:"undefined"!=typeof window?window:void 0,r=void 0!==t&&void 0!==t.document&&void 0!==t.document.createElement,a=!r;let o;if(h(e.routes.length>0,"You must provide a non-empty routes array to createRouter"),e.mapRouteProperties)o=e.mapRouteProperties;else if(e.detectErrorBoundary){let t=e.detectErrorBoundary;o=e=>({hasErrorBoundary:t(e)})}else o=me;let i,l,u,c={},d=S(e.routes,o,void 0,c),p=e.basename||"/",v=e.dataStrategy||Pe,y=e.patchRoutesOnNavigation,g=s({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),D=null,C=new Set,P=null,L=null,k=null,_=null!=e.hydrationData,T=E(d,e.history.location,p),A=null;if(null==T&&!y){let t=Be(404,{pathname:e.history.location.pathname}),{matches:r,route:n}=Ne(d);T=r,A={[n.id]:t}}if(T&&!e.hydrationData&&ut(T,d,e.history.location.pathname).active&&(T=null),T)if(T.some((e=>e.route.lazy)))l=!1;else if(T.some((e=>e.route.loader)))if(g.v7_partialHydration){let t=e.hydrationData?e.hydrationData.loaderData:null,r=e.hydrationData?e.hydrationData.errors:null;if(r){let e=T.findIndex((e=>void 0!==r[e.route.id]));l=T.slice(0,e+1).every((e=>!Ee(e.route,t,r)))}else l=T.every((e=>!Ee(e.route,t,r)))}else l=null!=e.hydrationData;else l=!0;else if(l=!1,T=[],g.v7_partialHydration){let t=ut(null,d,e.history.location.pathname);t.active&&t.matches&&(T=t.matches)}let M,U,j={historyAction:e.history.action,location:e.history.location,matches:T,initialized:l,navigation:de,restoreScrollPosition:null==e.hydrationData&&null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||A,fetchers:new Map,blockers:new Map},O=n.Pop,F=!1,N=!1,I=new Map,z=null,H=!1,W=!1,K=[],$=new Set,V=new Map,J=0,Y=-1,q=new Map,X=new Set,G=new Map,Q=new Map,Z=new Set,ee=new Map,te=new Map;function re(e,t){void 0===t&&(t={}),j=s({},j,e);let r=[],n=[];g.v7_fetcherPersist&&j.fetchers.forEach(((e,t)=>{"idle"===e.state&&(Z.has(t)?n.push(t):r.push(t))})),[...C].forEach((e=>e(j,{deletedFetchers:n,viewTransitionOpts:t.viewTransitionOpts,flushSync:!0===t.flushSync}))),g.v7_fetcherPersist&&(r.forEach((e=>j.fetchers.delete(e))),n.forEach((e=>Ce(e))))}function ne(t,r,a){var o,l;let u,{flushSync:c}=void 0===a?{}:a,h=null!=j.actionData&&null!=j.navigation.formMethod&&Ye(j.navigation.formMethod)&&"loading"===j.navigation.state&&!0!==(null==(o=t.state)?void 0:o._isRedirect);u=r.actionData?Object.keys(r.actionData).length>0?r.actionData:null:h?j.actionData:null;let f=r.loaderData?je(j.loaderData,r.loaderData,r.matches||[],r.errors):j.loaderData,p=j.blockers;p.size>0&&(p=new Map(p),p.forEach(((e,t)=>p.set(t,fe))));let m,v=!0===F||null!=j.navigation.formMethod&&Ye(j.navigation.formMethod)&&!0!==(null==(l=t.state)?void 0:l._isRedirect);if(i&&(d=i,i=void 0),H||O===n.Pop||(O===n.Push?e.history.push(t,t.state):O===n.Replace&&e.history.replace(t,t.state)),O===n.Pop){let e=I.get(j.location.pathname);e&&e.has(t.pathname)?m={currentLocation:j.location,nextLocation:t}:I.has(t.pathname)&&(m={currentLocation:t,nextLocation:j.location})}else if(N){let e=I.get(j.location.pathname);e?e.add(t.pathname):(e=new Set([t.pathname]),I.set(j.location.pathname,e)),m={currentLocation:j.location,nextLocation:t}}re(s({},r,{actionData:u,loaderData:f,historyAction:O,location:t,initialized:!0,navigation:de,revalidation:"idle",restoreScrollPosition:lt(t,r.matches||j.matches),preventScrollReset:v,blockers:p}),{viewTransitionOpts:m,flushSync:!0===c}),O=n.Pop,F=!1,N=!1,H=!1,W=!1,K=[]}async function oe(t,r,a){M&&M.abort(),M=null,O=t,H=!0===(a&&a.startUninterruptedRevalidation),function(e,t){if(P&&k){let r=st(e,t);P[r]=k()}}(j.location,j.matches),F=!0===(a&&a.preventScrollReset),N=!0===(a&&a.enableViewTransition);let o=i||d,l=a&&a.overrideNavigation,u=E(o,r,p),c=!0===(a&&a.flushSync),h=ut(u,o,r.pathname);if(h.active&&h.matches&&(u=h.matches),!u){let{error:e,notFoundMatches:t,route:n}=ot(r.pathname);return void ne(r,{matches:t,loaderData:{},errors:{[n.id]:e}},{flushSync:c})}if(j.initialized&&!W&&(f=j.location,m=r,f.pathname===m.pathname&&f.search===m.search&&(""===f.hash?""!==m.hash:f.hash===m.hash||""!==m.hash))&&!(a&&a.submission&&Ye(a.submission.formMethod)))return void ne(r,{matches:u},{flushSync:c});var f,m;M=new AbortController;let v,y=Te(e.history,r,M.signal,a&&a.submission);if(a&&a.pendingError)v=[Fe(u).route.id,{type:b.error,error:a.pendingError}];else if(a&&a.submission&&Ye(a.submission.formMethod)){let t=await async function(e,t,r,a,o,i){void 0===i&&(i={}),ye();let s,l=function(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}(t,r);if(re({navigation:l},{flushSync:!0===i.flushSync}),o){let r=await ct(a,t.pathname,e.signal);if("aborted"===r.type)return{shortCircuited:!0};if("error"===r.type){let e=Fe(r.partialMatches).route.id;return{matches:r.partialMatches,pendingActionResult:[e,{type:b.error,error:r.error}]}}if(!r.matches){let{notFoundMatches:e,error:r,route:n}=ot(t.pathname);return{matches:e,pendingActionResult:[n.id,{type:b.error,error:r}]}}a=r.matches}let u=Ze(a,t);if(u.route.action||u.route.lazy){if(s=(await le("action",j,e,[u],a,null))[u.route.id],e.signal.aborted)return{shortCircuited:!0}}else s={type:b.error,error:Be(405,{method:e.method,pathname:t.pathname,routeId:u.route.id})};if($e(s)){let t;return t=i&&null!=i.replace?i.replace:_e(s.response.headers.get("Location"),new URL(e.url),p)===j.location.pathname+j.location.search,await se(e,s,!0,{submission:r,replace:t}),{shortCircuited:!0}}if(We(s))throw Be(400,{type:"defer-action"});if(Ke(s)){let e=Fe(a,u.route.id);return!0!==(i&&i.replace)&&(O=n.Push),{matches:a,pendingActionResult:[e.route.id,s]}}return{matches:a,pendingActionResult:[u.route.id,s]}}(y,r,a.submission,u,h.active,{replace:a.replace,flushSync:c});if(t.shortCircuited)return;if(t.pendingActionResult){let[e,n]=t.pendingActionResult;if(Ke(n)&&ae(n.error)&&404===n.error.status)return M=null,void ne(r,{matches:t.matches,loaderData:{},errors:{[e]:n.error}})}u=t.matches||u,v=t.pendingActionResult,l=tt(r,a.submission),c=!1,h.active=!1,y=Te(e.history,y.url,y.signal)}let{shortCircuited:w,matches:S,loaderData:R,errors:x}=await async function(t,r,n,a,o,l,u,c,h,f,m){let v=o||tt(r,l),y=l||u||et(v),b=!(H||g.v7_partialHydration&&h);if(a){if(b){let e=ie(m);re(s({navigation:v},void 0!==e?{actionData:e}:{}),{flushSync:f})}let e=await ct(n,r.pathname,t.signal);if("aborted"===e.type)return{shortCircuited:!0};if("error"===e.type){let t=Fe(e.partialMatches).route.id;return{matches:e.partialMatches,loaderData:{},errors:{[t]:e.error}}}if(!e.matches){let{error:e,notFoundMatches:t,route:n}=ot(r.pathname);return{matches:t,loaderData:{},errors:{[n.id]:e}}}n=e.matches}let w=i||d,[S,E]=Se(e.history,j,n,y,r,g.v7_partialHydration&&!0===h,g.v7_skipActionErrorRevalidation,W,K,$,Z,G,X,w,p,m);if(it((e=>!(n&&n.some((t=>t.route.id===e)))||S&&S.some((t=>t.route.id===e)))),Y=++J,0===S.length&&0===E.length){let e=ze();return ne(r,s({matches:n,loaderData:{},errors:m&&Ke(m[1])?{[m[0]]:m[1].error}:null},Oe(m),e?{fetchers:new Map(j.fetchers)}:{}),{flushSync:f}),{shortCircuited:!0}}if(b){let e={};if(!a){e.navigation=v;let t=ie(m);void 0!==t&&(e.actionData=t)}E.length>0&&(e.fetchers=function(e){return e.forEach((e=>{let t=j.fetchers.get(e.key),r=rt(void 0,t?t.data:void 0);j.fetchers.set(e.key,r)})),new Map(j.fetchers)}(E)),re(e,{flushSync:f})}E.forEach((e=>{Ae(e.key),e.controller&&V.set(e.key,e.controller)}));let R=()=>E.forEach((e=>Ae(e.key)));M&&M.signal.addEventListener("abort",R);let{loaderResults:x,fetcherResults:D}=await ue(j,n,S,E,t);if(t.signal.aborted)return{shortCircuited:!0};M&&M.signal.removeEventListener("abort",R),E.forEach((e=>V.delete(e.key)));let C=Ie(x);if(C)return await se(t,C.result,!0,{replace:c}),{shortCircuited:!0};if(C=Ie(D),C)return X.add(C.key),await se(t,C.result,!0,{replace:c}),{shortCircuited:!0};let{loaderData:P,errors:L}=Ue(j,n,x,m,E,D,ee);ee.forEach(((e,t)=>{e.subscribe((r=>{(r||e.done)&&ee.delete(t)}))})),g.v7_partialHydration&&h&&j.errors&&(L=s({},j.errors,L));let k=ze(),_=Ve(Y),T=k||_||E.length>0;return s({matches:n,loaderData:P,errors:L},T?{fetchers:new Map(j.fetchers)}:{})}(y,r,u,h.active,l,a&&a.submission,a&&a.fetcherSubmission,a&&a.replace,a&&!0===a.initialHydration,c,v);w||(M=null,ne(r,s({matches:S||u},Oe(v),{loaderData:R,errors:x})))}function ie(e){return e&&!Ke(e[1])?{[e[0]]:e[1].data}:j.actionData?0===Object.keys(j.actionData).length?null:j.actionData:void 0}async function se(a,o,i,l){let{submission:u,fetcherSubmission:c,preventScrollReset:d,replace:f}=void 0===l?{}:l;o.response.headers.has("X-Remix-Revalidate")&&(W=!0);let v=o.response.headers.get("Location");h(v,"Expected a Location header on the redirect Response"),v=_e(v,new URL(a.url),p);let y=m(j.location,v,{_isRedirect:!0});if(r){let r=!1;if(o.response.headers.has("X-Remix-Reload-Document"))r=!0;else if(pe.test(v)){const n=e.history.createURL(v);r=n.origin!==t.location.origin||null==B(n.pathname,p)}if(r)return void(f?t.location.replace(v):t.location.assign(v))}M=null;let g=!0===f||o.response.headers.has("X-Remix-Replace")?n.Replace:n.Push,{formMethod:b,formAction:w,formEncType:S}=j.navigation;!u&&!c&&b&&w&&S&&(u=et(j.navigation));let E=u||c;if(ce.has(o.response.status)&&E&&Ye(E.formMethod))await oe(g,y,{submission:s({},E,{formAction:v}),preventScrollReset:d||F,enableViewTransition:i?N:void 0});else{let e=tt(y,u);await oe(g,y,{overrideNavigation:e,fetcherSubmission:c,preventScrollReset:d||F,enableViewTransition:i?N:void 0})}}async function le(e,t,r,n,a,i){let l,u={};try{l=await async function(e,t,r,n,a,o,i,l,u,c){let d=o.map((e=>e.route.lazy?async function(e,t,r){if(!e.lazy)return;let n=await e.lazy();if(!e.lazy)return;let a=r[e.id];h(a,"No route found in manifest");let o={};for(let e in n){let t=void 0!==a[e]&&"hasErrorBoundary"!==e;f(!t,'Route "'+a.id+'" has a static property "'+e+'" defined but its lazy function is also returning a value for this property. The lazy route property "'+e+'" will be ignored.'),t||w.has(e)||(o[e]=n[e])}Object.assign(a,o),Object.assign(a,s({},t(a),{lazy:void 0}))}(e.route,u,l):void 0)),p=o.map(((e,r)=>{let o=d[r],i=a.some((t=>t.route.id===e.route.id));return s({},e,{shouldLoad:i,resolve:async r=>(r&&"GET"===n.method&&(e.route.lazy||e.route.loader)&&(i=!0),i?async function(e,t,r,n,a,o){let i,s,l=n=>{let i,l=new Promise(((e,t)=>i=t));s=()=>i(),t.signal.addEventListener("abort",s);let u=a=>"function"!=typeof n?Promise.reject(new Error('You cannot call the handler for a route which defines a boolean "'+e+'" [routeId: '+r.route.id+"]")):n({request:t,params:r.params,context:o},...void 0!==a?[a]:[]),c=(async()=>{try{return{type:"data",result:await(a?a((e=>u(e))):u())}}catch(e){return{type:"error",result:e}}})();return Promise.race([c,l])};try{let a=r.route[e];if(n)if(a){let e,[t]=await Promise.all([l(a).catch((t=>{e=t})),n]);if(void 0!==e)throw e;i=t}else{if(await n,a=r.route[e],!a){if("action"===e){let e=new URL(t.url),n=e.pathname+e.search;throw Be(405,{method:t.method,pathname:n,routeId:r.route.id})}return{type:b.data,result:void 0}}i=await l(a)}else{if(!a){let e=new URL(t.url);throw Be(404,{pathname:e.pathname+e.search})}i=await l(a)}h(void 0!==i.result,"You defined "+("action"===e?"an action":"a loader")+' for route "'+r.route.id+"\" but didn't return anything from your `"+e+"` function. Please return a value or `null`.")}catch(e){return{type:b.error,result:e}}finally{s&&t.signal.removeEventListener("abort",s)}return i}(t,n,e,o,r,c):Promise.resolve({type:b.data,result:void 0}))})})),m=await e({matches:p,request:n,params:o[0].params,fetcherKey:i,context:c});try{await Promise.all(d)}catch(e){}return m}(v,e,0,r,n,a,i,c,o)}catch(e){return n.forEach((t=>{u[t.route.id]={type:b.error,error:e}})),u}for(let[e,t]of Object.entries(l))if(He(t)){let n=t.result;u[e]={type:b.redirect,response:ke(n,r,e,a,p,g.v7_relativeSplatPath)}}else u[e]=await Le(t);return u}async function ue(t,r,n,a,o){let i=t.matches,s=le("loader",0,o,n,r,null),l=Promise.all(a.map((async t=>{if(t.matches&&t.match&&t.controller){let r=(await le("loader",0,Te(e.history,t.path,t.controller.signal),[t.match],t.matches,t.key))[t.match.route.id];return{[t.key]:r}}return Promise.resolve({[t.key]:{type:b.error,error:Be(404,{pathname:t.path})}})}))),u=await s,c=(await l).reduce(((e,t)=>Object.assign(e,t)),{});return await Promise.all([qe(r,u,o.signal,i,t.loaderData),Xe(r,c,a)]),{loaderResults:u,fetcherResults:c}}function ye(){W=!0,K.push(...it()),G.forEach(((e,t)=>{V.has(t)&&$.add(t),Ae(t)}))}function we(e,t,r){void 0===r&&(r={}),j.fetchers.set(e,t),re({fetchers:new Map(j.fetchers)},{flushSync:!0===(r&&r.flushSync)})}function Re(e,t,r,n){void 0===n&&(n={});let a=Fe(j.matches,t);Ce(e),re({errors:{[a.route.id]:r},fetchers:new Map(j.fetchers)},{flushSync:!0===(n&&n.flushSync)})}function xe(e){return g.v7_fetcherPersist&&(Q.set(e,(Q.get(e)||0)+1),Z.has(e)&&Z.delete(e)),j.fetchers.get(e)||he}function Ce(e){let t=j.fetchers.get(e);!V.has(e)||t&&"loading"===t.state&&q.has(e)||Ae(e),G.delete(e),q.delete(e),X.delete(e),Z.delete(e),$.delete(e),j.fetchers.delete(e)}function Ae(e){let t=V.get(e);t&&(t.abort(),V.delete(e))}function Me(e){for(let t of e){let e=nt(xe(t).data);j.fetchers.set(t,e)}}function ze(){let e=[],t=!1;for(let r of X){let n=j.fetchers.get(r);h(n,"Expected fetcher: "+r),"loading"===n.state&&(X.delete(r),e.push(r),t=!0)}return Me(e),t}function Ve(e){let t=[];for(let[r,n]of q)if(n<e){let e=j.fetchers.get(r);h(e,"Expected fetcher: "+r),"loading"===e.state&&(Ae(r),q.delete(r),t.push(r))}return Me(t),t.length>0}function Je(e){j.blockers.delete(e),te.delete(e)}function Qe(e,t){let r=j.blockers.get(e)||fe;h("unblocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"blocked"===t.state||"blocked"===r.state&&"proceeding"===t.state||"blocked"===r.state&&"unblocked"===t.state||"proceeding"===r.state&&"unblocked"===t.state,"Invalid blocker state transition: "+r.state+" -> "+t.state);let n=new Map(j.blockers);n.set(e,t),re({blockers:n})}function at(e){let{currentLocation:t,nextLocation:r,historyAction:n}=e;if(0===te.size)return;te.size>1&&f(!1,"A router only supports one blocker at a time");let a=Array.from(te.entries()),[o,i]=a[a.length-1],s=j.blockers.get(o);return s&&"proceeding"===s.state?void 0:i({currentLocation:t,nextLocation:r,historyAction:n})?o:void 0}function ot(e){let t=Be(404,{pathname:e}),r=i||d,{matches:n,route:a}=Ne(r);return it(),{notFoundMatches:n,route:a,error:t}}function it(e){let t=[];return ee.forEach(((r,n)=>{e&&!e(n)||(r.cancel(),t.push(n),ee.delete(n))})),t}function st(e,t){return L&&L(e,t.map((e=>x(e,j.loaderData))))||e.key}function lt(e,t){if(P){let r=st(e,t),n=P[r];if("number"==typeof n)return n}return null}function ut(e,t,r){if(y){if(!e)return{active:!0,matches:R(t,r,p,!0)||[]};if(Object.keys(e[0].params).length>0)return{active:!0,matches:R(t,r,p,!0)}}return{active:!1,matches:null}}async function ct(e,t,r){if(!y)return{type:"success",matches:e};let n=e;for(;;){let e=null==i,a=i||d,s=c;try{await y({path:t,matches:n,patch:(e,t)=>{r.aborted||De(e,t,a,s,o)}})}catch(e){return{type:"error",error:e,partialMatches:n}}finally{e&&!r.aborted&&(d=[...d])}if(r.aborted)return{type:"aborted"};let l=E(a,t,p);if(l)return{type:"success",matches:l};let u=R(a,t,p,!0);if(!u||n.length===u.length&&n.every(((e,t)=>e.route.id===u[t].route.id)))return{type:"success",matches:null};n=u}}return u={get basename(){return p},get future(){return g},get state(){return j},get routes(){return d},get window(){return t},initialize:function(){if(D=e.history.listen((t=>{let{action:r,location:n,delta:a}=t;if(U)return U(),void(U=void 0);f(0===te.size||null!=a,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let o=at({currentLocation:j.location,nextLocation:n,historyAction:r});if(o&&null!=a){let t=new Promise((e=>{U=e}));return e.history.go(-1*a),void Qe(o,{state:"blocked",location:n,proceed(){Qe(o,{state:"proceeding",proceed:void 0,reset:void 0,location:n}),t.then((()=>e.history.go(a)))},reset(){let e=new Map(j.blockers);e.set(o,fe),re({blockers:e})}})}return oe(r,n)})),r){!function(e,t){try{let r=e.sessionStorage.getItem(ve);if(r){let e=JSON.parse(r);for(let[r,n]of Object.entries(e||{}))n&&Array.isArray(n)&&t.set(r,new Set(n||[]))}}catch(e){}}(t,I);let e=()=>function(e,t){if(t.size>0){let r={};for(let[e,n]of t)r[e]=[...n];try{e.sessionStorage.setItem(ve,JSON.stringify(r))}catch(e){f(!1,"Failed to save applied view transitions in sessionStorage ("+e+").")}}}(t,I);t.addEventListener("pagehide",e),z=()=>t.removeEventListener("pagehide",e)}return j.initialized||oe(n.Pop,j.location,{initialHydration:!0}),u},subscribe:function(e){return C.add(e),()=>C.delete(e)},enableScrollRestoration:function(e,t,r){if(P=e,k=t,L=r||null,!_&&j.navigation===de){_=!0;let e=lt(j.location,j.matches);null!=e&&re({restoreScrollPosition:e})}return()=>{P=null,k=null,L=null}},navigate:async function t(r,a){if("number"==typeof r)return void e.history.go(r);let o=ge(j.location,j.matches,p,g.v7_prependBasename,r,g.v7_relativeSplatPath,null==a?void 0:a.fromRouteId,null==a?void 0:a.relative),{path:i,submission:l,error:u}=be(g.v7_normalizeFormMethod,!1,o,a),c=j.location,d=m(j.location,i,a&&a.state);d=s({},d,e.history.encodeLocation(d));let h=a&&null!=a.replace?a.replace:void 0,f=n.Push;!0===h?f=n.Replace:!1===h||null!=l&&Ye(l.formMethod)&&l.formAction===j.location.pathname+j.location.search&&(f=n.Replace);let v=a&&"preventScrollReset"in a?!0===a.preventScrollReset:void 0,y=!0===(a&&a.flushSync),b=at({currentLocation:c,nextLocation:d,historyAction:f});if(!b)return await oe(f,d,{submission:l,pendingError:u,preventScrollReset:v,replace:a&&a.replace,enableViewTransition:a&&a.viewTransition,flushSync:y});Qe(b,{state:"blocked",location:d,proceed(){Qe(b,{state:"proceeding",proceed:void 0,reset:void 0,location:d}),t(r,a)},reset(){let e=new Map(j.blockers);e.set(b,fe),re({blockers:e})}})},fetch:function(t,r,n,o){if(a)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");Ae(t);let s=!0===(o&&o.flushSync),l=i||d,u=ge(j.location,j.matches,p,g.v7_prependBasename,n,g.v7_relativeSplatPath,r,null==o?void 0:o.relative),c=E(l,u,p),f=ut(c,l,u);if(f.active&&f.matches&&(c=f.matches),!c)return void Re(t,r,Be(404,{pathname:u}),{flushSync:s});let{path:m,submission:v,error:y}=be(g.v7_normalizeFormMethod,!0,u,o);if(y)return void Re(t,r,y,{flushSync:s});let b=Ze(c,m),w=!0===(o&&o.preventScrollReset);v&&Ye(v.formMethod)?async function(t,r,n,a,o,s,l,u,c){function f(e){if(!e.route.action&&!e.route.lazy){let e=Be(405,{method:c.formMethod,pathname:n,routeId:r});return Re(t,r,e,{flushSync:l}),!0}return!1}if(ye(),G.delete(t),!s&&f(a))return;let m=j.fetchers.get(t);we(t,function(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}(c,m),{flushSync:l});let v=new AbortController,y=Te(e.history,n,v.signal,c);if(s){let e=await ct(o,n,y.signal);if("aborted"===e.type)return;if("error"===e.type)return void Re(t,r,e.error,{flushSync:l});if(!e.matches)return void Re(t,r,Be(404,{pathname:n}),{flushSync:l});if(f(a=Ze(o=e.matches,n)))return}V.set(t,v);let b=J,w=(await le("action",0,y,[a],o,t))[a.route.id];if(y.signal.aborted)return void(V.get(t)===v&&V.delete(t));if(g.v7_fetcherPersist&&Z.has(t)){if($e(w)||Ke(w))return void we(t,nt(void 0))}else{if($e(w))return V.delete(t),Y>b?void we(t,nt(void 0)):(X.add(t),we(t,rt(c)),se(y,w,!1,{fetcherSubmission:c,preventScrollReset:u}));if(Ke(w))return void Re(t,r,w.error)}if(We(w))throw Be(400,{type:"defer-action"});let S=j.navigation.location||j.location,R=Te(e.history,S,v.signal),x=i||d,D="idle"!==j.navigation.state?E(x,j.navigation.location,p):j.matches;h(D,"Didn't find any matches after fetcher action");let C=++J;q.set(t,C);let P=rt(c,w.data);j.fetchers.set(t,P);let[L,k]=Se(e.history,j,D,c,S,!1,g.v7_skipActionErrorRevalidation,W,K,$,Z,G,X,x,p,[a.route.id,w]);k.filter((e=>e.key!==t)).forEach((e=>{let t=e.key,r=j.fetchers.get(t),n=rt(void 0,r?r.data:void 0);j.fetchers.set(t,n),Ae(t),e.controller&&V.set(t,e.controller)})),re({fetchers:new Map(j.fetchers)});let _=()=>k.forEach((e=>Ae(e.key)));v.signal.addEventListener("abort",_);let{loaderResults:T,fetcherResults:A}=await ue(j,D,L,k,R);if(v.signal.aborted)return;v.signal.removeEventListener("abort",_),q.delete(t),V.delete(t),k.forEach((e=>V.delete(e.key)));let U=Ie(T);if(U)return se(R,U.result,!1,{preventScrollReset:u});if(U=Ie(A),U)return X.add(U.key),se(R,U.result,!1,{preventScrollReset:u});let{loaderData:F,errors:N}=Ue(j,D,T,void 0,k,A,ee);if(j.fetchers.has(t)){let e=nt(w.data);j.fetchers.set(t,e)}Ve(C),"loading"===j.navigation.state&&C>Y?(h(O,"Expected pending action"),M&&M.abort(),ne(j.navigation.location,{matches:D,loaderData:F,errors:N,fetchers:new Map(j.fetchers)})):(re({errors:N,loaderData:je(j.loaderData,F,D,N),fetchers:new Map(j.fetchers)}),W=!1)}(t,r,m,b,c,f.active,s,w,v):(G.set(t,{routeId:r,path:m}),async function(t,r,n,a,o,i,s,l,u){let c=j.fetchers.get(t);we(t,rt(u,c?c.data:void 0),{flushSync:s});let d=new AbortController,f=Te(e.history,n,d.signal);if(i){let e=await ct(o,n,f.signal);if("aborted"===e.type)return;if("error"===e.type)return void Re(t,r,e.error,{flushSync:s});if(!e.matches)return void Re(t,r,Be(404,{pathname:n}),{flushSync:s});a=Ze(o=e.matches,n)}V.set(t,d);let p=J,m=(await le("loader",0,f,[a],o,t))[a.route.id];if(We(m)&&(m=await Ge(m,f.signal,!0)||m),V.get(t)===d&&V.delete(t),!f.signal.aborted){if(!Z.has(t))return $e(m)?Y>p?void we(t,nt(void 0)):(X.add(t),void await se(f,m,!1,{preventScrollReset:l})):void(Ke(m)?Re(t,r,m.error):(h(!We(m),"Unhandled fetcher deferred data"),we(t,nt(m.data))));we(t,nt(void 0))}}(t,r,m,b,c,f.active,s,w,v))},revalidate:function(){ye(),re({revalidation:"loading"}),"submitting"!==j.navigation.state&&("idle"!==j.navigation.state?oe(O||j.historyAction,j.navigation.location,{overrideNavigation:j.navigation,enableViewTransition:!0===N}):oe(j.historyAction,j.location,{startUninterruptedRevalidation:!0}))},createHref:t=>e.history.createHref(t),encodeLocation:t=>e.history.encodeLocation(t),getFetcher:xe,deleteFetcher:function(e){if(g.v7_fetcherPersist){let t=(Q.get(e)||0)-1;t<=0?(Q.delete(e),Z.add(e)):Q.set(e,t)}else Ce(e);re({fetchers:new Map(j.fetchers)})},dispose:function(){D&&D(),z&&z(),C.clear(),M&&M.abort(),j.fetchers.forEach(((e,t)=>Ce(t))),j.blockers.forEach(((e,t)=>Je(t)))},getBlocker:function(e,t){let r=j.blockers.get(e)||fe;return te.get(e)!==t&&te.set(e,t),r},deleteBlocker:Je,patchRoutes:function(e,t){let r=null==i;De(e,t,i||d,c,o),r&&(d=[...d],re({}))},_internalFetchControllers:V,_internalActiveDeferreds:ee,_internalSetRoutes:function(e){c={},i=S(e,o,void 0,c)}},u}function ge(e,t,r,n,a,o,i,s){let l,u;if(i){l=[];for(let e of t)if(l.push(e),e.route.id===i){u=e;break}}else l=t,u=t[t.length-1];let c=K(a||".",W(l,o),B(e.pathname,r)||e.pathname,"path"===s);if(null==a&&(c.search=e.search,c.hash=e.hash),(null==a||""===a||"."===a)&&u){let e=Qe(c.search);if(u.route.index&&!e)c.search=c.search?c.search.replace(/^\?/,"?index&"):"?index";else if(!u.route.index&&e){let e=new URLSearchParams(c.search),t=e.getAll("index");e.delete("index"),t.filter((e=>e)).forEach((t=>e.append("index",t)));let r=e.toString();c.search=r?"?"+r:""}}return n&&"/"!==r&&(c.pathname="/"===c.pathname?r:$([r,c.pathname])),v(c)}function be(e,t,r,n){if(!n||!function(e){return null!=e&&("formData"in e&&null!=e.formData||"body"in e&&void 0!==e.body)}(n))return{path:r};if(n.formMethod&&(a=n.formMethod,!le.has(a.toLowerCase())))return{path:r,error:Be(405,{method:n.formMethod})};var a;let o,i,s=()=>({path:r,error:Be(400,{type:"invalid-body"})}),l=n.formMethod||"get",u=e?l.toUpperCase():l.toLowerCase(),c=ze(r);if(void 0!==n.body){if("text/plain"===n.formEncType){if(!Ye(u))return s();let e="string"==typeof n.body?n.body:n.body instanceof FormData||n.body instanceof URLSearchParams?Array.from(n.body.entries()).reduce(((e,t)=>{let[r,n]=t;return""+e+r+"="+n+"\n"}),""):String(n.body);return{path:r,submission:{formMethod:u,formAction:c,formEncType:n.formEncType,formData:void 0,json:void 0,text:e}}}if("application/json"===n.formEncType){if(!Ye(u))return s();try{let e="string"==typeof n.body?JSON.parse(n.body):n.body;return{path:r,submission:{formMethod:u,formAction:c,formEncType:n.formEncType,formData:void 0,json:e,text:void 0}}}catch(e){return s()}}}if(h("function"==typeof FormData,"FormData is not available in this environment"),n.formData)o=Ae(n.formData),i=n.formData;else if(n.body instanceof FormData)o=Ae(n.body),i=n.body;else if(n.body instanceof URLSearchParams)o=n.body,i=Me(o);else if(null==n.body)o=new URLSearchParams,i=new FormData;else try{o=new URLSearchParams(n.body),i=Me(o)}catch(e){return s()}let d={formMethod:u,formAction:c,formEncType:n&&n.formEncType||"application/x-www-form-urlencoded",formData:i,json:void 0,text:void 0};if(Ye(d.formMethod))return{path:r,submission:d};let f=y(r);return t&&f.search&&Qe(f.search)&&o.append("index",""),f.search="?"+o,{path:v(f),submission:d}}function we(e,t,r){void 0===r&&(r=!1);let n=e.findIndex((e=>e.route.id===t));return n>=0?e.slice(0,r?n+1:n):e}function Se(e,t,r,n,a,o,i,l,u,c,d,h,f,p,m,v){let y=v?Ke(v[1])?v[1].error:v[1].data:void 0,g=e.createURL(t.location),b=e.createURL(a),w=r;o&&t.errors?w=we(r,Object.keys(t.errors)[0],!0):v&&Ke(v[1])&&(w=we(r,v[0]));let S=v?v[1].statusCode:void 0,R=i&&S&&S>=400,x=w.filter(((e,r)=>{let{route:a}=e;if(a.lazy)return!0;if(null==a.loader)return!1;if(o)return Ee(a,t.loaderData,t.errors);if(function(e,t,r){let n=!t||r.route.id!==t.route.id,a=void 0===e[r.route.id];return n||a}(t.loaderData,t.matches[r],e)||u.some((t=>t===e.route.id)))return!0;let i=t.matches[r],c=e;return xe(e,s({currentUrl:g,currentParams:i.params,nextUrl:b,nextParams:c.params},n,{actionResult:y,actionStatus:S,defaultShouldRevalidate:!R&&(l||g.pathname+g.search===b.pathname+b.search||g.search!==b.search||Re(i,c))}))})),D=[];return h.forEach(((e,a)=>{if(o||!r.some((t=>t.route.id===e.routeId))||d.has(a))return;let i=E(p,e.path,m);if(!i)return void D.push({key:a,routeId:e.routeId,path:e.path,matches:null,match:null,controller:null});let u=t.fetchers.get(a),h=Ze(i,e.path),v=!1;f.has(a)?v=!1:c.has(a)?(c.delete(a),v=!0):v=u&&"idle"!==u.state&&void 0===u.data?l:xe(h,s({currentUrl:g,currentParams:t.matches[t.matches.length-1].params,nextUrl:b,nextParams:r[r.length-1].params},n,{actionResult:y,actionStatus:S,defaultShouldRevalidate:!R&&l})),v&&D.push({key:a,routeId:e.routeId,path:e.path,matches:i,match:h,controller:new AbortController})})),[x,D]}function Ee(e,t,r){if(e.lazy)return!0;if(!e.loader)return!1;let n=null!=t&&void 0!==t[e.id],a=null!=r&&void 0!==r[e.id];return!(!n&&a)&&("function"==typeof e.loader&&!0===e.loader.hydrate||!n&&!a)}function Re(e,t){let r=e.route.path;return e.pathname!==t.pathname||null!=r&&r.endsWith("*")&&e.params["*"]!==t.params["*"]}function xe(e,t){if(e.route.shouldRevalidate){let r=e.route.shouldRevalidate(t);if("boolean"==typeof r)return r}return t.defaultShouldRevalidate}function De(e,t,r,n,a){var o;let i;if(e){let t=n[e];h(t,"No route found to patch children into: routeId = "+e),t.children||(t.children=[]),i=t.children}else i=r;let s=S(t.filter((e=>!i.some((t=>Ce(e,t))))),a,[e||"_","patch",String((null==(o=i)?void 0:o.length)||"0")],n);i.push(...s)}function Ce(e,t){return"id"in e&&"id"in t&&e.id===t.id||e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive&&(!(e.children&&0!==e.children.length||t.children&&0!==t.children.length)||e.children.every(((e,r)=>{var n;return null==(n=t.children)?void 0:n.some((t=>Ce(e,t)))})))}async function Pe(e){let{matches:t}=e,r=t.filter((e=>e.shouldLoad));return(await Promise.all(r.map((e=>e.resolve())))).reduce(((e,t,n)=>Object.assign(e,{[r[n].route.id]:t})),{})}async function Le(e){let{result:t,type:r}=e;if(Je(t)){let e;try{let r=t.headers.get("Content-Type");e=r&&/\bapplication\/json\b/.test(r)?null==t.body?null:await t.json():await t.text()}catch(e){return{type:b.error,error:e}}return r===b.error?{type:b.error,error:new ne(t.status,t.statusText,e),statusCode:t.status,headers:t.headers}:{type:b.data,data:e,statusCode:t.status,headers:t.headers}}if(r===b.error){if(Ve(t)){var n,a;if(t.data instanceof Error)return{type:b.error,error:t.data,statusCode:null==(a=t.init)?void 0:a.status};t=new ne((null==(n=t.init)?void 0:n.status)||500,void 0,t.data)}return{type:b.error,error:t,statusCode:ae(t)?t.status:void 0}}var o,i,s,l;return function(e){let t=e;return t&&"object"==typeof t&&"object"==typeof t.data&&"function"==typeof t.subscribe&&"function"==typeof t.cancel&&"function"==typeof t.resolveData}(t)?{type:b.deferred,deferredData:t,statusCode:null==(o=t.init)?void 0:o.status,headers:(null==(i=t.init)?void 0:i.headers)&&new Headers(t.init.headers)}:Ve(t)?{type:b.data,data:t.data,statusCode:null==(s=t.init)?void 0:s.status,headers:null!=(l=t.init)&&l.headers?new Headers(t.init.headers):void 0}:{type:b.data,data:t}}function ke(e,t,r,n,a,o){let i=e.headers.get("Location");if(h(i,"Redirects returned/thrown from loaders/actions must have a Location header"),!pe.test(i)){let s=n.slice(0,n.findIndex((e=>e.route.id===r))+1);i=ge(new URL(t.url),s,a,!0,i,o),e.headers.set("Location",i)}return e}function _e(e,t,r){if(pe.test(e)){let n=e,a=n.startsWith("//")?new URL(t.protocol+n):new URL(n),o=null!=B(a.pathname,r);if(a.origin===t.origin&&o)return a.pathname+a.search+a.hash}return e}function Te(e,t,r,n){let a=e.createURL(ze(t)).toString(),o={signal:r};if(n&&Ye(n.formMethod)){let{formMethod:e,formEncType:t}=n;o.method=e.toUpperCase(),"application/json"===t?(o.headers=new Headers({"Content-Type":t}),o.body=JSON.stringify(n.json)):"text/plain"===t?o.body=n.text:"application/x-www-form-urlencoded"===t&&n.formData?o.body=Ae(n.formData):o.body=n.formData}return new Request(a,o)}function Ae(e){let t=new URLSearchParams;for(let[r,n]of e.entries())t.append(r,"string"==typeof n?n:n.name);return t}function Me(e){let t=new FormData;for(let[r,n]of e.entries())t.append(r,n);return t}function Ue(e,t,r,n,a,o,i){let{loaderData:l,errors:u}=function(e,t,r,n,a){let o,i={},s=null,l=!1,u={},c=r&&Ke(r[1])?r[1].error:void 0;return e.forEach((r=>{if(!(r.route.id in t))return;let d=r.route.id,f=t[d];if(h(!$e(f),"Cannot handle redirect results in processLoaderData"),Ke(f)){let t=f.error;if(void 0!==c&&(t=c,c=void 0),s=s||{},a)s[d]=t;else{let r=Fe(e,d);null==s[r.route.id]&&(s[r.route.id]=t)}i[d]=void 0,l||(l=!0,o=ae(f.error)?f.error.status:500),f.headers&&(u[d]=f.headers)}else We(f)?(n.set(d,f.deferredData),i[d]=f.deferredData.data,null==f.statusCode||200===f.statusCode||l||(o=f.statusCode),f.headers&&(u[d]=f.headers)):(i[d]=f.data,f.statusCode&&200!==f.statusCode&&!l&&(o=f.statusCode),f.headers&&(u[d]=f.headers))})),void 0!==c&&r&&(s={[r[0]]:c},i[r[0]]=void 0),{loaderData:i,errors:s,statusCode:o||200,loaderHeaders:u}}(t,r,n,i,!1);return a.forEach((t=>{let{key:r,match:n,controller:a}=t,i=o[r];if(h(i,"Did not find corresponding fetcher result"),!a||!a.signal.aborted)if(Ke(i)){let t=Fe(e.matches,null==n?void 0:n.route.id);u&&u[t.route.id]||(u=s({},u,{[t.route.id]:i.error})),e.fetchers.delete(r)}else if($e(i))h(!1,"Unhandled fetcher revalidation redirect");else if(We(i))h(!1,"Unhandled fetcher deferred data");else{let t=nt(i.data);e.fetchers.set(r,t)}})),{loaderData:l,errors:u}}function je(e,t,r,n){let a=s({},t);for(let o of r){let r=o.route.id;if(t.hasOwnProperty(r)?void 0!==t[r]&&(a[r]=t[r]):void 0!==e[r]&&o.route.loader&&(a[r]=e[r]),n&&n.hasOwnProperty(r))break}return a}function Oe(e){return e?Ke(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function Fe(e,t){return(t?e.slice(0,e.findIndex((e=>e.route.id===t))+1):[...e]).reverse().find((e=>!0===e.route.hasErrorBoundary))||e[0]}function Ne(e){let t=1===e.length?e[0]:e.find((e=>e.index||!e.path||"/"===e.path))||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function Be(e,t){let{pathname:r,routeId:n,method:a,type:o,message:i}=void 0===t?{}:t,s="Unknown Server Error",l="Unknown @remix-run/router error";return 400===e?(s="Bad Request",a&&r&&n?l="You made a "+a+' request to "'+r+'" but did not provide a `loader` for route "'+n+'", so there is no way to handle the request.':"defer-action"===o?l="defer() is not supported in actions":"invalid-body"===o&&(l="Unable to encode submission body")):403===e?(s="Forbidden",l='Route "'+n+'" does not match URL "'+r+'"'):404===e?(s="Not Found",l='No route matches URL "'+r+'"'):405===e&&(s="Method Not Allowed",a&&r&&n?l="You made a "+a.toUpperCase()+' request to "'+r+'" but did not provide an `action` for route "'+n+'", so there is no way to handle the request.':a&&(l='Invalid request method "'+a.toUpperCase()+'"')),new ne(e||500,s,new Error(l),!0)}function Ie(e){let t=Object.entries(e);for(let e=t.length-1;e>=0;e--){let[r,n]=t[e];if($e(n))return{key:r,result:n}}}function ze(e){return v(s({},"string"==typeof e?y(e):e,{hash:""}))}function He(e){return Je(e.result)&&ue.has(e.result.status)}function We(e){return e.type===b.deferred}function Ke(e){return e.type===b.error}function $e(e){return(e&&e.type)===b.redirect}function Ve(e){return"object"==typeof e&&null!=e&&"type"in e&&"data"in e&&"init"in e&&"DataWithResponseInit"===e.type}function Je(e){return null!=e&&"number"==typeof e.status&&"string"==typeof e.statusText&&"object"==typeof e.headers&&void 0!==e.body}function Ye(e){return ie.has(e.toLowerCase())}async function qe(e,t,r,n,a){let o=Object.entries(t);for(let i=0;i<o.length;i++){let[s,l]=o[i],u=e.find((e=>(null==e?void 0:e.route.id)===s));if(!u)continue;let c=n.find((e=>e.route.id===u.route.id)),d=null!=c&&!Re(c,u)&&void 0!==(a&&a[u.route.id]);We(l)&&d&&await Ge(l,r,!1).then((e=>{e&&(t[s]=e)}))}}async function Xe(e,t,r){for(let n=0;n<r.length;n++){let{key:a,routeId:o,controller:i}=r[n],s=t[a];e.find((e=>(null==e?void 0:e.route.id)===o))&&We(s)&&(h(i,"Expected an AbortController for revalidating fetcher deferred result"),await Ge(s,i.signal,!0).then((e=>{e&&(t[a]=e)})))}}async function Ge(e,t,r){if(void 0===r&&(r=!1),!await e.deferredData.resolveData(t)){if(r)try{return{type:b.data,data:e.deferredData.unwrappedData}}catch(e){return{type:b.error,error:e}}return{type:b.data,data:e.deferredData.data}}}function Qe(e){return new URLSearchParams(e).getAll("index").some((e=>""===e))}function Ze(e,t){let r="string"==typeof t?y(t).search:t.search;if(e[e.length-1].route.index&&Qe(r||""))return e[e.length-1];let n=H(e);return n[n.length-1]}function et(e){let{formMethod:t,formAction:r,formEncType:n,text:a,formData:o,json:i}=e;if(t&&r&&n)return null!=a?{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:void 0,text:a}:null!=o?{formMethod:t,formAction:r,formEncType:n,formData:o,json:void 0,text:void 0}:void 0!==i?{formMethod:t,formAction:r,formEncType:n,formData:void 0,json:i,text:void 0}:void 0}function tt(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function rt(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function nt(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function at(){return at=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},at.apply(this,arguments)}Symbol("deferred");const ot=a.createContext(null),it=a.createContext(null),st=a.createContext(null),lt=a.createContext(null),ut=a.createContext(null),ct=a.createContext({outlet:null,matches:[],isDataRoute:!1}),dt=a.createContext(null);function ht(e,t){let{relative:r}=void 0===t?{}:t;ft()||h(!1);let{basename:n,navigator:o}=a.useContext(lt),{hash:i,pathname:s,search:l}=Rt(e,{relative:r}),u=s;return"/"!==n&&(u="/"===s?n:$([n,s])),o.createHref({pathname:u,search:l,hash:i})}function ft(){return null!=a.useContext(ut)}function pt(){return ft()||h(!1),a.useContext(ut).location}function mt(){return a.useContext(ut).navigationType}function vt(e){ft()||h(!1);let{pathname:t}=pt();return a.useMemo((()=>F(e,N(t))),[t,e])}function yt(e){a.useContext(lt).static||a.useLayoutEffect(e)}function gt(){let{isDataRoute:e}=a.useContext(ct);return e?function(){let{router:e}=Mt(Tt.UseNavigateStable),t=jt(At.UseNavigateStable),r=a.useRef(!1);return yt((()=>{r.current=!0})),a.useCallback((function(n,a){void 0===a&&(a={}),r.current&&("number"==typeof n?e.navigate(n):e.navigate(n,at({fromRouteId:t},a)))}),[e,t])}():function(){ft()||h(!1);let e=a.useContext(ot),{basename:t,future:r,navigator:n}=a.useContext(lt),{matches:o}=a.useContext(ct),{pathname:i}=pt(),s=JSON.stringify(W(o,r.v7_relativeSplatPath)),l=a.useRef(!1);return yt((()=>{l.current=!0})),a.useCallback((function(r,a){if(void 0===a&&(a={}),!l.current)return;if("number"==typeof r)return void n.go(r);let o=K(r,JSON.parse(s),i,"path"===a.relative);null==e&&"/"!==t&&(o.pathname="/"===o.pathname?t:$([t,o.pathname])),(a.replace?n.replace:n.push)(o,a.state,a)}),[t,n,s,i,e])}()}const bt=a.createContext(null);function wt(){return a.useContext(bt)}function St(e){let t=a.useContext(ct).outlet;return t?a.createElement(bt.Provider,{value:e},t):t}function Et(){let{matches:e}=a.useContext(ct),t=e[e.length-1];return t?t.params:{}}function Rt(e,t){let{relative:r}=void 0===t?{}:t,{future:n}=a.useContext(lt),{matches:o}=a.useContext(ct),{pathname:i}=pt(),s=JSON.stringify(W(o,n.v7_relativeSplatPath));return a.useMemo((()=>K(e,JSON.parse(s),i,"path"===r)),[e,s,i,r])}function xt(e,t){return Dt(e,t)}function Dt(e,t,r,o){ft()||h(!1);let{navigator:i}=a.useContext(lt),{matches:s}=a.useContext(ct),l=s[s.length-1],u=l?l.params:{},c=(l&&l.pathname,l?l.pathnameBase:"/");l&&l.route;let d,f=pt();if(t){var p;let e="string"==typeof t?y(t):t;"/"===c||(null==(p=e.pathname)?void 0:p.startsWith(c))||h(!1),d=e}else d=f;let m=d.pathname||"/",v=m;if("/"!==c){let e=c.replace(/^\//,"").split("/");v="/"+m.replace(/^\//,"").split("/").slice(e.length).join("/")}let g=E(e,{pathname:v}),b=_t(g&&g.map((e=>Object.assign({},e,{params:Object.assign({},u,e.params),pathname:$([c,i.encodeLocation?i.encodeLocation(e.pathname).pathname:e.pathname]),pathnameBase:"/"===e.pathnameBase?c:$([c,i.encodeLocation?i.encodeLocation(e.pathnameBase).pathname:e.pathnameBase])}))),s,r,o);return t&&b?a.createElement(ut.Provider,{value:{location:at({pathname:"/",search:"",hash:"",state:null,key:"default"},d),navigationType:n.Pop}},b):b}function Ct(){let e=Wt(),t=ae(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),r=e instanceof Error?e.stack:null,n={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return a.createElement(a.Fragment,null,a.createElement("h2",null,"Unexpected Application Error!"),a.createElement("h3",{style:{fontStyle:"italic"}},t),r?a.createElement("pre",{style:n},r):null,null)}const Pt=a.createElement(Ct,null);class Lt extends a.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||"idle"!==t.revalidation&&"idle"===e.revalidation?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:void 0!==e.error?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){console.error("React Router caught the following error during render",e,t)}render(){return void 0!==this.state.error?a.createElement(ct.Provider,{value:this.props.routeContext},a.createElement(dt.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function kt(e){let{routeContext:t,match:r,children:n}=e,o=a.useContext(ot);return o&&o.static&&o.staticContext&&(r.route.errorElement||r.route.ErrorBoundary)&&(o.staticContext._deepestRenderedBoundaryId=r.route.id),a.createElement(ct.Provider,{value:t},n)}function _t(e,t,r,n){var o;if(void 0===t&&(t=[]),void 0===r&&(r=null),void 0===n&&(n=null),null==e){var i;if(!r)return null;if(r.errors)e=r.matches;else{if(!(null!=(i=n)&&i.v7_partialHydration&&0===t.length&&!r.initialized&&r.matches.length>0))return null;e=r.matches}}let s=e,l=null==(o=r)?void 0:o.errors;if(null!=l){let e=s.findIndex((e=>e.route.id&&void 0!==(null==l?void 0:l[e.route.id])));e>=0||h(!1),s=s.slice(0,Math.min(s.length,e+1))}let u=!1,c=-1;if(r&&n&&n.v7_partialHydration)for(let e=0;e<s.length;e++){let t=s[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(c=e),t.route.id){let{loaderData:e,errors:n}=r,a=t.route.loader&&void 0===e[t.route.id]&&(!n||void 0===n[t.route.id]);if(t.route.lazy||a){u=!0,s=c>=0?s.slice(0,c+1):[s[0]];break}}}return s.reduceRight(((e,n,o)=>{let i,d=!1,h=null,f=null;var p;r&&(i=l&&n.route.id?l[n.route.id]:void 0,h=n.route.errorElement||Pt,u&&(c<0&&0===o?(Yt[p="route-fallback"]||(Yt[p]=!0),d=!0,f=null):c===o&&(d=!0,f=n.route.hydrateFallbackElement||null)));let m=t.concat(s.slice(0,o+1)),v=()=>{let t;return t=i?h:d?f:n.route.Component?a.createElement(n.route.Component,null):n.route.element?n.route.element:e,a.createElement(kt,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:null!=r},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||0===o)?a.createElement(Lt,{location:r.location,revalidation:r.revalidation,component:h,error:i,children:v(),routeContext:{outlet:null,matches:m,isDataRoute:!0}}):v()}),null)}var Tt=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(Tt||{}),At=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(At||{});function Mt(e){let t=a.useContext(ot);return t||h(!1),t}function Ut(e){let t=a.useContext(it);return t||h(!1),t}function jt(e){let t=function(){let e=a.useContext(ct);return e||h(!1),e}(),r=t.matches[t.matches.length-1];return r.route.id||h(!1),r.route.id}function Ot(){return jt(At.UseRouteId)}function Ft(){return Ut(At.UseNavigation).navigation}function Nt(){let e=Mt(Tt.UseRevalidator),t=Ut(At.UseRevalidator);return a.useMemo((()=>({revalidate:e.router.revalidate,state:t.revalidation})),[e.router.revalidate,t.revalidation])}function Bt(){let{matches:e,loaderData:t}=Ut(At.UseMatches);return a.useMemo((()=>e.map((e=>x(e,t)))),[e,t])}function It(){let e=Ut(At.UseLoaderData),t=jt(At.UseLoaderData);if(!e.errors||null==e.errors[t])return e.loaderData[t];console.error("You cannot `useLoaderData` in an errorElement (routeId: "+t+")")}function zt(e){return Ut(At.UseRouteLoaderData).loaderData[e]}function Ht(){let e=Ut(At.UseActionData),t=jt(At.UseLoaderData);return e.actionData?e.actionData[t]:void 0}function Wt(){var e;let t=a.useContext(dt),r=Ut(At.UseRouteError),n=jt(At.UseRouteError);return void 0!==t?t:null==(e=r.errors)?void 0:e[n]}function Kt(){let e=a.useContext(st);return null==e?void 0:e._data}function $t(){let e=a.useContext(st);return null==e?void 0:e._error}let Vt=0;function Jt(e){let{router:t,basename:r}=Mt(Tt.UseBlocker),n=Ut(At.UseBlocker),[o,i]=a.useState(""),s=a.useCallback((t=>{if("function"!=typeof e)return!!e;if("/"===r)return e(t);let{currentLocation:n,nextLocation:a,historyAction:o}=t;return e({currentLocation:at({},n,{pathname:B(n.pathname,r)||n.pathname}),nextLocation:at({},a,{pathname:B(a.pathname,r)||a.pathname}),historyAction:o})}),[r,e]);return a.useEffect((()=>{let e=String(++Vt);return i(e),()=>t.deleteBlocker(e)}),[t]),a.useEffect((()=>{""!==o&&t.getBlocker(o,s)}),[t,o,s]),o&&n.blockers.has(o)?n.blockers.get(o):fe}const Yt={},qt={},Xt=(e,t,r)=>{var n;qt[n="⚠️ React Router Future Flag Warning: "+t+". You can use the `"+e+"` future flag to opt-in early. For more information, see "+r+"."]||(qt[n]=!0,console.warn(n))};function Gt(e,t){void 0===(null==e?void 0:e.v7_startTransition)&&Xt("v7_startTransition","React Router will begin wrapping state updates in `React.startTransition` in v7","https://reactrouter.com/v6/upgrading/future#v7_starttransition"),void 0!==(null==e?void 0:e.v7_relativeSplatPath)||t&&t.v7_relativeSplatPath||Xt("v7_relativeSplatPath","Relative route resolution within Splat routes is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_relativesplatpath"),t&&(void 0===t.v7_fetcherPersist&&Xt("v7_fetcherPersist","The persistence behavior of fetchers is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_fetcherpersist"),void 0===t.v7_normalizeFormMethod&&Xt("v7_normalizeFormMethod","Casing of `formMethod` fields is being normalized to uppercase in v7","https://reactrouter.com/v6/upgrading/future#v7_normalizeformmethod"),void 0===t.v7_partialHydration&&Xt("v7_partialHydration","`RouterProvider` hydration behavior is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_partialhydration"),void 0===t.v7_skipActionErrorRevalidation&&Xt("v7_skipActionErrorRevalidation","The revalidation behavior after 4xx/5xx `action` responses is changing in v7","https://reactrouter.com/v6/upgrading/future#v7_skipactionerrorrevalidation"))}const Qt=a.startTransition;function Zt(e){let{basename:t,children:r,initialEntries:n,initialIndex:o,future:i}=e,s=a.useRef();null==s.current&&(s.current=u({initialEntries:n,initialIndex:o,v5Compat:!0}));let l=s.current,[c,d]=a.useState({action:l.action,location:l.location}),{v7_startTransition:h}=i||{},f=a.useCallback((e=>{h&&Qt?Qt((()=>d(e))):d(e)}),[d,h]);return a.useLayoutEffect((()=>l.listen(f)),[l,f]),a.useEffect((()=>Gt(i)),[i]),a.createElement(nr,{basename:t,children:r,location:c.location,navigationType:c.action,navigator:l,future:i})}function er(e){let{to:t,replace:r,state:n,relative:o}=e;ft()||h(!1);let{future:i,static:s}=a.useContext(lt),{matches:l}=a.useContext(ct),{pathname:u}=pt(),c=gt(),d=K(t,W(l,i.v7_relativeSplatPath),u,"path"===o),f=JSON.stringify(d);return a.useEffect((()=>c(JSON.parse(f),{replace:r,state:n,relative:o})),[c,f,o,r,n]),null}function tr(e){return St(e.context)}function rr(e){h(!1)}function nr(e){let{basename:t="/",children:r=null,location:o,navigationType:i=n.Pop,navigator:s,static:l=!1,future:u}=e;ft()&&h(!1);let c=t.replace(/^\/*/,"/"),d=a.useMemo((()=>({basename:c,navigator:s,static:l,future:at({v7_relativeSplatPath:!1},u)})),[c,u,s,l]);"string"==typeof o&&(o=y(o));let{pathname:f="/",search:p="",hash:m="",state:v=null,key:g="default"}=o,b=a.useMemo((()=>{let e=B(f,c);return null==e?null:{location:{pathname:e,search:p,hash:m,state:v,key:g},navigationType:i}}),[c,f,p,m,v,g,i]);return null==b?null:a.createElement(lt.Provider,{value:d},a.createElement(ut.Provider,{children:r,value:b}))}function ar(e){let{children:t,location:r}=e;return xt(cr(t),r)}function or(e){let{children:t,errorElement:r,resolve:n}=e;return a.createElement(lr,{resolve:n,errorElement:r},a.createElement(ur,null,t))}var ir=function(e){return e[e.pending=0]="pending",e[e.success=1]="success",e[e.error=2]="error",e}(ir||{});const sr=new Promise((()=>{}));class lr extends a.Component{constructor(e){super(e),this.state={error:null}}static getDerivedStateFromError(e){return{error:e}}componentDidCatch(e,t){console.error("<Await> caught the following error during render",e,t)}render(){let{children:e,errorElement:t,resolve:r}=this.props,n=null,o=ir.pending;if(r instanceof Promise)if(this.state.error){o=ir.error;let e=this.state.error;n=Promise.reject().catch((()=>{})),Object.defineProperty(n,"_tracked",{get:()=>!0}),Object.defineProperty(n,"_error",{get:()=>e})}else r._tracked?(n=r,o="_error"in n?ir.error:"_data"in n?ir.success:ir.pending):(o=ir.pending,Object.defineProperty(r,"_tracked",{get:()=>!0}),n=r.then((e=>Object.defineProperty(r,"_data",{get:()=>e})),(e=>Object.defineProperty(r,"_error",{get:()=>e}))));else o=ir.success,n=Promise.resolve(),Object.defineProperty(n,"_tracked",{get:()=>!0}),Object.defineProperty(n,"_data",{get:()=>r});if(o===ir.error&&n._error instanceof X)throw sr;if(o===ir.error&&!t)throw n._error;if(o===ir.error)return a.createElement(st.Provider,{value:n,children:t});if(o===ir.success)return a.createElement(st.Provider,{value:n,children:e});throw n}}function ur(e){let{children:t}=e,r=Kt(),n="function"==typeof t?t(r):t;return a.createElement(a.Fragment,null,n)}function cr(e,t){void 0===t&&(t=[]);let r=[];return a.Children.forEach(e,((e,n)=>{if(!a.isValidElement(e))return;let o=[...t,n];if(e.type===a.Fragment)return void r.push.apply(r,cr(e.props.children,o));e.type!==rr&&h(!1),e.props.index&&e.props.children&&h(!1);let i={id:e.props.id||o.join("-"),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,loader:e.props.loader,action:e.props.action,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:null!=e.props.ErrorBoundary||null!=e.props.errorElement,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(i.children=cr(e.props.children,o)),r.push(i)})),r}function dr(e){return _t(e)}function hr(e){let t={hasErrorBoundary:null!=e.ErrorBoundary||null!=e.errorElement};return e.Component&&Object.assign(t,{element:a.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:a.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:a.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}function fr(e,t){return ye({basename:null==t?void 0:t.basename,future:at({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:u({initialEntries:null==t?void 0:t.initialEntries,initialIndex:null==t?void 0:t.initialIndex}),hydrationData:null==t?void 0:t.hydrationData,routes:e,mapRouteProperties:hr,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation}).initialize()}function pr(){return pr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},pr.apply(this,arguments)}function mr(e,t){if(null==e)return{};var r,n,a={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(a[r]=e[r]);return a}const vr="get",yr="application/x-www-form-urlencoded";function gr(e){return null!=e&&"string"==typeof e.tagName}function br(e){return void 0===e&&(e=""),new URLSearchParams("string"==typeof e||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce(((t,r)=>{let n=e[r];return t.concat(Array.isArray(n)?n.map((e=>[r,e])):[[r,n]])}),[]))}let wr=null;const Sr=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Er(e){return null==e||Sr.has(e)?e:null}const Rr=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],xr=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],Dr=["fetcherKey","navigate","reloadDocument","replace","state","method","action","onSubmit","relative","preventScrollReset","viewTransition"];try{window.__reactRouterVersion="6"}catch(e){}function Cr(e,t){return ye({basename:null==t?void 0:t.basename,future:pr({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:c({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||Lr(),routes:e,mapRouteProperties:hr,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation,window:null==t?void 0:t.window}).initialize()}function Pr(e,t){return ye({basename:null==t?void 0:t.basename,future:pr({},null==t?void 0:t.future,{v7_prependBasename:!0}),history:d({window:null==t?void 0:t.window}),hydrationData:(null==t?void 0:t.hydrationData)||Lr(),routes:e,mapRouteProperties:hr,dataStrategy:null==t?void 0:t.dataStrategy,patchRoutesOnNavigation:null==t?void 0:t.patchRoutesOnNavigation,window:null==t?void 0:t.window}).initialize()}function Lr(){var e;let t=null==(e=window)?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=pr({},t,{errors:kr(t.errors)})),t}function kr(e){if(!e)return null;let t=Object.entries(e),r={};for(let[e,n]of t)if(n&&"RouteErrorResponse"===n.__type)r[e]=new ne(n.status,n.statusText,n.data,!0===n.internal);else if(n&&"Error"===n.__type){if(n.__subType){let t=window[n.__subType];if("function"==typeof t)try{let a=new t(n.message);a.stack="",r[e]=a}catch(e){}}if(null==r[e]){let t=new Error(n.message);t.stack="",r[e]=t}}else r[e]=n;return r}const _r=a.createContext({isTransitioning:!1}),Tr=a.createContext(new Map),Ar=a.startTransition,Mr=i.flushSync,Ur=a.useId;function jr(e){Mr?Mr(e):e()}class Or{constructor(){this.status="pending",this.promise=new Promise(((e,t)=>{this.resolve=t=>{"pending"===this.status&&(this.status="resolved",e(t))},this.reject=e=>{"pending"===this.status&&(this.status="rejected",t(e))}}))}}function Fr(e){let{fallbackElement:t,router:r,future:n}=e,[o,i]=a.useState(r.state),[s,l]=a.useState(),[u,c]=a.useState({isTransitioning:!1}),[d,h]=a.useState(),[f,p]=a.useState(),[m,v]=a.useState(),y=a.useRef(new Map),{v7_startTransition:g}=n||{},b=a.useCallback((e=>{g?function(e){Ar?Ar(e):e()}(e):e()}),[g]),w=a.useCallback(((e,t)=>{let{deletedFetchers:n,flushSync:a,viewTransitionOpts:o}=t;n.forEach((e=>y.current.delete(e))),e.fetchers.forEach(((e,t)=>{void 0!==e.data&&y.current.set(t,e.data)}));let s=null==r.window||null==r.window.document||"function"!=typeof r.window.document.startViewTransition;if(o&&!s){if(a){jr((()=>{f&&(d&&d.resolve(),f.skipTransition()),c({isTransitioning:!0,flushSync:!0,currentLocation:o.currentLocation,nextLocation:o.nextLocation})}));let t=r.window.document.startViewTransition((()=>{jr((()=>i(e)))}));return t.finished.finally((()=>{jr((()=>{h(void 0),p(void 0),l(void 0),c({isTransitioning:!1})}))})),void jr((()=>p(t)))}f?(d&&d.resolve(),f.skipTransition(),v({state:e,currentLocation:o.currentLocation,nextLocation:o.nextLocation})):(l(e),c({isTransitioning:!0,flushSync:!1,currentLocation:o.currentLocation,nextLocation:o.nextLocation}))}else a?jr((()=>i(e))):b((()=>i(e)))}),[r.window,f,d,y,b]);a.useLayoutEffect((()=>r.subscribe(w)),[r,w]),a.useEffect((()=>{u.isTransitioning&&!u.flushSync&&h(new Or)}),[u]),a.useEffect((()=>{if(d&&s&&r.window){let e=s,t=d.promise,n=r.window.document.startViewTransition((async()=>{b((()=>i(e))),await t}));n.finished.finally((()=>{h(void 0),p(void 0),l(void 0),c({isTransitioning:!1})})),p(n)}}),[b,s,d,r.window]),a.useEffect((()=>{d&&s&&o.location.key===s.location.key&&d.resolve()}),[d,f,o.location,s]),a.useEffect((()=>{!u.isTransitioning&&m&&(l(m.state),c({isTransitioning:!0,flushSync:!1,currentLocation:m.currentLocation,nextLocation:m.nextLocation}),v(void 0))}),[u.isTransitioning,m]),a.useEffect((()=>{}),[]);let S=a.useMemo((()=>({createHref:r.createHref,encodeLocation:r.encodeLocation,go:e=>r.navigate(e),push:(e,t,n)=>r.navigate(e,{state:t,preventScrollReset:null==n?void 0:n.preventScrollReset}),replace:(e,t,n)=>r.navigate(e,{replace:!0,state:t,preventScrollReset:null==n?void 0:n.preventScrollReset})})),[r]),E=r.basename||"/",R=a.useMemo((()=>({router:r,navigator:S,static:!1,basename:E})),[r,S,E]),x=a.useMemo((()=>({v7_relativeSplatPath:r.future.v7_relativeSplatPath})),[r.future.v7_relativeSplatPath]);return a.useEffect((()=>Gt(n,r.future)),[n,r.future]),a.createElement(a.Fragment,null,a.createElement(ot.Provider,{value:R},a.createElement(it.Provider,{value:o},a.createElement(Tr.Provider,{value:y.current},a.createElement(_r.Provider,{value:u},a.createElement(nr,{basename:E,location:o.location,navigationType:o.historyAction,navigator:S,future:x},o.initialized||r.future.v7_partialHydration?a.createElement(Nr,{routes:r.routes,future:r.future,state:o}):t))))),null)}const Nr=a.memo(Br);function Br(e){let{routes:t,future:r,state:n}=e;return Dt(t,void 0,n,r)}function Ir(e){let{basename:t,children:r,future:n,window:o}=e,i=a.useRef();null==i.current&&(i.current=c({window:o,v5Compat:!0}));let s=i.current,[l,u]=a.useState({action:s.action,location:s.location}),{v7_startTransition:d}=n||{},h=a.useCallback((e=>{d&&Ar?Ar((()=>u(e))):u(e)}),[u,d]);return a.useLayoutEffect((()=>s.listen(h)),[s,h]),a.useEffect((()=>Gt(n)),[n]),a.createElement(nr,{basename:t,children:r,location:l.location,navigationType:l.action,navigator:s,future:n})}function zr(e){let{basename:t,children:r,future:n,window:o}=e,i=a.useRef();null==i.current&&(i.current=d({window:o,v5Compat:!0}));let s=i.current,[l,u]=a.useState({action:s.action,location:s.location}),{v7_startTransition:c}=n||{},h=a.useCallback((e=>{c&&Ar?Ar((()=>u(e))):u(e)}),[u,c]);return a.useLayoutEffect((()=>s.listen(h)),[s,h]),a.useEffect((()=>Gt(n)),[n]),a.createElement(nr,{basename:t,children:r,location:l.location,navigationType:l.action,navigator:s,future:n})}function Hr(e){let{basename:t,children:r,future:n,history:o}=e,[i,s]=a.useState({action:o.action,location:o.location}),{v7_startTransition:l}=n||{},u=a.useCallback((e=>{l&&Ar?Ar((()=>s(e))):s(e)}),[s,l]);return a.useLayoutEffect((()=>o.listen(u)),[o,u]),a.useEffect((()=>Gt(n)),[n]),a.createElement(nr,{basename:t,children:r,location:i.location,navigationType:i.action,navigator:o,future:n})}const Wr="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement,Kr=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,$r=a.forwardRef((function(e,t){let r,{onClick:n,relative:o,reloadDocument:i,replace:s,state:l,target:u,to:c,preventScrollReset:d,viewTransition:h}=e,f=mr(e,Rr),{basename:p}=a.useContext(lt),m=!1;if("string"==typeof c&&Kr.test(c)&&(r=c,Wr))try{let e=new URL(window.location.href),t=c.startsWith("//")?new URL(e.protocol+c):new URL(c),r=B(t.pathname,p);t.origin===e.origin&&null!=r?c=r+t.search+t.hash:m=!0}catch(e){}let v=ht(c,{relative:o}),y=Zr(c,{replace:s,state:l,target:u,preventScrollReset:d,relative:o,viewTransition:h});return a.createElement("a",pr({},f,{href:r||v,onClick:m||i?n:function(e){n&&n(e),e.defaultPrevented||y(e)},ref:t,target:u}))})),Vr=a.forwardRef((function(e,t){let{"aria-current":r="page",caseSensitive:n=!1,className:o="",end:i=!1,style:s,to:l,viewTransition:u,children:c}=e,d=mr(e,xr),h=Rt(l,{relative:d.relative}),f=pt(),p=a.useContext(it),{navigator:m,basename:v}=a.useContext(lt),y=null!=p&&fn(h)&&!0===u,g=m.encodeLocation?m.encodeLocation(h).pathname:h.pathname,b=f.pathname,w=p&&p.navigation&&p.navigation.location?p.navigation.location.pathname:null;n||(b=b.toLowerCase(),w=w?w.toLowerCase():null,g=g.toLowerCase()),w&&v&&(w=B(w,v)||w);const S="/"!==g&&g.endsWith("/")?g.length-1:g.length;let E,R=b===g||!i&&b.startsWith(g)&&"/"===b.charAt(S),x=null!=w&&(w===g||!i&&w.startsWith(g)&&"/"===w.charAt(g.length)),D={isActive:R,isPending:x,isTransitioning:y},C=R?r:void 0;E="function"==typeof o?o(D):[o,R?"active":null,x?"pending":null,y?"transitioning":null].filter(Boolean).join(" ");let P="function"==typeof s?s(D):s;return a.createElement($r,pr({},d,{"aria-current":C,className:E,ref:t,style:P,to:l,viewTransition:u}),"function"==typeof c?c(D):c)})),Jr=a.forwardRef(((e,t)=>{let{fetcherKey:r,navigate:n,reloadDocument:o,replace:i,state:s,method:l=vr,action:u,onSubmit:c,relative:d,preventScrollReset:h,viewTransition:f}=e,p=mr(e,Dr),m=nn(),v=an(u,{relative:d}),y="get"===l.toLowerCase()?"get":"post";return a.createElement("form",pr({ref:t,method:y,action:v,onSubmit:o?c:e=>{if(c&&c(e),e.defaultPrevented)return;e.preventDefault();let t=e.nativeEvent.submitter,a=(null==t?void 0:t.getAttribute("formmethod"))||l;m(t||e.currentTarget,{fetcherKey:r,method:a,navigate:n,replace:i,state:s,relative:d,preventScrollReset:h,viewTransition:f})}},p))}));function Yr(e){let{getKey:t,storageKey:r}=e;return cn({getKey:t,storageKey:r}),null}var qr,Xr;function Gr(e){let t=a.useContext(ot);return t||h(!1),t}function Qr(e){let t=a.useContext(it);return t||h(!1),t}function Zr(e,t){let{target:r,replace:n,state:o,preventScrollReset:i,relative:s,viewTransition:l}=void 0===t?{}:t,u=gt(),c=pt(),d=Rt(e,{relative:s});return a.useCallback((t=>{if(function(e,t){return!(0!==e.button||t&&"_self"!==t||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e))}(t,r)){t.preventDefault();let r=void 0!==n?n:v(c)===v(d);u(e,{replace:r,state:o,preventScrollReset:i,relative:s,viewTransition:l})}}),[c,u,d,n,o,r,e,i,s,l])}function en(e){let t=a.useRef(br(e)),r=a.useRef(!1),n=pt(),o=a.useMemo((()=>function(e,t){let r=br(e);return t&&t.forEach(((e,n)=>{r.has(n)||t.getAll(n).forEach((e=>{r.append(n,e)}))})),r}(n.search,r.current?null:t.current)),[n.search]),i=gt(),s=a.useCallback(((e,t)=>{const n=br("function"==typeof e?e(o):e);r.current=!0,i("?"+n,t)}),[i,o]);return[o,s]}(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(qr||(qr={})),function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"}(Xr||(Xr={}));let tn=0,rn=()=>"__"+String(++tn)+"__";function nn(){let{router:e}=Gr(qr.UseSubmit),{basename:t}=a.useContext(lt),r=Ot();return a.useCallback((function(n,a){void 0===a&&(a={}),function(){if("undefined"==typeof document)throw new Error("You are calling submit during the server render. Try calling submit within a `useEffect` or callback instead.")}();let{action:o,method:i,encType:s,formData:l,body:u}=function(e,t){let r,n,a,o,i;if(gr(s=e)&&"form"===s.tagName.toLowerCase()){let i=e.getAttribute("action");n=i?B(i,t):null,r=e.getAttribute("method")||vr,a=Er(e.getAttribute("enctype"))||yr,o=new FormData(e)}else if(function(e){return gr(e)&&"button"===e.tagName.toLowerCase()}(e)||function(e){return gr(e)&&"input"===e.tagName.toLowerCase()}(e)&&("submit"===e.type||"image"===e.type)){let i=e.form;if(null==i)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let s=e.getAttribute("formaction")||i.getAttribute("action");if(n=s?B(s,t):null,r=e.getAttribute("formmethod")||i.getAttribute("method")||vr,a=Er(e.getAttribute("formenctype"))||Er(i.getAttribute("enctype"))||yr,o=new FormData(i,e),!function(){if(null===wr)try{new FormData(document.createElement("form"),0),wr=!1}catch(e){wr=!0}return wr}()){let{name:t,type:r,value:n}=e;if("image"===r){let e=t?t+".":"";o.append(e+"x","0"),o.append(e+"y","0")}else t&&o.append(t,n)}}else{if(gr(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');r=vr,n=null,a=yr,i=e}var s;return o&&"text/plain"===a&&(i=o,o=void 0),{action:n,method:r.toLowerCase(),encType:a,formData:o,body:i}}(n,t);if(!1===a.navigate){let t=a.fetcherKey||rn();e.fetch(t,r,a.action||o,{preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||i,formEncType:a.encType||s,flushSync:a.flushSync})}else e.navigate(a.action||o,{preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||i,formEncType:a.encType||s,replace:a.replace,state:a.state,fromRouteId:r,flushSync:a.flushSync,viewTransition:a.viewTransition})}),[e,t,r])}function an(e,t){let{relative:r}=void 0===t?{}:t,{basename:n}=a.useContext(lt),o=a.useContext(ct);o||h(!1);let[i]=o.matches.slice(-1),s=pr({},Rt(e||".",{relative:r})),l=pt();if(null==e){s.search=l.search;let e=new URLSearchParams(s.search),t=e.getAll("index");if(t.some((e=>""===e))){e.delete("index"),t.filter((e=>e)).forEach((t=>e.append("index",t)));let r=e.toString();s.search=r?"?"+r:""}}return e&&"."!==e||!i.route.index||(s.search=s.search?s.search.replace(/^\?/,"?index&"):"?index"),"/"!==n&&(s.pathname="/"===s.pathname?n:$([n,s.pathname])),v(s)}function on(e){var t;let{key:r}=void 0===e?{}:e,{router:n}=Gr(qr.UseFetcher),o=Qr(Xr.UseFetcher),i=a.useContext(Tr),s=a.useContext(ct),l=null==(t=s.matches[s.matches.length-1])?void 0:t.route.id;i||h(!1),s||h(!1),null==l&&h(!1);let u=Ur?Ur():"",[c,d]=a.useState(r||u);r&&r!==c?d(r):c||d(rn()),a.useEffect((()=>(n.getFetcher(c),()=>{n.deleteFetcher(c)})),[n,c]);let f=a.useCallback(((e,t)=>{l||h(!1),n.fetch(c,l,e,t)}),[c,l,n]),p=nn(),m=a.useCallback(((e,t)=>{p(e,pr({},t,{navigate:!1,fetcherKey:c}))}),[c,p]),v=a.useMemo((()=>a.forwardRef(((e,t)=>a.createElement(Jr,pr({},e,{navigate:!1,fetcherKey:c,ref:t}))))),[c]),y=o.fetchers.get(c)||he,g=i.get(c);return a.useMemo((()=>pr({Form:v,submit:m,load:f},y,{data:g})),[v,m,f,y,g])}function sn(){let e=Qr(Xr.UseFetchers);return Array.from(e.fetchers.entries()).map((e=>{let[t,r]=e;return pr({},r,{key:t})}))}const ln="react-router-scroll-positions";let un={};function cn(e){let{getKey:t,storageKey:r}=void 0===e?{}:e,{router:n}=Gr(qr.UseScrollRestoration),{restoreScrollPosition:o,preventScrollReset:i}=Qr(Xr.UseScrollRestoration),{basename:s}=a.useContext(lt),l=pt(),u=Bt(),c=Ft();a.useEffect((()=>(window.history.scrollRestoration="manual",()=>{window.history.scrollRestoration="auto"})),[]),function(e){let{capture:t}={};a.useEffect((()=>{let r=null!=t?{capture:t}:void 0;return window.addEventListener("pagehide",e,r),()=>{window.removeEventListener("pagehide",e,r)}}),[e,t])}(a.useCallback((()=>{if("idle"===c.state){let e=(t?t(l,u):null)||l.key;un[e]=window.scrollY}try{sessionStorage.setItem(r||ln,JSON.stringify(un))}catch(e){}window.history.scrollRestoration="auto"}),[r,t,c.state,l,u])),"undefined"!=typeof document&&(a.useLayoutEffect((()=>{try{let e=sessionStorage.getItem(r||ln);e&&(un=JSON.parse(e))}catch(e){}}),[r]),a.useLayoutEffect((()=>{let e=t&&"/"!==s?(e,r)=>t(pr({},e,{pathname:B(e.pathname,s)||e.pathname}),r):t,r=null==n?void 0:n.enableScrollRestoration(un,(()=>window.scrollY),e);return()=>r&&r()}),[n,s,t]),a.useLayoutEffect((()=>{if(!1!==o)if("number"!=typeof o){if(l.hash){let e=document.getElementById(decodeURIComponent(l.hash.slice(1)));if(e)return void e.scrollIntoView()}!0!==i&&window.scrollTo(0,0)}else window.scrollTo(0,o)}),[l,o,i]))}function dn(e,t){let{capture:r}=t||{};a.useEffect((()=>{let t=null!=r?{capture:r}:void 0;return window.addEventListener("beforeunload",e,t),()=>{window.removeEventListener("beforeunload",e,t)}}),[e,r])}function hn(e){let{when:t,message:r}=e,n=Jt(t);a.useEffect((()=>{"blocked"===n.state&&(window.confirm(r)?setTimeout(n.proceed,0):n.reset())}),[n,r]),a.useEffect((()=>{"blocked"!==n.state||t||n.reset()}),[n,t])}function fn(e,t){void 0===t&&(t={});let r=a.useContext(_r);null==r&&h(!1);let{basename:n}=Gr(qr.useViewTransitionState),o=Rt(e,{relative:t.relative});if(!r.isTransitioning)return!1;let i=B(r.currentLocation.pathname,n)||r.currentLocation.pathname,s=B(r.nextLocation.pathname,n)||r.nextLocation.pathname;return null!=F(o.pathname,s)||null!=F(o.pathname,i)}}}]);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @remix-run/router v1.0.3
2
+ * @remix-run/router v1.21.0
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -10,7 +10,7 @@
10
10
  */
11
11
 
12
12
  /**
13
- * React Router DOM v6.4.3
13
+ * React Router DOM v6.28.1
14
14
  *
15
15
  * Copyright (c) Remix Software Inc.
16
16
  *
@@ -21,7 +21,7 @@
21
21
  */
22
22
 
23
23
  /**
24
- * React Router v6.4.3
24
+ * React Router v6.28.1
25
25
  *
26
26
  * Copyright (c) Remix Software Inc.
27
27
  *