@mediquo/elements 0.10.1 → 0.10.2

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 (95) hide show
  1. package/dist/chunks/api-chat-client-CzlZkbW1.js +1 -0
  2. package/dist/chunks/{apple-pay-outcomes-BU_PyQdT.js → apple-pay-outcomes-K8FQPELX.js} +1 -1
  3. package/dist/chunks/{documentation-view-CEfoq9vD.js → documentation-view-BqUQwjti.js} +1 -1
  4. package/dist/chunks/{index-Cgni0Is9.d.ts → index-C1325SFM.d.ts} +1 -1
  5. package/dist/chunks/{index-CYBd3XL2.js → index-DybIBddw.js} +1 -1
  6. package/dist/chunks/{index-DjD-3x4f.js → index-M3514yfv.js} +1 -1
  7. package/dist/chunks/{index-Bv4Mk1Ch.d.ts → index-kaUOEhUj.d.ts} +1 -1
  8. package/dist/chunks/{index-D0njwg5o.d.ts → index-pnQMnaEN.d.ts} +1 -1
  9. package/dist/chunks/{index.d-DeJP_xib.d.ts → index.d-CRSzJK71.d.ts} +15 -0
  10. package/dist/chunks/{mq-chat-room-B3ant6md.d.ts → mq-chat-room-CWIDQUxq.d.ts} +1 -1
  11. package/dist/chunks/{mq-next-appointments-BdsRyXJB.js → mq-next-appointments-BlIFuGgO.js} +1 -1
  12. package/dist/chunks/{mq-recent-documents-CNweIX5U.js → mq-recent-documents-D0krQAnf.js} +1 -1
  13. package/dist/chunks/{next-appointment-card-CWz0tef1.d.ts → next-appointment-card-Cd6GXAne.d.ts} +2 -2
  14. package/dist/chunks/{next-appointment-card-KXLkEJDg.js → next-appointment-card-fL1VemkX.js} +1 -1
  15. package/dist/env.js +1 -1
  16. package/dist/mq-api-client-provider.d.ts +1 -1
  17. package/dist/mq-api-client-provider.js +1 -1
  18. package/dist/mq-apple-pay-checkout.d.ts +1 -1
  19. package/dist/mq-apple-pay-checkout.js +1 -1
  20. package/dist/mq-appointment-checkout.d.ts +3 -1
  21. package/dist/mq-appointment-checkout.js +1 -1
  22. package/dist/mq-appointment-documentation.d.ts +3 -3
  23. package/dist/mq-appointment-documentation.js +1 -1
  24. package/dist/mq-chat-room.d.ts +2 -2
  25. package/dist/mq-chat-room.js +1 -1
  26. package/dist/mq-checkout.d.ts +1 -1
  27. package/dist/mq-checkout.js +1 -1
  28. package/dist/mq-dashboard.d.ts +5 -5
  29. package/dist/mq-dashboard.js +1 -1
  30. package/dist/mq-documents.d.ts +2 -2
  31. package/dist/mq-documents.js +1 -1
  32. package/dist/mq-google-pay-checkout.d.ts +1 -1
  33. package/dist/mq-google-pay-checkout.js +1 -1
  34. package/dist/mq-immediate-videocall-checkout.d.ts +1 -1
  35. package/dist/mq-immediate-videocall-checkout.js +1 -1
  36. package/dist/mq-my-appointments.d.ts +3 -3
  37. package/dist/mq-my-appointments.js +1 -1
  38. package/dist/mq-next-appointments.d.ts +3 -3
  39. package/dist/mq-next-appointments.js +1 -1
  40. package/dist/mq-payment-poller.d.ts +1 -1
  41. package/dist/mq-payment-poller.js +1 -1
  42. package/dist/mq-recent-documents.d.ts +2 -2
  43. package/dist/mq-recent-documents.js +1 -1
  44. package/dist/mq-schedule-success.d.ts +2 -2
  45. package/dist/mq-schedule-success.js +1 -1
  46. package/dist/mq-schedule.d.ts +8 -5
  47. package/dist/mq-schedule.js +1 -1
  48. package/dist/mq-support-chat.d.ts +3 -3
  49. package/dist/mq-support-chat.js +1 -1
  50. package/dist/mq-terms-and-conditions.d.ts +2 -2
  51. package/dist/mq-terms-and-conditions.js +1 -1
  52. package/dist/mq-videocall.d.ts +3 -3
  53. package/dist/mq-videocall.js +1 -1
  54. package/dist/react/mq-api-client-provider.d.ts +1 -1
  55. package/dist/react/mq-api-client-provider.js +1 -1
  56. package/dist/react/mq-apple-pay-checkout.d.ts +1 -1
  57. package/dist/react/mq-apple-pay-checkout.js +1 -1
  58. package/dist/react/mq-appointment-checkout.d.ts +2 -1
  59. package/dist/react/mq-appointment-checkout.js +1 -1
  60. package/dist/react/mq-appointment-documentation.d.ts +3 -3
  61. package/dist/react/mq-appointment-documentation.js +1 -1
  62. package/dist/react/mq-chat-room.d.ts +2 -2
  63. package/dist/react/mq-chat-room.js +1 -1
  64. package/dist/react/mq-checkout.d.ts +1 -1
  65. package/dist/react/mq-checkout.js +1 -1
  66. package/dist/react/mq-dashboard.d.ts +4 -4
  67. package/dist/react/mq-dashboard.js +1 -1
  68. package/dist/react/mq-documents-page.d.ts +2 -2
  69. package/dist/react/mq-documents-page.js +1 -1
  70. package/dist/react/mq-documents.d.ts +2 -2
  71. package/dist/react/mq-documents.js +1 -1
  72. package/dist/react/mq-google-pay-checkout.d.ts +1 -1
  73. package/dist/react/mq-google-pay-checkout.js +1 -1
  74. package/dist/react/mq-immediate-videocall-checkout.d.ts +1 -1
  75. package/dist/react/mq-immediate-videocall-checkout.js +1 -1
  76. package/dist/react/mq-my-appointments.d.ts +3 -3
  77. package/dist/react/mq-my-appointments.js +1 -1
  78. package/dist/react/mq-next-appointments.d.ts +3 -3
  79. package/dist/react/mq-next-appointments.js +1 -1
  80. package/dist/react/mq-payment-poller.d.ts +1 -1
  81. package/dist/react/mq-payment-poller.js +1 -1
  82. package/dist/react/mq-recent-documents.d.ts +2 -2
  83. package/dist/react/mq-recent-documents.js +1 -1
  84. package/dist/react/mq-schedule-success.d.ts +2 -2
  85. package/dist/react/mq-schedule-success.js +1 -1
  86. package/dist/react/mq-schedule.d.ts +1 -1
  87. package/dist/react/mq-schedule.js +1 -1
  88. package/dist/react/mq-support-chat.d.ts +2 -2
  89. package/dist/react/mq-support-chat.js +1 -1
  90. package/dist/react/mq-terms-and-conditions.d.ts +2 -2
  91. package/dist/react/mq-terms-and-conditions.js +1 -1
  92. package/dist/react/mq-videocall.d.ts +3 -3
  93. package/dist/react/mq-videocall.js +1 -1
  94. package/package.json +1 -1
  95. package/dist/chunks/api-chat-client-BhxUWldC.js +0 -1
@@ -0,0 +1 @@
1
+ import{b as e}from"./chunk-2TKJJNS7-BGwxtEg7.js";import{z as t,o as n,s as i,n as r,a as s,e as o,i as a,b as l,r as c,u,c as d,d as p,f as h,l as f,g as m}from"./external-CJj32K_p.js";import{i as g}from"./isBefore-CPpTogxo.js";import{env as b}from"../env.js";var y=t.enum(["pending","expired","accepted","inCall","declined","cancelled","finished","free_of_charge","owed","unpaid","reporting"]),_=y.enum,v=t.enum(["videocall","chat","phonecall"]),w=v.enum,C=t.object({id:t.string().uuid(),room_id:t.string(),channel:v,consultation_short_url:t.string().url().nullable(),call_id:t.string().url(),duration:t.number(),from:t.object({hash:t.string(),name:t.string().nullable(),avatar:t.string().url().nullable(),speciality:t.string().nullable(),collegiate_number:t.string().nullable(),is_dismissed:t.boolean(),languages:t.array(t.string()),description:t.string().nullable()}),to:t.object({id:t.number(),hash:t.string(),name:t.string().nullable(),avatar:t.string().url().nullable(),is_dismissed:t.boolean()}),speciality_id:t.number().nullable(),has_chat_in_appointment:t.boolean().optional(),created_at:t.string(),status:y,seconds_to_open:t.number().nonnegative(),start_date:t.string(),started_at:t.string().nullable(),expires_at:t.string().nullable(),consultation_reason:t.string().nullable(),preconsultation_documents:t.array(t.object({file_path:t.string(),file_name:t.string(),id:t.string().uuid()})).nullable(),service_id:t.string().uuid().nullable(),price:t.number().nullable().optional(),currency:t.string().nullable().optional(),discount_amount:t.number().nullable().optional()}),E=t.enum(["appointment","chat","immediate"]),R=E.enum;function S(e){return 0===e.seconds_to_open}function O(t){if(!t)return!1;const n=new Date,i=e(t);return g(i,n)}var A=o(["available","reserved"]),T=A.enum,j=n({id:i().uuid(),channel:v,duration:r(),starts_at:i(),finishes_at:i(),professional:n({id:i().uuid(),name:i()}),services:s(n({id:i().uuid(),name:i()})),speciality:n({id:r(),price:n({amount:r(),currency:i()}).nullish()}),status:A,payable_reference:i().nullish()}),x=t.array(t.object({id:t.string().uuid(),name:t.string(),code:t.string(),channel:v,price:t.object({amount:t.number(),currency:t.string()}).nullable()})),k=t.array(t.object({id:t.string().uuid(),avatar:t.string().url().nullable(),description:t.string().nullable(),collegiate_number:t.string().nullable(),languages:t.array(t.string()),name:t.string(),slots:t.array(j),speciality:t.object({id:t.number()}),tax_id:t.string().nullable()}));t.object({speciality_id:t.number(),organization_schedule_service_id:t.string().uuid(),closest_slots_days:t.number().optional(),slots_per_day:t.number().optional()}),t.object({service_id:t.string().uuid(),professional_hash:t.string().uuid(),starts_at:t.string(),finishes_at:t.string(),rescheduling_appointment_id:t.string().uuid().optional()});var P=t.array(j),N=t.array(t.object({id:t.number(),name:t.string(),code:t.string().nullish(),price:t.object({amount:t.number(),currency:t.string()}).nullable()}));t.object({slot_id:t.string().uuid(),service_id:t.string().uuid().optional(),speciality_id:t.number().optional()});var U=j;n({consultation_id:i(),consultation_type:E,rating:r().int().min(1).max(5),comment:i().nullable().optional()});var L=n({rating:r().int().optional(),comment:i().nullable().optional()}).passthrough();n({file:a(File)});var F=n({url:i().url()});function D(e){return n({data:s(e),meta:n({current_page:r(),last_page:r(),per_page:r(),total:r()})})}var B=t.enum(["prescription","report","diagnosticTestPrescription"]),I=B.enum,$=t.enum(["published","draft"]);$.enum;var q=t.object({document_id:t.string().uuid(),document_type:B,name:t.string(),professional:t.object({speciality_id:t.number(),speciality_name:t.string().optional()}),status:$,url:t.string().url(),created_at:t.string()}),z=n({hash:i(),profile:n({first_name:i().nullable(),last_name:i().nullable(),birth_date:i().nullable(),gender:o(["male","female"]).nullable(),email:i().nullable(),phone_prefix:i().nullable(),phone:i().nullable(),billing:n({tax_id:i().nullable(),address:i().nullable(),country_code:i().nullable(),region:i().nullable(),postal_code:i().nullable()})})});function M(e){const t=e?.profile;return`${t?.first_name??""} ${t?.last_name??""}`.trim()}function K(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)}t.object({appointmentId:t.string()});var H=C;t.object({callId:t.string()});var J=t.object({session_id:t.string(),session_token:t.string()});t.object({professional_hash:t.string(),consultation_id:t.string(),consultation_type:t.enum(["appointment"])}),t.object({professional_hash:t.string(),consultation_id:t.string(),consultation_type:t.enum(["appointment"])}),t.object({appointment_id:t.string()});var W=t.array(q);t.object({url:t.string().url()}),t.object({first_name:z.shape.profile.shape.first_name,last_name:z.shape.profile.shape.last_name,tax_id:z.shape.profile.shape.billing.shape.tax_id,birth_date:z.shape.profile.shape.birth_date,gender:z.shape.profile.shape.gender.optional(),email:z.shape.profile.shape.email,phone_prefix:z.shape.profile.shape.phone_prefix,phone:z.shape.profile.shape.phone,terms_accepted:t.boolean(),privacy_accepted:t.boolean()}),t.object({patient_hash:t.string(),page:t.number().optional(),per_page:t.number().optional()});var V=D(q);n({slot_id:i().uuid(),service_id:i().uuid(),specialty_id:i(),consultation_reason:i().optional(),preconsultation_documents:s(n({file_path:i(),file_name:i()})).optional(),discount_code:i().optional(),return_url:i().url().optional(),payable_reference:i().optional()});var X=n({id:i(),percent_off:r(),code:i(),after_discount_amount:r().nullable()}),G=n({id:i(),percent_off:r(),code:i(),name:i().nullish()}),Q={Addon:"addon",Stripe:"stripe"},Z=n({session_id:i(),payment_link:i().url(),provider:l(Q).optional()});n({video_call_schedule_id:i()});var Y=Z;n({professional_hash:i().uuid()});var ee=Z,te={Paid:"paid",Unpaid:"unpaid",Denied:"denied",Refunded:"refunded"},ne=n({status:l(te),consultation_id:i(),consultation_type:i()}),ie={SlotUnavailable:422},re=n({error:i(),refunded:d().optional()});n({order_id:i(),validation_url:i().url()});var se=c(u());n({order_id:i(),token:i()});var oe=n({data:n({status:l(te),consultation_id:i(),consultation_type:i().optional()})});n({order_id:i(),token:i()});var ae=n({data:n({status:l(te),consultation_id:i(),consultation_type:i().optional()})}),le=t.array(t.object({id:t.number(),name:t.string(),code:t.string()})),ce=t.object({primary_color:t.string().nullable(),logo:t.string().nullable(),favicon:t.string().nullable(),support_professional:t.object({hash:t.string().nullable()}).optional(),home:t.object({title:t.string().nullable(),description:t.string().nullable(),image_url:t.string().nullable()}),appointments:t.object({reserve_conditions:t.string().nullable(),seconds_before_start_to_refund_on_cancel:t.number().nullable(),has_nps:t.boolean().optional(),has_chat_in_appointment:t.boolean().optional(),has_discount_coupons_show:t.boolean().optional(),payment_provider:t.nativeEnum(Q).nullish()}),legal_consent:t.object({terms_url:t.string().nullable(),privacy_url:t.string().nullable()})}),ue=o(["monday","tuesday","wednesday","thursday","friday","saturday","sunday","working_week","weekend","all_week"]);ue.enum;var de=n({days_of_week:ue,from_time:i(),to_time:i()});n({hash:i().uuid()});var pe=n({hash:i().uuid(),active_absence:n({id:i().uuid(),finishes_at:i()}).nullable(),avatar:i().url().nullable(),collegiate_number:i().nullable(),description:i().nullable(),is_available:d(),name:i(),overview:i().nullable(),schedule_description:i().nullable(),speciality_id:r().nullable(),status:o(["online","offline"]),title:i().nullable(),chat_schedule:n({channel:v,duration:r(),name:i(),timezone:i(),starts_at:i(),gaps:s(de)}).nullable()});function he(e){return e.active_absence?"absent":"online"===e.status?"online":"offline"}o(["online","offline","absent"]),n({roomId:r()});var fe=z;n({first_name:i(),last_name:i(),tax_id:i(),birth_date:i(),gender:o(["male","female"]),email:i(),phone_prefix:i(),phone:i(),terms_accepted:d(),privacy_accepted:d()}),n({terms_accepted:d(),privacy_accepted:d(),commercial_accepted:d()}),n({hash:i().uuid()});var me=n({id:r(),hash:i().uuid(),speciality_alias:i(),name:i(),avatar:i().url(),description:i(),collegiate_number:i(),languages:s(i()),centers:s(n({id:i().uuid(),name:i()}))});p([f(1),f(2),f(3)]);var ge={Sent:1,Received:2,Read:3},be=n({roomId:r(),messageId:i().uuid(),string:i(),status:r(),senderType:o(["ordinary","system"]),fromUserHash:i().uuid(),auto:p([f(0),f(1)]),createdAt:i().nullable(),deletedAt:i().nullable(),time:r().nullable()}),ye=n({file_name:i(),file_size:r(),url:i().url(),signed_url:i().url().nullable(),type:o(["uncategorized","voice_note"]),meta:n({duration:r()})}),_e=be.extend({type:f("string"),attachment:h()}),ve=be.extend({type:f("file"),attachment:ye}),we=be.extend({type:f("image"),attachment:ye});n({roomId:r()});var Ce=s(p([_e,ve,we]));n({roomId:r()});var Ee=n({unread_count:r()});n({professional_hash:i()});var Re=n({room_id:r()});n({status:s(y).optional(),order:n({field:o(["starts_at"]).optional(),direction:o(["asc","desc"]).optional()}).optional(),page:r().optional(),per_page:r().optional()});var Se=D(n({appointment:n({id:i().uuid(),url:i().url(),starts_at:i(),duration:r(),status:y,channel:v,expires_at:i().nullable(),service_id:i().uuid().nullable(),has_chat_in_appointment:d().optional()}),room:n({id:r()}),price:n({amount:r(),currency:i()}).nullable(),patient:n({hash:i().uuid()}),slots:s(m()),professional:n({hash:i().uuid(),name:i(),avatar:i().url().optional(),description:i().optional(),languages:s(i()),collegiate_number:i().optional()}),speciality:n({id:r(),name:i()})}));n({slot_id:i().uuid(),service_id:i().uuid(),consultation_reason:i().optional(),preconsultation_documents:s(n({file_path:i(),file_name:i()})).optional(),discount_code:i().optional()});var Oe=n({appointment:n({id:i().uuid()})});n({id:i().uuid()});var Ae=C,Te=n({file_path:i(),presigned_storage_url:i().url()});n({id:i().uuid(),slot_id:i().uuid(),consultation_reason:i().optional(),preconsultation_documents:s(n({file_path:i(),file_name:i()})).optional()}),n({id:i().uuid()}),n({appointment_id:i().uuid(),consultation_reason:i().optional()}),n({appointment_id:i().uuid(),file_path:i(),file_name:i()}),n({appointment_id:i().uuid(),document_id:i().uuid()}),n({appointmentId:i().uuid()}),t.object({api_key:t.string(),token:t.string()});var je=t.object({access_token:t.string(),patient:t.object({hash:t.string(),country_code:t.string(),timezone:t.string(),first_name:t.string(),last_name:t.string().nullable(),name:t.string(),birth_date:t.string().nullable(),email:t.string().email().nullable(),language_code:t.string(),phone:t.string(),phone_prefix:t.string(),tax_id:t.string().nullable(),legal_consent:t.object({accepted_at:t.string().nullable(),last_version_at:t.string().nullable(),terms_url:t.string(),privacy_url:t.string(),has_commercial_communications:t.boolean(),organization_name:t.string()})})});function xe(e,t){return function(){return e.apply(t,arguments)}}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(Se))}async createAppointment(e){return this.httpClient.post(`/appointments/v1/slots/${e.slot_id}`,e).then(e=>e.data).then(this.validate(Oe))}async getAppointment(e){return this.httpClient.get(`/api/v1/appointments/${e.id}`).then(e=>e.data).then(this.validate(Ae))}async getDocumentsStorage(){return this.httpClient.get("/appointments/v1/documents/storage").then(e=>e.data).then(this.validate(Te))}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(je))}};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(L))}},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(F))}},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(H))}async joinCall(e){return this.httpClient.get(`/flash/v1/calls/${e.callId}/join`).then(e=>e.data).then(this.validate(J))}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(W))}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(V))}},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(le))}async getOrganizationSetup(){return this.httpClient.get("/organizations/v1/setup").then(e=>e.data).then(this.validate(ce))}},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(Z))}async createImmediateVideocallPaymentLink(e){return this.httpClient.post("/payments/v1/immediate-videocall",e).then(e=>e.data).then(this.validate(Y))}async createChatConsultationPaymentLink(e){return this.httpClient.post("/payments/v1/schedule",e).then(e=>e.data).then(this.validate(ee))}async getConsultationCoupon(e,t){return this.httpClient.get(`/payments/v1/consultation-coupon/${encodeURIComponent(e)}`,{params:{amount:t}}).then(e=>e.data).then(this.validate(X))}async getAppointmentConsultationCoupon(e){return this.httpClient.get(`/payments/v1/appointment/${encodeURIComponent(e)}/consultation-coupon`).then(e=>e.data).then(this.validate(G))}async getPaymentSession(e){return this.httpClient.get(`/payments/v1/session/${e}`).then(e=>e.data).then(this.validate(ne))}async validateApplePayMerchant(e){return this.httpClient.post("/payments/v1/apple-pay/validate-merchant",e).then(this.validate(se))}async authorizeApplePay(e){return this.httpClient.post("/payments/v1/apple-pay/authorize",e).then(this.validate(oe))}async authorizeGooglePay(e){return this.httpClient.post("/payments/v1/google-pay/authorize",e).then(this.validate(ae))}},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(pe))}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(fe))}async getProfessionalPublicProfile(e){return this.httpClient.get(`/profile/v1/public/professionals/${e.hash}`).then(e=>e.data).then(this.validate(me))}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(Ce))}async getUnreadMessagesCount(e){return this.httpClient.get(`chat/v1/${e.roomId}/unread-count`).then(e=>e.data).then(this.validate(Ee))}async createSupportRoom(e){return this.httpClient.post("chat/v1/support-room",e).then(e=>e.data).then(this.validate(Re))}},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(x))}async getProfessionalsBySpecialtyAndService(e){return this.httpClient.get("/schedules/v1/professionals",{params:e}).then(e=>e.data).then(this.validate(k))}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(P))}async getScheduleServiceSpecialities(e){return this.httpClient.get(`/schedules/v1/services/${e}/specialities`).then(e=>e.data).then(this.validate(N))}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(U))}};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{_ as A,R as C,I as D,ge as M,te as P,T as S,ie as a,re as b,fi as c,O as d,w as e,Q as f,he as g,M as h,Wn as i,K as j,S as k,gi as n};
@@ -1 +1 @@
1
- import{P as n}from"./api-chat-client-BhxUWldC.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-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 +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-V1UAGtKW.js";import{C as r,D as l,d}from"./api-chat-client-BhxUWldC.js";import{g as c,a as p}from"./chunk-2TKJJNS7-BGwxtEg7.js";import{a as m}from"./addSeconds-ofMnxlgT.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-DPesx3Od.js";import{messageBubbleIcon as z}from"../ui/icons/message-bubble-icon.js";import"../mq-chat-room.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-BlO1Ax65.js";import{g as C}from"./chunk-Y4EKUX25-QqMl3eiq.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 U,e as H}from"./telemetry-client-DEIuDZfA.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 R=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 A=class PatientDocument extends h{constructor(){super(...arguments),this.isDownloading=!1}static{this.styles=R}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})],A.prototype,"apiClient",void 0),t([v({type:String})],A.prototype,"kind",void 0),t([v({type:String})],A.prototype,"filename",void 0),t([v({type:String})],A.prototype,"specialty",void 0),t([v({type:String})],A.prototype,"description",void 0),t([v({type:String})],A.prototype,"date",void 0),t([v({type:String})],A.prototype,"downloadUrl",void 0),t([w()],A.prototype,"isDownloading",void 0),A=t([o(),e("patient-document")],A);const B=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 G=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=B}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(U(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(H(this.loginToken.patient.hash,this.appointment.id??""))}}"></chat-cta>`:f}</div>`}};t([q({context:s,subscribe:!0})],G.prototype,"apiClient",void 0),t([v({type:Object})],G.prototype,"appointment",void 0),t([v({type:String})],G.prototype,"token",void 0),t([v({type:Boolean,attribute:"can-reconnect"})],G.prototype,"canReconnect",void 0),t([q({context:k})],G.prototype,"loginToken",void 0),G=t([o(),e("documentation-view")],G);
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-V1UAGtKW.js";import{C as r,D as l,d}from"./api-chat-client-CzlZkbW1.js";import{g as c,a as p}from"./chunk-2TKJJNS7-BGwxtEg7.js";import{a as m}from"./addSeconds-ofMnxlgT.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-DPesx3Od.js";import{messageBubbleIcon as z}from"../ui/icons/message-bubble-icon.js";import"../mq-chat-room.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-BlO1Ax65.js";import{g as C}from"./chunk-Y4EKUX25-QqMl3eiq.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 U,e as H}from"./telemetry-client-DEIuDZfA.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 R=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 A=class PatientDocument extends h{constructor(){super(...arguments),this.isDownloading=!1}static{this.styles=R}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})],A.prototype,"apiClient",void 0),t([v({type:String})],A.prototype,"kind",void 0),t([v({type:String})],A.prototype,"filename",void 0),t([v({type:String})],A.prototype,"specialty",void 0),t([v({type:String})],A.prototype,"description",void 0),t([v({type:String})],A.prototype,"date",void 0),t([v({type:String})],A.prototype,"downloadUrl",void 0),t([w()],A.prototype,"isDownloading",void 0),A=t([o(),e("patient-document")],A);const B=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 G=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=B}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(U(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(H(this.loginToken.patient.hash,this.appointment.id??""))}}"></chat-cta>`:f}</div>`}};t([q({context:s,subscribe:!0})],G.prototype,"apiClient",void 0),t([v({type:Object})],G.prototype,"appointment",void 0),t([v({type:String})],G.prototype,"token",void 0),t([v({type:Boolean,attribute:"can-reconnect"})],G.prototype,"canReconnect",void 0),t([q({context:k})],G.prototype,"loginToken",void 0),G=t([o(),e("documentation-view")],G);
@@ -1,7 +1,7 @@
1
1
  import * as lit_html from 'lit-html';
2
2
  import * as lit from 'lit';
3
3
  import { LitElement } from 'lit';
4
- import { M as MediquoApiChatClient } from './index.d-DeJP_xib.js';
4
+ import { M as MediquoApiChatClient } from './index.d-CRSzJK71.js';
5
5
  import '../ui/mq-button.js';
6
6
  import { D as DocumentType } from './document.model.d-DIzMiOmd.js';
7
7
 
@@ -1 +1 @@
1
- import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{e as i}from"./provide-BwI4DDGF.js";import{c as o}from"./consume-CovVqBjI.js";import{A as n}from"./api-client-context-V1UAGtKW.js";import{i as a,a as s,x as r}from"./lit-element-DiWJYFwC.js";import{n as l}from"./property-scuRaFcM.js";import{r as h}from"./state-LQivXIgA.js";import"../ui/mq-checkbox.js";import"../ui/mq-button.js";import{M as c}from"./mutation-controller-CR2qcqhH.js";import{setEnv as d}from"../env.js";import{c as m,n as p}from"./api-chat-client-BhxUWldC.js";const g=a`.page-header{box-sizing:border-box;width:100%;display:none}.page-title{font-family:var(--font-body);font-size:var(--text-2xl);line-height:var(--text-2xl--line-height);font-weight:var(--font-weight-bold);color:var(--color-neutrals-text-default)}.page-title ::slotted(*){margin:0;margin-bottom:var(--sp-2);font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit}.page-subtitle{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);font-weight:var(--font-weight-normal);color:var(--color-neutrals-text-subtle)}.page-subtitle ::slotted(*){margin:0;font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit}.terms-section{box-sizing:border-box;width:100%;display:flex;flex-direction:column;gap:var(--sp-6);background-color:var(--color-neutrals-background-weak);padding:var(--sp-6);border-radius:var(--border-radius-md)}.terms-title{font-family:var(--font-titles);font-size:var(--text-2xl);line-height:var(--text-2xl--line-height);font-weight:var(--font-weight-bold);color:var(--color-neutrals-text-default)}.terms-title ::slotted(*){margin:0;margin-bottom:var(--sp-2);font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit}.terms-description{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-normal);color:var(--color-neutrals-text-default)}.terms-description ::slotted(*){margin:0;font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit}.checkbox-container{display:flex;gap:var(--sp-3);align-items:flex-start;cursor:pointer}.checkbox-label{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);font-weight:var(--font-weight-normal);color:var(--color-neutrals-text-default);flex:1}@media (min-width:768px){.page-header{display:block;margin-bottom:var(--sp-10)}.page-title{font-size:var(--text-3xl);line-height:var(--text-3xl--line-height)}.page-title ::slotted(*){font-size:inherit;line-height:inherit}.page-subtitle{font-size:var(--text-base);line-height:var(--text-base--line-height)}.page-subtitle ::slotted(*){font-size:inherit;line-height:inherit}.terms-title{font-size:var(--text-2xl);line-height:var(--text-2xl--line-height)}.terms-title ::slotted(*){font-size:inherit;line-height:inherit}.terms-description{font-size:var(--text-base);line-height:var(--text-base--line-height)}.terms-description ::slotted(*){font-size:inherit;line-height:inherit}.checkbox-label{font-size:var(--text-base);line-height:var(--text-base--line-height)}}`;let v=class MqTermsAndConditions extends s{constructor(){super(...arguments),this.disabled=!1,this.hasCommercialCommunications=!1,this._accepted=!1,this.apiClient=m(),this.acceptLegalConsentMutation=new c(this,{mutationFn:async t=>this.apiClient.profile.acceptLegalConsent(t),onSuccess:()=>{this.dispatchEvent(new CustomEvent("continue"))}})}static{this.styles=g}willUpdate(t){t.has("env")&&this.env&&d(this.env);const e=p(t,{env:this.env,apiKey:this.apiKey,token:this.token},this.inheritedApiClient);e&&(this.apiClient=e)}handleCheckboxChange(t){this._accepted=t.detail.checked}handleContinue(){this._accepted&&!this.disabled&&this.acceptLegalConsentMutation.run({terms_accepted:!0,privacy_accepted:!0,commercial_accepted:this.hasCommercialCommunications})}render(){const t=!this._accepted||this.disabled;return r`<div class="page-header"><div class="page-title"><slot name="page-title"></slot></div><div class="page-subtitle"><slot name="page-subtitle"></slot></div></div><div class="terms-section"><div><div class="terms-title"><slot name="terms-title"></slot></div><div class="terms-description"><slot name="terms-description"></slot></div></div><div class="checkbox-container"><mq-checkbox id="terms-checkbox" @change="${this.handleCheckboxChange}" ?disabled="${this.disabled}"></mq-checkbox><label class="checkbox-label" for="terms-checkbox"><slot name="checkbox-label"></slot></label></div><mq-button variant="primary" size="md" fullwidth ?disabled="${this.acceptLegalConsentMutation.isPending||t}" @click="${this.handleContinue}"><slot name="button-text"></slot></mq-button></div>`}};t([l({type:Boolean})],v.prototype,"disabled",void 0),t([l({type:Boolean})],v.prototype,"hasCommercialCommunications",void 0),t([l({type:String,attribute:"api-key"})],v.prototype,"apiKey",void 0),t([l({type:String,attribute:"token"})],v.prototype,"token",void 0),t([l({type:String,attribute:"env"})],v.prototype,"env",void 0),t([h()],v.prototype,"_accepted",void 0),t([o({context:n,subscribe:!0}),h()],v.prototype,"inheritedApiClient",void 0),t([i({context:n}),h()],v.prototype,"apiClient",void 0),v=t([e("mq-terms-and-conditions")],v);export{v as M};
1
+ import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{e as i}from"./provide-BwI4DDGF.js";import{c as o}from"./consume-CovVqBjI.js";import{A as n}from"./api-client-context-V1UAGtKW.js";import{i as a,a as s,x as r}from"./lit-element-DiWJYFwC.js";import{n as l}from"./property-scuRaFcM.js";import{r as h}from"./state-LQivXIgA.js";import"../ui/mq-checkbox.js";import"../ui/mq-button.js";import{M as c}from"./mutation-controller-CR2qcqhH.js";import{setEnv as d}from"../env.js";import{c as m,n as p}from"./api-chat-client-CzlZkbW1.js";const g=a`.page-header{box-sizing:border-box;width:100%;display:none}.page-title{font-family:var(--font-body);font-size:var(--text-2xl);line-height:var(--text-2xl--line-height);font-weight:var(--font-weight-bold);color:var(--color-neutrals-text-default)}.page-title ::slotted(*){margin:0;margin-bottom:var(--sp-2);font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit}.page-subtitle{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);font-weight:var(--font-weight-normal);color:var(--color-neutrals-text-subtle)}.page-subtitle ::slotted(*){margin:0;font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit}.terms-section{box-sizing:border-box;width:100%;display:flex;flex-direction:column;gap:var(--sp-6);background-color:var(--color-neutrals-background-weak);padding:var(--sp-6);border-radius:var(--border-radius-md)}.terms-title{font-family:var(--font-titles);font-size:var(--text-2xl);line-height:var(--text-2xl--line-height);font-weight:var(--font-weight-bold);color:var(--color-neutrals-text-default)}.terms-title ::slotted(*){margin:0;margin-bottom:var(--sp-2);font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit}.terms-description{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-normal);color:var(--color-neutrals-text-default)}.terms-description ::slotted(*){margin:0;font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit}.checkbox-container{display:flex;gap:var(--sp-3);align-items:flex-start;cursor:pointer}.checkbox-label{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);font-weight:var(--font-weight-normal);color:var(--color-neutrals-text-default);flex:1}@media (min-width:768px){.page-header{display:block;margin-bottom:var(--sp-10)}.page-title{font-size:var(--text-3xl);line-height:var(--text-3xl--line-height)}.page-title ::slotted(*){font-size:inherit;line-height:inherit}.page-subtitle{font-size:var(--text-base);line-height:var(--text-base--line-height)}.page-subtitle ::slotted(*){font-size:inherit;line-height:inherit}.terms-title{font-size:var(--text-2xl);line-height:var(--text-2xl--line-height)}.terms-title ::slotted(*){font-size:inherit;line-height:inherit}.terms-description{font-size:var(--text-base);line-height:var(--text-base--line-height)}.terms-description ::slotted(*){font-size:inherit;line-height:inherit}.checkbox-label{font-size:var(--text-base);line-height:var(--text-base--line-height)}}`;let v=class MqTermsAndConditions extends s{constructor(){super(...arguments),this.disabled=!1,this.hasCommercialCommunications=!1,this._accepted=!1,this.apiClient=m(),this.acceptLegalConsentMutation=new c(this,{mutationFn:async t=>this.apiClient.profile.acceptLegalConsent(t),onSuccess:()=>{this.dispatchEvent(new CustomEvent("continue"))}})}static{this.styles=g}willUpdate(t){t.has("env")&&this.env&&d(this.env);const e=p(t,{env:this.env,apiKey:this.apiKey,token:this.token},this.inheritedApiClient);e&&(this.apiClient=e)}handleCheckboxChange(t){this._accepted=t.detail.checked}handleContinue(){this._accepted&&!this.disabled&&this.acceptLegalConsentMutation.run({terms_accepted:!0,privacy_accepted:!0,commercial_accepted:this.hasCommercialCommunications})}render(){const t=!this._accepted||this.disabled;return r`<div class="page-header"><div class="page-title"><slot name="page-title"></slot></div><div class="page-subtitle"><slot name="page-subtitle"></slot></div></div><div class="terms-section"><div><div class="terms-title"><slot name="terms-title"></slot></div><div class="terms-description"><slot name="terms-description"></slot></div></div><div class="checkbox-container"><mq-checkbox id="terms-checkbox" @change="${this.handleCheckboxChange}" ?disabled="${this.disabled}"></mq-checkbox><label class="checkbox-label" for="terms-checkbox"><slot name="checkbox-label"></slot></label></div><mq-button variant="primary" size="md" fullwidth ?disabled="${this.acceptLegalConsentMutation.isPending||t}" @click="${this.handleContinue}"><slot name="button-text"></slot></mq-button></div>`}};t([l({type:Boolean})],v.prototype,"disabled",void 0),t([l({type:Boolean})],v.prototype,"hasCommercialCommunications",void 0),t([l({type:String,attribute:"api-key"})],v.prototype,"apiKey",void 0),t([l({type:String,attribute:"token"})],v.prototype,"token",void 0),t([l({type:String,attribute:"env"})],v.prototype,"env",void 0),t([h()],v.prototype,"_accepted",void 0),t([o({context:n,subscribe:!0}),h()],v.prototype,"inheritedApiClient",void 0),t([i({context:n}),h()],v.prototype,"apiClient",void 0),v=t([e("mq-terms-and-conditions")],v);export{v as M};
@@ -1 +1 @@
1
- import{s as t}from"./chunk-6CCJWPGL-TiaqZaPV.js";import{_ as e,c as o}from"./custom-element-D2ziPxYE.js";import{t as i,d as r,a}from"./telemetry-client-DEIuDZfA.js";import{i as s,a as n,x as d,E as l}from"./lit-element-DiWJYFwC.js";import{n as c}from"./property-scuRaFcM.js";import{c as p}from"./consume-CovVqBjI.js";import{m}from"./runtime-Bg1WXVCx.js";import{l as h}from"./localized-decorator-BlOuLhym.js";import{A as f}from"./api-client-context-V1UAGtKW.js";import{D as u}from"./api-chat-client-BhxUWldC.js";import{b as g}from"./blob-to-base64-CUL1trde.js";import{r as y}from"./state-LQivXIgA.js";import{DownloadFileEvent as v}from"../events.js";import{getLocale as w}from"../i18n.js";import{download02Icon as b}from"../ui/icons/download-02-icon.js";import"../ui/mq-button.js";import{toast as x}from"../ui/mq-toast.js";import"../ui/mq-skeleton.js";function k(e,o){return{queryKey:t(e,"patient-documents",o),queryFn:()=>e.flash.getPatientDocuments(o)}}const $=s`:host{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-1) 0;width:100%;min-width:0;box-sizing:border-box}.details{display:flex;flex-direction:column;align-items:flex-start;gap:6px;flex:1;min-width:0}.tag{display:inline-flex;align-items:center;border-radius:var(--border-radius-sm);padding:var(--sp-1) var(--sp-2);font-family:var(--font-body);font-size:var(--text-xs);line-height:1.35;font-weight:var(--font-weight-normal)}.tag.prescription{background-color:var(--color-feedback--info-subtle,#eceefd);color:var(--color-feedback--info-text,#4a1ea7)}.tag.report{background-color:var(--color-feedback--warning-subtle,#ffebce);color:var(--color-feedback--warning-text,#8f4700)}.tag.diagnostic-test-prescription{background-color:var(--color-feedback--success-subtle,#e8f6ec);color:var(--color-feedback--success-text,#16653a)}.text{display:flex;flex-direction:column;gap:var(--sp-1);width:100%;min-width:0}.name{font-family:var(--font-body);font-size:var(--text-sm);line-height:1.35;font-weight:var(--font-weight-normal);color:var(--color-text-icons--primary,#0a0a22);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meta{font-family:var(--font-body);font-size:var(--text-xs);line-height:1.35;font-weight:var(--font-weight-normal);color:var(--color-text-icons--secondary,#6d658b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}`;let j=class DocumentRow extends n{constructor(){super(...arguments),this.documentId="",this.name="",this.specialty="",this.date="",this.downloadUrl="",this.patientHash="",this.isDownloading=!1,this.handleDownload=async()=>{this.isDownloading=!0;try{i.track(r(this.patientHash,this.documentId));const t=await this.apiClient.flash.downloadDocument({url:this.downloadUrl}),e=await g(t);this.dispatchEvent(new v({url:e,filename:`${this.name}.pdf`}))}catch{x.error(m("No hemos podido descargar el documento."))}finally{this.isDownloading=!1}}}static{this.styles=$}formatDate(){const t=new Date(this.date);if(Number.isNaN(t.getTime()))return"";const e=w().replace("_","-");return new Intl.DateTimeFormat(e,{day:"2-digit",month:"2-digit",year:"2-digit"}).format(t)}formatKind(){switch(this.kind){case u.prescription:return m("Receta");case u.report:return m("Informe");case u.diagnosticTestPrescription:return m("Orden médica")}}get kindClass(){return(this.kind??"").replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}get metaLine(){return[this.formatDate(),this.specialty].filter(Boolean).join(" - ")}render(){return d`<div class="details"><span class="tag ${this.kindClass}">${this.formatKind()}</span><div class="text"><span class="name" title="${this.name}">${this.name}</span> <span class="meta">${this.metaLine}</span></div></div><mq-button variant="outline" size="icon-lg" aria-label="${m("Descargar documento")}" ?disabled="${this.isDownloading}" @click="${this.handleDownload}">${b({size:24})}</mq-button>`}};function D(t,e,o){return t.map(t=>{const i=e?.find(e=>Number(e.id)===Number(t.professional.speciality_id));return{documentId:t.document_id,kind:t.document_type,name:t.name,specialty:a(i?.code??"",o,i?.name??t.professional.speciality_name),date:t.created_at,downloadUrl:t.url}})}e([p({context:f,subscribe:!0})],j.prototype,"apiClient",void 0),e([c({type:String})],j.prototype,"documentId",void 0),e([c({type:String})],j.prototype,"kind",void 0),e([c({type:String})],j.prototype,"name",void 0),e([c({type:String})],j.prototype,"specialty",void 0),e([c({type:String})],j.prototype,"date",void 0),e([c({type:String})],j.prototype,"downloadUrl",void 0),e([c({type:String})],j.prototype,"patientHash",void 0),e([y()],j.prototype,"isDownloading",void 0),j=e([h(),o("document-row")],j);const q=s`:host{display:flex;flex-direction:column;gap:var(--sp-3);width:100%;min-width:0;box-sizing:border-box}.divider{height:1px;width:100%;background-color:var(--color-border-subtle,#edecf1);flex-shrink:0}`;let z=class DocumentList extends n{constructor(){super(...arguments),this.documents=[],this.patientHash="",this.placeholders=0}static{this.styles=q}get rows(){return this.placeholders>0?Array.from({length:this.placeholders},()=>d`<mq-skeleton height="${"77px"}"></mq-skeleton>`):this.documents.map(t=>d`<document-row documentId="${t.documentId}" kind="${t.kind}" name="${t.name}" specialty="${t.specialty}" date="${t.date}" downloadUrl="${t.downloadUrl}" patientHash="${this.patientHash}"></document-row>`)}render(){const t=this.rows;return t.map((e,o)=>d`${e} ${o<t.length-1?d`<div class="divider"></div>`:l}`)}};e([c({type:Array})],z.prototype,"documents",void 0),e([c({type:String})],z.prototype,"patientHash",void 0),e([c({type:Number})],z.prototype,"placeholders",void 0),z=e([o("document-list")],z);export{k as g,D as t};
1
+ import{s as t}from"./chunk-6CCJWPGL-TiaqZaPV.js";import{_ as e,c as o}from"./custom-element-D2ziPxYE.js";import{t as i,d as r,a}from"./telemetry-client-DEIuDZfA.js";import{i as s,a as n,x as d,E as l}from"./lit-element-DiWJYFwC.js";import{n as c}from"./property-scuRaFcM.js";import{c as p}from"./consume-CovVqBjI.js";import{m}from"./runtime-Bg1WXVCx.js";import{l as h}from"./localized-decorator-BlOuLhym.js";import{A as f}from"./api-client-context-V1UAGtKW.js";import{D as u}from"./api-chat-client-CzlZkbW1.js";import{b as g}from"./blob-to-base64-CUL1trde.js";import{r as y}from"./state-LQivXIgA.js";import{DownloadFileEvent as v}from"../events.js";import{getLocale as w}from"../i18n.js";import{download02Icon as b}from"../ui/icons/download-02-icon.js";import"../ui/mq-button.js";import{toast as x}from"../ui/mq-toast.js";import"../ui/mq-skeleton.js";function k(e,o){return{queryKey:t(e,"patient-documents",o),queryFn:()=>e.flash.getPatientDocuments(o)}}const $=s`:host{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-1) 0;width:100%;min-width:0;box-sizing:border-box}.details{display:flex;flex-direction:column;align-items:flex-start;gap:6px;flex:1;min-width:0}.tag{display:inline-flex;align-items:center;border-radius:var(--border-radius-sm);padding:var(--sp-1) var(--sp-2);font-family:var(--font-body);font-size:var(--text-xs);line-height:1.35;font-weight:var(--font-weight-normal)}.tag.prescription{background-color:var(--color-feedback--info-subtle,#eceefd);color:var(--color-feedback--info-text,#4a1ea7)}.tag.report{background-color:var(--color-feedback--warning-subtle,#ffebce);color:var(--color-feedback--warning-text,#8f4700)}.tag.diagnostic-test-prescription{background-color:var(--color-feedback--success-subtle,#e8f6ec);color:var(--color-feedback--success-text,#16653a)}.text{display:flex;flex-direction:column;gap:var(--sp-1);width:100%;min-width:0}.name{font-family:var(--font-body);font-size:var(--text-sm);line-height:1.35;font-weight:var(--font-weight-normal);color:var(--color-text-icons--primary,#0a0a22);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meta{font-family:var(--font-body);font-size:var(--text-xs);line-height:1.35;font-weight:var(--font-weight-normal);color:var(--color-text-icons--secondary,#6d658b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}`;let j=class DocumentRow extends n{constructor(){super(...arguments),this.documentId="",this.name="",this.specialty="",this.date="",this.downloadUrl="",this.patientHash="",this.isDownloading=!1,this.handleDownload=async()=>{this.isDownloading=!0;try{i.track(r(this.patientHash,this.documentId));const t=await this.apiClient.flash.downloadDocument({url:this.downloadUrl}),e=await g(t);this.dispatchEvent(new v({url:e,filename:`${this.name}.pdf`}))}catch{x.error(m("No hemos podido descargar el documento."))}finally{this.isDownloading=!1}}}static{this.styles=$}formatDate(){const t=new Date(this.date);if(Number.isNaN(t.getTime()))return"";const e=w().replace("_","-");return new Intl.DateTimeFormat(e,{day:"2-digit",month:"2-digit",year:"2-digit"}).format(t)}formatKind(){switch(this.kind){case u.prescription:return m("Receta");case u.report:return m("Informe");case u.diagnosticTestPrescription:return m("Orden médica")}}get kindClass(){return(this.kind??"").replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)}get metaLine(){return[this.formatDate(),this.specialty].filter(Boolean).join(" - ")}render(){return d`<div class="details"><span class="tag ${this.kindClass}">${this.formatKind()}</span><div class="text"><span class="name" title="${this.name}">${this.name}</span> <span class="meta">${this.metaLine}</span></div></div><mq-button variant="outline" size="icon-lg" aria-label="${m("Descargar documento")}" ?disabled="${this.isDownloading}" @click="${this.handleDownload}">${b({size:24})}</mq-button>`}};function D(t,e,o){return t.map(t=>{const i=e?.find(e=>Number(e.id)===Number(t.professional.speciality_id));return{documentId:t.document_id,kind:t.document_type,name:t.name,specialty:a(i?.code??"",o,i?.name??t.professional.speciality_name),date:t.created_at,downloadUrl:t.url}})}e([p({context:f,subscribe:!0})],j.prototype,"apiClient",void 0),e([c({type:String})],j.prototype,"documentId",void 0),e([c({type:String})],j.prototype,"kind",void 0),e([c({type:String})],j.prototype,"name",void 0),e([c({type:String})],j.prototype,"specialty",void 0),e([c({type:String})],j.prototype,"date",void 0),e([c({type:String})],j.prototype,"downloadUrl",void 0),e([c({type:String})],j.prototype,"patientHash",void 0),e([y()],j.prototype,"isDownloading",void 0),j=e([h(),o("document-row")],j);const q=s`:host{display:flex;flex-direction:column;gap:var(--sp-3);width:100%;min-width:0;box-sizing:border-box}.divider{height:1px;width:100%;background-color:var(--color-border-subtle,#edecf1);flex-shrink:0}`;let z=class DocumentList extends n{constructor(){super(...arguments),this.documents=[],this.patientHash="",this.placeholders=0}static{this.styles=q}get rows(){return this.placeholders>0?Array.from({length:this.placeholders},()=>d`<mq-skeleton height="${"77px"}"></mq-skeleton>`):this.documents.map(t=>d`<document-row documentId="${t.documentId}" kind="${t.kind}" name="${t.name}" specialty="${t.specialty}" date="${t.date}" downloadUrl="${t.downloadUrl}" patientHash="${this.patientHash}"></document-row>`)}render(){const t=this.rows;return t.map((e,o)=>d`${e} ${o<t.length-1?d`<div class="divider"></div>`:l}`)}};e([c({type:Array})],z.prototype,"documents",void 0),e([c({type:String})],z.prototype,"patientHash",void 0),e([c({type:Number})],z.prototype,"placeholders",void 0),z=e([o("document-list")],z);export{k as g,D as t};
@@ -1,7 +1,7 @@
1
1
  import * as lit_html from 'lit-html';
2
2
  import * as lit from 'lit';
3
3
  import { LitElement, PropertyValues } from 'lit';
4
- import { M as MediquoApiChatClient } from './index.d-DeJP_xib.js';
4
+ import { M as MediquoApiChatClient } from './index.d-CRSzJK71.js';
5
5
  import '../ui/mq-checkbox.js';
6
6
  import '../ui/mq-button.js';
7
7
  import { Env } from '../env.js';
@@ -2,7 +2,7 @@ import * as lit_html from 'lit-html';
2
2
  import * as lit from 'lit';
3
3
  import { LitElement } from 'lit';
4
4
  import { D as DocumentType } from './document.model.d-DIzMiOmd.js';
5
- import { M as MediquoApiChatClient } from './index.d-DeJP_xib.js';
5
+ import { M as MediquoApiChatClient } from './index.d-CRSzJK71.js';
6
6
  import '../ui/mq-button.js';
7
7
  import '../ui/mq-skeleton.js';
8
8
 
@@ -1234,6 +1234,8 @@ declare const CreatePaymentLinkRequestSchema: z.ZodObject<{
1234
1234
  }>, "many">>;
1235
1235
  discount_code: z.ZodOptional<z.ZodString>;
1236
1236
  return_url: z.ZodOptional<z.ZodString>;
1237
+ /** Stripe payable taken from the selected slot. */
1238
+ payable_reference: z.ZodOptional<z.ZodString>;
1237
1239
  }, "strip", z.ZodTypeAny, {
1238
1240
  service_id: string;
1239
1241
  slot_id: string;
@@ -1245,6 +1247,7 @@ declare const CreatePaymentLinkRequestSchema: z.ZodObject<{
1245
1247
  }[] | undefined;
1246
1248
  discount_code?: string | undefined;
1247
1249
  return_url?: string | undefined;
1250
+ payable_reference?: string | undefined;
1248
1251
  }, {
1249
1252
  service_id: string;
1250
1253
  slot_id: string;
@@ -1256,6 +1259,7 @@ declare const CreatePaymentLinkRequestSchema: z.ZodObject<{
1256
1259
  }[] | undefined;
1257
1260
  discount_code?: string | undefined;
1258
1261
  return_url?: string | undefined;
1262
+ payable_reference?: string | undefined;
1259
1263
  }>;
1260
1264
  type CreatePaymentLinkRequest = z.infer<typeof CreatePaymentLinkRequestSchema>;
1261
1265
  declare const GetConsultationCouponResponseSchema: z.ZodObject<{
@@ -2380,6 +2384,7 @@ declare const GetProfessionalsBySpecialtyAndServiceResponseSchema: z$1.ZodArray<
2380
2384
  } | null | undefined;
2381
2385
  }>;
2382
2386
  status: z$1.ZodEnum<["available", "reserved"]>;
2387
+ payable_reference: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
2383
2388
  }, "strip", z$1.ZodTypeAny, {
2384
2389
  status: "available" | "reserved";
2385
2390
  id: string;
@@ -2402,6 +2407,7 @@ declare const GetProfessionalsBySpecialtyAndServiceResponseSchema: z$1.ZodArray<
2402
2407
  id: string;
2403
2408
  name: string;
2404
2409
  }[];
2410
+ payable_reference?: string | null | undefined;
2405
2411
  }, {
2406
2412
  status: "available" | "reserved";
2407
2413
  id: string;
@@ -2424,6 +2430,7 @@ declare const GetProfessionalsBySpecialtyAndServiceResponseSchema: z$1.ZodArray<
2424
2430
  id: string;
2425
2431
  name: string;
2426
2432
  }[];
2433
+ payable_reference?: string | null | undefined;
2427
2434
  }>, "many">;
2428
2435
  speciality: z$1.ZodObject<{
2429
2436
  id: z$1.ZodNumber;
@@ -2465,6 +2472,7 @@ declare const GetProfessionalsBySpecialtyAndServiceResponseSchema: z$1.ZodArray<
2465
2472
  id: string;
2466
2473
  name: string;
2467
2474
  }[];
2475
+ payable_reference?: string | null | undefined;
2468
2476
  }[];
2469
2477
  tax_id: string | null;
2470
2478
  }, {
@@ -2499,6 +2507,7 @@ declare const GetProfessionalsBySpecialtyAndServiceResponseSchema: z$1.ZodArray<
2499
2507
  id: string;
2500
2508
  name: string;
2501
2509
  }[];
2510
+ payable_reference?: string | null | undefined;
2502
2511
  }[];
2503
2512
  tax_id: string | null;
2504
2513
  }>, "many">;
@@ -2593,6 +2602,7 @@ declare const GetScheduleServiceProfessionalSlotsResponseSchema: z$1.ZodArray<z$
2593
2602
  } | null | undefined;
2594
2603
  }>;
2595
2604
  status: z$1.ZodEnum<["available", "reserved"]>;
2605
+ payable_reference: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
2596
2606
  }, "strip", z$1.ZodTypeAny, {
2597
2607
  status: "available" | "reserved";
2598
2608
  id: string;
@@ -2615,6 +2625,7 @@ declare const GetScheduleServiceProfessionalSlotsResponseSchema: z$1.ZodArray<z$
2615
2625
  id: string;
2616
2626
  name: string;
2617
2627
  }[];
2628
+ payable_reference?: string | null | undefined;
2618
2629
  }, {
2619
2630
  status: "available" | "reserved";
2620
2631
  id: string;
@@ -2637,6 +2648,7 @@ declare const GetScheduleServiceProfessionalSlotsResponseSchema: z$1.ZodArray<z$
2637
2648
  id: string;
2638
2649
  name: string;
2639
2650
  }[];
2651
+ payable_reference?: string | null | undefined;
2640
2652
  }>, "many">;
2641
2653
  type GetScheduleServiceProfessionalSlotsResponse = z$1.infer<typeof GetScheduleServiceProfessionalSlotsResponseSchema>;
2642
2654
  declare const GetScheduleServiceSpecialitiesResponseSchema: z$1.ZodArray<z$1.ZodObject<{
@@ -2737,6 +2749,7 @@ declare const GetScheduleSlotResponseSchema: z$1.ZodObject<{
2737
2749
  } | null | undefined;
2738
2750
  }>;
2739
2751
  status: z$1.ZodEnum<["available", "reserved"]>;
2752
+ payable_reference: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
2740
2753
  }, "strip", z$1.ZodTypeAny, {
2741
2754
  status: "available" | "reserved";
2742
2755
  id: string;
@@ -2759,6 +2772,7 @@ declare const GetScheduleSlotResponseSchema: z$1.ZodObject<{
2759
2772
  id: string;
2760
2773
  name: string;
2761
2774
  }[];
2775
+ payable_reference?: string | null | undefined;
2762
2776
  }, {
2763
2777
  status: "available" | "reserved";
2764
2778
  id: string;
@@ -2781,6 +2795,7 @@ declare const GetScheduleSlotResponseSchema: z$1.ZodObject<{
2781
2795
  id: string;
2782
2796
  name: string;
2783
2797
  }[];
2798
+ payable_reference?: string | null | undefined;
2784
2799
  }>;
2785
2800
  type GetScheduleSlotResponse = z$1.infer<typeof GetScheduleSlotResponseSchema>;
2786
2801
 
@@ -1,7 +1,7 @@
1
1
  import * as lit_html from 'lit-html';
2
2
  import * as lit from 'lit';
3
3
  import { LitElement, PropertyValues } from 'lit';
4
- import { M as MediquoApiChatClient, a as Message, I as ImageMessage, F as FileMessage } from './index.d-DeJP_xib.js';
4
+ import { M as MediquoApiChatClient, a as Message, I as ImageMessage, F as FileMessage } from './index.d-CRSzJK71.js';
5
5
  import '../ui/mq-avatar.js';
6
6
  import '../ui/mq-button.js';
7
7
  import '../ui/mq-skeleton.js';
@@ -1 +1 @@
1
- import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{e as i}from"./provide-BwI4DDGF.js";import{c as o}from"./consume-CovVqBjI.js";import{m as n}from"./runtime-Bg1WXVCx.js";import{l as r}from"./localized-decorator-BlOuLhym.js";import{Q as s}from"./query-controller-BlO1Ax65.js";import{A as a}from"./api-client-context-V1UAGtKW.js";import{l as p}from"./chunk-S5RWG6G2-DPesx3Od.js";import{A as l,c as m,n as d}from"./api-chat-client-BhxUWldC.js";import{g as c}from"./next-appointment-card-KXLkEJDg.js";import{g as h}from"./get-patient-profile-query-4AO6xvVn.js";import{i as u,a as g,x as y}from"./lit-element-DiWJYFwC.js";import{n as f}from"./property-scuRaFcM.js";import{r as x}from"./state-LQivXIgA.js";import{setEnv as v}from"../env.js";import{MqViewAppointmentsEvent as b}from"../events.js";import{isValidLocale as j,setLocale as k}from"../i18n.js";import"./index-DEEAEB_4.js";import"./index-Bw-MbGKw.js";import"../ui/mq-skeleton.js";const w=[l.pending,l.accepted],A=u`:host{display:flex;flex-direction:column;gap:var(--sp-4);width:100%;min-width:0;box-sizing:border-box}:host([empty]){align-self:start}:host([empty]) .card{flex:0 0 auto}.card{display:flex;flex-direction:column;flex:1;min-width:0;box-sizing:border-box;background-color:var(--color-card,#fff);border:1px solid var(--color-border-subtle,#edecf1);border-radius:var(--mq-next-appointments-radius,12px);padding:var(--mq-next-appointments-padding,var(--sp-6))}`;let $=class MqNextAppointments extends g{constructor(){super(...arguments),this.apiClient=m(),this.getPatientProfileQuery=new s(this,()=>h(this.apiClient,{enabled:!this.loginToken})),this.getAppointmentsQuery=new s(this,()=>c(this.apiClient,{status:w,order:{field:"starts_at",direction:"asc"},page:1,per_page:1})),this.handleViewAll=()=>{this.dispatchEvent(new b({tab:"next"}))}}static{this.styles=A}willUpdate(t){t.has("env")&&this.env&&v(this.env),t.has("locale")&&this.locale&&j(this.locale)&&k(this.locale);const e=d(t,{env:this.env,apiKey:this.apiKey,token:this.token,locale:this.locale},this.inheritedApiClient);e&&(this.apiClient=e)}get patientHash(){return this.loginToken?.patient.hash??this.getPatientProfileQuery.result?.data?.hash??""}get accessToken(){return this.token||this.loginToken?.access_token||""}get patientTimezone(){return this.timezone??this.loginToken?.patient.timezone}get isEmpty(){const t=this.getAppointmentsQuery.result;return!0===t?.isSuccess&&!t.data?.data?.[0]}updated(){this.toggleAttribute("empty",this.isEmpty)}renderAppointment(){return this.getAppointmentsQuery.render({complete:t=>{const e=t.data?.[0];return e?y`<next-appointment-card .appointmentResource="${e}" .token="${this.accessToken}" .patientHash="${this.patientHash}" .timezone="${this.patientTimezone}"></next-appointment-card>`:y`<widget-empty-state icon="calendar" heading="${n("No tienes próximas citas")}" description="${n("Cuando agendes una cita, aparecerá aquí para que puedas consultarla, modificarla o cancelarla.")}"></widget-empty-state>`},pending:()=>y`<mq-skeleton height="257px"></mq-skeleton>`,error:()=>y`<widget-empty-state icon="calendar" heading="${n("No hemos podido cargar tu próxima cita")}" description="${n("Vuelve a intentarlo en unos minutos.")}"></widget-empty-state>`})}render(){return y`<section-header heading="${n("Próxima cita")}" action-label="${n("Ver todas")}" @section-action="${this.handleViewAll}"></section-header><div class="card">${this.renderAppointment()}</div>`}};t([f({type:String,attribute:"api-key"})],$.prototype,"apiKey",void 0),t([f({type:String,attribute:"token"})],$.prototype,"token",void 0),t([f({type:String,attribute:"locale"})],$.prototype,"locale",void 0),t([f({type:String,attribute:"env"})],$.prototype,"env",void 0),t([f({type:String,attribute:"timezone"})],$.prototype,"timezone",void 0),t([o({context:p,subscribe:!0})],$.prototype,"loginToken",void 0),t([o({context:a,subscribe:!0}),x()],$.prototype,"inheritedApiClient",void 0),t([i({context:a}),x()],$.prototype,"apiClient",void 0),$=t([r(),e("mq-next-appointments")],$);export{$ as M};
1
+ import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{e as i}from"./provide-BwI4DDGF.js";import{c as o}from"./consume-CovVqBjI.js";import{m as n}from"./runtime-Bg1WXVCx.js";import{l as r}from"./localized-decorator-BlOuLhym.js";import{Q as s}from"./query-controller-BlO1Ax65.js";import{A as a}from"./api-client-context-V1UAGtKW.js";import{l as p}from"./chunk-S5RWG6G2-DPesx3Od.js";import{A as l,c as m,n as d}from"./api-chat-client-CzlZkbW1.js";import{g as c}from"./next-appointment-card-fL1VemkX.js";import{g as h}from"./get-patient-profile-query-4AO6xvVn.js";import{i as u,a as g,x as y}from"./lit-element-DiWJYFwC.js";import{n as f}from"./property-scuRaFcM.js";import{r as x}from"./state-LQivXIgA.js";import{setEnv as v}from"../env.js";import{MqViewAppointmentsEvent as b}from"../events.js";import{isValidLocale as j,setLocale as k}from"../i18n.js";import"./index-DEEAEB_4.js";import"./index-Bw-MbGKw.js";import"../ui/mq-skeleton.js";const w=[l.pending,l.accepted],A=u`:host{display:flex;flex-direction:column;gap:var(--sp-4);width:100%;min-width:0;box-sizing:border-box}:host([empty]){align-self:start}:host([empty]) .card{flex:0 0 auto}.card{display:flex;flex-direction:column;flex:1;min-width:0;box-sizing:border-box;background-color:var(--color-card,#fff);border:1px solid var(--color-border-subtle,#edecf1);border-radius:var(--mq-next-appointments-radius,12px);padding:var(--mq-next-appointments-padding,var(--sp-6))}`;let $=class MqNextAppointments extends g{constructor(){super(...arguments),this.apiClient=m(),this.getPatientProfileQuery=new s(this,()=>h(this.apiClient,{enabled:!this.loginToken})),this.getAppointmentsQuery=new s(this,()=>c(this.apiClient,{status:w,order:{field:"starts_at",direction:"asc"},page:1,per_page:1})),this.handleViewAll=()=>{this.dispatchEvent(new b({tab:"next"}))}}static{this.styles=A}willUpdate(t){t.has("env")&&this.env&&v(this.env),t.has("locale")&&this.locale&&j(this.locale)&&k(this.locale);const e=d(t,{env:this.env,apiKey:this.apiKey,token:this.token,locale:this.locale},this.inheritedApiClient);e&&(this.apiClient=e)}get patientHash(){return this.loginToken?.patient.hash??this.getPatientProfileQuery.result?.data?.hash??""}get accessToken(){return this.token||this.loginToken?.access_token||""}get patientTimezone(){return this.timezone??this.loginToken?.patient.timezone}get isEmpty(){const t=this.getAppointmentsQuery.result;return!0===t?.isSuccess&&!t.data?.data?.[0]}updated(){this.toggleAttribute("empty",this.isEmpty)}renderAppointment(){return this.getAppointmentsQuery.render({complete:t=>{const e=t.data?.[0];return e?y`<next-appointment-card .appointmentResource="${e}" .token="${this.accessToken}" .patientHash="${this.patientHash}" .timezone="${this.patientTimezone}"></next-appointment-card>`:y`<widget-empty-state icon="calendar" heading="${n("No tienes próximas citas")}" description="${n("Cuando agendes una cita, aparecerá aquí para que puedas consultarla, modificarla o cancelarla.")}"></widget-empty-state>`},pending:()=>y`<mq-skeleton height="257px"></mq-skeleton>`,error:()=>y`<widget-empty-state icon="calendar" heading="${n("No hemos podido cargar tu próxima cita")}" description="${n("Vuelve a intentarlo en unos minutos.")}"></widget-empty-state>`})}render(){return y`<section-header heading="${n("Próxima cita")}" action-label="${n("Ver todas")}" @section-action="${this.handleViewAll}"></section-header><div class="card">${this.renderAppointment()}</div>`}};t([f({type:String,attribute:"api-key"})],$.prototype,"apiKey",void 0),t([f({type:String,attribute:"token"})],$.prototype,"token",void 0),t([f({type:String,attribute:"locale"})],$.prototype,"locale",void 0),t([f({type:String,attribute:"env"})],$.prototype,"env",void 0),t([f({type:String,attribute:"timezone"})],$.prototype,"timezone",void 0),t([o({context:p,subscribe:!0})],$.prototype,"loginToken",void 0),t([o({context:a,subscribe:!0}),x()],$.prototype,"inheritedApiClient",void 0),t([i({context:a}),x()],$.prototype,"apiClient",void 0),$=t([r(),e("mq-next-appointments")],$);export{$ as M};
@@ -1 +1 @@
1
- import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{e as i}from"./provide-BwI4DDGF.js";import{c as r}from"./consume-CovVqBjI.js";import{m as o}from"./runtime-Bg1WXVCx.js";import{l as s}from"./localized-decorator-BlOuLhym.js";import{Q as n}from"./query-controller-BlO1Ax65.js";import{A as a}from"./api-client-context-V1UAGtKW.js";import{l as p}from"./chunk-S5RWG6G2-DPesx3Od.js";import{g as l,t as d,r as c}from"./telemetry-client-DEIuDZfA.js";import{g as m,t as h}from"./index-DjD-3x4f.js";import{g as u}from"./get-patient-profile-query-4AO6xvVn.js";import{i as g,a as y,x as f}from"./lit-element-DiWJYFwC.js";import{n as v}from"./property-scuRaFcM.js";import{r as b}from"./state-LQivXIgA.js";import{setEnv as j}from"../env.js";import{MqViewDocumentsEvent as x}from"../events.js";import{isValidLocale as k,setLocale as w,getLocale as S}from"../i18n.js";import{c as $,n as P}from"./api-chat-client-BhxUWldC.js";import"./index-Bw-MbGKw.js";import"./index-DEEAEB_4.js";const Q=g`:host{display:flex;flex-direction:column;align-self:start;gap:var(--sp-4);width:100%;min-width:0;box-sizing:border-box}.card{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0;box-sizing:border-box;background-color:var(--color-card,#fff);border:1px solid var(--color-border-subtle,#edecf1);border-radius:var(--mq-recent-documents-radius,12px);padding:var(--mq-recent-documents-padding,var(--sp-6))}`;let C=class MqRecentDocuments extends y{constructor(){super(...arguments),this.apiClient=$(),this.getPatientProfileQuery=new n(this,()=>u(this.apiClient,{enabled:!this.loginToken})),this.getPatientDocumentsQuery=new n(this,()=>({...m(this.apiClient,{patient_hash:this.patientHash,page:1,per_page:3}),enabled:!!this.patientHash})),this.getOrganizationSpecialtiesQuery=new n(this,()=>l(this.apiClient)),this.handleViewAll=()=>{d.track(c(this.patientHash)),this.dispatchEvent(new x)}}static{this.styles=Q}willUpdate(t){t.has("env")&&this.env&&j(this.env),t.has("locale")&&this.locale&&k(this.locale)&&w(this.locale);const e=P(t,{env:this.env,apiKey:this.apiKey,token:this.token,locale:this.locale},this.inheritedApiClient);e&&(this.apiClient=e)}get patientHash(){return this.loginToken?.patient.hash??this.getPatientProfileQuery.result?.data?.hash??""}renderEmptyState(){return f`<widget-empty-state icon="document" heading="${o("No tienes documentación")}" description="${o("Aquí se mostrarán tus recetas e informes médicos.")}"></widget-empty-state>`}renderSkeleton(){return f`<document-list placeholders="${3}"></document-list>`}renderError(){return f`<widget-empty-state icon="document" heading="${o("No hemos podido cargar tu documentación")}" description="${o("Vuelve a intentarlo en unos minutos.")}"></widget-empty-state>`}renderDocuments(){return this.getPatientDocumentsQuery.render({complete:t=>0===t.data.length?this.renderEmptyState():f`<document-list .documents="${h(t.data,this.getOrganizationSpecialtiesQuery.result?.data,S())}" patientHash="${this.patientHash}"></document-list>`,initial:()=>this.getPatientProfileQuery.result?.isError?this.renderError():this.renderSkeleton(),pending:()=>this.renderSkeleton(),error:()=>this.renderError()})}render(){return f`<section-header heading="${o("Documentos recientes")}" action-label="${o("Ver todas")}" @section-action="${this.handleViewAll}"></section-header><div class="card">${this.renderDocuments()}</div>`}};t([v({type:String,attribute:"api-key"})],C.prototype,"apiKey",void 0),t([v({type:String,attribute:"token"})],C.prototype,"token",void 0),t([v({type:String,attribute:"locale"})],C.prototype,"locale",void 0),t([v({type:String,attribute:"env"})],C.prototype,"env",void 0),t([r({context:a,subscribe:!0}),b()],C.prototype,"inheritedApiClient",void 0),t([i({context:a}),b()],C.prototype,"apiClient",void 0),t([r({context:p,subscribe:!0})],C.prototype,"loginToken",void 0),C=t([s(),e("mq-recent-documents")],C);export{C as M};
1
+ import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{e as i}from"./provide-BwI4DDGF.js";import{c as r}from"./consume-CovVqBjI.js";import{m as o}from"./runtime-Bg1WXVCx.js";import{l as s}from"./localized-decorator-BlOuLhym.js";import{Q as n}from"./query-controller-BlO1Ax65.js";import{A as a}from"./api-client-context-V1UAGtKW.js";import{l as p}from"./chunk-S5RWG6G2-DPesx3Od.js";import{g as l,t as d,r as c}from"./telemetry-client-DEIuDZfA.js";import{g as m,t as h}from"./index-M3514yfv.js";import{g as u}from"./get-patient-profile-query-4AO6xvVn.js";import{i as g,a as y,x as f}from"./lit-element-DiWJYFwC.js";import{n as v}from"./property-scuRaFcM.js";import{r as b}from"./state-LQivXIgA.js";import{setEnv as j}from"../env.js";import{MqViewDocumentsEvent as x}from"../events.js";import{isValidLocale as k,setLocale as w,getLocale as S}from"../i18n.js";import{c as $,n as P}from"./api-chat-client-CzlZkbW1.js";import"./index-Bw-MbGKw.js";import"./index-DEEAEB_4.js";const Q=g`:host{display:flex;flex-direction:column;align-self:start;gap:var(--sp-4);width:100%;min-width:0;box-sizing:border-box}.card{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0;box-sizing:border-box;background-color:var(--color-card,#fff);border:1px solid var(--color-border-subtle,#edecf1);border-radius:var(--mq-recent-documents-radius,12px);padding:var(--mq-recent-documents-padding,var(--sp-6))}`;let C=class MqRecentDocuments extends y{constructor(){super(...arguments),this.apiClient=$(),this.getPatientProfileQuery=new n(this,()=>u(this.apiClient,{enabled:!this.loginToken})),this.getPatientDocumentsQuery=new n(this,()=>({...m(this.apiClient,{patient_hash:this.patientHash,page:1,per_page:3}),enabled:!!this.patientHash})),this.getOrganizationSpecialtiesQuery=new n(this,()=>l(this.apiClient)),this.handleViewAll=()=>{d.track(c(this.patientHash)),this.dispatchEvent(new x)}}static{this.styles=Q}willUpdate(t){t.has("env")&&this.env&&j(this.env),t.has("locale")&&this.locale&&k(this.locale)&&w(this.locale);const e=P(t,{env:this.env,apiKey:this.apiKey,token:this.token,locale:this.locale},this.inheritedApiClient);e&&(this.apiClient=e)}get patientHash(){return this.loginToken?.patient.hash??this.getPatientProfileQuery.result?.data?.hash??""}renderEmptyState(){return f`<widget-empty-state icon="document" heading="${o("No tienes documentación")}" description="${o("Aquí se mostrarán tus recetas e informes médicos.")}"></widget-empty-state>`}renderSkeleton(){return f`<document-list placeholders="${3}"></document-list>`}renderError(){return f`<widget-empty-state icon="document" heading="${o("No hemos podido cargar tu documentación")}" description="${o("Vuelve a intentarlo en unos minutos.")}"></widget-empty-state>`}renderDocuments(){return this.getPatientDocumentsQuery.render({complete:t=>0===t.data.length?this.renderEmptyState():f`<document-list .documents="${h(t.data,this.getOrganizationSpecialtiesQuery.result?.data,S())}" patientHash="${this.patientHash}"></document-list>`,initial:()=>this.getPatientProfileQuery.result?.isError?this.renderError():this.renderSkeleton(),pending:()=>this.renderSkeleton(),error:()=>this.renderError()})}render(){return f`<section-header heading="${o("Documentos recientes")}" action-label="${o("Ver todas")}" @section-action="${this.handleViewAll}"></section-header><div class="card">${this.renderDocuments()}</div>`}};t([v({type:String,attribute:"api-key"})],C.prototype,"apiKey",void 0),t([v({type:String,attribute:"token"})],C.prototype,"token",void 0),t([v({type:String,attribute:"locale"})],C.prototype,"locale",void 0),t([v({type:String,attribute:"env"})],C.prototype,"env",void 0),t([r({context:a,subscribe:!0}),b()],C.prototype,"inheritedApiClient",void 0),t([i({context:a}),b()],C.prototype,"apiClient",void 0),t([r({context:p,subscribe:!0})],C.prototype,"loginToken",void 0),C=t([s(),e("mq-recent-documents")],C);export{C as M};
@@ -1,9 +1,9 @@
1
1
  import * as lit_html from 'lit-html';
2
2
  import * as lit from 'lit';
3
3
  import { LitElement } from 'lit';
4
- import { M as MediquoApiChatClient, G as GetAppointmentsResponse } from './index.d-DeJP_xib.js';
4
+ import { M as MediquoApiChatClient, G as GetAppointmentsResponse } from './index.d-CRSzJK71.js';
5
5
  import { L as LoginTokenResponse } from './schemas.d-b6_AekBb.js';
6
- import './mq-chat-room-B3ant6md.js';
6
+ import './mq-chat-room-CWIDQUxq.js';
7
7
  import '../ui/mq-button.js';
8
8
  import '../ui/mq-dialog.js';
9
9
  import { P as PriceInCents } from './price.d-CwLosdAN.js';
@@ -1 +1 @@
1
- import{s as e}from"./chunk-6CCJWPGL-TiaqZaPV.js";import{_ as t,c as i}from"./custom-element-D2ziPxYE.js";import{c as n}from"./consume-CovVqBjI.js";import{m as o,s as a}from"./runtime-Bg1WXVCx.js";import{l as s}from"./localized-decorator-BlOuLhym.js";import{Q as r}from"./query-controller-BlO1Ax65.js";import{A as l}from"./api-client-context-V1UAGtKW.js";import{l as p}from"./chunk-S5RWG6G2-DPesx3Od.js";import{d as c,e as d}from"./api-chat-client-BhxUWldC.js";import{g as m,a as h}from"./chunk-2TKJJNS7-BGwxtEg7.js";import{g as u}from"./get-organization-setup-query-Dr1cXnHl.js";import{g,t as f,f as v,i as b,j as y,k as $,a as x}from"./telemetry-client-DEIuDZfA.js";import{g as C}from"./chunk-Y4EKUX25-QqMl3eiq.js";import{c as w}from"./refund-cancel-policy-QG_OE6g5.js";import{a as k,i as q,x as O,E as j}from"./lit-element-DiWJYFwC.js";import{n as M}from"./property-scuRaFcM.js";import{r as z}from"./state-LQivXIgA.js";import{MqAppointmentJoinVideocallEvent as S,MqAppointmentRescheduleEvent as E}from"../events.js";import{getLocale as I}from"../i18n.js";import{calendarIcon as D}from"../ui/icons/calendar-icon.js";import{dotsHorizontalIcon as R}from"../ui/icons/dots-horizontal-icon.js";import{messageBubbleIcon as _}from"../ui/icons/message-bubble-icon.js";import{phoneIcon as A}from"../ui/icons/phone-icon.js";import{videoIcon as P}from"../ui/icons/video-icon.js";import"../mq-chat-room.js";import"../ui/mq-button.js";import"../ui/mq-dialog.js";import{Q as T}from"./chunk-RCFIJTXZ-C6Ir0-sM.js";import{M as U}from"./mutation-controller-CR2qcqhH.js";import{h as N,f as L}from"./price-DU3YLTpk.js";import"./professional-overview-B4E05rLd.js";import"../ui/mq-floating-bubble.js";import"../ui/mq-unread-badge.js";import{toast as H}from"../ui/mq-toast.js";function Q(t,i){return{queryKey:e(t,"appointments",i),queryFn:()=>t.appointments.getAppointments(i)}}function J(e){const{action:t,refundPolicySeconds:i}=e,n=null!=i&&i<3600,s=Math.ceil((i??0)/60),r=Math.ceil((i??0)/3600);return o(0===(n?s:r)?"modify"===t?"Esta cita ya ha pasado, por lo que no se puede modificar.":"Esta cita ya ha pasado, por lo que no se puede anular.":"modify"===t?n?a`Lo sentimos, como faltan menos de ${s} minutos para tu cita no podemos modificarla.`:a`Lo sentimos, como faltan menos de ${r} horas para tu cita no podemos modificarla.`:n?a`Lo sentimos, como faltan menos de ${s} minutos para tu cita no podemos anularla.`:a`Lo sentimos, como faltan menos de ${r} horas para tu cita no podemos anularla.`)}let F=class AppointmentActionUnavailableDialog extends k{constructor(){super(...arguments),this.open=!1,this.heading="",this.message="",this.handleClose=()=>{this.open=!1,this.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0}))}}static{this.styles=q`:host{display:contents}mq-dialog::part(dialog){max-width:343px;min-width:0}h2{font-family:var(--font-titles);font-size:var(--text-2xl);line-height:var(--text-2xl--line-height);font-weight:var(--font-weight-bold);margin:0}p{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-normal);margin:0}.actions{display:flex;margin-top:var(--sp-4)}`}render(){return O`<mq-dialog .open="${this.open}" @mq-close="${this.handleClose}" dismissable><h2 slot="heading">${this.heading}</h2><p slot="subheading">${this.message}</p><div class="actions"><mq-button variant="primary" fullwidth @click="${this.handleClose}">${o("Volver")}</mq-button></div></mq-dialog>`}};t([M({type:Boolean,reflect:!0})],F.prototype,"open",void 0),t([M({type:String})],F.prototype,"heading",void 0),t([M({type:String})],F.prototype,"message",void 0),F=t([s(),i("appointment-action-unavailable-dialog")],F);let V=class CancelAppointmentConfirmationDialog extends k{constructor(){super(...arguments),this.open=!1,this.cancelAppointmentMutation=new U(this,{mutationFn:async e=>this.apiClient.appointments.cancelAppointment(e),onSuccess:()=>{this.queryClientContext?.invalidateQueries(),this.dispatchEvent(new CustomEvent("success",{bubbles:!0,composed:!0}))}}),this.handleClose=()=>{this.open=!1,this.dispatchEvent(new CustomEvent("cancel",{bubbles:!0,composed:!0}))},this.handleDismissClick=()=>{this.open=!1,this.dispatchEvent(new CustomEvent("cancel",{bubbles:!0,composed:!0}))},this.handleConfirmClick=()=>{this.cancelAppointmentMutation.run({id:this.appointmentId})}}static{this.styles=q`:host{display:contents}h2{font-family:var(--font-titles);font-size:var(--text-2xl);line-height:var(--text-2xl--line-height);font-weight:var(--font-weight-bold);margin:0}p{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-normal);margin:0}.subheading-payable{font-size:var(--text-base);line-height:22px}.price-rows{display:flex;flex-direction:column;font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--text-sm--line-height);color:var(--color-card-foreground);width:100%;margin-bottom:var(--sp-4)}.price-row{display:flex;align-items:center;justify-content:space-between;min-height:34px;gap:var(--sp-2)}.price-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-4);justify-content:flex-end;flex-wrap:wrap}`}render(){const e=I(),t=this.price,i=N(t),n=this.cancelAppointmentMutation.isPending;if(i){const i=L(t,e),a=`-${i}`;return O`<mq-dialog .open="${this.open}" @mq-close="${this.handleClose}" dismissable><h2 slot="heading">${o("Confirmar cancelación")}</h2><p slot="subheading" class="subheading-payable">${o("¿Seguro que quieres cancelar esta cita? Se te devolverá el importe pagado en un plazo de 5-10 días hábiles.")}</p><div><div class="price-rows"><div class="price-row"><span>${o("Importe pagado")}</span> <span>${i}</span></div><div class="price-row"><span>${o("Importe a devolver")}</span> <span>${a}</span></div></div><div class="actions"><mq-button variant="outline" ?disabled="${n}" @click="${this.handleDismissClick}">${o("Volver")}</mq-button><mq-button variant="primary" ?disabled="${n}" @click="${this.handleConfirmClick}">${o("Confirmar")}</mq-button></div></div></mq-dialog>`}return O`<mq-dialog .open="${this.open}" @mq-close="${this.handleClose}" dismissable><h2 slot="heading">${o("Confirmar cancelación")}</h2><p slot="subheading">${o("¿Seguro que quieres cancelar esta cita?")}</p><div><div class="actions"><mq-button variant="outline" ?disabled="${n}" @click="${this.handleDismissClick}">${o("Cancelar")}</mq-button><mq-button variant="primary" ?disabled="${n}" @click="${this.handleConfirmClick}">${o("Confirmar")}</mq-button></div></div></mq-dialog>`}};t([n({context:l,subscribe:!0})],V.prototype,"apiClient",void 0),t([M({type:Boolean,reflect:!0})],V.prototype,"open",void 0),t([n({context:T,subscribe:!0})],V.prototype,"queryClientContext",void 0),t([M({type:String})],V.prototype,"appointmentId",void 0),t([M({type:Object})],V.prototype,"price",void 0),V=t([s(),i("cancel-appointment-confirmation-dialog")],V);const W=q`:host{display:flex;flex-direction:column;justify-content:space-between;gap:var(--sp-6);flex:1;width:100%;min-width:0;box-sizing:border-box;color:var(--color-text-icons--primary,#0a0a22)}professional-overview{--avatar-size-lg:66px;--text-lg--line-height:1.35;display:block}.details{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3)}.detail-row{display:inline-flex;align-items:center;gap:var(--sp-2);font-family:var(--font-body);font-size:var(--text-sm);line-height:1.35;font-weight:var(--font-weight-normal)}.detail-row svg{flex-shrink:0}.detail-row span::first-letter{text-transform:uppercase}.footer{display:flex;flex-direction:column;gap:var(--sp-4)}.reminder{font-family:var(--font-body);font-size:var(--text-sm);line-height:1.35;font-weight:var(--font-weight-normal);color:var(--color-text-icons--secondary,#6d658b);margin:0}.actions{--button-height-md:2.75rem;display:flex;align-items:stretch;gap:10px}.actions>mq-button{flex:1;min-width:0}.overflow{position:relative;flex:0 0 auto}.chat-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-badge{--mq-unread-badge-size:8px;flex-shrink:0}@media (max-width:767px){.actions{flex-wrap:wrap}.actions>mq-button.join{order:1;flex:1 0 100%}}.menu{position:absolute;right:0;bottom:calc(100% + var(--sp-2));z-index:2;display:flex;flex-direction:column;min-width:176px;padding:var(--sp-1);background-color:var(--color-card,#fff);border:1px solid var(--color-border-subtle,#edecf1);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg)}.menu-item{display:block;width:100%;background:0 0;border:none;border-radius:var(--border-radius-sm);padding:var(--sp-2) var(--sp-3);cursor:pointer;text-align:left;font-family:var(--font-body);font-size:var(--text-sm);line-height:1.35;color:var(--color-text-icons--primary,#0a0a22)}.menu-item:hover{background-color:var(--color-muted)}.menu-item.negative{color:var(--color-negative)}`;let B=class NextAppointmentCard extends k{constructor(){super(...arguments),this.token="",this.patientHash="",this.isChatOpen=!1,this.isMenuOpen=!1,this.isCancelDialogOpen=!1,this.openDialog=null,this.getUnreadMessagesQuery=new r(this,()=>({...C(this.apiClient,{roomId:this.appointmentResource?.room?.id}),enabled:!!this.appointmentResource?.room?.id})),this.getOrganizationSetupQuery=new r(this,()=>u(this.apiClient)),this.getOrganizationSpecialtiesQuery=new r(this,()=>g(this.apiClient,{enabled:!!this.appointmentResource?.speciality?.id})),this.closeMenuOnOutsideClick=e=>{e.composedPath().includes(this)||(this.isMenuOpen=!1)},this.closeMenuOnEscape=e=>{"Escape"===e.key&&(this.isMenuOpen=!1)},this.handleJoinVideocall=()=>{f.track(v(this.sessionPatientHash,this.appointmentId)),this.dispatchEvent(new S({appointmentId:this.appointmentId}))},this.handleToggleChat=()=>{this.isChatOpen=!this.isChatOpen,this.isChatOpen&&f.track(b(this.sessionPatientHash,this.appointmentId))},this.handleModify=()=>{this.isMenuOpen=!1,this.isModifyUnavailable?this.openDialog="modify":(f.track(y(this.sessionPatientHash,this.appointmentId)),this.dispatchEvent(new E({appointmentId:this.appointmentId})))},this.handleCancel=()=>{this.isMenuOpen=!1,this.isCancelUnavailable?this.openDialog="cancel":(f.track($(this.sessionPatientHash,this.appointmentId)),this.isCancelDialogOpen=!0)}}static{this.styles=W}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.closeMenuOnOutsideClick),document.addEventListener("keydown",this.closeMenuOnEscape)}disconnectedCallback(){document.removeEventListener("click",this.closeMenuOnOutsideClick),document.removeEventListener("keydown",this.closeMenuOnEscape),super.disconnectedCallback()}get appointmentId(){return this.appointmentResource.appointment.id??""}get channel(){return this.appointmentResource.appointment.channel}get sessionToken(){return this.token||this.loginToken?.access_token||""}get sessionPatientHash(){return this.patientHash||this.loginToken?.patient?.hash||""}get sessionTimezone(){return this.timezone??this.loginToken?.patient?.timezone}get unreadCount(){return this.getUnreadMessagesQuery.result?.data?.unread_count??0}get specialtyName(){const e=this.getOrganizationSpecialtiesQuery.result?.data?.find(e=>Number(e.id)===Number(this.appointmentResource.speciality?.id));return x(e?.code??"",I(),e?.name??this.appointmentResource.speciality?.name)}get hasChatSupport(){return this.appointmentResource.appointment.has_chat_in_appointment??this.getOrganizationSetupQuery.result?.data?.appointments?.has_chat_in_appointment??!1}get isExpired(){return c(this.appointmentResource.appointment.expires_at)}get refundPolicySeconds(){return this.getOrganizationSetupQuery.result?.data?.appointments?.seconds_before_start_to_refund_on_cancel}get policyAllowsModifyOrCancel(){return w({startsAtIso:this.appointmentResource.appointment.starts_at,refundPolicySeconds:this.refundPolicySeconds})}get isModifyUnavailable(){return this.isExpired||0===this.appointmentResource.slots.length||!this.policyAllowsModifyOrCancel}get isCancelUnavailable(){return this.isExpired||!this.policyAllowsModifyOrCancel}get modifyUnavailableMessage(){return J({action:"modify",refundPolicySeconds:this.refundPolicySeconds})}get cancelUnavailableMessage(){return J({action:"cancel",refundPolicySeconds:this.refundPolicySeconds})}channelIcon(){switch(this.channel){case d.videocall:return P({size:20});case d.phonecall:return A({size:20});default:return _({size:20})}}channelLabel(){switch(this.channel){case d.videocall:return o("Videoconsulta");case d.phonecall:return o("Consulta telefónica");default:return o("Chat")}}formatWhen(){const e=I().replace("_","-"),t=m(this.sessionTimezone),i=t?{timeZone:t}:{},n=new Date(this.appointmentResource.appointment.starts_at);if(Number.isNaN(n.getTime()))return"";const s=new Intl.DateTimeFormat(e,{weekday:"long",day:"numeric",month:"long",year:"numeric",...i}).format(n),r=new Intl.DateTimeFormat(e,{timeStyle:"short",hourCycle:"h23",...i}).format(n),l=t?h(t,n):"";return o(a`${s}, ${r} h${l?` (${l})`:""}`)}renderActions(){const e=this.channel===d.videocall;return O`<div class="actions">${this.hasChatSupport?O`<mq-button variant="outline" @click="${this.handleToggleChat}"><span class="chat-label">${o("Ir a chat")}</span> ${this.unreadCount>0?O`<mq-unread-badge class="chat-badge"></mq-unread-badge>`:j}</mq-button>`:j} ${e?O`<mq-button class="join" variant="primary" @click="${this.handleJoinVideocall}">${o("Unirse a la videoconsulta")}</mq-button>`:j}<div class="overflow"><mq-button variant="outline" size="icon-lg" aria-label="${o("Más opciones")}" aria-haspopup="menu" aria-expanded="${this.isMenuOpen}" @click="${()=>{this.isMenuOpen=!this.isMenuOpen}}">${R({size:16})}</mq-button>${this.isMenuOpen?O`<div class="menu" role="menu"><button class="menu-item" type="button" role="menuitem" @click="${this.handleModify}">${o("Modificar cita")}</button> <button class="menu-item negative" type="button" role="menuitem" @click="${this.handleCancel}">${o("Anular cita")}</button></div>`:j}</div></div>`}render(){const{professional:e}=this.appointmentResource,t=this.formatWhen();return O`<professional-overview .name="${e.name}" .specialtyName="${this.specialtyName}" .collegiateNumber="${e.collegiate_number??void 0}" .description="${e.description??""}" .languages="${e.languages??[]}" .avatar="${e.avatar??""}"></professional-overview><div class="details">${t?O`<div class="detail-row">${D({size:20})} <span>${t}</span></div>`:j}<div class="detail-row">${this.channelIcon()} <span>${this.channelLabel()}</span></div></div><div class="footer"><p class="reminder">${o("Recibirás un recordatorio 15 minutos antes de la consulta")}</p>${this.renderActions()}</div><mq-floating-bubble ?dismissable="${!1}" .open="${this.isChatOpen}" hideCloseButton @mq-close="${()=>{this.isChatOpen=!1}}">${this.isChatOpen?O`<mq-chat-room slot="content" .consultationId="${this.appointmentResource.appointment.id}" consultation-type="appointment" token="${this.sessionToken}" .roomId="${this.appointmentResource.room.id}" .professionalHash="${e.hash}" ?readonly="${this.isExpired}" @mq-chat-room-close="${()=>{this.isChatOpen=!1}}"></mq-chat-room>`:j}</mq-floating-bubble><appointment-action-unavailable-dialog .open="${"modify"===this.openDialog}" .heading="${o("Modificar cita")}" .message="${this.modifyUnavailableMessage}" @close="${()=>{this.openDialog=null}}"></appointment-action-unavailable-dialog><appointment-action-unavailable-dialog .open="${"cancel"===this.openDialog}" .heading="${o("Anular cita")}" .message="${this.cancelUnavailableMessage}" @close="${()=>{this.openDialog=null}}"></appointment-action-unavailable-dialog><cancel-appointment-confirmation-dialog .appointmentId="${this.appointmentResource.appointment.id}" .price="${this.appointmentResource.price??void 0}" .open="${this.isCancelDialogOpen}" @cancel="${()=>{this.isCancelDialogOpen=!1}}" @success="${()=>{this.isCancelDialogOpen=!1,H.success(o("Consulta anulada correctamente")),this.dispatchEvent(new CustomEvent("appointment-cancel-confirmed",{bubbles:!0,composed:!0,detail:{id:this.appointmentId}}))}}"></cancel-appointment-confirmation-dialog>`}};t([n({context:l,subscribe:!0})],B.prototype,"apiClient",void 0),t([n({context:p,subscribe:!0})],B.prototype,"loginToken",void 0),t([M({type:Object})],B.prototype,"appointmentResource",void 0),t([M({type:String})],B.prototype,"token",void 0),t([M({type:String})],B.prototype,"patientHash",void 0),t([M({type:String})],B.prototype,"timezone",void 0),t([z()],B.prototype,"isChatOpen",void 0),t([z()],B.prototype,"isMenuOpen",void 0),t([z()],B.prototype,"isCancelDialogOpen",void 0),t([z()],B.prototype,"openDialog",void 0),B=t([s(),i("next-appointment-card")],B);export{J as a,Q as g};
1
+ import{s as e}from"./chunk-6CCJWPGL-TiaqZaPV.js";import{_ as t,c as i}from"./custom-element-D2ziPxYE.js";import{c as n}from"./consume-CovVqBjI.js";import{m as o,s as a}from"./runtime-Bg1WXVCx.js";import{l as s}from"./localized-decorator-BlOuLhym.js";import{Q as r}from"./query-controller-BlO1Ax65.js";import{A as l}from"./api-client-context-V1UAGtKW.js";import{l as p}from"./chunk-S5RWG6G2-DPesx3Od.js";import{d as c,e as d}from"./api-chat-client-CzlZkbW1.js";import{g as m,a as h}from"./chunk-2TKJJNS7-BGwxtEg7.js";import{g as u}from"./get-organization-setup-query-Dr1cXnHl.js";import{g,t as f,f as v,i as b,j as y,k as $,a as x}from"./telemetry-client-DEIuDZfA.js";import{g as C}from"./chunk-Y4EKUX25-QqMl3eiq.js";import{c as w}from"./refund-cancel-policy-QG_OE6g5.js";import{a as k,i as q,x as O,E as j}from"./lit-element-DiWJYFwC.js";import{n as M}from"./property-scuRaFcM.js";import{r as z}from"./state-LQivXIgA.js";import{MqAppointmentJoinVideocallEvent as S,MqAppointmentRescheduleEvent as E}from"../events.js";import{getLocale as I}from"../i18n.js";import{calendarIcon as D}from"../ui/icons/calendar-icon.js";import{dotsHorizontalIcon as R}from"../ui/icons/dots-horizontal-icon.js";import{messageBubbleIcon as _}from"../ui/icons/message-bubble-icon.js";import{phoneIcon as A}from"../ui/icons/phone-icon.js";import{videoIcon as P}from"../ui/icons/video-icon.js";import"../mq-chat-room.js";import"../ui/mq-button.js";import"../ui/mq-dialog.js";import{Q as T}from"./chunk-RCFIJTXZ-C6Ir0-sM.js";import{M as U}from"./mutation-controller-CR2qcqhH.js";import{h as N,f as L}from"./price-DU3YLTpk.js";import"./professional-overview-B4E05rLd.js";import"../ui/mq-floating-bubble.js";import"../ui/mq-unread-badge.js";import{toast as H}from"../ui/mq-toast.js";function Q(t,i){return{queryKey:e(t,"appointments",i),queryFn:()=>t.appointments.getAppointments(i)}}function J(e){const{action:t,refundPolicySeconds:i}=e,n=null!=i&&i<3600,s=Math.ceil((i??0)/60),r=Math.ceil((i??0)/3600);return o(0===(n?s:r)?"modify"===t?"Esta cita ya ha pasado, por lo que no se puede modificar.":"Esta cita ya ha pasado, por lo que no se puede anular.":"modify"===t?n?a`Lo sentimos, como faltan menos de ${s} minutos para tu cita no podemos modificarla.`:a`Lo sentimos, como faltan menos de ${r} horas para tu cita no podemos modificarla.`:n?a`Lo sentimos, como faltan menos de ${s} minutos para tu cita no podemos anularla.`:a`Lo sentimos, como faltan menos de ${r} horas para tu cita no podemos anularla.`)}let F=class AppointmentActionUnavailableDialog extends k{constructor(){super(...arguments),this.open=!1,this.heading="",this.message="",this.handleClose=()=>{this.open=!1,this.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0}))}}static{this.styles=q`:host{display:contents}mq-dialog::part(dialog){max-width:343px;min-width:0}h2{font-family:var(--font-titles);font-size:var(--text-2xl);line-height:var(--text-2xl--line-height);font-weight:var(--font-weight-bold);margin:0}p{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-normal);margin:0}.actions{display:flex;margin-top:var(--sp-4)}`}render(){return O`<mq-dialog .open="${this.open}" @mq-close="${this.handleClose}" dismissable><h2 slot="heading">${this.heading}</h2><p slot="subheading">${this.message}</p><div class="actions"><mq-button variant="primary" fullwidth @click="${this.handleClose}">${o("Volver")}</mq-button></div></mq-dialog>`}};t([M({type:Boolean,reflect:!0})],F.prototype,"open",void 0),t([M({type:String})],F.prototype,"heading",void 0),t([M({type:String})],F.prototype,"message",void 0),F=t([s(),i("appointment-action-unavailable-dialog")],F);let V=class CancelAppointmentConfirmationDialog extends k{constructor(){super(...arguments),this.open=!1,this.cancelAppointmentMutation=new U(this,{mutationFn:async e=>this.apiClient.appointments.cancelAppointment(e),onSuccess:()=>{this.queryClientContext?.invalidateQueries(),this.dispatchEvent(new CustomEvent("success",{bubbles:!0,composed:!0}))}}),this.handleClose=()=>{this.open=!1,this.dispatchEvent(new CustomEvent("cancel",{bubbles:!0,composed:!0}))},this.handleDismissClick=()=>{this.open=!1,this.dispatchEvent(new CustomEvent("cancel",{bubbles:!0,composed:!0}))},this.handleConfirmClick=()=>{this.cancelAppointmentMutation.run({id:this.appointmentId})}}static{this.styles=q`:host{display:contents}h2{font-family:var(--font-titles);font-size:var(--text-2xl);line-height:var(--text-2xl--line-height);font-weight:var(--font-weight-bold);margin:0}p{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-normal);margin:0}.subheading-payable{font-size:var(--text-base);line-height:22px}.price-rows{display:flex;flex-direction:column;font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--text-sm--line-height);color:var(--color-card-foreground);width:100%;margin-bottom:var(--sp-4)}.price-row{display:flex;align-items:center;justify-content:space-between;min-height:34px;gap:var(--sp-2)}.price-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-4);justify-content:flex-end;flex-wrap:wrap}`}render(){const e=I(),t=this.price,i=N(t),n=this.cancelAppointmentMutation.isPending;if(i){const i=L(t,e),a=`-${i}`;return O`<mq-dialog .open="${this.open}" @mq-close="${this.handleClose}" dismissable><h2 slot="heading">${o("Confirmar cancelación")}</h2><p slot="subheading" class="subheading-payable">${o("¿Seguro que quieres cancelar esta cita? Se te devolverá el importe pagado en un plazo de 5-10 días hábiles.")}</p><div><div class="price-rows"><div class="price-row"><span>${o("Importe pagado")}</span> <span>${i}</span></div><div class="price-row"><span>${o("Importe a devolver")}</span> <span>${a}</span></div></div><div class="actions"><mq-button variant="outline" ?disabled="${n}" @click="${this.handleDismissClick}">${o("Volver")}</mq-button><mq-button variant="primary" ?disabled="${n}" @click="${this.handleConfirmClick}">${o("Confirmar")}</mq-button></div></div></mq-dialog>`}return O`<mq-dialog .open="${this.open}" @mq-close="${this.handleClose}" dismissable><h2 slot="heading">${o("Confirmar cancelación")}</h2><p slot="subheading">${o("¿Seguro que quieres cancelar esta cita?")}</p><div><div class="actions"><mq-button variant="outline" ?disabled="${n}" @click="${this.handleDismissClick}">${o("Cancelar")}</mq-button><mq-button variant="primary" ?disabled="${n}" @click="${this.handleConfirmClick}">${o("Confirmar")}</mq-button></div></div></mq-dialog>`}};t([n({context:l,subscribe:!0})],V.prototype,"apiClient",void 0),t([M({type:Boolean,reflect:!0})],V.prototype,"open",void 0),t([n({context:T,subscribe:!0})],V.prototype,"queryClientContext",void 0),t([M({type:String})],V.prototype,"appointmentId",void 0),t([M({type:Object})],V.prototype,"price",void 0),V=t([s(),i("cancel-appointment-confirmation-dialog")],V);const W=q`:host{display:flex;flex-direction:column;justify-content:space-between;gap:var(--sp-6);flex:1;width:100%;min-width:0;box-sizing:border-box;color:var(--color-text-icons--primary,#0a0a22)}professional-overview{--avatar-size-lg:66px;--text-lg--line-height:1.35;display:block}.details{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-3)}.detail-row{display:inline-flex;align-items:center;gap:var(--sp-2);font-family:var(--font-body);font-size:var(--text-sm);line-height:1.35;font-weight:var(--font-weight-normal)}.detail-row svg{flex-shrink:0}.detail-row span::first-letter{text-transform:uppercase}.footer{display:flex;flex-direction:column;gap:var(--sp-4)}.reminder{font-family:var(--font-body);font-size:var(--text-sm);line-height:1.35;font-weight:var(--font-weight-normal);color:var(--color-text-icons--secondary,#6d658b);margin:0}.actions{--button-height-md:2.75rem;display:flex;align-items:stretch;gap:10px}.actions>mq-button{flex:1;min-width:0}.overflow{position:relative;flex:0 0 auto}.chat-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-badge{--mq-unread-badge-size:8px;flex-shrink:0}@media (max-width:767px){.actions{flex-wrap:wrap}.actions>mq-button.join{order:1;flex:1 0 100%}}.menu{position:absolute;right:0;bottom:calc(100% + var(--sp-2));z-index:2;display:flex;flex-direction:column;min-width:176px;padding:var(--sp-1);background-color:var(--color-card,#fff);border:1px solid var(--color-border-subtle,#edecf1);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg)}.menu-item{display:block;width:100%;background:0 0;border:none;border-radius:var(--border-radius-sm);padding:var(--sp-2) var(--sp-3);cursor:pointer;text-align:left;font-family:var(--font-body);font-size:var(--text-sm);line-height:1.35;color:var(--color-text-icons--primary,#0a0a22)}.menu-item:hover{background-color:var(--color-muted)}.menu-item.negative{color:var(--color-negative)}`;let B=class NextAppointmentCard extends k{constructor(){super(...arguments),this.token="",this.patientHash="",this.isChatOpen=!1,this.isMenuOpen=!1,this.isCancelDialogOpen=!1,this.openDialog=null,this.getUnreadMessagesQuery=new r(this,()=>({...C(this.apiClient,{roomId:this.appointmentResource?.room?.id}),enabled:!!this.appointmentResource?.room?.id})),this.getOrganizationSetupQuery=new r(this,()=>u(this.apiClient)),this.getOrganizationSpecialtiesQuery=new r(this,()=>g(this.apiClient,{enabled:!!this.appointmentResource?.speciality?.id})),this.closeMenuOnOutsideClick=e=>{e.composedPath().includes(this)||(this.isMenuOpen=!1)},this.closeMenuOnEscape=e=>{"Escape"===e.key&&(this.isMenuOpen=!1)},this.handleJoinVideocall=()=>{f.track(v(this.sessionPatientHash,this.appointmentId)),this.dispatchEvent(new S({appointmentId:this.appointmentId}))},this.handleToggleChat=()=>{this.isChatOpen=!this.isChatOpen,this.isChatOpen&&f.track(b(this.sessionPatientHash,this.appointmentId))},this.handleModify=()=>{this.isMenuOpen=!1,this.isModifyUnavailable?this.openDialog="modify":(f.track(y(this.sessionPatientHash,this.appointmentId)),this.dispatchEvent(new E({appointmentId:this.appointmentId})))},this.handleCancel=()=>{this.isMenuOpen=!1,this.isCancelUnavailable?this.openDialog="cancel":(f.track($(this.sessionPatientHash,this.appointmentId)),this.isCancelDialogOpen=!0)}}static{this.styles=W}connectedCallback(){super.connectedCallback(),document.addEventListener("click",this.closeMenuOnOutsideClick),document.addEventListener("keydown",this.closeMenuOnEscape)}disconnectedCallback(){document.removeEventListener("click",this.closeMenuOnOutsideClick),document.removeEventListener("keydown",this.closeMenuOnEscape),super.disconnectedCallback()}get appointmentId(){return this.appointmentResource.appointment.id??""}get channel(){return this.appointmentResource.appointment.channel}get sessionToken(){return this.token||this.loginToken?.access_token||""}get sessionPatientHash(){return this.patientHash||this.loginToken?.patient?.hash||""}get sessionTimezone(){return this.timezone??this.loginToken?.patient?.timezone}get unreadCount(){return this.getUnreadMessagesQuery.result?.data?.unread_count??0}get specialtyName(){const e=this.getOrganizationSpecialtiesQuery.result?.data?.find(e=>Number(e.id)===Number(this.appointmentResource.speciality?.id));return x(e?.code??"",I(),e?.name??this.appointmentResource.speciality?.name)}get hasChatSupport(){return this.appointmentResource.appointment.has_chat_in_appointment??this.getOrganizationSetupQuery.result?.data?.appointments?.has_chat_in_appointment??!1}get isExpired(){return c(this.appointmentResource.appointment.expires_at)}get refundPolicySeconds(){return this.getOrganizationSetupQuery.result?.data?.appointments?.seconds_before_start_to_refund_on_cancel}get policyAllowsModifyOrCancel(){return w({startsAtIso:this.appointmentResource.appointment.starts_at,refundPolicySeconds:this.refundPolicySeconds})}get isModifyUnavailable(){return this.isExpired||0===this.appointmentResource.slots.length||!this.policyAllowsModifyOrCancel}get isCancelUnavailable(){return this.isExpired||!this.policyAllowsModifyOrCancel}get modifyUnavailableMessage(){return J({action:"modify",refundPolicySeconds:this.refundPolicySeconds})}get cancelUnavailableMessage(){return J({action:"cancel",refundPolicySeconds:this.refundPolicySeconds})}channelIcon(){switch(this.channel){case d.videocall:return P({size:20});case d.phonecall:return A({size:20});default:return _({size:20})}}channelLabel(){switch(this.channel){case d.videocall:return o("Videoconsulta");case d.phonecall:return o("Consulta telefónica");default:return o("Chat")}}formatWhen(){const e=I().replace("_","-"),t=m(this.sessionTimezone),i=t?{timeZone:t}:{},n=new Date(this.appointmentResource.appointment.starts_at);if(Number.isNaN(n.getTime()))return"";const s=new Intl.DateTimeFormat(e,{weekday:"long",day:"numeric",month:"long",year:"numeric",...i}).format(n),r=new Intl.DateTimeFormat(e,{timeStyle:"short",hourCycle:"h23",...i}).format(n),l=t?h(t,n):"";return o(a`${s}, ${r} h${l?` (${l})`:""}`)}renderActions(){const e=this.channel===d.videocall;return O`<div class="actions">${this.hasChatSupport?O`<mq-button variant="outline" @click="${this.handleToggleChat}"><span class="chat-label">${o("Ir a chat")}</span> ${this.unreadCount>0?O`<mq-unread-badge class="chat-badge"></mq-unread-badge>`:j}</mq-button>`:j} ${e?O`<mq-button class="join" variant="primary" @click="${this.handleJoinVideocall}">${o("Unirse a la videoconsulta")}</mq-button>`:j}<div class="overflow"><mq-button variant="outline" size="icon-lg" aria-label="${o("Más opciones")}" aria-haspopup="menu" aria-expanded="${this.isMenuOpen}" @click="${()=>{this.isMenuOpen=!this.isMenuOpen}}">${R({size:16})}</mq-button>${this.isMenuOpen?O`<div class="menu" role="menu"><button class="menu-item" type="button" role="menuitem" @click="${this.handleModify}">${o("Modificar cita")}</button> <button class="menu-item negative" type="button" role="menuitem" @click="${this.handleCancel}">${o("Anular cita")}</button></div>`:j}</div></div>`}render(){const{professional:e}=this.appointmentResource,t=this.formatWhen();return O`<professional-overview .name="${e.name}" .specialtyName="${this.specialtyName}" .collegiateNumber="${e.collegiate_number??void 0}" .description="${e.description??""}" .languages="${e.languages??[]}" .avatar="${e.avatar??""}"></professional-overview><div class="details">${t?O`<div class="detail-row">${D({size:20})} <span>${t}</span></div>`:j}<div class="detail-row">${this.channelIcon()} <span>${this.channelLabel()}</span></div></div><div class="footer"><p class="reminder">${o("Recibirás un recordatorio 15 minutos antes de la consulta")}</p>${this.renderActions()}</div><mq-floating-bubble ?dismissable="${!1}" .open="${this.isChatOpen}" hideCloseButton @mq-close="${()=>{this.isChatOpen=!1}}">${this.isChatOpen?O`<mq-chat-room slot="content" .consultationId="${this.appointmentResource.appointment.id}" consultation-type="appointment" token="${this.sessionToken}" .roomId="${this.appointmentResource.room.id}" .professionalHash="${e.hash}" ?readonly="${this.isExpired}" @mq-chat-room-close="${()=>{this.isChatOpen=!1}}"></mq-chat-room>`:j}</mq-floating-bubble><appointment-action-unavailable-dialog .open="${"modify"===this.openDialog}" .heading="${o("Modificar cita")}" .message="${this.modifyUnavailableMessage}" @close="${()=>{this.openDialog=null}}"></appointment-action-unavailable-dialog><appointment-action-unavailable-dialog .open="${"cancel"===this.openDialog}" .heading="${o("Anular cita")}" .message="${this.cancelUnavailableMessage}" @close="${()=>{this.openDialog=null}}"></appointment-action-unavailable-dialog><cancel-appointment-confirmation-dialog .appointmentId="${this.appointmentResource.appointment.id}" .price="${this.appointmentResource.price??void 0}" .open="${this.isCancelDialogOpen}" @cancel="${()=>{this.isCancelDialogOpen=!1}}" @success="${()=>{this.isCancelDialogOpen=!1,H.success(o("Consulta anulada correctamente")),this.dispatchEvent(new CustomEvent("appointment-cancel-confirmed",{bubbles:!0,composed:!0,detail:{id:this.appointmentId}}))}}"></cancel-appointment-confirmation-dialog>`}};t([n({context:l,subscribe:!0})],B.prototype,"apiClient",void 0),t([n({context:p,subscribe:!0})],B.prototype,"loginToken",void 0),t([M({type:Object})],B.prototype,"appointmentResource",void 0),t([M({type:String})],B.prototype,"token",void 0),t([M({type:String})],B.prototype,"patientHash",void 0),t([M({type:String})],B.prototype,"timezone",void 0),t([z()],B.prototype,"isChatOpen",void 0),t([z()],B.prototype,"isMenuOpen",void 0),t([z()],B.prototype,"isCancelDialogOpen",void 0),t([z()],B.prototype,"openDialog",void 0),B=t([s(),i("next-appointment-card")],B);export{J as a,Q as g};