@mediquo/elements 0.10.3 → 0.10.5

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 (115) hide show
  1. package/README.md +46 -0
  2. package/dist/chunks/addSeconds-CXt0dUch.js +1 -0
  3. package/dist/chunks/api-chat-client-D5BosjTp.js +1 -0
  4. package/dist/chunks/api-client-context-BXGqBAlO.js +1 -0
  5. package/dist/chunks/{apple-pay-outcomes-K8FQPELX.js → apple-pay-outcomes-DJDSt0US.js} +1 -1
  6. package/dist/chunks/{appointment-details-BriSqXWj.js → appointment-details-DpawC6lW.js} +1 -1
  7. package/dist/chunks/chunk-2TKJJNS7-DzhxHWWb.js +1 -0
  8. package/dist/chunks/chunk-5EJXDIGT-Bb4_pfDr.js +1 -0
  9. package/dist/chunks/chunk-FUCSYDW7-Duj5hy8S.js +1 -0
  10. package/dist/chunks/chunk-S5RWG6G2-CQJ38pW6.js +1 -0
  11. package/dist/chunks/{chunk-Y4EKUX25-QqMl3eiq.js → chunk-Y4EKUX25-Bdei04iw.js} +1 -1
  12. package/dist/chunks/{chunk-YTQUGGS3-DmCGIoFy.js → chunk-YTQUGGS3-sBILRfPo.js} +1 -1
  13. package/dist/chunks/documentation-view-BnKC8xEu.js +1 -0
  14. package/dist/chunks/{external-CJj32K_p.js → external-cM_kgYO_.js} +1 -1
  15. package/dist/chunks/get-appointment-query-DuHrjd8L.js +1 -0
  16. package/dist/chunks/get-organization-setup-query-De7eM6V3.js +1 -0
  17. package/dist/chunks/get-patient-profile-query-D9btgcxl.js +1 -0
  18. package/dist/chunks/get-schedule-services-query-Io2aQ_7G.js +1 -0
  19. package/dist/chunks/{index-BJYWtEmT.js → index-BkDanNQg.js} +1 -1
  20. package/dist/chunks/{index-CyteNROM.js → index-C76yAope.js} +1 -1
  21. package/dist/chunks/{index-CXb3gOFA.js → index-D13HvA4a.js} +1 -1
  22. package/dist/chunks/{index-DEEAEB_4.js → index-D3_2tkC3.js} +1 -1
  23. package/dist/chunks/index-D54b6IW6.js +1 -0
  24. package/dist/chunks/{index-DybIBddw.js → index-DYDUC2Va.js} +1 -1
  25. package/dist/chunks/index-MfyXh-qX.js +1 -0
  26. package/dist/chunks/isBefore-Dfww5192.js +1 -0
  27. package/dist/chunks/mq-chat-room-C7FB_wOo.js +1 -0
  28. package/dist/chunks/mq-layout-BndHxkbb.js +1 -0
  29. package/dist/chunks/{mq-next-appointments-BlIFuGgO.js → mq-next-appointments-DMMeL0DC.js} +1 -1
  30. package/dist/chunks/{mq-recent-documents-D0krQAnf.js → mq-recent-documents-DzxYuYy6.js} +1 -1
  31. package/dist/chunks/mq-schedule-JZyPjgBT.js +1 -0
  32. package/dist/chunks/mq-support-chat-HYSmf_ud.js +1 -0
  33. package/dist/chunks/mq-videocall-CgU0vUQJ.js +1 -0
  34. package/dist/chunks/next-appointment-card-BFBmWPYB.js +1 -0
  35. package/dist/chunks/query-controller-B1byDHlF.js +1 -0
  36. package/dist/chunks/refund-cancel-policy-C_9LyN_y.js +1 -0
  37. package/dist/chunks/telemetry-client-dwDzxn9N.js +1 -0
  38. package/dist/env.js +1 -1
  39. package/dist/i18n.js +1 -1
  40. package/dist/mq-api-client-provider.js +1 -1
  41. package/dist/mq-apple-pay-checkout.js +1 -1
  42. package/dist/mq-appointment-checkout.js +1 -1
  43. package/dist/mq-appointment-documentation.js +1 -1
  44. package/dist/mq-chat-room.js +1 -1
  45. package/dist/mq-checkout.js +1 -1
  46. package/dist/mq-dashboard.js +1 -1
  47. package/dist/mq-documents.js +1 -1
  48. package/dist/mq-google-pay-checkout.js +1 -1
  49. package/dist/mq-immediate-videocall-checkout.js +1 -1
  50. package/dist/mq-my-appointments.js +1 -1
  51. package/dist/mq-next-appointments.js +1 -1
  52. package/dist/mq-payment-poller.js +1 -1
  53. package/dist/mq-professional-presence-sync.js +1 -1
  54. package/dist/mq-query-client-provider.js +1 -1
  55. package/dist/mq-recent-documents.js +1 -1
  56. package/dist/mq-schedule-success.d.ts +1 -1
  57. package/dist/mq-schedule-success.js +2 -2
  58. package/dist/mq-schedule.d.ts +6 -0
  59. package/dist/mq-schedule.js +1 -1
  60. package/dist/mq-session-provider.js +1 -1
  61. package/dist/mq-socket-provider.js +1 -1
  62. package/dist/mq-support-chat.js +1 -1
  63. package/dist/mq-terms-and-conditions.js +1 -1
  64. package/dist/mq-unread-count-sync.js +1 -1
  65. package/dist/mq-videocall.js +1 -1
  66. package/dist/react/mq-api-client-provider.js +1 -1
  67. package/dist/react/mq-apple-pay-checkout.js +1 -1
  68. package/dist/react/mq-appointment-checkout.js +1 -1
  69. package/dist/react/mq-appointment-documentation.js +1 -1
  70. package/dist/react/mq-chat-room.js +1 -1
  71. package/dist/react/mq-checkout.js +1 -1
  72. package/dist/react/mq-dashboard.js +1 -1
  73. package/dist/react/mq-documents-page.js +1 -1
  74. package/dist/react/mq-documents.js +1 -1
  75. package/dist/react/mq-google-pay-checkout.js +1 -1
  76. package/dist/react/mq-immediate-videocall-checkout.js +1 -1
  77. package/dist/react/mq-my-appointments.js +1 -1
  78. package/dist/react/mq-next-appointments.js +1 -1
  79. package/dist/react/mq-payment-poller.js +1 -1
  80. package/dist/react/mq-professional-presence-sync.js +1 -1
  81. package/dist/react/mq-query-client-provider.d.ts +9 -1
  82. package/dist/react/mq-query-client-provider.js +1 -1
  83. package/dist/react/mq-recent-documents.js +1 -1
  84. package/dist/react/mq-schedule-success.js +1 -1
  85. package/dist/react/mq-schedule.d.ts +2 -0
  86. package/dist/react/mq-schedule.js +1 -1
  87. package/dist/react/mq-session-provider.js +1 -1
  88. package/dist/react/mq-socket-provider.js +1 -1
  89. package/dist/react/mq-support-chat.js +1 -1
  90. package/dist/react/mq-terms-and-conditions.js +1 -1
  91. package/dist/react/mq-unread-count-sync.js +1 -1
  92. package/dist/react/mq-videocall.js +1 -1
  93. package/dist/ui/mq-calendar.js +1 -1
  94. package/dist/ui/mq-clamped-text.js +1 -1
  95. package/package.json +1 -1
  96. package/dist/chunks/addSeconds-ofMnxlgT.js +0 -1
  97. package/dist/chunks/api-chat-client-CzlZkbW1.js +0 -1
  98. package/dist/chunks/api-client-context-V1UAGtKW.js +0 -1
  99. package/dist/chunks/chunk-2TKJJNS7-BGwxtEg7.js +0 -1
  100. package/dist/chunks/chunk-4FFT6DC2-CVWibomC.js +0 -1
  101. package/dist/chunks/chunk-S5RWG6G2-DPesx3Od.js +0 -1
  102. package/dist/chunks/documentation-view-BqUQwjti.js +0 -1
  103. package/dist/chunks/get-appointment-query-C-gTTuiQ.js +0 -1
  104. package/dist/chunks/get-organization-setup-query-Dr1cXnHl.js +0 -1
  105. package/dist/chunks/get-patient-profile-query-4AO6xvVn.js +0 -1
  106. package/dist/chunks/get-schedule-services-query-Fzvb9ug9.js +0 -1
  107. package/dist/chunks/index-Bw-MbGKw.js +0 -1
  108. package/dist/chunks/index-M3514yfv.js +0 -1
  109. package/dist/chunks/isBefore-CPpTogxo.js +0 -1
  110. package/dist/chunks/mq-layout-BiE8gq23.js +0 -1
  111. package/dist/chunks/next-appointment-card-fL1VemkX.js +0 -1
  112. package/dist/chunks/query-Cjvi4_dT.js +0 -1
  113. package/dist/chunks/query-controller-BlO1Ax65.js +0 -1
  114. package/dist/chunks/refund-cancel-policy-QG_OE6g5.js +0 -1
  115. package/dist/chunks/telemetry-client-DEIuDZfA.js +0 -1
package/README.md CHANGED
@@ -79,6 +79,15 @@ requires device support and a gateway that accepts wallets.
79
79
 
80
80
  In React, the same flags are `googlePayEnabled` / `applePayEnabled` on `MqSchedule`.
81
81
 
82
+ When the payment gateway is Stripe, `mq-schedule` embeds the checkout in the
83
+ payment step. Add `stripe-redirect` (`stripeRedirect` in React) to send the user
84
+ to Stripe hosted checkout instead; the step fires a cancelable
85
+ `mq-payment-redirect` event before navigating, and Stripe returns to `return-url`.
86
+
87
+ ```html
88
+ <mq-schedule api-key="YOUR_API_KEY" return-url="https://host.example/return" stripe-redirect></mq-schedule>
89
+ ```
90
+
82
91
  ## Providers
83
92
 
84
93
  Mount these as ancestors of the features that need them:
@@ -141,6 +150,43 @@ One `mq-query-client-provider` for the whole session is fine — the cache is
141
150
  partitioned by organization inside it. You do not need to remount it, clear the
142
151
  cache, or key elements by organization.
143
152
 
153
+ ### Sharing your app's TanStack Query cache
154
+
155
+ If your app already runs TanStack Query, hand `mq-query-client-provider` your own
156
+ `QueryClient`. Both sides then read and write one cache, so an invalidation from
157
+ either reaches the other immediately — cancel an appointment in your UI and
158
+ `mq-next-appointments` updates in the same tick, and vice versa.
159
+
160
+ ```tsx
161
+ import { MqQueryClientProvider } from "@mediquo/elements/react/mq-query-client-provider";
162
+
163
+ <MqQueryClientProvider queryClient={queryClient}>
164
+ <MqSchedule apiKey="CLINIC_KEY" token="..." />
165
+ </MqQueryClientProvider>;
166
+ ```
167
+
168
+ Two requirements:
169
+
170
+ 1. **One physical copy of `@tanstack/query-core`.** A second copy has its own
171
+ module state, so the two sides would still hold separate caches. Dedupe it in
172
+ your bundler:
173
+
174
+ ```ts
175
+ // vite.config.ts
176
+ export default defineConfig({
177
+ resolve: { dedupe: ["@tanstack/query-core"] },
178
+ });
179
+ ```
180
+
181
+ 2. **Clear the cache on logout.** The provider's own client is discarded with the
182
+ provider; a client you own outlives it, so the previous patient's data would
183
+ stay readable in the same tab. Call `queryClient.clear()` when the session
184
+ ends, and on organization or clinic change.
185
+
186
+ Pass nothing and the provider creates and owns a client, exactly as before.
187
+ Elements keep their own 60s freshness either way — it is declared per query, not
188
+ taken from your client's defaults, and we never overwrite those defaults.
189
+
144
190
  ### Elements without an `api-key`
145
191
 
146
192
  > **Upgrading:** `mq-my-appointments`, `mq-unread-count-sync` and
@@ -0,0 +1 @@
1
+ import{c as r,t}from"./parseISO-Dj3qSTG8.js";function n(n,s,a){return function(n,s){return r(n,+t(n)+s)}(n,1e3*s)}export{n as a};
@@ -0,0 +1 @@
1
+ import{a as e,u as t,o as n,n as i,b as r,l as s,s as o,e as a,z as l,i as c,c as u,d,r as p,f as h,g as f}from"./external-cM_kgYO_.js";import{b as m}from"./chunk-2TKJJNS7-DzhxHWWb.js";import{i as g}from"./isBefore-Dfww5192.js";import{env as b}from"../env.js";t([s(1),s(2),s(3)]);var y={Sent:1,Received:2,Read:3},_=n({roomId:i(),messageId:o().uuid(),string:o(),status:i(),senderType:a(["ordinary","system"]),fromUserHash:o().uuid(),auto:t([s(0),s(1)]),createdAt:o().nullable(),deletedAt:o().nullable(),time:i().nullable()}),v=n({file_name:o(),file_size:i(),url:o().url(),signed_url:o().url().nullable(),type:a(["uncategorized","voice_note"]),meta:n({duration:i()})}),w=_.extend({type:s("string"),attachment:r()}),C=_.extend({type:s("file"),attachment:v}),E=_.extend({type:s("image"),attachment:v});n({roomId:i()});var R=e(t([w,C,E]));n({roomId:i()});var S=n({unread_count:i()});n({professional_hash:o()});var O=n({room_id:i()}),A=l.enum(["pending","expired","accepted","inCall","declined","cancelled","finished","free_of_charge","owed","unpaid","reporting"]),T=A.enum,j=l.enum(["videocall","chat","phonecall"]),x=j.enum,k=l.object({id:l.string().uuid(),room_id:l.string(),channel:j,consultation_short_url:l.string().url().nullable(),call_id:l.string().url(),duration:l.number(),from:l.object({hash:l.string(),name:l.string().nullable(),avatar:l.string().url().nullable(),speciality:l.string().nullable(),collegiate_number:l.string().nullable(),is_dismissed:l.boolean(),languages:l.array(l.string()),description:l.string().nullable()}),to:l.object({id:l.number(),hash:l.string(),name:l.string().nullable(),avatar:l.string().url().nullable(),is_dismissed:l.boolean()}),speciality_id:l.number().nullable(),has_chat_in_appointment:l.boolean().optional(),created_at:l.string(),status:A,seconds_to_open:l.number().nonnegative(),start_date:l.string(),started_at:l.string().nullable(),expires_at:l.string().nullable(),consultation_reason:l.string().nullable(),preconsultation_documents:l.array(l.object({file_path:l.string(),file_name:l.string(),id:l.string().uuid()})).nullable(),service_id:l.string().uuid().nullable(),price:l.number().nullable().optional(),currency:l.string().nullable().optional(),discount_amount:l.number().nullable().optional()}),P=l.enum(["appointment","chat","immediate"]),N=P.enum;function U(e){return 0===e.seconds_to_open}function L(e){if(!e)return!1;const t=new Date,n=m(e);return g(n,t)}var F=a(["available","reserved"]),D=F.enum,B=n({id:o().uuid(),channel:j,duration:i(),starts_at:o(),finishes_at:o(),professional:n({id:o().uuid(),name:o()}),services:e(n({id:o().uuid(),name:o()})),speciality:n({id:i(),price:n({amount:i(),currency:o()}).nullish()}),status:F,payable_reference:o().nullish()}),I=l.array(l.object({id:l.string().uuid(),name:l.string(),code:l.string(),channel:j,price:l.object({amount:l.number(),currency:l.string()}).nullable()})),$=l.array(l.object({id:l.string().uuid(),avatar:l.string().url().nullable(),description:l.string().nullable(),collegiate_number:l.string().nullable(),languages:l.array(l.string()),name:l.string(),slots:l.array(B),speciality:l.object({id:l.number()}),tax_id:l.string().nullable()}));l.object({speciality_id:l.number(),organization_schedule_service_id:l.string().uuid(),closest_slots_days:l.number().optional(),slots_per_day:l.number().optional()}),l.object({service_id:l.string().uuid(),professional_hash:l.string().uuid(),starts_at:l.string(),finishes_at:l.string(),rescheduling_appointment_id:l.string().uuid().optional()});var q=l.array(B),z=l.array(l.object({id:l.number(),name:l.string(),code:l.string().nullish(),price:l.object({amount:l.number(),currency:l.string()}).nullable()}));l.object({slot_id:l.string().uuid(),service_id:l.string().uuid().optional(),speciality_id:l.number().optional()});var M=B;l.object({api_key:l.string(),token:l.string()});var K=l.object({access_token:l.string(),patient:l.object({hash:l.string(),country_code:l.string(),timezone:l.string(),first_name:l.string(),last_name:l.string().nullable(),name:l.string(),birth_date:l.string().nullable(),email:l.string().email().nullable(),language_code:l.string(),phone:l.string(),phone_prefix:l.string(),tax_id:l.string().nullable(),legal_consent:l.object({accepted_at:l.string().nullable(),last_version_at:l.string().nullable(),terms_url:l.string(),privacy_url:l.string(),has_commercial_communications:l.boolean(),organization_name:l.string()})})});n({consultation_id:o(),consultation_type:P,rating:i().int().min(1).max(5),comment:o().nullable().optional()});var H=n({rating:i().int().optional(),comment:o().nullable().optional()}).passthrough();function J(t){return n({data:e(t),meta:n({current_page:i(),last_page:i(),per_page:i(),total:i()})})}var W=l.enum(["prescription","report","diagnosticTestPrescription"]),V=W.enum,X=l.enum(["published","draft"]);X.enum;var G=l.object({document_id:l.string().uuid(),document_type:W,name:l.string(),professional:l.object({speciality_id:l.number(),speciality_name:l.string().optional()}),status:X,url:l.string().url(),created_at:l.string()}),Q=n({hash:o(),profile:n({first_name:o().nullable(),last_name:o().nullable(),birth_date:o().nullable(),gender:a(["male","female"]).nullable(),email:o().nullable(),phone_prefix:o().nullable(),phone:o().nullable(),billing:n({tax_id:o().nullable(),address:o().nullable(),country_code:o().nullable(),region:o().nullable(),postal_code:o().nullable()})})});function Z(e){const t=e?.profile;return`${t?.first_name??""} ${t?.last_name??""}`.trim()}function Y(e){return[e?.profile.first_name,e?.profile.last_name,e?.profile.email,e?.profile.phone,e?.profile.birth_date,e?.profile?.billing?.tax_id].every(e=>null!==e)}l.object({appointmentId:l.string()});var ee=k;l.object({callId:l.string()});var te=l.object({session_id:l.string(),session_token:l.string()});l.object({professional_hash:l.string(),consultation_id:l.string(),consultation_type:l.enum(["appointment"])}),l.object({professional_hash:l.string(),consultation_id:l.string(),consultation_type:l.enum(["appointment"])}),l.object({appointment_id:l.string()});var ne=l.array(G);l.object({url:l.string().url()}),l.object({first_name:Q.shape.profile.shape.first_name,last_name:Q.shape.profile.shape.last_name,tax_id:Q.shape.profile.shape.billing.shape.tax_id,birth_date:Q.shape.profile.shape.birth_date,gender:Q.shape.profile.shape.gender.optional(),email:Q.shape.profile.shape.email,phone_prefix:Q.shape.profile.shape.phone_prefix,phone:Q.shape.profile.shape.phone,terms_accepted:l.boolean(),privacy_accepted:l.boolean()}),l.object({patient_hash:l.string(),page:l.number().optional(),per_page:l.number().optional()});var ie=J(G);n({file:c(File)});var re=n({url:o().url()}),se=a(["monday","tuesday","wednesday","thursday","friday","saturday","sunday","working_week","weekend","all_week"]);se.enum;var oe=n({days_of_week:se,from_time:o(),to_time:o()});n({hash:o().uuid()});var ae=n({hash:o().uuid(),active_absence:n({id:o().uuid(),finishes_at:o()}).nullable(),avatar:o().url().nullable(),collegiate_number:o().nullable(),description:o().nullable(),is_available:u(),name:o(),overview:o().nullable(),schedule_description:o().nullable(),speciality_id:i().nullable(),status:a(["online","offline"]),title:o().nullable(),chat_schedule:n({channel:j,duration:i(),name:o(),timezone:o(),starts_at:o(),gaps:e(oe)}).nullable()});function le(e){return e.active_absence?"absent":"online"===e.status?"online":"offline"}a(["online","offline","absent"]),n({roomId:i()}),n({slot_id:o().uuid(),service_id:o().uuid(),specialty_id:o(),consultation_reason:o().optional(),preconsultation_documents:e(n({file_path:o(),file_name:o()})).optional(),discount_code:o().optional(),return_url:o().url().optional(),payable_reference:o().optional()});var ce=n({id:o(),percent_off:i(),code:o(),after_discount_amount:i().nullable()}),ue=n({id:o(),percent_off:i(),code:o(),name:o().nullish()}),de={Addon:"addon",Stripe:"stripe"},pe=n({session_id:o(),payment_link:o().url(),provider:d(de).optional()});n({video_call_schedule_id:o()});var he=pe;n({professional_hash:o().uuid()});var fe=pe,me={Paid:"paid",Unpaid:"unpaid",Denied:"denied",Refunded:"refunded"},ge=n({status:d(me),consultation_id:o(),consultation_type:o()}),be={SlotUnavailable:422},ye=n({error:o(),refunded:u().optional()});n({order_id:o(),validation_url:o().url()});var _e=p(h());n({order_id:o(),token:o()});var ve=n({data:n({status:d(me),consultation_id:o(),consultation_type:o().optional()})});n({order_id:o(),token:o()});var we=n({data:n({status:d(me),consultation_id:o(),consultation_type:o().optional()})}),Ce=l.array(l.object({id:l.number(),name:l.string(),code:l.string()})),Ee=l.object({primary_color:l.string().nullable(),logo:l.string().nullable(),favicon:l.string().nullable(),support_professional:l.object({hash:l.string().nullable()}).optional(),home:l.object({title:l.string().nullable(),description:l.string().nullable(),image_url:l.string().nullable()}),appointments:l.object({reserve_conditions:l.string().nullable(),seconds_before_start_to_refund_on_cancel:l.number().nullable(),has_nps:l.boolean().optional(),has_chat_in_appointment:l.boolean().optional(),has_discount_coupons_show:l.boolean().optional(),payment_provider:l.nativeEnum(de).nullish()}),legal_consent:l.object({terms_url:l.string().nullable(),privacy_url:l.string().nullable()})}),Re=Q;n({first_name:o(),last_name:o(),tax_id:o(),birth_date:o(),gender:a(["male","female"]),email:o(),phone_prefix:o(),phone:o(),terms_accepted:u(),privacy_accepted:u()}),n({terms_accepted:u(),privacy_accepted:u(),commercial_accepted:u()}),n({hash:o().uuid()});var Se=n({id:i(),hash:o().uuid(),speciality_alias:o(),name:o(),avatar:o().url(),description:o(),collegiate_number:o(),languages:e(o()),centers:e(n({id:o().uuid(),name:o()}))});n({status:e(A).optional(),order:n({field:a(["starts_at"]).optional(),direction:a(["asc","desc"]).optional()}).optional(),page:i().optional(),per_page:i().optional()});var Oe=J(n({appointment:n({id:o().uuid(),url:o().url(),starts_at:o(),duration:i(),status:A,channel:j,expires_at:o().nullable(),service_id:o().uuid().nullable(),has_chat_in_appointment:u().optional()}),room:n({id:i()}),price:n({amount:i(),currency:o()}).nullable(),patient:n({hash:o().uuid()}),slots:e(f()),professional:n({hash:o().uuid(),name:o(),avatar:o().url().optional(),description:o().optional(),languages:e(o()),collegiate_number:o().optional()}),speciality:n({id:i(),name:o()})}));n({slot_id:o().uuid(),service_id:o().uuid(),consultation_reason:o().optional(),preconsultation_documents:e(n({file_path:o(),file_name:o()})).optional(),discount_code:o().optional()});var Ae=n({appointment:n({id:o().uuid()})});n({id:o().uuid()});var Te=k,je=n({file_path:o(),presigned_storage_url:o().url()});function xe(e,t){return function(){return e.apply(t,arguments)}}n({id:o().uuid(),slot_id:o().uuid(),consultation_reason:o().optional(),preconsultation_documents:e(n({file_path:o(),file_name:o()})).optional()}),n({id:o().uuid()}),n({appointment_id:o().uuid(),consultation_reason:o().optional()}),n({appointment_id:o().uuid(),file_path:o(),file_name:o()}),n({appointment_id:o().uuid(),document_id:o().uuid()}),n({appointmentId:o().uuid()});const{toString:ke}=Object.prototype,{getPrototypeOf:Pe}=Object,{iterator:Ne,toStringTag:Ue}=Symbol,Le=(Fe=Object.create(null),e=>{const t=ke.call(e);return Fe[t]||(Fe[t]=t.slice(8,-1).toLowerCase())});var Fe;const De=e=>(e=e.toLowerCase(),t=>Le(t)===e),Be=e=>t=>typeof t===e,{isArray:Ie}=Array,$e=Be("undefined");function qe(e){return null!==e&&!$e(e)&&null!==e.constructor&&!$e(e.constructor)&&Ke(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const ze=De("ArrayBuffer");const Me=Be("string"),Ke=Be("function"),He=Be("number"),Je=e=>null!==e&&"object"==typeof e,We=e=>{if("object"!==Le(e))return!1;const t=Pe(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Ue in e||Ne in e)},Ve=De("Date"),Xe=De("File"),Ge=De("Blob"),Qe=De("FileList"),Ze=De("URLSearchParams"),[Ye,et,tt,nt]=["ReadableStream","Request","Response","Headers"].map(De);function it(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let i,r;if("object"!=typeof e&&(e=[e]),Ie(e))for(i=0,r=e.length;i<r;i++)t.call(null,e[i],i,e);else{if(qe(e))return;const r=n?Object.getOwnPropertyNames(e):Object.keys(e),s=r.length;let o;for(i=0;i<s;i++)o=r[i],t.call(null,e[o],o,e)}}function rt(e,t){if(qe(e))return null;t=t.toLowerCase();const n=Object.keys(e);let i,r=n.length;for(;r-- >0;)if(i=n[r],t===i.toLowerCase())return i;return null}const st="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,ot=e=>!$e(e)&&e!==st;const at=(lt="undefined"!=typeof Uint8Array&&Pe(Uint8Array),e=>lt&&e instanceof lt);var lt;const ct=De("HTMLFormElement"),ut=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),dt=De("RegExp"),pt=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),i={};it(n,(n,r)=>{let s;!1!==(s=t(n,r,e))&&(i[r]=s||n)}),Object.defineProperties(e,i)};const ht=De("AsyncFunction"),ft=(mt="function"==typeof setImmediate,gt=Ke(st.postMessage),mt?setImmediate:gt?(bt=`axios@${Math.random()}`,yt=[],st.addEventListener("message",({source:e,data:t})=>{e===st&&t===bt&&yt.length&&yt.shift()()},!1),e=>{yt.push(e),st.postMessage(bt,"*")}):e=>setTimeout(e));var mt,gt,bt,yt;const _t="undefined"!=typeof queueMicrotask?queueMicrotask.bind(st):"undefined"!=typeof process&&process.nextTick||ft;var vt={isArray:Ie,isArrayBuffer:ze,isBuffer:qe,isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||Ke(e.append)&&("formdata"===(t=Le(e))||"object"===t&&Ke(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&ze(e.buffer),t},isString:Me,isNumber:He,isBoolean:e=>!0===e||!1===e,isObject:Je,isPlainObject:We,isEmptyObject:e=>{if(!Je(e)||qe(e))return!1;try{return 0===Object.keys(e).length&&Object.getPrototypeOf(e)===Object.prototype}catch(e){return!1}},isReadableStream:Ye,isRequest:et,isResponse:tt,isHeaders:nt,isUndefined:$e,isDate:Ve,isFile:Xe,isBlob:Ge,isRegExp:dt,isFunction:Ke,isStream:e=>Je(e)&&Ke(e.pipe),isURLSearchParams:Ze,isTypedArray:at,isFileList:Qe,forEach:it,merge:function e(){const{caseless:t}=ot(this)&&this||{},n={},i=(i,r)=>{const s=t&&rt(n,r)||r;We(n[s])&&We(i)?n[s]=e(n[s],i):We(i)?n[s]=e({},i):Ie(i)?n[s]=i.slice():n[s]=i};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&it(arguments[e],i);return n},extend:(e,t,n,{allOwnKeys:i}={})=>(it(t,(t,i)=>{n&&Ke(t)?e[i]=xe(t,n):e[i]=t},{allOwnKeys:i}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,i)=>{e.prototype=Object.create(t.prototype,i),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,i)=>{let r,s,o;const a={};if(t=t||{},null==e)return t;do{for(r=Object.getOwnPropertyNames(e),s=r.length;s-- >0;)o=r[s],i&&!i(o,e,t)||a[o]||(t[o]=e[o],a[o]=!0);e=!1!==n&&Pe(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:Le,kindOfTest:De,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const i=e.indexOf(t,n);return-1!==i&&i===n},toArray:e=>{if(!e)return null;if(Ie(e))return e;let t=e.length;if(!He(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Ne]).call(e);let i;for(;(i=n.next())&&!i.done;){const n=i.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const i=[];for(;null!==(n=e.exec(t));)i.push(n);return i},isHTMLForm:ct,hasOwnProperty:ut,hasOwnProp:ut,reduceDescriptors:pt,freezeMethods:e=>{pt(e,(t,n)=>{if(Ke(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const i=e[n];Ke(i)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))})},toObjectSet:(e,t)=>{const n={},i=e=>{e.forEach(e=>{n[e]=!0})};return Ie(e)?i(e):i(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:rt,global:st,isContextDefined:ot,isSpecCompliantForm:function(e){return!!(e&&Ke(e.append)&&"FormData"===e[Ue]&&e[Ne])},toJSONObject:e=>{const t=new Array(10),n=(e,i)=>{if(Je(e)){if(t.indexOf(e)>=0)return;if(qe(e))return e;if(!("toJSON"in e)){t[i]=e;const r=Ie(e)?[]:{};return it(e,(e,t)=>{const s=n(e,i+1);!$e(s)&&(r[t]=s)}),t[i]=void 0,r}}return e};return n(e,0)},isAsyncFn:ht,isThenable:e=>e&&(Je(e)||Ke(e))&&Ke(e.then)&&Ke(e.catch),setImmediate:ft,asap:_t,isIterable:e=>null!=e&&Ke(e[Ne])};function wt(e,t,n,i,r){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),i&&(this.request=i),r&&(this.response=r,this.status=r.status?r.status:null)}vt.inherits(wt,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:vt.toJSONObject(this.config),code:this.code,status:this.status}}});const Ct=wt.prototype,Et={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{Et[e]={value:e}}),Object.defineProperties(wt,Et),Object.defineProperty(Ct,"isAxiosError",{value:!0}),wt.from=(e,t,n,i,r,s)=>{const o=Object.create(Ct);return vt.toFlatObject(e,o,function(e){return e!==Error.prototype},e=>"isAxiosError"!==e),wt.call(o,e.message,t,n,i,r),o.cause=e,o.name=e.name,s&&Object.assign(o,s),o};function Rt(e){return vt.isPlainObject(e)||vt.isArray(e)}function St(e){return vt.endsWith(e,"[]")?e.slice(0,-2):e}function Ot(e,t,n){return e?e.concat(t).map(function(e,t){return e=St(e),!n&&t?"["+e+"]":e}).join(n?".":""):t}const At=vt.toFlatObject(vt,{},null,function(e){return/^is[A-Z]/.test(e)});function Tt(e,t,n){if(!vt.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const i=(n=vt.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!vt.isUndefined(t[e])})).metaTokens,r=n.visitor||c,s=n.dots,o=n.indexes,a=(n.Blob||"undefined"!=typeof Blob&&Blob)&&vt.isSpecCompliantForm(t);if(!vt.isFunction(r))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(vt.isDate(e))return e.toISOString();if(vt.isBoolean(e))return e.toString();if(!a&&vt.isBlob(e))throw new wt("Blob is not supported. Use a Buffer instead.");return vt.isArrayBuffer(e)||vt.isTypedArray(e)?a&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,r){let a=e;if(e&&!r&&"object"==typeof e)if(vt.endsWith(n,"{}"))n=i?n:n.slice(0,-2),e=JSON.stringify(e);else if(vt.isArray(e)&&function(e){return vt.isArray(e)&&!e.some(Rt)}(e)||(vt.isFileList(e)||vt.endsWith(n,"[]"))&&(a=vt.toArray(e)))return n=St(n),a.forEach(function(e,i){!vt.isUndefined(e)&&null!==e&&t.append(!0===o?Ot([n],i,s):null===o?n:n+"[]",l(e))}),!1;return!!Rt(e)||(t.append(Ot(r,n,s),l(e)),!1)}const u=[],d=Object.assign(At,{defaultVisitor:c,convertValue:l,isVisitable:Rt});if(!vt.isObject(e))throw new TypeError("data must be an object");return function e(n,i){if(!vt.isUndefined(n)){if(-1!==u.indexOf(n))throw Error("Circular reference detected in "+i.join("."));u.push(n),vt.forEach(n,function(n,s){!0===(!(vt.isUndefined(n)||null===n)&&r.call(t,n,vt.isString(s)?s.trim():s,i,d))&&e(n,i?i.concat(s):[s])}),u.pop()}}(e),t}function jt(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(e){return t[e]})}function xt(e,t){this._pairs=[],e&&Tt(e,this,t)}const kt=xt.prototype;function Pt(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Nt(e,t,n){if(!t)return e;const i=n&&n.encode||Pt;vt.isFunction(n)&&(n={serialize:n});const r=n&&n.serialize;let s;if(s=r?r(t,n):vt.isURLSearchParams(t)?t.toString():new xt(t,n).toString(i),s){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}kt.append=function(e,t){this._pairs.push([e,t])},kt.toString=function(e){const t=e?function(t){return e.call(this,t,jt)}:jt;return this._pairs.map(function(e){return t(e[0])+"="+t(e[1])},"").join("&")};class InterceptorManager{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){vt.forEach(this.handlers,function(t){null!==t&&e(t)})}}var Ut={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Lt={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:xt,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const Ft="undefined"!=typeof window&&"undefined"!=typeof document,Dt="object"==typeof navigator&&navigator||void 0,Bt=Ft&&(!Dt||["ReactNative","NativeScript","NS"].indexOf(Dt.product)<0),It="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,$t=Ft&&window.location.href||"http://localhost";var qt={...Object.freeze({__proto__:null,hasBrowserEnv:Ft,hasStandardBrowserEnv:Bt,hasStandardBrowserWebWorkerEnv:It,navigator:Dt,origin:$t}),...Lt};function zt(e){function t(e,n,i,r){let s=e[r++];if("__proto__"===s)return!0;const o=Number.isFinite(+s),a=r>=e.length;if(s=!s&&vt.isArray(i)?i.length:s,a)return vt.hasOwnProp(i,s)?i[s]=[i[s],n]:i[s]=n,!o;i[s]&&vt.isObject(i[s])||(i[s]=[]);return t(e,n,i[s],r)&&vt.isArray(i[s])&&(i[s]=function(e){const t={},n=Object.keys(e);let i;const r=n.length;let s;for(i=0;i<r;i++)s=n[i],t[s]=e[s];return t}(i[s])),!o}if(vt.isFormData(e)&&vt.isFunction(e.entries)){const n={};return vt.forEachEntry(e,(e,i)=>{t(function(e){return vt.matchAll(/\w+|\[(\w*)]/g,e).map(e=>"[]"===e[0]?"":e[1]||e[0])}(e),i,n,0)}),n}return null}const Mt={transitional:Ut,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",i=n.indexOf("application/json")>-1,r=vt.isObject(e);r&&vt.isHTMLForm(e)&&(e=new FormData(e));if(vt.isFormData(e))return i?JSON.stringify(zt(e)):e;if(vt.isArrayBuffer(e)||vt.isBuffer(e)||vt.isStream(e)||vt.isFile(e)||vt.isBlob(e)||vt.isReadableStream(e))return e;if(vt.isArrayBufferView(e))return e.buffer;if(vt.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let s;if(r){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return Tt(e,new qt.classes.URLSearchParams,{visitor:function(e,t,n,i){return qt.isNode&&vt.isBuffer(e)?(this.append(t,e.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}(e,this.formSerializer).toString();if((s=vt.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return Tt(s?{"files[]":e}:e,t&&new t,this.formSerializer)}}return r||i?(t.setContentType("application/json",!1),function(e,t,n){if(vt.isString(e))try{return(t||JSON.parse)(e),vt.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||Mt.transitional,n=t&&t.forcedJSONParsing,i="json"===this.responseType;if(vt.isResponse(e)||vt.isReadableStream(e))return e;if(e&&vt.isString(e)&&(n&&!this.responseType||i)){const n=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw wt.from(e,wt.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:qt.classes.FormData,Blob:qt.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};vt.forEach(["delete","get","head","post","put","patch"],e=>{Mt.headers[e]={}});const Kt=vt.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Ht=Symbol("internals");function Jt(e){return e&&String(e).trim().toLowerCase()}function Wt(e){return!1===e||null==e?e:vt.isArray(e)?e.map(Wt):String(e)}function Vt(e,t,n,i,r){return vt.isFunction(i)?i.call(this,t,n):(r&&(t=n),vt.isString(t)?vt.isString(i)?-1!==t.indexOf(i):vt.isRegExp(i)?i.test(t):void 0:void 0)}let Xt=class AxiosHeaders{constructor(e){e&&this.set(e)}set(e,t,n){const i=this;function r(e,t,n){const r=Jt(t);if(!r)throw new Error("header name must be a non-empty string");const s=vt.findKey(i,r);(!s||void 0===i[s]||!0===n||void 0===n&&!1!==i[s])&&(i[s||t]=Wt(e))}const s=(e,t)=>vt.forEach(e,(e,n)=>r(e,n,t));if(vt.isPlainObject(e)||e instanceof this.constructor)s(e,t);else if(vt.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))s((e=>{const t={};let n,i,r;return e&&e.split("\n").forEach(function(e){r=e.indexOf(":"),n=e.substring(0,r).trim().toLowerCase(),i=e.substring(r+1).trim(),!n||t[n]&&Kt[n]||("set-cookie"===n?t[n]?t[n].push(i):t[n]=[i]:t[n]=t[n]?t[n]+", "+i:i)}),t})(e),t);else if(vt.isObject(e)&&vt.isIterable(e)){let n,i,r={};for(const t of e){if(!vt.isArray(t))throw TypeError("Object iterator must return a key-value pair");r[i=t[0]]=(n=r[i])?vt.isArray(n)?[...n,t[1]]:[n,t[1]]:t[1]}s(r,t)}else null!=e&&r(t,e,n);return this}get(e,t){if(e=Jt(e)){const n=vt.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;for(;i=n.exec(e);)t[i[1]]=i[2];return t}(e);if(vt.isFunction(t))return t.call(this,e,n);if(vt.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Jt(e)){const n=vt.findKey(this,e);return!(!n||void 0===this[n]||t&&!Vt(0,this[n],n,t))}return!1}delete(e,t){const n=this;let i=!1;function r(e){if(e=Jt(e)){const r=vt.findKey(n,e);!r||t&&!Vt(0,n[r],r,t)||(delete n[r],i=!0)}}return vt.isArray(e)?e.forEach(r):r(e),i}clear(e){const t=Object.keys(this);let n=t.length,i=!1;for(;n--;){const r=t[n];e&&!Vt(0,this[r],r,e,!0)||(delete this[r],i=!0)}return i}normalize(e){const t=this,n={};return vt.forEach(this,(i,r)=>{const s=vt.findKey(n,r);if(s)return t[s]=Wt(i),void delete t[r];const o=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}(r):String(r).trim();o!==r&&delete t[r],t[o]=Wt(i),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return vt.forEach(this,(n,i)=>{null!=n&&!1!==n&&(t[i]=e&&vt.isArray(n)?n.join(", "):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){const t=(this[Ht]=this[Ht]={accessors:{}}).accessors,n=this.prototype;function i(e){const i=Jt(e);t[i]||(!function(e,t){const n=vt.toCamelCase(" "+t);["get","set","has"].forEach(i=>{Object.defineProperty(e,i+n,{value:function(e,n,r){return this[i].call(this,t,e,n,r)},configurable:!0})})}(n,e),t[i]=!0)}return vt.isArray(e)?e.forEach(i):i(e),this}};function Gt(e,t){const n=this||Mt,i=t||n,r=Xt.from(i.headers);let s=i.data;return vt.forEach(e,function(e){s=e.call(n,s,r.normalize(),t?t.status:void 0)}),r.normalize(),s}function Qt(e){return!(!e||!e.__CANCEL__)}function Zt(e,t,n){wt.call(this,e??"canceled",wt.ERR_CANCELED,t,n),this.name="CanceledError"}function Yt(e,t,n){const i=n.config.validateStatus;n.status&&i&&!i(n.status)?t(new wt("Request failed with status code "+n.status,[wt.ERR_BAD_REQUEST,wt.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}Xt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),vt.reduceDescriptors(Xt.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),vt.freezeMethods(Xt),vt.inherits(Zt,wt,{__CANCEL__:!0});const en=(e,t,n=3)=>{let i=0;const r=function(e,t){e=e||10;const n=new Array(e),i=new Array(e);let r,s=0,o=0;return t=void 0!==t?t:1e3,function(a){const l=Date.now(),c=i[o];r||(r=l),n[s]=a,i[s]=l;let u=o,d=0;for(;u!==s;)d+=n[u++],u%=e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),l-r<t)return;const p=c&&l-c;return p?Math.round(1e3*d/p):void 0}}(50,250);return function(e,t){let n,i,r=0,s=1e3/t;const o=(t,s=Date.now())=>{r=s,n=null,i&&(clearTimeout(i),i=null),e(...t)};return[(...e)=>{const t=Date.now(),a=t-r;a>=s?o(e,t):(n=e,i||(i=setTimeout(()=>{i=null,o(n)},s-a)))},()=>n&&o(n)]}(n=>{const s=n.loaded,o=n.lengthComputable?n.total:void 0,a=s-i,l=r(a);i=s;e({loaded:s,total:o,progress:o?s/o:void 0,bytes:a,rate:l||void 0,estimated:l&&o&&s<=o?(o-s)/l:void 0,event:n,lengthComputable:null!=o,[t?"download":"upload"]:!0})},n)},tn=(e,t)=>{const n=null!=e;return[i=>t[0]({lengthComputable:n,total:e,loaded:i}),t[1]]},nn=e=>(...t)=>vt.asap(()=>e(...t));var rn=qt.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,qt.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(qt.origin),qt.navigator&&/(msie|trident)/i.test(qt.navigator.userAgent)):()=>!0,sn=qt.hasStandardBrowserEnv?{write(e,t,n,i,r,s){const o=[e+"="+encodeURIComponent(t)];vt.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),vt.isString(i)&&o.push("path="+i),vt.isString(r)&&o.push("domain="+r),!0===s&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function on(e,t,n){let i=!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t);return e&&(i||0==n)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const an=e=>e instanceof Xt?{...e}:e;function ln(e,t){t=t||{};const n={};function i(e,t,n,i){return vt.isPlainObject(e)&&vt.isPlainObject(t)?vt.merge.call({caseless:i},e,t):vt.isPlainObject(t)?vt.merge({},t):vt.isArray(t)?t.slice():t}function r(e,t,n,r){return vt.isUndefined(t)?vt.isUndefined(e)?void 0:i(void 0,e,0,r):i(e,t,0,r)}function s(e,t){if(!vt.isUndefined(t))return i(void 0,t)}function o(e,t){return vt.isUndefined(t)?vt.isUndefined(e)?void 0:i(void 0,e):i(void 0,t)}function a(n,r,s){return s in t?i(n,r):s in e?i(void 0,n):void 0}const l={url:s,method:s,data:s,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:a,headers:(e,t,n)=>r(an(e),an(t),0,!0)};return vt.forEach(Object.keys({...e,...t}),function(i){const s=l[i]||r,o=s(e[i],t[i],i);vt.isUndefined(o)&&s!==a||(n[i]=o)}),n}var cn=e=>{const t=ln({},e);let n,{data:i,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:a,auth:l}=t;if(t.headers=a=Xt.from(a),t.url=Nt(on(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),vt.isFormData(i))if(qt.hasStandardBrowserEnv||qt.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(!1!==(n=a.getContentType())){const[e,...t]=n?n.split(";").map(e=>e.trim()).filter(Boolean):[];a.setContentType([e||"multipart/form-data",...t].join("; "))}if(qt.hasStandardBrowserEnv&&(r&&vt.isFunction(r)&&(r=r(t)),r||!1!==r&&rn(t.url))){const e=s&&o&&sn.read(o);e&&a.set(s,e)}return t};var un="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise(function(t,n){const i=cn(e);let r=i.data;const s=Xt.from(i.headers).normalize();let o,a,l,c,u,{responseType:d,onUploadProgress:p,onDownloadProgress:h}=i;function f(){c&&c(),u&&u(),i.cancelToken&&i.cancelToken.unsubscribe(o),i.signal&&i.signal.removeEventListener("abort",o)}let m=new XMLHttpRequest;function g(){if(!m)return;const i=Xt.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());Yt(function(e){t(e),f()},function(e){n(e),f()},{data:d&&"text"!==d&&"json"!==d?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:i,config:e,request:m}),m=null}m.open(i.method.toUpperCase(),i.url,!0),m.timeout=i.timeout,"onloadend"in m?m.onloadend=g:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(g)},m.onabort=function(){m&&(n(new wt("Request aborted",wt.ECONNABORTED,e,m)),m=null)},m.onerror=function(){n(new wt("Network Error",wt.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let t=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const r=i.transitional||Ut;i.timeoutErrorMessage&&(t=i.timeoutErrorMessage),n(new wt(t,r.clarifyTimeoutError?wt.ETIMEDOUT:wt.ECONNABORTED,e,m)),m=null},void 0===r&&s.setContentType(null),"setRequestHeader"in m&&vt.forEach(s.toJSON(),function(e,t){m.setRequestHeader(t,e)}),vt.isUndefined(i.withCredentials)||(m.withCredentials=!!i.withCredentials),d&&"json"!==d&&(m.responseType=i.responseType),h&&([l,u]=en(h,!0),m.addEventListener("progress",l)),p&&m.upload&&([a,c]=en(p),m.upload.addEventListener("progress",a),m.upload.addEventListener("loadend",c)),(i.cancelToken||i.signal)&&(o=t=>{m&&(n(!t||t.type?new Zt(null,e,m):t),m.abort(),m=null)},i.cancelToken&&i.cancelToken.subscribe(o),i.signal&&(i.signal.aborted?o():i.signal.addEventListener("abort",o)));const b=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(i.url);b&&-1===qt.protocols.indexOf(b)?n(new wt("Unsupported protocol "+b+":",wt.ERR_BAD_REQUEST,e)):m.send(r||null)})};const dn=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let n,i=new AbortController;const r=function(e){if(!n){n=!0,o();const t=e instanceof Error?e:this.reason;i.abort(t instanceof wt?t:new Zt(t instanceof Error?t.message:t))}};let s=t&&setTimeout(()=>{s=null,r(new wt(`timeout ${t} of ms exceeded`,wt.ETIMEDOUT))},t);const o=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(r):e.removeEventListener("abort",r)}),e=null)};e.forEach(e=>e.addEventListener("abort",r));const{signal:a}=i;return a.unsubscribe=()=>vt.asap(o),a}},pn=function*(e,t){let n=e.byteLength;if(n<t)return void(yield e);let i,r=0;for(;r<n;)i=r+t,yield e.slice(r,i),r=i},hn=async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:n}=await t.read();if(e)break;yield n}}finally{await t.cancel()}},fn=(e,t,n,i)=>{const r=async function*(e,t){for await(const n of hn(e))yield*pn(n,t)}(e,t);let s,o=0,a=e=>{s||(s=!0,i&&i(e))};return new ReadableStream({async pull(e){try{const{done:t,value:i}=await r.next();if(t)return a(),void e.close();let s=i.byteLength;if(n){let e=o+=s;n(e)}e.enqueue(new Uint8Array(i))}catch(e){throw a(e),e}},cancel:e=>(a(e),r.return())},{highWaterMark:2})},mn="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,gn=mn&&"function"==typeof ReadableStream,bn=mn&&("function"==typeof TextEncoder?(yn=new TextEncoder,e=>yn.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var yn;const _n=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},vn=gn&&_n(()=>{let e=!1;const t=new Request(qt.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),wn=gn&&_n(()=>vt.isReadableStream(new Response("").body)),Cn={stream:wn&&(e=>e.body)};var En;mn&&(En=new Response,["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!Cn[e]&&(Cn[e]=vt.isFunction(En[e])?t=>t[e]():(t,n)=>{throw new wt(`Response type '${e}' is not supported`,wt.ERR_NOT_SUPPORT,n)})}));const Rn=async(e,t)=>{const n=vt.toFiniteNumber(e.getContentLength());return n??(async e=>{if(null==e)return 0;if(vt.isBlob(e))return e.size;if(vt.isSpecCompliantForm(e)){const t=new Request(qt.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return vt.isArrayBufferView(e)||vt.isArrayBuffer(e)?e.byteLength:(vt.isURLSearchParams(e)&&(e+=""),vt.isString(e)?(await bn(e)).byteLength:void 0)})(t)};const Sn={http:null,xhr:un,fetch:mn&&(async e=>{let{url:t,method:n,data:i,signal:r,cancelToken:s,timeout:o,onDownloadProgress:a,onUploadProgress:l,responseType:c,headers:u,withCredentials:d="same-origin",fetchOptions:p}=cn(e);c=c?(c+"").toLowerCase():"text";let h,f=dn([r,s&&s.toAbortSignal()],o);const m=f&&f.unsubscribe&&(()=>{f.unsubscribe()});let g;try{if(l&&vn&&"get"!==n&&"head"!==n&&0!==(g=await Rn(u,i))){let e,n=new Request(t,{method:"POST",body:i,duplex:"half"});if(vt.isFormData(i)&&(e=n.headers.get("content-type"))&&u.setContentType(e),n.body){const[e,t]=tn(g,en(nn(l)));i=fn(n.body,65536,e,t)}}vt.isString(d)||(d=d?"include":"omit");const r="credentials"in Request.prototype;h=new Request(t,{...p,signal:f,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:i,duplex:"half",credentials:r?d:void 0});let s=await fetch(h,p);const o=wn&&("stream"===c||"response"===c);if(wn&&(a||o&&m)){const e={};["status","statusText","headers"].forEach(t=>{e[t]=s[t]});const t=vt.toFiniteNumber(s.headers.get("content-length")),[n,i]=a&&tn(t,en(nn(a),!0))||[];s=new Response(fn(s.body,65536,n,()=>{i&&i(),m&&m()}),e)}c=c||"text";let b=await Cn[vt.findKey(Cn,c)||"text"](s,e);return!o&&m&&m(),await new Promise((t,n)=>{Yt(t,n,{data:b,headers:Xt.from(s.headers),status:s.status,statusText:s.statusText,config:e,request:h})})}catch(t){if(m&&m(),t&&"TypeError"===t.name&&/Load failed|fetch/i.test(t.message))throw Object.assign(new wt("Network Error",wt.ERR_NETWORK,e,h),{cause:t.cause||t});throw wt.from(t,t&&t.code,e,h)}})};vt.forEach(Sn,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}});const On=e=>`- ${e}`,An=e=>vt.isFunction(e)||null===e||!1===e;var Tn=e=>{e=vt.isArray(e)?e:[e];const{length:t}=e;let n,i;const r={};for(let s=0;s<t;s++){let t;if(n=e[s],i=n,!An(n)&&(i=Sn[(t=String(n)).toLowerCase()],void 0===i))throw new wt(`Unknown adapter '${t}'`);if(i)break;r[t||"#"+s]=i}if(!i){const e=Object.entries(r).map(([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build"));throw new wt("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(On).join("\n"):" "+On(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return i};function jn(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Zt(null,e)}function xn(e){jn(e),e.headers=Xt.from(e.headers),e.data=Gt.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return Tn(e.adapter||Mt.adapter)(e).then(function(t){return jn(e),t.data=Gt.call(e,e.transformResponse,t),t.headers=Xt.from(t.headers),t},function(t){return Qt(t)||(jn(e),t&&t.response&&(t.response.data=Gt.call(e,e.transformResponse,t.response),t.response.headers=Xt.from(t.response.headers))),Promise.reject(t)})}const kn="1.11.0",Pn={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Pn[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const Nn={};Pn.transitional=function(e,t,n){function i(e,t){return"[Axios v"+kn+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,r,s)=>{if(!1===e)throw new wt(i(r," has been removed"+(t?" in "+t:"")),wt.ERR_DEPRECATED);return t&&!Nn[r]&&(Nn[r]=!0,console.warn(i(r," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,r,s)}},Pn.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};var Un={assertOptions:function(e,t,n){if("object"!=typeof e)throw new wt("options must be an object",wt.ERR_BAD_OPTION_VALUE);const i=Object.keys(e);let r=i.length;for(;r-- >0;){const s=i[r],o=t[s];if(o){const t=e[s],n=void 0===t||o(t,s,e);if(!0!==n)throw new wt("option "+s+" must be "+n,wt.ERR_BAD_OPTION_VALUE);continue}if(!0!==n)throw new wt("Unknown option "+s,wt.ERR_BAD_OPTION)}},validators:Pn};const Ln=Un.validators;let Fn=class Axios{constructor(e){this.defaults=e||{},this.interceptors={request:new InterceptorManager,response:new InterceptorManager}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const n=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?n&&!String(e.stack).endsWith(n.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+n):e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=ln(this.defaults,t);const{transitional:n,paramsSerializer:i,headers:r}=t;void 0!==n&&Un.assertOptions(n,{silentJSONParsing:Ln.transitional(Ln.boolean),forcedJSONParsing:Ln.transitional(Ln.boolean),clarifyTimeoutError:Ln.transitional(Ln.boolean)},!1),null!=i&&(vt.isFunction(i)?t.paramsSerializer={serialize:i}:Un.assertOptions(i,{encode:Ln.function,serialize:Ln.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),Un.assertOptions(t,{baseUrl:Ln.spelling("baseURL"),withXsrfToken:Ln.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=r&&vt.merge(r.common,r[t.method]);r&&vt.forEach(["delete","get","head","post","put","patch","common"],e=>{delete r[e]}),t.headers=Xt.concat(s,r);const o=[];let a=!0;this.interceptors.request.forEach(function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(a=a&&e.synchronous,o.unshift(e.fulfilled,e.rejected))});const l=[];let c;this.interceptors.response.forEach(function(e){l.push(e.fulfilled,e.rejected)});let u,d=0;if(!a){const e=[xn.bind(this),void 0];for(e.unshift(...o),e.push(...l),u=e.length,c=Promise.resolve(t);d<u;)c=c.then(e[d++],e[d++]);return c}u=o.length;let p=t;for(d=0;d<u;){const e=o[d++],t=o[d++];try{p=e(p)}catch(e){t.call(this,e);break}}try{c=xn.call(this,p)}catch(e){return Promise.reject(e)}for(d=0,u=l.length;d<u;)c=c.then(l[d++],l[d++]);return c}getUri(e){return Nt(on((e=ln(this.defaults,e)).baseURL,e.url,e.allowAbsoluteUrls),e.params,e.paramsSerializer)}};vt.forEach(["delete","get","head","options"],function(e){Fn.prototype[e]=function(t,n){return this.request(ln(n||{},{method:e,url:t,data:(n||{}).data}))}}),vt.forEach(["post","put","patch"],function(e){function t(t){return function(n,i,r){return this.request(ln(r||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:i}))}}Fn.prototype[e]=t(),Fn.prototype[e+"Form"]=t(!0)});const Dn={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Dn).forEach(([e,t])=>{Dn[t]=e});const Bn=function e(t){const n=new Fn(t),i=xe(Fn.prototype.request,n);return vt.extend(i,Fn.prototype,n,{allOwnKeys:!0}),vt.extend(i,n,null,{allOwnKeys:!0}),i.create=function(n){return e(ln(t,n))},i}(Mt);Bn.Axios=Fn,Bn.CanceledError=Zt,Bn.CancelToken=class CancelToken{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise(function(e){t=e});const n=this;this.promise.then(e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t;const i=new Promise(e=>{n.subscribe(e),t=e}).then(e);return i.cancel=function(){n.unsubscribe(t)},i},e(function(e,i,r){n.reason||(n.reason=new Zt(e,i,r),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new CancelToken(function(t){e=t}),cancel:e}}},Bn.isCancel=Qt,Bn.VERSION=kn,Bn.toFormData=Tt,Bn.AxiosError=wt,Bn.Cancel=Bn.CanceledError,Bn.all=function(e){return Promise.all(e)},Bn.spread=function(e){return function(t){return e.apply(null,t)}},Bn.isAxiosError=function(e){return vt.isObject(e)&&!0===e.isAxiosError},Bn.mergeConfig=ln,Bn.AxiosHeaders=Xt,Bn.formToJSON=e=>zt(vt.isHTMLForm(e)?new FormData(e):e),Bn.getAdapter=Tn,Bn.HttpStatusCode=Dn,Bn.default=Bn;const{Axios:In,AxiosError:$n,CanceledError:qn,isCancel:zn,CancelToken:Mn,VERSION:Kn,all:Hn,Cancel:Jn,isAxiosError:Wn,spread:Vn,toFormData:Xn,AxiosHeaders:Gn,HttpStatusCode:Qn,formToJSON:Zn,getAdapter:Yn,mergeConfig:ei}=Bn;var ti=class{constructor(e,t){this.httpClient=e,this.validate=t}async getAppointments(e){return this.httpClient.get("/appointments/v1",{params:e}).then(this.validate(Oe))}async createAppointment(e){return this.httpClient.post(`/appointments/v1/slots/${e.slot_id}`,e).then(e=>e.data).then(this.validate(Ae))}async getAppointment(e){return this.httpClient.get(`/api/v1/appointments/${e.id}`).then(e=>e.data).then(this.validate(Te))}async getDocumentsStorage(){return this.httpClient.get("/appointments/v1/documents/storage").then(e=>e.data).then(this.validate(je))}async rescheduleAppointment(e){const{id:t,...n}=e;return this.httpClient.put(`/appointments/v1/${t}/reschedule`,n)}async cancelAppointment(e){return this.httpClient.put(`/appointments/v1/${e.id}/cancel`)}async updateAppointment(e){const{appointment_id:t,...n}=e;return this.httpClient.put(`/appointments/v1/${t}/update`,n)}async addDocument(e){const{appointment_id:t,...n}=e;return this.httpClient.post(`/appointments/v1/${t}/consultation-document`,n)}async deleteDocument(e){return this.httpClient.delete(`/appointments/v1/${e.appointment_id}/consultation-document/${e.document_id}`)}async reconnectAppointment(e){return this.httpClient.put(`/appointments/v1/${e.appointmentId}/reconnect`)}},ni=class{constructor(e,t){this.httpClient=e,this.validate=t}async loginToken(e){return this.httpClient.post("/login/v1/token",{token:e.token},{headers:{"x-api-key":e.api_key}}).then(this.validate(K))}};var ii=class{constructor(e,t){this.httpClient=e,this.validate=t}async postReview(e){return this.httpClient.post("/consultations/v1/review",e)}async startChatConsultation(e){return this.httpClient.put(`/consultations/v1/chat/professionals/${encodeURIComponent(e)}/consult`).then(()=>{})}async getReview(e){return this.httpClient.get(`/consultations/v1/review/${e}`).then(e=>e.data).then(this.validate(H))}},ri=class{constructor(e,t){this.httpClient=e,this.validate=t}async uploadFile(e){const t=new FormData;return t.append("file",e.file,e.file.name),this.httpClient.post("/documents/v1/upload-file",t,{headers:{"Content-Type":"multipart/form-data"}}).then(this.validate(re))}},si=class{constructor(e,t){this.httpClient=e,this.validate=t}async getAppointment(e){return this.httpClient.get(`/flash/v1/appointments/${e.appointmentId}`).then(e=>e.data).then(this.validate(ee))}async joinCall(e){return this.httpClient.get(`/flash/v1/calls/${e.callId}/join`).then(e=>e.data).then(this.validate(te))}async setReady(e){return this.httpClient.post(`/flash/v1/waiting/${e.professional_hash}/ready`,{consultation_id:e.consultation_id,consultation_type:e.consultation_type})}async leaveWaitingRoom(e){return this.httpClient.post(`/flash/v1/waiting/${e.professional_hash}/leave`,{consultation_id:e.consultation_id,consultation_type:e.consultation_type})}async getSharedDocuments(e){return this.httpClient.get(`/flash/v1/appointments/${e.appointment_id}/documents`).then(e=>e.data).then(this.validate(ne))}async downloadDocument(e){return this.httpClient.get(e.url,{responseType:"blob"}).then(e=>e.data)}async updatePatientProfile(e){return this.httpClient.put("/flash/v1/profile",e)}async getPatientDocuments(e){return this.httpClient.get(`/flash/v1/patients/${e.patient_hash}/documents`,{params:{page:e.page,per_page:e.per_page}}).then(this.validate(ie))}},oi=class{constructor(e,t){this.httpClient=e,this.validate=t}async getOrganizationSpecialties(){return this.httpClient.get("/organizations/v1/specialities").then(e=>e.data).then(this.validate(Ce))}async getOrganizationSetup(){return this.httpClient.get("/organizations/v1/setup").then(e=>e.data).then(this.validate(Ee))}},ai=class{constructor(e,t){this.httpClient=e,this.validate=t}async createPaymentLink(e){const{specialty_id:t,...n}=e,i={...n,speciality_id:t};return this.httpClient.post("/payments/v1/schedule",i).then(e=>e.data).then(this.validate(pe))}async createImmediateVideocallPaymentLink(e){return this.httpClient.post("/payments/v1/immediate-videocall",e).then(e=>e.data).then(this.validate(he))}async createChatConsultationPaymentLink(e){return this.httpClient.post("/payments/v1/schedule",e).then(e=>e.data).then(this.validate(fe))}async getConsultationCoupon(e,t){return this.httpClient.get(`/payments/v1/consultation-coupon/${encodeURIComponent(e)}`,{params:{amount:t}}).then(e=>e.data).then(this.validate(ce))}async getAppointmentConsultationCoupon(e){return this.httpClient.get(`/payments/v1/appointment/${encodeURIComponent(e)}/consultation-coupon`).then(e=>e.data).then(this.validate(ue))}async getPaymentSession(e){return this.httpClient.get(`/payments/v1/session/${e}`).then(e=>e.data).then(this.validate(ge))}async validateApplePayMerchant(e){return this.httpClient.post("/payments/v1/apple-pay/validate-merchant",e).then(this.validate(_e))}async authorizeApplePay(e){return this.httpClient.post("/payments/v1/apple-pay/authorize",e).then(this.validate(ve))}async authorizeGooglePay(e){return this.httpClient.post("/payments/v1/google-pay/authorize",e).then(this.validate(we))}},li=class{constructor(e,t){this.httpClient=e,this.validate=t}async getProfessional(e){return this.httpClient.get(`sdk/v1/professionals/${e.hash}`).then(e=>e.data).then(this.validate(ae))}async readAllMessages(e){return this.httpClient.put(`sdk/v1/rooms/${e.roomId}/messages/read`).then(e=>e.data)}},ci=class{constructor(e,t){this.httpClient=e,this.validate=t}async getPatientProfile(){return this.httpClient.get("/profile/v1/patients").then(e=>e.data).then(this.validate(Re))}async getProfessionalPublicProfile(e){return this.httpClient.get(`/profile/v1/public/professionals/${e.hash}`).then(e=>e.data).then(this.validate(Se))}async acceptLegalConsent(e){return this.httpClient.post("/profile/v1/legal-consent",e)}},ui=class{constructor(e,t){this.httpClient=e,this.validate=t}async getRoomMessages(e){return this.httpClient.get(`api/v1/rooms/${e.roomId}/messages`).then(e=>e.data).then(this.validate(R))}async getUnreadMessagesCount(e){return this.httpClient.get(`chat/v1/${e.roomId}/unread-count`).then(e=>e.data).then(this.validate(S))}async createSupportRoom(e){return this.httpClient.post("chat/v1/support-room",e).then(e=>e.data).then(this.validate(O))}},di=class{constructor(e,t){this.httpClient=e,this.validate=t}async getScheduleServices(){return this.httpClient.get("/schedules/v1/services").then(e=>e.data).then(this.validate(I))}async getProfessionalsBySpecialtyAndService(e){return this.httpClient.get("/schedules/v1/professionals",{params:e}).then(e=>e.data).then(this.validate($))}async getScheduleServiceProfessionalSlots(e){return this.httpClient.get(`/schedules/v1/services/${e.service_id}/professionals/${e.professional_hash}/slots`,{params:{starts_at:e.starts_at,finishes_at:e.finishes_at,rescheduling_appointment_id:e.rescheduling_appointment_id}}).then(e=>e.data).then(this.validate(q))}async getScheduleServiceSpecialities(e){return this.httpClient.get(`/schedules/v1/services/${e}/specialities`).then(e=>e.data).then(this.validate(z))}async getScheduleSlot(e){return this.httpClient.get(`schedules/v1/slot/${e.slot_id}`,{params:{service_id:e.service_id,speciality_id:e.speciality_id}}).then(e=>e.data).then(this.validate(M))}};var pi={development:"https://chat-dev.mediquo.com",production:"https://chat.mediquo.com"},hi=class{constructor({env:e="production",baseURL:t,debug:n,apiKey:i,token:r,locale:s}={}){const o=t??pi[e];var a;this.httpClient=(a=o,Bn.create({baseURL:a,headers:{"Content-Type":"application/json"}}));const l=(c={debug:n},e=>t=>{const n=e.safeParse(t.data);if(n.error&&c?.debug){const e=t.config?.url??"";console.warn(`[Validation Error]${e?` - URL: ${e}`:""}\n${i=n.error,i.issues.map(e=>`${e.path.join(".")}: ${e.message}`).join("\n")}`)}var i;return n.data??t.data});var c;this.flash=new si(this.httpClient,l),this.auth=new ni(this.httpClient,l),this.appointments=new ti(this.httpClient,l),this.payments=new ai(this.httpClient,l),this.schedules=new di(this.httpClient,l),this.organizations=new oi(this.httpClient,l),this.profile=new ci(this.httpClient,l),this.professionals=new li(this.httpClient,l),this.rooms=new ui(this.httpClient,l),this.documents=new ri(this.httpClient,l),this.consultations=new ii(this.httpClient,l),i&&this.setApiKey(i),r&&this.setAuthToken(r),s&&this.setLanguage(s)}setAuthToken(e){this.httpClient.defaults.headers.common.Authorization=`Bearer ${e}`}setApiKey(e){this._apiKey=e,this.httpClient.defaults.headers.common["x-api-key"]=e}getApiKey(){return this._apiKey}setLanguage(e){this.httpClient.defaults.headers.common["Accept-Language"]=e}};function fi({env:e,apiKey:t,token:n,locale:i}={}){const r=e??b.MODE;return new hi({env:r,debug:"development"===r,apiKey:t,token:n,locale:i})}const mi=["env","apiKey","token","locale","inheritedApiClient"];function gi(e,t,n){if(mi.some(t=>e.has(t)))return t.apiKey||t.token||t.locale||!n?fi({...t,apiKey:t.apiKey??n?.getApiKey()}):n}export{T as A,N as C,V as D,y as M,me as P,D as S,be as a,ye as b,fi as c,L as d,x as e,U as f,le as g,de as h,Wn as i,Z as j,Y as k,gi as n};
@@ -0,0 +1 @@
1
+ import{n as e}from"./create-context-DqP79qjF.js";var o=e(Symbol.for("mediquo-api-client"));export{o as A};
@@ -1 +1 @@
1
- import{P as n}from"./api-chat-client-CzlZkbW1.js";function e(e,r,t){return e===n.Paid?{kind:"success",sessionId:t,reference:r}:e===n.Denied?{kind:"denied",sessionId:t}:{kind:"error",reason:"authorize"}}function r(n){const e=n.merchant_session;return null===e||"object"!=typeof e||Array.isArray(e)?n:e}function t(n){if("string"==typeof n)return n;if(null!==n&&"object"==typeof n&&"paymentData"in n){const e=n.paymentData;if("string"==typeof e)return e;if(null!=e)return JSON.stringify(e)}return JSON.stringify(n)}export{e as r,t as s,r as u};
1
+ import{P as n}from"./api-chat-client-D5BosjTp.js";function e(e,r,t){return e===n.Paid?{kind:"success",sessionId:t,reference:r}:e===n.Denied?{kind:"denied",sessionId:t}:{kind:"error",reason:"authorize"}}function r(n){const e=n.merchant_session;return null===e||"object"!=typeof e||Array.isArray(e)?n:e}function t(n){if("string"==typeof n)return n;if(null!==n&&"object"==typeof n&&"paymentData"in n){const e=n.paymentData;if("string"==typeof e)return e;if(null!=e)return JSON.stringify(e)}return JSON.stringify(n)}export{e as r,t as s,r as u};
@@ -1 +1 @@
1
- import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{m as i}from"./runtime-Bg1WXVCx.js";import{l as o}from"./localized-decorator-BlOuLhym.js";import{g as a,a as n}from"./chunk-2TKJJNS7-BGwxtEg7.js";import{a as r}from"./addSeconds-ofMnxlgT.js";import{i as s,a as l,E as p,x as m}from"./lit-element-DiWJYFwC.js";import{n as c}from"./property-scuRaFcM.js";import{e as d}from"./class-map-Co76I6aw.js";import{getLocale as h}from"../i18n.js";import{briefcaseIcon as u}from"../ui/icons/briefcase-icon.js";import{calendarIcon as f}from"../ui/icons/calendar-icon.js";import{clockIcon as v}from"../ui/icons/clock-icon.js";import{messageBubbleIcon as w}from"../ui/icons/message-bubble-icon.js";import{phoneIcon as y}from"../ui/icons/phone-icon.js";const g=s`.appointment-details{display:flex;flex-direction:column;gap:var(--sp-3)}.detail-row{display:inline-flex;width:fit-content;align-items:center;gap:var(--sp-2);color:var(--color-neutrals-text-default);font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-bold)}.detail-row svg{flex-shrink:0}.detail-row span::first-letter{text-transform:uppercase}.detail-row.full-width{width:100%}:host([strike-through]) .detail-row span{text-decoration:line-through}@media (min-width:768px){.appointment-details.wide{flex-direction:row;flex-wrap:wrap}}`;let j=class AppointmentDetails extends l{constructor(){super(...arguments),this.channel=void 0,this.variant="default",this.strikeThrough=!1,this.timezone=void 0,this._appointmentChannelToLabel=t=>{switch(t){case"videocall":return i("Videoconsulta");case"chat":return i("Chat");case"phonecall":return i("Consulta telefónica");default:return""}},this._appointmentChannelToIcon=t=>{switch(t){case"videocall":return u({size:24});case"chat":return w({size:24});case"phonecall":return y({size:24});default:return p}}}static{this.styles=g}render(){const t=h().replace("_","-"),e=a(this.timezone),i=new Intl.DateTimeFormat(t,{weekday:"long",year:"numeric",month:"long",day:"numeric",...e?{timeZone:e}:{}}),o=new Intl.DateTimeFormat(t,{timeStyle:"short",...e?{timeZone:e}:{}}),s=new Date(this.startsAt),l=r(s,this.duration),c=i.format(s),u=o.format(s),w=o.format(l),y=e?n(e,s):"";return m`<div class="${d({"appointment-details":!0,wide:"wide"===this.variant})}"><div class="detail-row">${f({size:24})} <span>${c}</span></div><div class="detail-row">${v({size:24})} <span>${u} - ${w}${y?` (${y})`:""}</span></div>${this.channel?m`<div class="detail-row full-width">${this._appointmentChannelToIcon(this.channel)} <span>${this._appointmentChannelToLabel(this.channel)}</span></div>`:p}</div>`}};t([c({type:String})],j.prototype,"startsAt",void 0),t([c({type:Number})],j.prototype,"duration",void 0),t([c({type:String})],j.prototype,"channel",void 0),t([c({type:String})],j.prototype,"variant",void 0),t([c({type:Boolean,attribute:"strike-through"})],j.prototype,"strikeThrough",void 0),t([c({type:String})],j.prototype,"timezone",void 0),j=t([o(),e("appointment-details")],j);export{j as A};
1
+ import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{m as i}from"./runtime-Bg1WXVCx.js";import{l as o}from"./localized-decorator-BlOuLhym.js";import{g as a,a as n}from"./chunk-2TKJJNS7-DzhxHWWb.js";import{a as r}from"./addSeconds-CXt0dUch.js";import{i as s,a as l,E as p,x as m}from"./lit-element-DiWJYFwC.js";import{n as c}from"./property-scuRaFcM.js";import{e as d}from"./class-map-Co76I6aw.js";import{getLocale as h}from"../i18n.js";import{briefcaseIcon as u}from"../ui/icons/briefcase-icon.js";import{calendarIcon as f}from"../ui/icons/calendar-icon.js";import{clockIcon as v}from"../ui/icons/clock-icon.js";import{messageBubbleIcon as w}from"../ui/icons/message-bubble-icon.js";import{phoneIcon as g}from"../ui/icons/phone-icon.js";const y=s`.appointment-details{display:flex;flex-direction:column;gap:var(--sp-3)}.detail-row{display:inline-flex;width:fit-content;align-items:center;gap:var(--sp-2);color:var(--color-neutrals-text-default);font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-bold)}.detail-row svg{flex-shrink:0}.detail-row span::first-letter{text-transform:uppercase}.detail-row.full-width{width:100%}:host([strike-through]) .detail-row span{text-decoration:line-through}@media (min-width:768px){.appointment-details.wide{flex-direction:row;flex-wrap:wrap}}`;let j=class AppointmentDetails extends l{constructor(){super(...arguments),this.channel=void 0,this.variant="default",this.strikeThrough=!1,this.timezone=void 0,this._appointmentChannelToLabel=t=>{switch(t){case"videocall":return i("Videoconsulta");case"chat":return i("Chat");case"phonecall":return i("Consulta telefónica");default:return""}},this._appointmentChannelToIcon=t=>{switch(t){case"videocall":return u({size:24});case"chat":return w({size:24});case"phonecall":return g({size:24});default:return p}}}static{this.styles=y}render(){const t=h().replace("_","-"),e=a(this.timezone),i=new Intl.DateTimeFormat(t,{weekday:"long",year:"numeric",month:"long",day:"numeric",...e?{timeZone:e}:{}}),o=new Intl.DateTimeFormat(t,{timeStyle:"short",...e?{timeZone:e}:{}}),s=new Date(this.startsAt),l=r(s,this.duration),c=i.format(s),u=o.format(s),w=o.format(l),g=e?n(e,s):"";return m`<div class="${d({"appointment-details":!0,wide:"wide"===this.variant})}"><div class="detail-row">${f({size:24})} <span>${c}</span></div><div class="detail-row">${v({size:24})} <span>${u} - ${w}${g?` (${g})`:""}</span></div>${this.channel?m`<div class="detail-row full-width">${this._appointmentChannelToIcon(this.channel)} <span>${this._appointmentChannelToLabel(this.channel)}</span></div>`:p}</div>`}};t([c({type:String})],j.prototype,"startsAt",void 0),t([c({type:Number})],j.prototype,"duration",void 0),t([c({type:String})],j.prototype,"channel",void 0),t([c({type:String})],j.prototype,"variant",void 0),t([c({type:Boolean,attribute:"strike-through"})],j.prototype,"strikeThrough",void 0),t([c({type:String})],j.prototype,"timezone",void 0),j=t([o(),e("appointment-details")],j);export{j as A};
@@ -0,0 +1 @@
1
+ import{p as t}from"./parseISO-Dj3qSTG8.js";import{f as e}from"./format-CRFiCNHw.js";function n(e){return t(`${e.replace(" ","T")}Z`)}function r(t){const n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()));return e(n,"yyyy-MM-dd HH:mm:ss")}function o(t){if(t)try{return new Intl.DateTimeFormat("en",{timeZone:t}).resolvedOptions().timeZone}catch{return}}function a(t,e){try{const n=new Intl.DateTimeFormat("en",{timeZone:t,timeZoneName:"shortOffset"}).formatToParts(e);return n.find(t=>"timeZoneName"===t.type)?.value??""}catch{return""}}export{a,n as b,r as c,o as g};
@@ -0,0 +1 @@
1
+ var a=6e4;export{a as D};
@@ -0,0 +1 @@
1
+ var o=class _Logger{constructor(o=_Logger.prefix){this.prefix=o}static{this.prefix="[@mediquo/web-components]"}#o(o,...r){console[o](this.prefix,...r)}debug(...o){this.#o("debug",...o)}info(...o){this.#o("info",...o)}warn(...o){this.#o("warn",...o)}error(...o){this.#o("error",...o)}},r=new o;export{o as L,r as l};
@@ -0,0 +1 @@
1
+ import{n as o}from"./create-context-DqP79qjF.js";var e=o(Symbol("login-token"));export{e as l};
@@ -1 +1 @@
1
- import{z as e}from"./external-CJj32K_p.js";import{s as r}from"./chunk-6CCJWPGL-TiaqZaPV.js";var s=e.enum(["ordinary","system"]).enum;function n(e,s,n){return{queryKey:r(e,"unread-messages",s),queryFn:()=>e.rooms.getUnreadMessagesCount(s),staleTime:0,...n}}export{s as S,n as g};
1
+ import{z as e}from"./external-cM_kgYO_.js";import{s as r}from"./chunk-6CCJWPGL-TiaqZaPV.js";var s=e.enum(["ordinary","system"]).enum;function n(e,s,n){return{queryKey:r(e,"unread-messages",s),queryFn:()=>e.rooms.getUnreadMessagesCount(s),staleTime:0,...n}}export{s as S,n as g};
@@ -1 +1 @@
1
- import{n as e}from"./create-context-DqP79qjF.js";import{z as t}from"./external-CJj32K_p.js";var n=e(Symbol.for("mq-socket")),a=t.enum(["message","messageStatus","room_accepted","room_rejected","call_requested","call_rejected","call_picked_up","appointment_created","appointment_cancelled","appointment_accepted","appointment_finished","appointment_expired","appointment_owed","appointment_paid","appointment_unpaid","appointment_uncharged","appointment_rescheduled","absence_cancelled","absence_created","appointment_reporting","consultation_assigned","consultation_finished","consultation_skipped","call_joined","message_deleted","stop_typing","typing","joinRoom"]).enum,o=class _EventReceivedEvent extends Event{constructor(e,t){super(_EventReceivedEvent.eventName,{bubbles:!0,composed:!0}),this.name=e,this.data=t}static{this.eventName="mq-event-received"}};export{o as E,n as S,a};
1
+ import{n as e}from"./create-context-DqP79qjF.js";import{z as t}from"./external-cM_kgYO_.js";var n=e(Symbol.for("mq-socket")),a=t.enum(["message","messageStatus","room_accepted","room_rejected","call_requested","call_rejected","call_picked_up","appointment_created","appointment_cancelled","appointment_accepted","appointment_finished","appointment_expired","appointment_owed","appointment_paid","appointment_unpaid","appointment_uncharged","appointment_rescheduled","absence_cancelled","absence_created","appointment_reporting","consultation_assigned","consultation_finished","consultation_skipped","call_joined","message_deleted","stop_typing","typing","joinRoom"]).enum,o=class _EventReceivedEvent extends Event{constructor(e,t){super(_EventReceivedEvent.eventName,{bubbles:!0,composed:!0}),this.name=e,this.data=t}static{this.eventName="mq-event-received"}};export{a as E,n as S,o as a};
@@ -0,0 +1 @@
1
+ import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{m as i}from"./runtime-Bg1WXVCx.js";import{l as o}from"./localized-decorator-BlOuLhym.js";import{h as a,s as n}from"./task-Bj8p7kJX.js";import{A as s}from"./api-client-context-BXGqBAlO.js";import{C as r,D as l,d}from"./api-chat-client-D5BosjTp.js";import{g as c,a as p}from"./chunk-2TKJJNS7-DzhxHWWb.js";import{a as m}from"./addSeconds-CXt0dUch.js";import{a as h,i as u,E as f,x as g}from"./lit-element-DiWJYFwC.js";import{n as v}from"./property-scuRaFcM.js";import{getLocale as y}from"../i18n.js";import{calendarIcon as b}from"../ui/icons/calendar-icon.js";import{clockIcon as x}from"../ui/icons/clock-icon.js";import{r as w}from"./state-LQivXIgA.js";import{infoCircleOutineIcon as $}from"../ui/icons/info-circle-outine-icon.js";import"../ui/mq-button.js";import{l as k}from"./chunk-S5RWG6G2-CQJ38pW6.js";import{messageBubbleIcon as z}from"../ui/icons/message-bubble-icon.js";import"./mq-chat-room-C7FB_wOo.js";import"../ui/mq-floating-bubble.js";import"../ui/mq-card.js";import"../ui/mq-unread-badge.js";import{c as q}from"./consume-CovVqBjI.js";import{Q as j}from"./query-controller-B1byDHlF.js";import{g as C}from"./chunk-Y4EKUX25-Bdei04iw.js";import"../ui/mq-page-title.js";import{downloadIcon as _}from"../ui/icons/download-icon.js";import{b as S}from"./blob-to-base64-CUL1trde.js";import{DownloadFileEvent as D,MqViewAppointmentsEvent as T}from"../events.js";import{M as I}from"./mutation-controller-CR2qcqhH.js";import{g as O,t as P,b as E,a as F,c as R,e as U}from"./telemetry-client-dwDzxn9N.js";let N=class ChatCta extends h{constructor(){super(...arguments),this.text=i("Utiliza el chat para enviar el motivo de consulta, documentos o imágenes"),this.readonly=!1,this.isChatOpen=!1,this.unreadQuery=new j(this,()=>C(this.apiClient,{roomId:this.roomId}))}static{this.styles=[u`.chat-cta{padding:var(--sp-6) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-4)}.cta-message{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-4);font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);color:var(--color-neutrals-text-default)}.cta-message svg{flex-shrink:0}mq-button svg{flex-shrink:0}mq-chat-room{height:100%}@media (min-width:768px){.chat-cta{padding:var(--sp-6)}mq-button{max-width:323px;margin:0 auto}}`]}render(){return g`<mq-card class="chat-cta" roundness="md"><div class="cta-message">${$({size:24})} <span>${this.text}</span></div><mq-button variant="primary" size="md" fullwidth @click="${()=>{this.isChatOpen=!this.isChatOpen,this.isChatOpen&&this.onOpenChat?.()}}">${z({size:24})} ${i("Chatea con el profesional")} ${(this.unreadQuery.result?.data?.unread_count??0)>0?g`<mq-unread-badge></mq-unread-badge>`:f}</mq-button></mq-card><mq-floating-bubble ?dismissable="${!1}" .open="${this.isChatOpen}" @mq-close="${()=>{this.isChatOpen=!1}}" hideCloseButton>${this.isChatOpen?g`<mq-chat-room slot="content" .consultationId="${this.consultationId}" .consultationType="${r.appointment}" token="${this.loginToken.access_token}" .roomId="${this.roomId}" .professionalHash="${this.professionalHash}" ?readonly="${this.readonly}" @mq-chat-room-close="${()=>{this.isChatOpen=!1}}"></mq-chat-room>`:f}</mq-floating-bubble>`}};t([q({context:s,subscribe:!0})],N.prototype,"apiClient",void 0),t([v({type:Number})],N.prototype,"roomId",void 0),t([v({type:String})],N.prototype,"professionalHash",void 0),t([v({type:String})],N.prototype,"text",void 0),t([v({type:String})],N.prototype,"consultationId",void 0),t([v({type:Boolean,reflect:!0})],N.prototype,"readonly",void 0),t([v({attribute:!1})],N.prototype,"onOpenChat",void 0),t([q({context:k})],N.prototype,"loginToken",void 0),t([w()],N.prototype,"isChatOpen",void 0),N=t([o(),e("chat-cta")],N);let Q=class PageLayout extends h{constructor(){super(...arguments),this.yCentered=!1,this.background="solid"}static{this.styles=u`:host([background=transparent]){background-color:transparent}:host([background=solid]){background-color:var(--color-background)}:host([y-centered]) div{display:grid;place-items:center}div{width:100%;max-width:1000px;padding:var(--mq-layout-padding,0);margin:0 auto;box-sizing:border-box}:host([y-centered]) div{height:100%}main{width:100%}`}render(){return g`<div><main><slot></slot></main></div>`}};t([v({type:Boolean,attribute:"y-centered"})],Q.prototype,"yCentered",void 0),t([v({type:String})],Q.prototype,"background",void 0),Q=t([e("page-layout")],Q);const A=u`:host{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-4);width:100%}.left{display:flex;flex-direction:column;gap:var(--sp-1);flex:1;min-width:0}.tag{border-radius:var(--border-radius-sm);display:inline-flex;align-items:center;justify-content:center;padding:var(--sp-0_5) var(--sp-2);background-color:#e5e5e5;width:fit-content}.tag-label{font-family:var(--font-body);font-size:11px;font-weight:var(--font-weight-medium);color:var(--color-neutrals-text-default);text-transform:uppercase;letter-spacing:3px;line-height:normal}.title{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-weight-bold);color:var(--color-neutrals-text-default);line-height:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.description{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-weight-normal);color:var(--color-neutrals-text-default);line-height:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}`;let B=class PatientDocument extends h{constructor(){super(...arguments),this.isDownloading=!1}static{this.styles=A}getFormatter(){const t=y().replace("_","-");return new Intl.DateTimeFormat(t,{year:"numeric",month:"numeric",day:"numeric"})}async _handleDownload(){this.isDownloading=!0;const t=await this.apiClient.flash.downloadDocument({url:this.downloadUrl}),e=await S(t);this.dispatchEvent(new D({url:e,filename:`${this.filename}.pdf`})),this.isDownloading=!1}formatKind(t){switch(t){case l.prescription:return i("Receta");case l.report:return i("Informe");case l.diagnosticTestPrescription:return i("Prescripción")}}render(){const t=this.getFormatter().format(new Date(this.date));return g`<div class="left"><div class="tag"><span class="tag-label">${this.formatKind(this.kind)}</span></div><div class="title">${t} - ${this.specialty}</div><div class="description">${this.description}</div></div><mq-button variant="ghost" size="icon-lg" @click="${this._handleDownload}" ?disabled="${this.isDownloading}">${_({size:24})}</mq-button>`}};t([q({context:s,subscribe:!0})],B.prototype,"apiClient",void 0),t([v({type:String})],B.prototype,"kind",void 0),t([v({type:String})],B.prototype,"filename",void 0),t([v({type:String})],B.prototype,"specialty",void 0),t([v({type:String})],B.prototype,"description",void 0),t([v({type:String})],B.prototype,"date",void 0),t([v({type:String})],B.prototype,"downloadUrl",void 0),t([w()],B.prototype,"isDownloading",void 0),B=t([o(),e("patient-document")],B);const H=u`mq-page-title{margin:var(--size-3) 0}.description{font-size:var(--text-sm);line-height:var(--text-sm--line-height);color:var(--color-neutrals-text-default);font-weight:var(--font-weight-normal);margin:0;margin-bottom:var(--size-5)}.professional-card{padding:var(--size-4);margin-bottom:var(--size-4)}.professional-card>:not(:first-child){margin-top:var(--size-4)}.professional-name{font-family:var(--font-titles);font-size:var(--text-lg);line-height:var(--text-lg--line-height);color:var(--color-neutrals-text-default);font-weight:var(--font-weight-bold);margin:0;margin-bottom:var(--size-1)}.professional-speciality{font-size:var(--text-base);line-height:var(--text-base--line-height);color:var(--color-neutrals-text-default);font-weight:var(--font-weight-normal);margin:0}.description-list{display:flex;flex-direction:column;gap:var(--size-4)}.description-list-item{display:flex;flex-direction:row;align-items:center;gap:var(--size-2);color:var(--color-neutrals-text-default)}.description-list-item dt{display:inline-flex}.description-list-item dd{margin:0;font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);font-weight:var(--font-weight-semibold)}.description-list-item dd::first-letter{text-transform:uppercase}.documents-card{padding:var(--size-4);margin-bottom:var(--size-6)}.documents-card-empty{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);color:var(--color-neutrals-text-default);font-weight:var(--font-weight-normal)}.documents-card-title{font-family:var(--font-titles);font-size:var(--text-lg);line-height:var(--text-lg--line-height);color:var(--color-neutrals-text-default);font-weight:var(--font-weight-bold);margin:0;margin-bottom:var(--size-4)}.documents-list{margin-bottom:var(--size-4)}.documents-list>:not(:first-child){margin-top:var(--size-2)}.finished-consultation-footer{display:flex;flex-direction:column;gap:var(--size-5)}.document-item-skeleton{height:57px;width:100%;background-color:var(--color-muted);animation:skeleton-pulse 1.5s infinite}@keyframes skeleton-pulse{0%{opacity:1}50%{opacity:.6}100%{opacity:1}}@media (min-width:768px){.description-list{flex-direction:row}mq-button{display:block;max-width:323px;margin:0 auto}}`;let K=class DocumentationView extends h{constructor(){super(...arguments),this.canReconnect=!1,this._sharedocumentsTask=new a(this,{task:async([t])=>await this.apiClient.flash.getSharedDocuments({appointment_id:t}),args:()=>[this.appointment.id]}),this.getOrganizationSpecialtiesQuery=new j(this,()=>O(this.apiClient)),this._reconnectMutation=new I(this,{mutationFn:t=>this.apiClient.appointments.reconnectAppointment(t),onSuccess:()=>{this.dispatchEvent(new CustomEvent("reconnect",{bubbles:!0,composed:!0}))}})}static{this.styles=H}firstUpdated(){P.track(E(this.loginToken.patient.hash,this.appointment.id??""))}render(){const t=!0===this.appointment.has_chat_in_appointment,e=y(),o=e.replace("_","-"),a=c(this.loginToken.patient.timezone),s=a?{timeZone:a}:{},r=new Intl.DateTimeFormat(o,{dateStyle:"full",...s}),l=new Intl.DateTimeFormat(o,{hour:"2-digit",minute:"2-digit",...s}),h=new Date(this.appointment.start_date),u=m(h,this.appointment.duration),v=a?p(a,h):"";return g`<mq-page-title .title="${i("Consulta finalizada")}" back-label="${i("Salir")}" @mq-back="${t=>{t.stopPropagation(),this.dispatchEvent(new T({tab:"history"}))}}"></mq-page-title><p class="description">${i("Si tu médico ha generado alguna documentación podrás verla y descargarla aquí, desde la sección de documentación, tu correo o el chat.")}</p><mq-card class="professional-card" roundness="md"><div><h2 class="professional-name">${this.appointment.from.name}</h2><p class="professional-speciality">${this.appointment.from.speciality}</p></div><dl class="description-list"><div class="description-list-item"><dt>${b()}</dt><dd>${r.format(h)}</dd></div><div class="description-list-item"><dt>${x()}</dt><dd>${l.format(h)} - ${l.format(u)}${v?` (${v})`:""}</dd></div></dl></mq-card><mq-card class="documents-card" roundness="md"><h2 class="documents-card-title">${i("Documentación")}</h2><div class="documents-list">${this._sharedocumentsTask?.render({pending:()=>g`<div class="document-item-skeleton"></div>`,complete:()=>0===this._sharedocumentsTask?.value?.length?g`<p class="documents-card-empty">${i("El médico está terminando de gestionar tu consulta. Actualiza en unos minutos para ver si tienes documentación.")}</p>`:this._sharedocumentsTask?.value?.map(t=>g`<patient-document .kind="${t.document_type}" .filename="${t.name}" .specialty="${(()=>{const i=this.getOrganizationSpecialtiesQuery.result?.data?.find(e=>e.id===t.professional.speciality_id);return F(i?.code??"",e,i?.name)})()}" .description="${t.name}" .date="${t.created_at}" .downloadUrl="${t.url}"></patient-document>`)})}</div><mq-button variant="outline" size="md" fullwidth @click="${()=>{P.track(R(this.loginToken.patient.hash,this.appointment.id??"")),this._sharedocumentsTask?.run()}}" .disabled="${this._sharedocumentsTask?.status===n.PENDING}">${i("Actualizar")}</mq-button></mq-card><div class="finished-consultation-footer">${this.canReconnect?g`<mq-button variant="primary" size="md" fullwidth ?disabled="${this._reconnectMutation.isPending}" @click="${()=>this._reconnectMutation.run({appointmentId:this.appointment.id})}">${i("Volver a la sala de espera")}</mq-button>`:f} ${t?g`<chat-cta .consultationId="${this.appointment.id}" .roomId="${Number(this.appointment.room_id)}" .professionalHash="${this.appointment.from.hash}" .text="${i("Puedes chatear con tu profesional hasta 48 horas finalizada tu cita")}" ?readonly="${d(this.appointment.expires_at)}" .onOpenChat="${()=>{P.track(U(this.loginToken.patient.hash,this.appointment.id??""))}}"></chat-cta>`:f}</div>`}};t([q({context:s,subscribe:!0})],K.prototype,"apiClient",void 0),t([v({type:Object})],K.prototype,"appointment",void 0),t([v({type:String})],K.prototype,"token",void 0),t([v({type:Boolean,attribute:"can-reconnect"})],K.prototype,"canReconnect",void 0),t([q({context:k})],K.prototype,"loginToken",void 0),K=t([o(),e("documentation-view")],K);