@mediquo/elements 0.8.2 → 0.9.0

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 (107) hide show
  1. package/README.md +36 -1
  2. package/dist/chunks/appointment-card-skeleton-B_rJNvU9.js +1 -0
  3. package/dist/chunks/{documentation-view-BbMbGneD.js → documentation-view-DEXxBFrV.js} +1 -1
  4. package/dist/chunks/{index-uHvVQMNc.js → index-Btj1mwcE.js} +1 -1
  5. package/dist/chunks/next-appointment-card-6uXWTDx5.js +1 -0
  6. package/dist/chunks/next-appointment-card-Bc65OZ1_.d.ts +61 -0
  7. package/dist/chunks/{telemetry-client-7fvNqUSU.js → telemetry-client-BdPx4SXu.js} +1 -1
  8. package/dist/env.js +1 -1
  9. package/dist/mq-appointment-documentation.js +1 -1
  10. package/dist/mq-dashboard.js +1 -1
  11. package/dist/mq-documents.d.ts +4 -8
  12. package/dist/mq-documents.js +1 -1
  13. package/dist/mq-my-appointments.d.ts +2 -2
  14. package/dist/mq-my-appointments.js +1 -1
  15. package/dist/mq-next-appointments.d.ts +8 -47
  16. package/dist/mq-next-appointments.js +1 -1
  17. package/dist/mq-recent-documents.js +1 -1
  18. package/dist/mq-schedule-success.js +1 -1
  19. package/dist/mq-schedule.d.ts +12 -1
  20. package/dist/mq-schedule.js +1 -1
  21. package/dist/mq-support-chat.d.ts +1 -0
  22. package/dist/mq-support-chat.js +1 -1
  23. package/dist/mq-videocall.js +1 -1
  24. package/dist/react/mq-appointment-documentation.js +1 -1
  25. package/dist/react/mq-chat-room.js +1 -1
  26. package/dist/react/mq-dashboard.js +1 -1
  27. package/dist/react/mq-documents-page.d.ts +0 -1
  28. package/dist/react/mq-documents-page.js +1 -1
  29. package/dist/react/mq-documents.d.ts +0 -1
  30. package/dist/react/mq-documents.js +1 -1
  31. package/dist/react/mq-my-appointments.d.ts +1 -1
  32. package/dist/react/mq-my-appointments.js +1 -1
  33. package/dist/react/mq-next-appointments.d.ts +2 -0
  34. package/dist/react/mq-next-appointments.js +1 -1
  35. package/dist/react/mq-recent-documents.js +1 -1
  36. package/dist/react/mq-schedule-success.js +1 -1
  37. package/dist/react/mq-schedule.d.ts +4 -0
  38. package/dist/react/mq-schedule.js +1 -1
  39. package/dist/react/mq-support-chat.d.ts +3 -0
  40. package/dist/react/mq-support-chat.js +1 -1
  41. package/dist/react/mq-videocall.js +1 -1
  42. package/dist/theme.d.ts +1 -0
  43. package/dist/theme.js +1 -1
  44. package/dist/ui/icons/alert-circle-icon.js +1 -1
  45. package/dist/ui/icons/annotation-question-icon.d.ts +1 -1
  46. package/dist/ui/icons/annotation-question-icon.js +1 -1
  47. package/dist/ui/icons/arrow-narrow-left-icon.js +1 -1
  48. package/dist/ui/icons/arrow-right-icon.js +1 -1
  49. package/dist/ui/icons/briefcase-icon.d.ts +1 -1
  50. package/dist/ui/icons/briefcase-icon.js +1 -1
  51. package/dist/ui/icons/calendar-icon.d.ts +1 -1
  52. package/dist/ui/icons/calendar-icon.js +1 -1
  53. package/dist/ui/icons/chat-bubble-icon.d.ts +1 -1
  54. package/dist/ui/icons/chat-bubble-icon.js +1 -1
  55. package/dist/ui/icons/check-double-icon.js +1 -1
  56. package/dist/ui/icons/check-icon.js +1 -1
  57. package/dist/ui/icons/chevron-down-icon.js +1 -1
  58. package/dist/ui/icons/chevron-left-icon.js +1 -1
  59. package/dist/ui/icons/chevron-right-icon.js +1 -1
  60. package/dist/ui/icons/clock-icon.d.ts +1 -1
  61. package/dist/ui/icons/clock-icon.js +1 -1
  62. package/dist/ui/icons/dots-horizontal-icon.js +1 -1
  63. package/dist/ui/icons/download-02-icon.d.ts +1 -1
  64. package/dist/ui/icons/download-02-icon.js +1 -1
  65. package/dist/ui/icons/download-icon.d.ts +1 -1
  66. package/dist/ui/icons/download-icon.js +1 -1
  67. package/dist/ui/icons/file-icon.d.ts +1 -1
  68. package/dist/ui/icons/file-icon.js +1 -1
  69. package/dist/ui/icons/heartbeat-icon.js +1 -1
  70. package/dist/ui/icons/info-circle-outine-icon.d.ts +1 -1
  71. package/dist/ui/icons/info-circle-outine-icon.js +1 -1
  72. package/dist/ui/icons/message-bubble-icon.d.ts +1 -1
  73. package/dist/ui/icons/message-bubble-icon.js +1 -1
  74. package/dist/ui/icons/message-square-icon.d.ts +1 -1
  75. package/dist/ui/icons/message-square-icon.js +1 -1
  76. package/dist/ui/icons/mic-icon.d.ts +1 -1
  77. package/dist/ui/icons/mic-icon.js +1 -1
  78. package/dist/ui/icons/mic-off-icon.d.ts +1 -1
  79. package/dist/ui/icons/mic-off-icon.js +1 -1
  80. package/dist/ui/icons/phone-icon.d.ts +1 -1
  81. package/dist/ui/icons/phone-icon.js +1 -1
  82. package/dist/ui/icons/tag-icon.d.ts +1 -1
  83. package/dist/ui/icons/tag-icon.js +1 -1
  84. package/dist/ui/icons/time-left-icon.js +1 -1
  85. package/dist/ui/icons/types.d.ts +2 -1
  86. package/dist/ui/icons/types.js +1 -1
  87. package/dist/ui/icons/upload-icon.d.ts +1 -1
  88. package/dist/ui/icons/upload-icon.js +1 -1
  89. package/dist/ui/icons/video-icon.d.ts +1 -1
  90. package/dist/ui/icons/video-icon.js +1 -1
  91. package/dist/ui/icons/video-off-icon.d.ts +1 -1
  92. package/dist/ui/icons/video-off-icon.js +1 -1
  93. package/dist/ui/icons/x-icon.d.ts +1 -1
  94. package/dist/ui/icons/x-icon.js +1 -1
  95. package/dist/ui/mq-callout.js +1 -1
  96. package/dist/ui/mq-dialog.js +1 -1
  97. package/dist/ui/mq-input.d.ts +1 -1
  98. package/dist/ui/mq-select.d.ts +1 -1
  99. package/dist/ui/mq-tabs.d.ts +27 -7
  100. package/dist/ui/mq-tabs.js +79 -1
  101. package/dist/ui/mq-text-button.js +1 -1
  102. package/dist/ui/mq-textarea.d.ts +1 -1
  103. package/dist/ui/mq-unread-badge.js +1 -1
  104. package/package.json +2 -1
  105. package/dist/chunks/appointment-card-skeleton-D8gypuKh.js +0 -1
  106. package/dist/ui/icons/check-circle-icon.d.ts +0 -5
  107. package/dist/ui/icons/check-circle-icon.js +0 -1
@@ -1 +1 @@
1
- export{A as AppointmentDetails}from"./chunks/appointment-details-DXLBQnPN.js";import{_ as t,c as e}from"./chunks/custom-element-D2ziPxYE.js";import{m as i}from"./chunks/runtime-Bg1WXVCx.js";import{l as s}from"./chunks/localized-decorator-BlOuLhym.js";import{a as n,i as o,x as a}from"./chunks/lit-element-DiWJYFwC.js";import{n as r}from"./chunks/property-scuRaFcM.js";import{e as p}from"./chunks/external-CJj32K_p.js";import{MqHomeEvent as c}from"./events.js";import"./ui/mq-tabs.js";import{c as m}from"./chunks/consume-CovVqBjI.js";import{A as l}from"./chunks/api-client-context-V1UAGtKW.js";import{a as d}from"./chunks/api-chat-client-CJ1EGJe3.js";import"./chunks/appointment-card-skeleton-D8gypuKh.js";import"./ui/mq-button.js";import{Q as u}from"./chunks/query-controller-BlO1Ax65.js";import{a as h}from"./chunks/action-unavailable-message-BIgsXk9u.js";import"./ui/mq-page-title.js";export{P as ProfessionalOverview}from"./chunks/professional-overview-C4H_znIJ.js";import"./chunks/chunk-HN62IQ7S-xbkIy7k_.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/addSeconds-ofMnxlgT.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./i18n.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./ui/icons/briefcase-icon.js";import"./ui/icons/types.js";import"./ui/icons/calendar-icon.js";import"./ui/icons/clock-icon.js";import"./ui/icons/message-bubble-icon.js";import"./ui/icons/phone-icon.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/isBefore-CPpTogxo.js";import"./env.js";import"./chunks/get-organization-setup-query-Dr1cXnHl.js";import"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import"./chunks/telemetry-client-7fvNqUSU.js";import"./chunks/get-schedule-services-query-Fzvb9ug9.js";import"./chunks/chunk-Y4EKUX25-QqMl3eiq.js";import"./chunks/state-LQivXIgA.js";import"./ui/mq-card.js";import"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import"./mq-chat-room.js";import"./chunks/provide-BwI4DDGF.js";import"./theme.js";import"./ui/icons/x-icon.js";import"./ui/mq-avatar.js";import"./ui/mq-skeleton.js";import"./chunks/style-map-CIdqdn7C.js";import"./chunks/chunk-BUV4MGML-CkhBbfUu.js";import"./chunks/if-defined-BYeVdwgd.js";import"./ui/icons/chevron-left-icon.js";import"./chunks/query-CeeutdfT.js";import"./ui/icons/check-double-icon.js";import"./ui/icons/check-icon.js";import"./chunks/chunk-YTQUGGS3-DmCGIoFy.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/mutation-controller-CR2qcqhH.js";import"./chunks/query-Cjvi4_dT.js";import"./ui/mq-floating-bubble.js";import"./ui/icons/video-icon.js";import"./ui/mq-unread-badge.js";import"./chunks/refund-cancel-policy-CcsJ-pMx.js";import"./ui/mq-toast.js";import"./chunks/price-DU3YLTpk.js";import"./ui/mq-dialog.js";import"./ui/icons/arrow-narrow-left-icon.js";import"./ui/icons/chevron-down-icon.js";import"./ui/mq-text-button.js";const v=p(["next","history"]).enum;class MqMyAppointmentsSelectEvent extends Event{static{this.eventName="ontabchange"}constructor(t){super(MqMyAppointmentsSelectEvent.eventName,{bubbles:!0,composed:!0}),this.value=t}}let g=class EmptyState extends n{static{this.styles=o`.container{border-radius:var(--border-radius-md);background-color:var(--color-neutrals-background-weak);padding:var(--sp-10) var(--sp-6)}.card{border-radius:var(--border-radius-md);max-width:512px;margin:0 auto;background-color:var(--color-neutrals-background-extraWeak);padding:var(--sp-6);display:flex;flex-direction:column;align-items:center;gap:var(--sp-3)}.card>*{max-width:323px;margin:0 auto}.title{font-family:var(--font-body);font-size:var(--text-lg);line-height:var(--text-lg--line-height);font-weight:var(--font-weight-bold);color:var(--color-neutrals-text-default);margin:0}.description{font-family:var(--font-body);font-size:var(--text-xs);line-height:var(--text-xs--line-height);font-weight:var(--font-weight-normal);text-align:center;color:var(--color-neutrals-text-default);margin:0}@media (min-width:768px){.container{padding:var(--sp-6)}mq-button{max-width:323px}}`}handleRequestAppointment(){this.dispatchEvent(new CustomEvent("request-appointment",{bubbles:!0,composed:!0}))}render(){return a`<div class="container"><div class="card">${function({color:t="currentColor"}){return a`<svg width="31" height="32" viewBox="0 0 31 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M29.6 2.4H23.2V0H21.6V2.4H18.4V0H16.8V2.4H13.6V0H12V2.4H8.8V0H7.2V2.4H0.8C0.587827 2.4 0.384344 2.48429 0.234315 2.63431C0.0842855 2.78434 0 2.98783 0 3.2V31.2C0 31.4122 0.0842855 31.6157 0.234315 31.7657C0.384344 31.9157 0.587827 32 0.8 32H29.6C29.8122 32 30.0157 31.9157 30.1657 31.7657C30.3157 31.6157 30.4 31.4122 30.4 31.2V3.2C30.4 2.98783 30.3157 2.78434 30.1657 2.63431C30.0157 2.48429 29.8122 2.4 29.6 2.4ZM28.8 30.4H1.6V10.4H27.2V8.8H1.6V4H7.2V7.2H8.8V4H12V7.2H13.6V4H16.8V7.2H18.4V4H21.6V7.2H23.2V4H28.8V30.4ZM3.2 19.2H9.6V12.8H3.2V19.2ZM4.8 14.4H8V17.6H4.8V14.4ZM20.8 19.2H27.2V12.8H20.8V19.2ZM22.4 14.4H25.6V17.6H22.4V14.4ZM12 19.2H18.4V12.8H12V19.2ZM13.6 14.4H16.8V17.6H13.6V14.4ZM3.2 28H9.6V21.6H3.2V28ZM4.8 23.2H8V26.4H4.8V23.2ZM20.8 28H27.2V21.6H20.8V28ZM22.4 23.2H25.6V26.4H22.4V23.2ZM12 28H18.4V21.6H12V28ZM13.6 23.2H16.8V26.4H13.6V23.2Z" fill="${t}"/></svg>`}({color:"var(--color-primary)"})}<p class="title">${this.title}</p><p class="description">${this.description}</p><mq-button variant="primary" size="md" fullwidth @click="${this.handleRequestAppointment}">${i("Pedir cita")}</mq-button></div></div>`}};t([r({type:String})],g.prototype,"title",void 0),t([r({type:String})],g.prototype,"description",void 0),g=t([e("empty-state")],g);const b=[d.pending,d.accepted],x=o`.appointments-list{display:grid;grid-template-columns:1fr;gap:var(--sp-6);margin-bottom:var(--sp-6)}@media (min-width:768px){.appointments-list{grid-template-columns:repeat(2,1fr)}}`;let f=class NextAppointmentsTab extends n{constructor(){super(...arguments),this.getAppointmentsQuery=new u(this,()=>h(this.apiClient,{status:b,order:{field:"starts_at",direction:"asc"}}))}static{this.styles=x}render(){return this.getAppointmentsQuery.render({complete:t=>a`${t.data.length>0?a`<div class="appointments-list">${t.data.map(t=>a`<appointment-card .appointmentResource="${t}" .specialtyId="${t.speciality?.id}"></appointment-card>`)}</div>`:a`<empty-state title="${i("No tienes próximas citas")}" description="${i("Agenda una consulta médica cuando la necesites. Aquí verás todos los detalles y podrás gestionar tus próximas citas.")}"></empty-state>`}`,pending:()=>a`<div class="appointments-list"><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton></div>`})}};t([m({context:l,subscribe:!0})],f.prototype,"apiClient",void 0),f=t([s(),e("next-appointments-tab")],f);const k=[d.finished,d.reporting];let y=class AppointmentsHistoryTab extends n{constructor(){super(...arguments),this.getAppointmentsQuery=new u(this,()=>h(this.apiClient,{status:k,order:{field:"starts_at",direction:"desc"}}))}static{this.styles=o`.appointments-list{display:grid;grid-template-columns:1fr;gap:var(--sp-6);margin-bottom:var(--sp-6)}@media (min-width:768px){.appointments-list{grid-template-columns:repeat(2,1fr)}}`}render(){return this.getAppointmentsQuery.render({complete:t=>a`${t.data.length>0?a`<div class="appointments-list">${t.data.map(t=>a`<appointment-card .appointmentResource="${t}" .specialtyId="${t.speciality?.id}" variant="history"></appointment-card>`)}</div>`:a`<empty-state title="${i("No tienes citas en el historial")}" description="${i("Aquí verás todas las citas que has tenido. Puedes acceder a los documentos de cada consulta y reagendar una cita si es necesario.")}"></empty-state>`}`,pending:()=>a`<div class="appointments-list"><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton></div>`})}};t([m({context:l,subscribe:!0})],y.prototype,"apiClient",void 0),y=t([s(),e("appointments-history-tab")],y);const j=o`.container{display:flex;flex-direction:column;gap:var(--size-3)}@media (min-width:768px){mq-tabs-list{max-width:435px}}`;let q=class MqMyAppointments extends n{constructor(){super(...arguments),this.tab=v.next}static{this.styles=j}handleSelect(t){this.dispatchEvent(new MqMyAppointmentsSelectEvent(t.value))}render(){return a`<div class="container"><mq-page-title .title="${i("Mis citas")}" @mq-back="${t=>{t.stopPropagation(),this.dispatchEvent(new c)}}"></mq-page-title><mq-tabs .value="${this.tab}" @onvaluechange="${this.handleSelect}"><mq-tabs-list><mq-tabs-trigger value="${v.next}">${i("Próximas citas")}</mq-tabs-trigger><mq-tabs-trigger value="${v.history}">${i("Histórico")}</mq-tabs-trigger></mq-tabs-list><mq-tabs-content value="${v.next}"><next-appointments-tab></next-appointments-tab></mq-tabs-content><mq-tabs-content value="${v.history}"><appointments-history-tab></appointments-history-tab></mq-tabs-content></mq-tabs></div>`}};t([r({type:String,reflect:!0})],q.prototype,"tab",void 0),q=t([s(),e("mq-my-appointments")],q);const H=o`:host{display:block}.request-appointment-cta{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:var(--sp-12) var(--sp-4);background:var(--color-card);gap:var(--sp-4)}.title-body{display:flex;flex-direction:column;gap:var(--sp-2);flex:1}.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);margin:0;text-align:center}.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-default);margin:0;display:none}mq-button{width:100%}.button-text-desktop{display:none}.button-text-mobile{display:inline}@media (min-width:768px){.request-appointment-cta{flex-direction:row;padding:var(--sp-12) var(--sp-20);gap:var(--sp-2)}.title-body{align-items:flex-start;flex:1;max-width:843px}.title{font-size:var(--text-3xl);line-height:var(--text-3xl--line-height);font-weight:var(--font-weight-extrabold);text-align:left}.subtitle{display:block}mq-button{width:auto;flex-shrink:0;--button-height-md:var(--button-height-lg);--text-sm:var(--text-base);--text-sm--line-height:var(--text-base--line-height)}.button-text-desktop{display:inline}.button-text-mobile{display:none}}`;class RequestAppointmentEvent extends Event{static{this.eventName="request-appointment"}constructor(){super(RequestAppointmentEvent.eventName,{bubbles:!0,composed:!0})}}let V=class RequestAppointmentCta extends n{static{this.styles=H}handleRequestAppointment(){this.dispatchEvent(new RequestAppointmentEvent)}render(){return a`<div class="request-appointment-cta"><div class="title-body"><h2 class="title">${i("Nueva cita de especialidades digitales")}</h2><p class="subtitle">${i("Realiza la búsqueda en tu cuadro médico digital")}</p></div><mq-button variant="primary" size="md" fullwidth @click="${this.handleRequestAppointment}"><span class="button-text-mobile">${i("Pedir cita")}</span> <span class="button-text-desktop">${i("Pedir una nueva cita")}</span></mq-button></div>`}};V=t([s(),e("request-appointment-cta")],V);export{q as MqMyAppointments,MqMyAppointmentsSelectEvent,V as RequestAppointmentCta,RequestAppointmentEvent};
1
+ export{A as AppointmentDetails}from"./chunks/appointment-details-DXLBQnPN.js";import{_ as t,c as e}from"./chunks/custom-element-D2ziPxYE.js";import{m as i}from"./chunks/runtime-Bg1WXVCx.js";import{l as s}from"./chunks/localized-decorator-BlOuLhym.js";import{a as n,i as o,x as a}from"./chunks/lit-element-DiWJYFwC.js";import{n as r}from"./chunks/property-scuRaFcM.js";import{e as p}from"./chunks/external-CJj32K_p.js";import"./ui/mq-tabs.js";import{c}from"./chunks/consume-CovVqBjI.js";import{A as l}from"./chunks/api-client-context-V1UAGtKW.js";import{a as m}from"./chunks/api-chat-client-CJ1EGJe3.js";import"./chunks/appointment-card-skeleton-B_rJNvU9.js";import"./ui/mq-button.js";import"./chunks/next-appointment-card-6uXWTDx5.js";import{Q as d}from"./chunks/query-controller-BlO1Ax65.js";import{a as u}from"./chunks/action-unavailable-message-BIgsXk9u.js";export{P as ProfessionalOverview}from"./chunks/professional-overview-C4H_znIJ.js";import"./chunks/chunk-HN62IQ7S-xbkIy7k_.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/addSeconds-ofMnxlgT.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./i18n.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./ui/icons/briefcase-icon.js";import"./chunks/if-defined-BYeVdwgd.js";import"./ui/icons/types.js";import"./ui/icons/calendar-icon.js";import"./ui/icons/clock-icon.js";import"./ui/icons/message-bubble-icon.js";import"./ui/icons/phone-icon.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/isBefore-CPpTogxo.js";import"./env.js";import"./chunks/get-organization-setup-query-Dr1cXnHl.js";import"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import"./chunks/telemetry-client-BdPx4SXu.js";import"./chunks/get-schedule-services-query-Fzvb9ug9.js";import"./chunks/chunk-Y4EKUX25-QqMl3eiq.js";import"./chunks/state-LQivXIgA.js";import"./ui/mq-card.js";import"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import"./mq-chat-room.js";import"./chunks/provide-BwI4DDGF.js";import"./theme.js";import"./ui/icons/x-icon.js";import"./ui/mq-avatar.js";import"./ui/mq-skeleton.js";import"./chunks/style-map-CIdqdn7C.js";import"./chunks/chunk-BUV4MGML-CkhBbfUu.js";import"./ui/icons/chevron-left-icon.js";import"./chunks/query-CeeutdfT.js";import"./events.js";import"./ui/icons/check-double-icon.js";import"./ui/icons/check-icon.js";import"./chunks/chunk-YTQUGGS3-DmCGIoFy.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/mutation-controller-CR2qcqhH.js";import"./chunks/query-Cjvi4_dT.js";import"./ui/mq-floating-bubble.js";import"./ui/icons/video-icon.js";import"./ui/mq-unread-badge.js";import"./chunks/refund-cancel-policy-CcsJ-pMx.js";import"./ui/mq-toast.js";import"./ui/icons/dots-horizontal-icon.js";import"./chunks/price-DU3YLTpk.js";import"./ui/mq-dialog.js";import"./ui/icons/chevron-down-icon.js";import"./ui/mq-text-button.js";const h=p(["next","history"]).enum;class MqMyAppointmentsSelectEvent extends Event{static{this.eventName="ontabchange"}constructor(t){super(MqMyAppointmentsSelectEvent.eventName,{bubbles:!0,composed:!0}),this.value=t}}let v=class EmptyState extends n{static{this.styles=o`.container{border-radius:var(--border-radius-md);background-color:var(--color-neutrals-background-weak);padding:var(--sp-10) var(--sp-6)}.card{border-radius:var(--border-radius-md);max-width:512px;margin:0 auto;background-color:var(--color-neutrals-background-extraWeak);padding:var(--sp-6);display:flex;flex-direction:column;align-items:center;gap:var(--sp-3)}.card>*{max-width:323px;margin:0 auto}.title{font-family:var(--font-body);font-size:var(--text-lg);line-height:var(--text-lg--line-height);font-weight:var(--font-weight-bold);color:var(--color-neutrals-text-default);margin:0}.description{font-family:var(--font-body);font-size:var(--text-xs);line-height:var(--text-xs--line-height);font-weight:var(--font-weight-normal);text-align:center;color:var(--color-neutrals-text-default);margin:0}@media (min-width:768px){.container{padding:var(--sp-6)}mq-button{max-width:323px}}`}handleRequestAppointment(){this.dispatchEvent(new CustomEvent("request-appointment",{bubbles:!0,composed:!0}))}render(){return a`<div class="container"><div class="card">${function({color:t="currentColor"}){return a`<svg width="31" height="32" viewBox="0 0 31 32" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M29.6 2.4H23.2V0H21.6V2.4H18.4V0H16.8V2.4H13.6V0H12V2.4H8.8V0H7.2V2.4H0.8C0.587827 2.4 0.384344 2.48429 0.234315 2.63431C0.0842855 2.78434 0 2.98783 0 3.2V31.2C0 31.4122 0.0842855 31.6157 0.234315 31.7657C0.384344 31.9157 0.587827 32 0.8 32H29.6C29.8122 32 30.0157 31.9157 30.1657 31.7657C30.3157 31.6157 30.4 31.4122 30.4 31.2V3.2C30.4 2.98783 30.3157 2.78434 30.1657 2.63431C30.0157 2.48429 29.8122 2.4 29.6 2.4ZM28.8 30.4H1.6V10.4H27.2V8.8H1.6V4H7.2V7.2H8.8V4H12V7.2H13.6V4H16.8V7.2H18.4V4H21.6V7.2H23.2V4H28.8V30.4ZM3.2 19.2H9.6V12.8H3.2V19.2ZM4.8 14.4H8V17.6H4.8V14.4ZM20.8 19.2H27.2V12.8H20.8V19.2ZM22.4 14.4H25.6V17.6H22.4V14.4ZM12 19.2H18.4V12.8H12V19.2ZM13.6 14.4H16.8V17.6H13.6V14.4ZM3.2 28H9.6V21.6H3.2V28ZM4.8 23.2H8V26.4H4.8V23.2ZM20.8 28H27.2V21.6H20.8V28ZM22.4 23.2H25.6V26.4H22.4V23.2ZM12 28H18.4V21.6H12V28ZM13.6 23.2H16.8V26.4H13.6V23.2Z" fill="${t}"/></svg>`}({color:"var(--color-primary)"})}<p class="title">${this.title}</p><p class="description">${this.description}</p><mq-button variant="primary" size="md" fullwidth @click="${this.handleRequestAppointment}">${i("Pedir cita")}</mq-button></div></div>`}};t([r({type:String})],v.prototype,"title",void 0),t([r({type:String})],v.prototype,"description",void 0),v=t([e("empty-state")],v);const b=[m.pending,m.accepted],g=o`.appointments-list{display:grid;grid-template-columns:1fr;align-items:start;gap:var(--sp-6);margin-bottom:var(--sp-6)}@media (min-width:768px){.appointments-list{grid-template-columns:repeat(2,1fr)}}.card{display:flex;flex-direction:column;min-width:0;box-sizing:border-box;background-color:var(--color-card,#fff);border:1px solid var(--color-border-subtle,#edecf1);border-radius:12px;padding:var(--sp-6)}`;let x=class NextAppointmentsTab extends n{constructor(){super(...arguments),this.getAppointmentsQuery=new d(this,()=>u(this.apiClient,{status:b,order:{field:"starts_at",direction:"asc"}}))}static{this.styles=g}render(){return this.getAppointmentsQuery.render({complete:t=>a`${t.data.length>0?a`<div class="appointments-list">${t.data.map(t=>a`<div class="card"><next-appointment-card .appointmentResource="${t}"></next-appointment-card></div>`)}</div>`:a`<empty-state title="${i("No tienes próximas citas")}" description="${i("Agenda una consulta médica cuando la necesites. Aquí verás todos los detalles y podrás gestionar tus próximas citas.")}"></empty-state>`}`,pending:()=>a`<div class="appointments-list"><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton></div>`})}};t([c({context:l,subscribe:!0})],x.prototype,"apiClient",void 0),x=t([s(),e("next-appointments-tab")],x);const f=[m.finished,m.reporting];let k=class AppointmentsHistoryTab extends n{constructor(){super(...arguments),this.getAppointmentsQuery=new d(this,()=>u(this.apiClient,{status:f,order:{field:"starts_at",direction:"desc"}}))}static{this.styles=o`.appointments-list{display:grid;grid-template-columns:1fr;gap:var(--sp-6);margin-bottom:var(--sp-6)}@media (min-width:768px){.appointments-list{grid-template-columns:repeat(2,1fr)}}`}render(){return this.getAppointmentsQuery.render({complete:t=>a`${t.data.length>0?a`<div class="appointments-list">${t.data.map(t=>a`<appointment-card .appointmentResource="${t}" .specialtyId="${t.speciality?.id}" variant="history"></appointment-card>`)}</div>`:a`<empty-state title="${i("No tienes citas en el historial")}" description="${i("Aquí verás todas las citas que has tenido. Puedes acceder a los documentos de cada consulta y reagendar una cita si es necesario.")}"></empty-state>`}`,pending:()=>a`<div class="appointments-list"><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton></div>`})}};t([c({context:l,subscribe:!0})],k.prototype,"apiClient",void 0),k=t([s(),e("appointments-history-tab")],k);const y=o`.container{display:flex;flex-direction:column;gap:var(--size-3);padding-top:var(--sp-10)}`;let j=class MqMyAppointments extends n{constructor(){super(...arguments),this.tab=h.next}static{this.styles=y}handleSelect(t){this.dispatchEvent(new MqMyAppointmentsSelectEvent(t.value))}render(){return a`<div class="container"><mq-tabs .value="${this.tab}" @onvaluechange="${this.handleSelect}"><mq-tabs-list label="${i("Mis citas")}"><mq-tabs-trigger value="${h.next}">${i("Próximas citas")}</mq-tabs-trigger><mq-tabs-trigger value="${h.history}">${i("Histórico")}</mq-tabs-trigger></mq-tabs-list><mq-tabs-content value="${h.next}"><next-appointments-tab></next-appointments-tab></mq-tabs-content><mq-tabs-content value="${h.history}"><appointments-history-tab></appointments-history-tab></mq-tabs-content></mq-tabs></div>`}};t([r({type:String,reflect:!0})],j.prototype,"tab",void 0),j=t([s(),e("mq-my-appointments")],j);const q=o`:host{display:block}.request-appointment-cta{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:var(--sp-12) var(--sp-4);background:var(--color-card);gap:var(--sp-4)}.title-body{display:flex;flex-direction:column;gap:var(--sp-2);flex:1}.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);margin:0;text-align:center}.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-default);margin:0;display:none}mq-button{width:100%}.button-text-desktop{display:none}.button-text-mobile{display:inline}@media (min-width:768px){.request-appointment-cta{flex-direction:row;padding:var(--sp-12) var(--sp-20);gap:var(--sp-2)}.title-body{align-items:flex-start;flex:1;max-width:843px}.title{font-size:var(--text-3xl);line-height:var(--text-3xl--line-height);font-weight:var(--font-weight-extrabold);text-align:left}.subtitle{display:block}mq-button{width:auto;flex-shrink:0;--button-height-md:var(--button-height-lg);--text-sm:var(--text-base);--text-sm--line-height:var(--text-base--line-height)}.button-text-desktop{display:inline}.button-text-mobile{display:none}}`;class RequestAppointmentEvent extends Event{static{this.eventName="request-appointment"}constructor(){super(RequestAppointmentEvent.eventName,{bubbles:!0,composed:!0})}}let H=class RequestAppointmentCta extends n{static{this.styles=q}handleRequestAppointment(){this.dispatchEvent(new RequestAppointmentEvent)}render(){return a`<div class="request-appointment-cta"><div class="title-body"><h2 class="title">${i("Nueva cita de especialidades digitales")}</h2><p class="subtitle">${i("Realiza la búsqueda en tu cuadro médico digital")}</p></div><mq-button variant="primary" size="md" fullwidth @click="${this.handleRequestAppointment}"><span class="button-text-mobile">${i("Pedir cita")}</span> <span class="button-text-desktop">${i("Pedir una nueva cita")}</span></mq-button></div>`}};H=t([s(),e("request-appointment-cta")],H);export{j as MqMyAppointments,MqMyAppointmentsSelectEvent,H as RequestAppointmentCta,RequestAppointmentEvent};
@@ -1,65 +1,28 @@
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 { G as GetAppointmentsResponse, M as MediquoApiChatClient } from './chunks/index.d-XSe7Hy-Q.js';
4
+ import { M as MediquoApiChatClient } from './chunks/index.d-XSe7Hy-Q.js';
5
5
  import { Env } from './env.js';
6
6
  import './chunks/index-Nf3nZ9O3.js';
7
7
  import './chunks/index-DTEtqjQF.js';
8
8
  import './ui/mq-skeleton.js';
9
- import './chunks/mq-chat-room-jeDvIF1Z.js';
10
- import './chunks/appointment-action-unavailable-dialog-CTiL4nMo.js';
11
- import './chunks/professional-overview-mO3tuMuH.js';
12
- import './ui/mq-button.js';
13
- import './ui/mq-floating-bubble.js';
9
+ import './chunks/next-appointment-card-Bc65OZ1_.js';
14
10
  export { MqAppointmentJoinVideocallEvent, MqAppointmentRescheduleEvent, MqViewAppointmentsEvent } from './events.js';
15
11
  import 'axios';
16
12
  import 'zod';
17
13
  import './chunks/schemas.d-b6_AekBb.js';
14
+ import './chunks/mq-chat-room-jeDvIF1Z.js';
18
15
  import './ui/mq-avatar.js';
16
+ import './ui/mq-button.js';
19
17
  import './chunks/appointment.model.d-BWwBLaEL.js';
20
18
  import '@tanstack/query-core';
19
+ import './chunks/appointment-action-unavailable-dialog-CTiL4nMo.js';
21
20
  import './chunks/price.d-CwLosdAN.js';
22
21
  import './ui/mq-dialog.js';
22
+ import './chunks/professional-overview-mO3tuMuH.js';
23
23
  import './ui/mq-text-button.js';
24
-
25
- declare class NextAppointmentCard extends LitElement {
26
- static styles: lit.CSSResult;
27
- appointmentResource: GetAppointmentsResponse["data"][number];
28
- specialtyName: string;
29
- token: string;
30
- patientHash: string;
31
- timezone?: string;
32
- hasChatSupport: boolean;
33
- isExpired: boolean;
34
- isModifyUnavailable: boolean;
35
- isCancelUnavailable: boolean;
36
- modifyUnavailableMessage: string;
37
- cancelUnavailableMessage: string;
38
- private isChatOpen;
39
- private isMenuOpen;
40
- private isCancelDialogOpen;
41
- private openDialog;
42
- private closeMenuOnOutsideClick;
43
- private closeMenuOnEscape;
44
- connectedCallback(): void;
45
- disconnectedCallback(): void;
46
- private get appointmentId();
47
- private get channel();
48
- private channelIcon;
49
- private channelLabel;
50
- private formatWhen;
51
- private handleJoinVideocall;
52
- private handleToggleChat;
53
- private handleModify;
54
- private handleCancel;
55
- private renderActions;
56
- render(): lit_html.TemplateResult<1>;
57
- }
58
- declare global {
59
- interface HTMLElementTagNameMap {
60
- "next-appointment-card": NextAppointmentCard;
61
- }
62
- }
24
+ import './ui/mq-floating-bubble.js';
25
+ import './ui/mq-unread-badge.js';
63
26
 
64
27
  declare class MqNextAppointments extends LitElement {
65
28
  static styles: lit.CSSResult;
@@ -79,8 +42,6 @@ declare class MqNextAppointments extends LitElement {
79
42
  protected willUpdate(changed: PropertyValues<this>): void;
80
43
  private getPatientProfileQuery;
81
44
  private getAppointmentsQuery;
82
- private getOrganizationSetupQuery;
83
- private getOrganizationSpecialtiesQuery;
84
45
  private get patientHash();
85
46
  private get accessToken();
86
47
  private get patientTimezone();
@@ -1 +1 @@
1
- import{getLocale as t,isValidLocale as e,setLocale as i,initLocalization as n}from"./i18n.js";import{_ as o,c as a}from"./chunks/custom-element-D2ziPxYE.js";import{e as s}from"./chunks/provide-BwI4DDGF.js";import{c as r}from"./chunks/consume-CovVqBjI.js";import{m as p,s as c}from"./chunks/runtime-Bg1WXVCx.js";import{l}from"./chunks/localized-decorator-BlOuLhym.js";import{Q as m}from"./chunks/query-controller-BlO1Ax65.js";import{A as h}from"./chunks/api-client-context-V1UAGtKW.js";import{l as d}from"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import{A as u,a as g,c as v,n as f,i as y}from"./chunks/api-chat-client-CJ1EGJe3.js";import{a as b,g as k}from"./chunks/action-unavailable-message-BIgsXk9u.js";import{g as x}from"./chunks/get-organization-setup-query-Dr1cXnHl.js";import{t as j,j as $,l as C,f as w,h as O,a as M,g as q}from"./chunks/telemetry-client-7fvNqUSU.js";import{g as z}from"./chunks/get-patient-profile-query-4AO6xvVn.js";import{c as S}from"./chunks/refund-cancel-policy-CcsJ-pMx.js";import{i as I,a as E,E as U,x as A}from"./chunks/lit-element-DiWJYFwC.js";import{n as D}from"./chunks/property-scuRaFcM.js";import{r as T}from"./chunks/state-LQivXIgA.js";import{setEnv as _}from"./env.js";import{MqAppointmentJoinVideocallEvent as N,MqAppointmentRescheduleEvent as R,MqViewAppointmentsEvent as Q}from"./events.js";import"./chunks/index-iaTXVzFa.js";import"./chunks/index-Bw-MbGKw.js";import"./ui/mq-skeleton.js";import{calendarIcon as H}from"./ui/icons/calendar-icon.js";import{dotsHorizontalIcon as P}from"./ui/icons/dots-horizontal-icon.js";import{messageBubbleIcon as V}from"./ui/icons/message-bubble-icon.js";import{phoneIcon as B}from"./ui/icons/phone-icon.js";import{videoIcon as L}from"./ui/icons/video-icon.js";import"./mq-chat-room.js";import"./chunks/professional-overview-C4H_znIJ.js";import"./ui/mq-button.js";import"./ui/mq-floating-bubble.js";import{toast as F}from"./ui/mq-toast.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/external-CJj32K_p.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/query-Cjvi4_dT.js";import"./chunks/chunk-HN62IQ7S-xbkIy7k_.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.js";import"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import"./chunks/mutation-controller-CR2qcqhH.js";import"./chunks/price-DU3YLTpk.js";import"./ui/mq-dialog.js";import"./ui/icons/x-icon.js";import"./ui/icons/types.js";import"./ui/icons/file-icon.js";import"./ui/icons/arrow-right-icon.js";import"./chunks/if-defined-BYeVdwgd.js";import"./chunks/style-map-CIdqdn7C.js";import"./chunks/directive-2EDmOukv.js";import"./theme.js";import"./ui/mq-avatar.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/chunk-BUV4MGML-CkhBbfUu.js";import"./ui/icons/chevron-left-icon.js";import"./chunks/query-CeeutdfT.js";import"./chunks/chunk-Y4EKUX25-QqMl3eiq.js";import"./ui/icons/check-double-icon.js";import"./ui/icons/check-icon.js";import"./chunks/chunk-YTQUGGS3-DmCGIoFy.js";import"./ui/icons/chevron-down-icon.js";import"./ui/mq-text-button.js";const G=I`: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;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}@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 J=class NextAppointmentCard extends E{constructor(){super(...arguments),this.specialtyName="",this.token="",this.patientHash="",this.hasChatSupport=!1,this.isExpired=!1,this.isModifyUnavailable=!1,this.isCancelUnavailable=!1,this.modifyUnavailableMessage="",this.cancelUnavailableMessage="",this.isChatOpen=!1,this.isMenuOpen=!1,this.isCancelDialogOpen=!1,this.openDialog=null,this.closeMenuOnOutsideClick=t=>{t.composedPath().includes(this)||(this.isMenuOpen=!1)},this.closeMenuOnEscape=t=>{"Escape"===t.key&&(this.isMenuOpen=!1)},this.handleJoinVideocall=()=>{j.track($(this.patientHash,this.appointmentId)),this.dispatchEvent(new N({appointmentId:this.appointmentId}))},this.handleToggleChat=()=>{this.isChatOpen=!this.isChatOpen,this.isChatOpen&&j.track(C(this.patientHash,this.appointmentId))},this.handleModify=()=>{this.isMenuOpen=!1,this.isModifyUnavailable?this.openDialog="modify":(j.track(w(this.patientHash,this.appointmentId)),this.dispatchEvent(new R({appointmentId:this.appointmentId})))},this.handleCancel=()=>{this.isMenuOpen=!1,this.isCancelUnavailable?this.openDialog="cancel":(j.track(O(this.patientHash,this.appointmentId)),this.isCancelDialogOpen=!0)}}static{this.styles=G}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}channelIcon(){switch(this.channel){case u.videocall:return L({size:20});case u.phonecall:return B({size:20});default:return V({size:20})}}channelLabel(){switch(this.channel){case u.videocall:return p("Videoconsulta");case u.phonecall:return p("Consulta telefónica");default:return p("Chat")}}formatWhen(){const e=t().replace("_","-"),i=this.timezone?{timeZone:this.timezone}:{},n=new Date(this.appointmentResource.appointment.starts_at);if(Number.isNaN(n.getTime()))return"";const o=new Intl.DateTimeFormat(e,{weekday:"long",day:"numeric",month:"long",year:"numeric",...i}).format(n),a=new Intl.DateTimeFormat(e,{timeStyle:"short",...i}).format(n);return p(c`${o}, ${a} h`)}renderActions(){const t=this.channel===u.videocall;return A`<div class="actions">${this.hasChatSupport?A`<mq-button variant="outline" @click="${this.handleToggleChat}">${p("Ir a chat")}</mq-button>`:U} ${t?A`<mq-button class="join" variant="primary" @click="${this.handleJoinVideocall}">${p("Unirse a la videoconsulta")}</mq-button>`:U}<div class="overflow"><mq-button variant="outline" size="icon-lg" aria-label="${p("Más opciones")}" aria-haspopup="menu" aria-expanded="${this.isMenuOpen}" @click="${()=>{this.isMenuOpen=!this.isMenuOpen}}">${P({size:16})}</mq-button>${this.isMenuOpen?A`<div class="menu" role="menu"><button class="menu-item" type="button" role="menuitem" @click="${this.handleModify}">${p("Modificar cita")}</button> <button class="menu-item negative" type="button" role="menuitem" @click="${this.handleCancel}">${p("Anular cita")}</button></div>`:U}</div></div>`}render(){const{professional:t}=this.appointmentResource,e=this.formatWhen();return A`<professional-overview .name="${t.name}" .specialtyName="${this.specialtyName}" .collegiateNumber="${t.collegiate_number??void 0}" .description="${t.description??""}" .languages="${t.languages??[]}" .avatar="${t.avatar??""}"></professional-overview><div class="details">${e?A`<div class="detail-row">${H({size:20})} <span>${e}</span></div>`:U}<div class="detail-row">${this.channelIcon()} <span>${this.channelLabel()}</span></div></div><div class="footer"><p class="reminder">${p("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?A`<mq-chat-room slot="content" .consultationId="${this.appointmentResource.appointment.id}" consultation-type="appointment" token="${this.token}" .roomId="${this.appointmentResource.room.id}" .professionalHash="${t.hash}" ?readonly="${this.isExpired}" @mq-chat-room-close="${()=>{this.isChatOpen=!1}}"></mq-chat-room>`:U}</mq-floating-bubble><appointment-action-unavailable-dialog .open="${"modify"===this.openDialog}" .heading="${p("Modificar cita")}" .message="${this.modifyUnavailableMessage}" @close="${()=>{this.openDialog=null}}"></appointment-action-unavailable-dialog><appointment-action-unavailable-dialog .open="${"cancel"===this.openDialog}" .heading="${p("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,F.success(p("Consulta anulada correctamente")),this.dispatchEvent(new CustomEvent("appointment-cancel-confirmed",{bubbles:!0,composed:!0,detail:{id:this.appointmentId}}))}}"></cancel-appointment-confirmation-dialog>`}};o([D({type:Object})],J.prototype,"appointmentResource",void 0),o([D({type:String})],J.prototype,"specialtyName",void 0),o([D({type:String})],J.prototype,"token",void 0),o([D({type:String})],J.prototype,"patientHash",void 0),o([D({type:String})],J.prototype,"timezone",void 0),o([D({type:Boolean})],J.prototype,"hasChatSupport",void 0),o([D({type:Boolean})],J.prototype,"isExpired",void 0),o([D({type:Boolean})],J.prototype,"isModifyUnavailable",void 0),o([D({type:Boolean})],J.prototype,"isCancelUnavailable",void 0),o([D({type:String})],J.prototype,"modifyUnavailableMessage",void 0),o([D({type:String})],J.prototype,"cancelUnavailableMessage",void 0),o([T()],J.prototype,"isChatOpen",void 0),o([T()],J.prototype,"isMenuOpen",void 0),o([T()],J.prototype,"isCancelDialogOpen",void 0),o([T()],J.prototype,"openDialog",void 0),J=o([l(),a("next-appointment-card")],J);const W=[g.pending,g.accepted],K=I`: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 X=class MqNextAppointments extends E{constructor(){super(...arguments),this.apiClient=v(),this.getPatientProfileQuery=new m(this,()=>z(this.apiClient,{enabled:!this.loginToken})),this.getAppointmentsQuery=new m(this,()=>b(this.apiClient,{status:W,order:{field:"starts_at",direction:"asc"},page:1,per_page:1})),this.getOrganizationSetupQuery=new m(this,()=>x(this.apiClient)),this.getOrganizationSpecialtiesQuery=new m(this,()=>M(this.apiClient)),this.handleViewAll=()=>{this.dispatchEvent(new Q({tab:"next"}))}}static{this.styles=K}willUpdate(t){t.has("env")&&this.env&&_(this.env),t.has("locale")&&this.locale&&e(this.locale)&&i(this.locale);const n=f(t,{env:this.env,apiKey:this.apiKey,token:this.token,locale:this.locale},this.inheritedApiClient);n&&(this.apiClient=n)}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:e=>{const i=e.data?.[0];if(!i)return A`<widget-empty-state icon="calendar" heading="${p("No tienes próximas citas")}" description="${p("Cuando agendes una cita, aparecerá aquí para que puedas consultarla, modificarla o cancelarla.")}"></widget-empty-state>`;const n=this.getOrganizationSetupQuery.result?.data,o=n?.appointments?.seconds_before_start_to_refund_on_cancel,a=S({startsAtIso:i.appointment.starts_at,refundPolicySeconds:o}),s=y(i.appointment.expires_at),r=0===i.slots.length,c=this.getOrganizationSpecialtiesQuery.result?.data?.find(t=>t.id===i.speciality.id);return A`<next-appointment-card .appointmentResource="${i}" .specialtyName="${q(c?.code??"",t(),c?.name??i.speciality.name)}" .token="${this.accessToken}" .patientHash="${this.patientHash}" .timezone="${this.patientTimezone}" .hasChatSupport="${!0===n?.appointments?.has_chat_in_appointment}" .isExpired="${s}" .isModifyUnavailable="${s||r||!a}" .isCancelUnavailable="${s||!a}" .modifyUnavailableMessage="${k({action:"modify",refundPolicySeconds:o})}" .cancelUnavailableMessage="${k({action:"cancel",refundPolicySeconds:o})}"></next-appointment-card>`},pending:()=>A`<mq-skeleton height="257px"></mq-skeleton>`,error:()=>A`<widget-empty-state icon="calendar" heading="${p("No hemos podido cargar tu próxima cita")}" description="${p("Vuelve a intentarlo en unos minutos.")}"></widget-empty-state>`})}render(){return A`<section-header heading="${p("Próxima cita")}" action-label="${p("Ver todas")}" @section-action="${this.handleViewAll}"></section-header><div class="card">${this.renderAppointment()}</div>`}};o([D({type:String,attribute:"api-key"})],X.prototype,"apiKey",void 0),o([D({type:String,attribute:"token"})],X.prototype,"token",void 0),o([D({type:String,attribute:"locale"})],X.prototype,"locale",void 0),o([D({type:String,attribute:"env"})],X.prototype,"env",void 0),o([D({type:String,attribute:"timezone"})],X.prototype,"timezone",void 0),o([r({context:d,subscribe:!0})],X.prototype,"loginToken",void 0),o([r({context:h,subscribe:!0}),T()],X.prototype,"inheritedApiClient",void 0),o([s({context:h}),T()],X.prototype,"apiClient",void 0),X=o([l(),a("mq-next-appointments")],X),n();export{N as MqAppointmentJoinVideocallEvent,R as MqAppointmentRescheduleEvent,X as MqNextAppointments,Q as MqViewAppointmentsEvent};
1
+ import{isValidLocale as t,setLocale as e,initLocalization as i}from"./i18n.js";import{_ as o,c as s}from"./chunks/custom-element-D2ziPxYE.js";import{e as n}from"./chunks/provide-BwI4DDGF.js";import{c as r}from"./chunks/consume-CovVqBjI.js";import{m as a}from"./chunks/runtime-Bg1WXVCx.js";import{l as p}from"./chunks/localized-decorator-BlOuLhym.js";import{Q as c}from"./chunks/query-controller-BlO1Ax65.js";import{A as m}from"./chunks/api-client-context-V1UAGtKW.js";import{l as u}from"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import{a as h,c as l,n as d}from"./chunks/api-chat-client-CJ1EGJe3.js";import{a as k}from"./chunks/action-unavailable-message-BIgsXk9u.js";import{g as j}from"./chunks/get-patient-profile-query-4AO6xvVn.js";import{i as g,a as f,x as y}from"./chunks/lit-element-DiWJYFwC.js";import{n as v}from"./chunks/property-scuRaFcM.js";import{r as x}from"./chunks/state-LQivXIgA.js";import{setEnv as b}from"./env.js";import{MqViewAppointmentsEvent as q}from"./events.js";export{MqAppointmentJoinVideocallEvent,MqAppointmentRescheduleEvent}from"./events.js";import"./chunks/index-iaTXVzFa.js";import"./chunks/index-Bw-MbGKw.js";import"./ui/mq-skeleton.js";import"./chunks/next-appointment-card-6uXWTDx5.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/external-CJj32K_p.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/query-Cjvi4_dT.js";import"./chunks/chunk-HN62IQ7S-xbkIy7k_.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.js";import"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import"./chunks/mutation-controller-CR2qcqhH.js";import"./chunks/price-DU3YLTpk.js";import"./ui/mq-button.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./chunks/if-defined-BYeVdwgd.js";import"./ui/mq-dialog.js";import"./ui/icons/x-icon.js";import"./ui/icons/types.js";import"./ui/icons/calendar-icon.js";import"./ui/icons/file-icon.js";import"./ui/icons/arrow-right-icon.js";import"./chunks/style-map-CIdqdn7C.js";import"./chunks/get-organization-setup-query-Dr1cXnHl.js";import"./chunks/telemetry-client-BdPx4SXu.js";import"./chunks/chunk-Y4EKUX25-QqMl3eiq.js";import"./chunks/refund-cancel-policy-CcsJ-pMx.js";import"./ui/icons/dots-horizontal-icon.js";import"./ui/icons/message-bubble-icon.js";import"./ui/icons/phone-icon.js";import"./ui/icons/video-icon.js";import"./mq-chat-room.js";import"./theme.js";import"./ui/mq-avatar.js";import"./chunks/chunk-BUV4MGML-CkhBbfUu.js";import"./ui/icons/chevron-left-icon.js";import"./chunks/query-CeeutdfT.js";import"./ui/icons/check-double-icon.js";import"./ui/icons/check-icon.js";import"./chunks/chunk-YTQUGGS3-DmCGIoFy.js";import"./chunks/professional-overview-C4H_znIJ.js";import"./ui/icons/chevron-down-icon.js";import"./ui/mq-text-button.js";import"./ui/mq-floating-bubble.js";import"./ui/mq-unread-badge.js";import"./ui/mq-toast.js";const w=[h.pending,h.accepted],A=g`: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 C=class MqNextAppointments extends f{constructor(){super(...arguments),this.apiClient=l(),this.getPatientProfileQuery=new c(this,()=>j(this.apiClient,{enabled:!this.loginToken})),this.getAppointmentsQuery=new c(this,()=>k(this.apiClient,{status:w,order:{field:"starts_at",direction:"asc"},page:1,per_page:1})),this.handleViewAll=()=>{this.dispatchEvent(new q({tab:"next"}))}}static{this.styles=A}willUpdate(i){i.has("env")&&this.env&&b(this.env),i.has("locale")&&this.locale&&t(this.locale)&&e(this.locale);const o=d(i,{env:this.env,apiKey:this.apiKey,token:this.token,locale:this.locale},this.inheritedApiClient);o&&(this.apiClient=o)}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="${a("No tienes próximas citas")}" description="${a("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="${a("No hemos podido cargar tu próxima cita")}" description="${a("Vuelve a intentarlo en unos minutos.")}"></widget-empty-state>`})}render(){return y`<section-header heading="${a("Próxima cita")}" action-label="${a("Ver todas")}" @section-action="${this.handleViewAll}"></section-header><div class="card">${this.renderAppointment()}</div>`}};o([v({type:String,attribute:"api-key"})],C.prototype,"apiKey",void 0),o([v({type:String,attribute:"token"})],C.prototype,"token",void 0),o([v({type:String,attribute:"locale"})],C.prototype,"locale",void 0),o([v({type:String,attribute:"env"})],C.prototype,"env",void 0),o([v({type:String,attribute:"timezone"})],C.prototype,"timezone",void 0),o([r({context:u,subscribe:!0})],C.prototype,"loginToken",void 0),o([r({context:m,subscribe:!0}),x()],C.prototype,"inheritedApiClient",void 0),o([n({context:m}),x()],C.prototype,"apiClient",void 0),C=o([p(),s("mq-next-appointments")],C),i();export{C as MqNextAppointments,q as MqViewAppointmentsEvent};
@@ -1 +1 @@
1
- import{isValidLocale as t,setLocale as e,getLocale as i,initLocalization as s}from"./i18n.js";import{_ as r,c as n}from"./chunks/custom-element-D2ziPxYE.js";import{e as o}from"./chunks/provide-BwI4DDGF.js";import{c as a}from"./chunks/consume-CovVqBjI.js";import{m as c}from"./chunks/runtime-Bg1WXVCx.js";import{l as p}from"./chunks/localized-decorator-BlOuLhym.js";import{Q as m}from"./chunks/query-controller-BlO1Ax65.js";import{A as h}from"./chunks/api-client-context-V1UAGtKW.js";import{l as u}from"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import{a as l,t as d,r as k}from"./chunks/telemetry-client-7fvNqUSU.js";import{g as j}from"./chunks/get-patient-documents-query-NC9xCa_N.js";import{g}from"./chunks/get-patient-profile-query-4AO6xvVn.js";import{i as f,a as y,x as v}from"./chunks/lit-element-DiWJYFwC.js";import{n as b}from"./chunks/property-scuRaFcM.js";import{r as x}from"./chunks/state-LQivXIgA.js";import{setEnv as w}from"./env.js";import{t as S}from"./chunks/index-uHvVQMNc.js";import{MqViewDocumentsEvent as q}from"./events.js";export{DownloadFileEvent}from"./events.js";import{c as C,n as $}from"./chunks/api-chat-client-CJ1EGJe3.js";import"./chunks/index-Bw-MbGKw.js";import"./chunks/index-iaTXVzFa.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/external-CJj32K_p.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/query-Cjvi4_dT.js";import"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import"./chunks/blob-to-base64-CUL1trde.js";import"./ui/icons/download-02-icon.js";import"./ui/icons/types.js";import"./ui/mq-button.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./chunks/if-defined-BYeVdwgd.js";import"./ui/mq-toast.js";import"./ui/mq-skeleton.js";import"./chunks/style-map-CIdqdn7C.js";import"./chunks/chunk-HN62IQ7S-xbkIy7k_.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.js";import"./ui/icons/arrow-right-icon.js";import"./ui/icons/calendar-icon.js";import"./ui/icons/file-icon.js";const P=f`: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 Q=class MqRecentDocuments extends y{constructor(){super(...arguments),this.apiClient=C(),this.getPatientProfileQuery=new m(this,()=>g(this.apiClient,{enabled:!this.loginToken})),this.getPatientDocumentsQuery=new m(this,()=>({...j(this.apiClient,{patient_hash:this.patientHash,page:1,per_page:3}),enabled:!!this.patientHash})),this.getOrganizationSpecialtiesQuery=new m(this,()=>l(this.apiClient)),this.handleViewAll=()=>{d.track(k(this.patientHash)),this.dispatchEvent(new q)}}static{this.styles=P}willUpdate(i){i.has("env")&&this.env&&w(this.env),i.has("locale")&&this.locale&&t(this.locale)&&e(this.locale);const s=$(i,{env:this.env,apiKey:this.apiKey,token:this.token,locale:this.locale},this.inheritedApiClient);s&&(this.apiClient=s)}get patientHash(){return this.loginToken?.patient.hash??this.getPatientProfileQuery.result?.data?.hash??""}renderEmptyState(){return v`<widget-empty-state icon="document" heading="${c("No tienes documentación")}" description="${c("Aquí se mostrarán tus recetas e informes médicos.")}"></widget-empty-state>`}renderSkeleton(){return v`<document-list placeholders="${3}"></document-list>`}renderError(){return v`<widget-empty-state icon="document" heading="${c("No hemos podido cargar tu documentación")}" description="${c("Vuelve a intentarlo en unos minutos.")}"></widget-empty-state>`}renderDocuments(){return this.getPatientDocumentsQuery.render({complete:t=>0===t.data.length?this.renderEmptyState():v`<document-list .documents="${S(t.data,this.getOrganizationSpecialtiesQuery.result?.data,i())}" patientHash="${this.patientHash}"></document-list>`,initial:()=>this.getPatientProfileQuery.result?.isError?this.renderError():this.renderSkeleton(),pending:()=>this.renderSkeleton(),error:()=>this.renderError()})}render(){return v`<section-header heading="${c("Documentos recientes")}" action-label="${c("Ver todas")}" @section-action="${this.handleViewAll}"></section-header><div class="card">${this.renderDocuments()}</div>`}};r([b({type:String,attribute:"api-key"})],Q.prototype,"apiKey",void 0),r([b({type:String,attribute:"token"})],Q.prototype,"token",void 0),r([b({type:String,attribute:"locale"})],Q.prototype,"locale",void 0),r([b({type:String,attribute:"env"})],Q.prototype,"env",void 0),r([a({context:h,subscribe:!0}),x()],Q.prototype,"inheritedApiClient",void 0),r([o({context:h}),x()],Q.prototype,"apiClient",void 0),r([a({context:u,subscribe:!0})],Q.prototype,"loginToken",void 0),Q=r([p(),n("mq-recent-documents")],Q),s();export{Q as MqRecentDocuments,q as MqViewDocumentsEvent};
1
+ import{isValidLocale as t,setLocale as e,getLocale as i,initLocalization as s}from"./i18n.js";import{_ as r,c as n}from"./chunks/custom-element-D2ziPxYE.js";import{e as o}from"./chunks/provide-BwI4DDGF.js";import{c as a}from"./chunks/consume-CovVqBjI.js";import{m as c}from"./chunks/runtime-Bg1WXVCx.js";import{l as p}from"./chunks/localized-decorator-BlOuLhym.js";import{Q as m}from"./chunks/query-controller-BlO1Ax65.js";import{A as h}from"./chunks/api-client-context-V1UAGtKW.js";import{l as u}from"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import{g as l,t as d,r as k}from"./chunks/telemetry-client-BdPx4SXu.js";import{g as j}from"./chunks/get-patient-documents-query-NC9xCa_N.js";import{g}from"./chunks/get-patient-profile-query-4AO6xvVn.js";import{i as f,a as y,x as v}from"./chunks/lit-element-DiWJYFwC.js";import{n as b}from"./chunks/property-scuRaFcM.js";import{r as x}from"./chunks/state-LQivXIgA.js";import{setEnv as w}from"./env.js";import{t as S}from"./chunks/index-Btj1mwcE.js";import{MqViewDocumentsEvent as q}from"./events.js";export{DownloadFileEvent}from"./events.js";import{c as C,n as $}from"./chunks/api-chat-client-CJ1EGJe3.js";import"./chunks/index-Bw-MbGKw.js";import"./chunks/index-iaTXVzFa.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/external-CJj32K_p.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/query-Cjvi4_dT.js";import"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import"./chunks/blob-to-base64-CUL1trde.js";import"./ui/icons/download-02-icon.js";import"./chunks/if-defined-BYeVdwgd.js";import"./ui/icons/types.js";import"./ui/mq-button.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./ui/mq-toast.js";import"./ui/mq-skeleton.js";import"./chunks/style-map-CIdqdn7C.js";import"./chunks/chunk-HN62IQ7S-xbkIy7k_.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.js";import"./ui/icons/arrow-right-icon.js";import"./ui/icons/calendar-icon.js";import"./ui/icons/file-icon.js";const P=f`: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 Q=class MqRecentDocuments extends y{constructor(){super(...arguments),this.apiClient=C(),this.getPatientProfileQuery=new m(this,()=>g(this.apiClient,{enabled:!this.loginToken})),this.getPatientDocumentsQuery=new m(this,()=>({...j(this.apiClient,{patient_hash:this.patientHash,page:1,per_page:3}),enabled:!!this.patientHash})),this.getOrganizationSpecialtiesQuery=new m(this,()=>l(this.apiClient)),this.handleViewAll=()=>{d.track(k(this.patientHash)),this.dispatchEvent(new q)}}static{this.styles=P}willUpdate(i){i.has("env")&&this.env&&w(this.env),i.has("locale")&&this.locale&&t(this.locale)&&e(this.locale);const s=$(i,{env:this.env,apiKey:this.apiKey,token:this.token,locale:this.locale},this.inheritedApiClient);s&&(this.apiClient=s)}get patientHash(){return this.loginToken?.patient.hash??this.getPatientProfileQuery.result?.data?.hash??""}renderEmptyState(){return v`<widget-empty-state icon="document" heading="${c("No tienes documentación")}" description="${c("Aquí se mostrarán tus recetas e informes médicos.")}"></widget-empty-state>`}renderSkeleton(){return v`<document-list placeholders="${3}"></document-list>`}renderError(){return v`<widget-empty-state icon="document" heading="${c("No hemos podido cargar tu documentación")}" description="${c("Vuelve a intentarlo en unos minutos.")}"></widget-empty-state>`}renderDocuments(){return this.getPatientDocumentsQuery.render({complete:t=>0===t.data.length?this.renderEmptyState():v`<document-list .documents="${S(t.data,this.getOrganizationSpecialtiesQuery.result?.data,i())}" patientHash="${this.patientHash}"></document-list>`,initial:()=>this.getPatientProfileQuery.result?.isError?this.renderError():this.renderSkeleton(),pending:()=>this.renderSkeleton(),error:()=>this.renderError()})}render(){return v`<section-header heading="${c("Documentos recientes")}" action-label="${c("Ver todas")}" @section-action="${this.handleViewAll}"></section-header><div class="card">${this.renderDocuments()}</div>`}};r([b({type:String,attribute:"api-key"})],Q.prototype,"apiKey",void 0),r([b({type:String,attribute:"token"})],Q.prototype,"token",void 0),r([b({type:String,attribute:"locale"})],Q.prototype,"locale",void 0),r([b({type:String,attribute:"env"})],Q.prototype,"env",void 0),r([a({context:h,subscribe:!0}),x()],Q.prototype,"inheritedApiClient",void 0),r([o({context:h}),x()],Q.prototype,"apiClient",void 0),r([a({context:u,subscribe:!0})],Q.prototype,"loginToken",void 0),Q=r([p(),n("mq-recent-documents")],Q),s();export{Q as MqRecentDocuments,q as MqViewDocumentsEvent};
@@ -1,4 +1,4 @@
1
- import{isValidLocale as t,setLocale as e,getLocale as i,initLocalization as o}from"./i18n.js";import{_ as n,c as a}from"./chunks/custom-element-D2ziPxYE.js";import{m as s,s as r}from"./chunks/runtime-Bg1WXVCx.js";import{l as c}from"./chunks/localized-decorator-BlOuLhym.js";import{A as p}from"./chunks/api-client-context-V1UAGtKW.js";import{i as l,a as d,x as m,E as u}from"./chunks/lit-element-DiWJYFwC.js";import{n as h}from"./chunks/property-scuRaFcM.js";import{r as v}from"./chunks/state-LQivXIgA.js";import{setEnv as g}from"./env.js";import{MqViewAppointmentsEvent as f,MqHomeEvent as k}from"./events.js";import{c as b,A as y,n as x,C as j}from"./chunks/api-chat-client-CJ1EGJe3.js";import{checkIcon as w}from"./ui/icons/check-icon.js";import"./ui/mq-callout.js";import"./ui/mq-button.js";import{e as $}from"./chunks/provide-BwI4DDGF.js";import{c as q}from"./chunks/consume-CovVqBjI.js";import{l as C}from"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import"./chunks/professional-overview-C4H_znIJ.js";import"./chunks/appointment-details-DXLBQnPN.js";import{Q as _}from"./chunks/query-controller-BlO1Ax65.js";import{s as S}from"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import{g as I}from"./chunks/get-appointment-query-C-gTTuiQ.js";import{g as z}from"./chunks/get-patient-profile-query-4AO6xvVn.js";import{g as A}from"./chunks/chunk-Y4EKUX25-QqMl3eiq.js";import{a as Q}from"./chunks/chunk-HN62IQ7S-xbkIy7k_.js";import{calendarIcon as O}from"./ui/icons/calendar-icon.js";import{chatbubbleIcon as T}from"./ui/icons/chat-bubble-icon.js";import{videoIcon as P}from"./ui/icons/video-icon.js";import"./mq-chat-room.js";import"./ui/mq-floating-bubble.js";import"./ui/mq-unread-badge.js";import{a as E,t as N,m as V,g as H,n as B,o as U,p as F}from"./chunks/telemetry-client-7fvNqUSU.js";import{f as G}from"./chunks/price-DU3YLTpk.js";import"./ui/mq-skeleton.js";import"./ui/mq-card.js";import{Q as M}from"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import{a as R}from"./chunks/addSeconds-ofMnxlgT.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/external-CJj32K_p.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/isBefore-CPpTogxo.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./ui/icons/types.js";import"./ui/icons/info-circle-outine-icon.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./chunks/if-defined-BYeVdwgd.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/context-consumer-ESdICVAb.js";import"./ui/icons/chevron-down-icon.js";import"./ui/mq-text-button.js";import"./ui/mq-avatar.js";import"./ui/icons/briefcase-icon.js";import"./ui/icons/clock-icon.js";import"./ui/icons/message-bubble-icon.js";import"./ui/icons/phone-icon.js";import"./chunks/query-Cjvi4_dT.js";import"./chunks/format-CRFiCNHw.js";import"./theme.js";import"./ui/icons/x-icon.js";import"./chunks/chunk-BUV4MGML-CkhBbfUu.js";import"./ui/icons/chevron-left-icon.js";import"./chunks/query-CeeutdfT.js";import"./ui/icons/check-double-icon.js";import"./chunks/chunk-YTQUGGS3-DmCGIoFy.js";import"./chunks/mutation-controller-CR2qcqhH.js";import"./chunks/style-map-CIdqdn7C.js";const K=l`header{padding:var(--sp-6) var(--sp-4);display:flex;align-items:center;gap:var(--sp-2);max-width:var(--content-max-width);margin:0 auto}.summary{padding:var(--sp-6) var(--sp-4);background-color:var(--color-neutrals-background-weak);max-width:var(--content-max-width);margin:0 auto}.summary-content{display:flex;flex-direction:column;gap:var(--sp-4)}.manage-appointment{box-sizing:border-box;max-width:var(--content-max-width);margin:0 auto}`;let L=class MqScheduleSuccessSkeleton extends d{static{this.styles=K}render(){return m`<div><header><mq-skeleton width="220px" height="40px" border-radius="md"></mq-skeleton></header><div class="summary"><div class="summary-content"><mq-skeleton width="280px" height="32px" border-radius="md"></mq-skeleton><mq-skeleton width="100%" height="400px" border-radius="lg"></mq-skeleton><mq-skeleton width="100%" height="80px" border-radius="lg"></mq-skeleton></div></div><div class="manage-appointment"><mq-skeleton width="100%" height="313px" border-radius="lg"></mq-skeleton></div></div>`}};L=n([a("mq-schedule-success-skeleton")],L);const D=l`.success-title{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4)}header h1{font-family:var(--font-titles);font-size:var(--text-3xl);line-height:var(--text-3xl--line-height);font-weight:var(--font-weight-bold);margin: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;margin-bottom:var(--sp-6)}.summary{padding:var(--sp-6) var(--sp-4)}.professional-card{padding:var(--sp-4)}.appointment-summary{margin-bottom:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-4)}.add-to-calendar-container{padding-top:var(--sp-4);border-top:1px solid var(--color-neutrals-border-disabled)}.price-breakdown{display:flex;flex-direction:column;gap:var(--sp-2)}.price-row{display:flex;justify-content:space-between;gap:var(--sp-4);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);color:var(--color-neutrals-text-default)}.price-row--total{font-weight:var(--font-weight-semibold)}.price-breakdown hr{width:100%;border:none;border-top:1px solid var(--color-neutrals-border-disabled);margin:var(--sp-1) 0}.floating-content{height:100%}.actions{display:flex;flex-direction:column;gap:var(--sp-4)}@media (min-width:768px){.actions{flex-direction:row}}.footer-cta{margin-top:var(--sp-4);padding:var(--sp-6) var(--sp-4)}.footer-cta h2{margin-bottom:var(--sp-2)}.footer-cta .description{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);color:var(--color-neutrals-text-default);margin:0 0 var(--sp-6)}.footer-cta .actions{display:flex;flex-direction:column;gap:var(--sp-3)}`;class OpenVideocallEvent extends Event{static{this.eventName="open-videocall"}constructor(t){super(OpenVideocallEvent.eventName,{bubbles:!0,composed:!0}),this.detail=t}}let W=class MqScheduleSuccess extends d{constructor(){super(...arguments),this.kind="schedule",this.showNavCtas=!1,this._trackedPageView=!1,this.apiClient=b(),this.getPatientProfileQuery=new _(this,()=>z(this.apiClient)),this.getAppointmentQuery=new _(this,()=>I(this.apiClient,{id:this.appointmentId})),this.getCouponQuery=new _(this,()=>{return t=this.apiClient,e={appointmentId:this.appointmentId},i={enabled:!!this.appointmentId},{queryKey:S(t,"appointment-consultation-coupon",e.appointmentId),queryFn:()=>t.payments.getAppointmentConsultationCoupon(e.appointmentId),retry:!1,...i};var t,e,i}),this.getOrganizationSpecialtiesQuery=new _(this,()=>E(this.apiClient)),this.isChatOpen=!1,this.unreadQuery=new _(this,()=>A(this.apiClient,{roomId:Number(this.getAppointmentQuery.result?.data?.room_id)},{enabled:!!this.getAppointmentQuery.result?.data?.room_id})),this._getCalloutText=t=>{switch(t.channel){case y.videocall:return s("Te enviaremos un enlace al email indicado cuando sea el momento de conectarte a la vídeoconsulta. Asegúrate de tener buena conexión a internet y un dispositivo con cámara y micrófono.");case y.phonecall:return s(r`El profesional te llamará al
1
+ import{isValidLocale as t,setLocale as e,getLocale as i,initLocalization as o}from"./i18n.js";import{_ as n,c as a}from"./chunks/custom-element-D2ziPxYE.js";import{m as s,s as r}from"./chunks/runtime-Bg1WXVCx.js";import{l as c}from"./chunks/localized-decorator-BlOuLhym.js";import{A as p}from"./chunks/api-client-context-V1UAGtKW.js";import{i as l,a as d,x as m,E as u}from"./chunks/lit-element-DiWJYFwC.js";import{n as h}from"./chunks/property-scuRaFcM.js";import{r as v}from"./chunks/state-LQivXIgA.js";import{setEnv as g}from"./env.js";import{MqViewAppointmentsEvent as f,MqHomeEvent as k}from"./events.js";import{c as b,A as y,n as x,C as j}from"./chunks/api-chat-client-CJ1EGJe3.js";import{checkIcon as w}from"./ui/icons/check-icon.js";import"./ui/mq-callout.js";import"./ui/mq-button.js";import{e as $}from"./chunks/provide-BwI4DDGF.js";import{c as q}from"./chunks/consume-CovVqBjI.js";import{l as C}from"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import"./chunks/professional-overview-C4H_znIJ.js";import"./chunks/appointment-details-DXLBQnPN.js";import{Q as _}from"./chunks/query-controller-BlO1Ax65.js";import{s as S}from"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import{g as I}from"./chunks/get-appointment-query-C-gTTuiQ.js";import{g as z}from"./chunks/get-patient-profile-query-4AO6xvVn.js";import{g as A}from"./chunks/chunk-Y4EKUX25-QqMl3eiq.js";import{a as Q}from"./chunks/chunk-HN62IQ7S-xbkIy7k_.js";import{calendarIcon as O}from"./ui/icons/calendar-icon.js";import{chatbubbleIcon as T}from"./ui/icons/chat-bubble-icon.js";import{videoIcon as P}from"./ui/icons/video-icon.js";import"./mq-chat-room.js";import"./ui/mq-floating-bubble.js";import"./ui/mq-unread-badge.js";import{g as E,t as N,m as V,e as H,n as B,o as U,p as F}from"./chunks/telemetry-client-BdPx4SXu.js";import{f as G}from"./chunks/price-DU3YLTpk.js";import"./ui/mq-skeleton.js";import"./ui/mq-card.js";import{Q as M}from"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import{a as R}from"./chunks/addSeconds-ofMnxlgT.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/external-CJj32K_p.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/isBefore-CPpTogxo.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/if-defined-BYeVdwgd.js";import"./ui/icons/types.js";import"./ui/icons/info-circle-outine-icon.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/context-consumer-ESdICVAb.js";import"./ui/icons/chevron-down-icon.js";import"./ui/mq-text-button.js";import"./ui/mq-avatar.js";import"./ui/icons/briefcase-icon.js";import"./ui/icons/clock-icon.js";import"./ui/icons/message-bubble-icon.js";import"./ui/icons/phone-icon.js";import"./chunks/query-Cjvi4_dT.js";import"./chunks/format-CRFiCNHw.js";import"./theme.js";import"./ui/icons/x-icon.js";import"./chunks/chunk-BUV4MGML-CkhBbfUu.js";import"./ui/icons/chevron-left-icon.js";import"./chunks/query-CeeutdfT.js";import"./ui/icons/check-double-icon.js";import"./chunks/chunk-YTQUGGS3-DmCGIoFy.js";import"./chunks/mutation-controller-CR2qcqhH.js";import"./chunks/style-map-CIdqdn7C.js";const K=l`header{padding:var(--sp-6) var(--sp-4);display:flex;align-items:center;gap:var(--sp-2);max-width:var(--content-max-width);margin:0 auto}.summary{padding:var(--sp-6) var(--sp-4);background-color:var(--color-neutrals-background-weak);max-width:var(--content-max-width);margin:0 auto}.summary-content{display:flex;flex-direction:column;gap:var(--sp-4)}.manage-appointment{box-sizing:border-box;max-width:var(--content-max-width);margin:0 auto}`;let L=class MqScheduleSuccessSkeleton extends d{static{this.styles=K}render(){return m`<div><header><mq-skeleton width="220px" height="40px" border-radius="md"></mq-skeleton></header><div class="summary"><div class="summary-content"><mq-skeleton width="280px" height="32px" border-radius="md"></mq-skeleton><mq-skeleton width="100%" height="400px" border-radius="lg"></mq-skeleton><mq-skeleton width="100%" height="80px" border-radius="lg"></mq-skeleton></div></div><div class="manage-appointment"><mq-skeleton width="100%" height="313px" border-radius="lg"></mq-skeleton></div></div>`}};L=n([a("mq-schedule-success-skeleton")],L);const D=l`.success-title{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-4)}header h1{font-family:var(--font-titles);font-size:var(--text-3xl);line-height:var(--text-3xl--line-height);font-weight:var(--font-weight-bold);margin: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;margin-bottom:var(--sp-6)}.summary{padding:var(--sp-6) var(--sp-4)}.professional-card{padding:var(--sp-4)}.appointment-summary{margin-bottom:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-4)}.add-to-calendar-container{padding-top:var(--sp-4);border-top:1px solid var(--color-neutrals-border-disabled)}.price-breakdown{display:flex;flex-direction:column;gap:var(--sp-2)}.price-row{display:flex;justify-content:space-between;gap:var(--sp-4);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);color:var(--color-neutrals-text-default)}.price-row--total{font-weight:var(--font-weight-semibold)}.price-breakdown hr{width:100%;border:none;border-top:1px solid var(--color-neutrals-border-disabled);margin:var(--sp-1) 0}.floating-content{height:100%}.actions{display:flex;flex-direction:column;gap:var(--sp-4)}@media (min-width:768px){.actions{flex-direction:row}}.footer-cta{margin-top:var(--sp-4);padding:var(--sp-6) var(--sp-4)}.footer-cta h2{margin-bottom:var(--sp-2)}.footer-cta .description{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);color:var(--color-neutrals-text-default);margin:0 0 var(--sp-6)}.footer-cta .actions{display:flex;flex-direction:column;gap:var(--sp-3)}`;class OpenVideocallEvent extends Event{static{this.eventName="open-videocall"}constructor(t){super(OpenVideocallEvent.eventName,{bubbles:!0,composed:!0}),this.detail=t}}let W=class MqScheduleSuccess extends d{constructor(){super(...arguments),this.kind="schedule",this.showNavCtas=!1,this._trackedPageView=!1,this.apiClient=b(),this.getPatientProfileQuery=new _(this,()=>z(this.apiClient)),this.getAppointmentQuery=new _(this,()=>I(this.apiClient,{id:this.appointmentId})),this.getCouponQuery=new _(this,()=>{return t=this.apiClient,e={appointmentId:this.appointmentId},i={enabled:!!this.appointmentId},{queryKey:S(t,"appointment-consultation-coupon",e.appointmentId),queryFn:()=>t.payments.getAppointmentConsultationCoupon(e.appointmentId),retry:!1,...i};var t,e,i}),this.getOrganizationSpecialtiesQuery=new _(this,()=>E(this.apiClient)),this.isChatOpen=!1,this.unreadQuery=new _(this,()=>A(this.apiClient,{roomId:Number(this.getAppointmentQuery.result?.data?.room_id)},{enabled:!!this.getAppointmentQuery.result?.data?.room_id})),this._getCalloutText=t=>{switch(t.channel){case y.videocall:return s("Te enviaremos un enlace al email indicado cuando sea el momento de conectarte a la vídeoconsulta. Asegúrate de tener buena conexión a internet y un dispositivo con cámara y micrófono.");case y.phonecall:return s(r`El profesional te llamará al
2
2
  ${this.getPatientProfileQuery.result?.data?.profile.phone??""} en el horario
3
3
  seleccionado. Asegúrate de tener buena cobertura y poder atender en
4
4
  el horario elegido.`);case y.chat:return s("El profesional te enviará un mensaje para que podamos coordinar la cita. Asegúrate de tener buena cobertura y poder atender en el horario elegido.");default:return u}}}static{this.styles=D}get _accessToken(){return this.token??this.loginToken?.access_token}get _timezone(){return this.timezone||Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC"}willUpdate(i){i.has("env")&&this.env&&g(this.env),i.has("locale")&&this.locale&&t(this.locale)&&e(this.locale);const o=x(i,{env:this.env,apiKey:this.apiKey,token:this.token,locale:this.locale},this.inheritedApiClient);o&&(this.apiClient=o)}get _patientHash(){return this.getPatientProfileQuery.result?.data?.hash??""}connectedCallback(){super.connectedCallback(),this.queryClientContext?.invalidateQueries()}updated(){!this._trackedPageView&&this._patientHash&&(this._trackedPageView=!0,N.track(V(this._patientHash,this.appointmentId)))}renderPriceBreakdown(t,e,i){const o=t.price;if(null==o||o<=0)return u;const n=t.currency??"EUR",a=t.discount_amount??0,r=a>0,c=o-a,p=this.getCouponQuery.result?.data,l=p?.name??p?.code,d=r?p?.percent_off??Math.round(a/o*100):0,h=l?`${s("Promoción")} ${l}`:s("Promoción");return m`<div class="price-breakdown"><div class="price-row"><span>${i}</span> <span>${G({amount:o,currency:n},e)}</span></div>${r?m`<div class="price-row"><span>${h} (-${d}%)</span> <span>${G({amount:-a,currency:n},e)}</span></div><hr><div class="price-row price-row--total"><span>${s("Total")}</span> <span>${G({amount:c,currency:n},e)}</span></div>`:u}</div>`}render(){return this.getAppointmentQuery.render({pending:()=>m`<mq-schedule-success-skeleton></mq-schedule-success-skeleton>`,complete:t=>{const e=i(),o=Q(t.start_date),n=R(o,t.duration),a=this.getOrganizationSpecialtiesQuery.result?.data?.find(e=>e.id===Number(t.speciality_id)),c=H(a?.code??"",e,a?.name),p=t.channel===y.videocall,l=t.channel===y.phonecall,d=!0===t.has_chat_in_appointment,h=(p||l)&&d,v=this._accessToken;return m`<div><header><div class="success-title">${w()}<h1>${"schedule"===this.kind?s("Cita confirmada"):s("Cita modificada")}</h1></div><h2>${s(r`Resumen de la cita para ${t?.to?.name??""}`)}</h2></header><mq-card class="summary" roundness="md"><div class="appointment-summary"><professional-overview .name="${t.from.name??""}" .specialtyName="${c}" .collegiateNumber="${t.from.collegiate_number??void 0}" .description="${t.from.description??""}" .languages="${t.from.languages??[]}" .avatar="${t.from.avatar??""}" always-expanded-on-desktop></professional-overview><appointment-details .startsAt="${o.toISOString()}" .duration="${t.duration}" .channel="${t.channel}" .timezone="${this._timezone}"></appointment-details>${this.renderPriceBreakdown(t,e,c||s("Consulta"))}<div class="add-to-calendar-container"><mq-text-button fontWeight="bold" size="sm" @click="${()=>{N.track(B(this._patientHash,this.appointmentId));const e=function({title:t,description:e,startsAt:i,endsAt:o}){const n=t=>t.toISOString().replace(/[-:]/g,"").replace(/\.\d{3}/,""),a=n(i),s=n(o);return`https://www.google.com/calendar/render?${new URLSearchParams({action:"TEMPLATE",text:t,dates:`${a}/${s}`,...e&&{details:e}}).toString()}`}({title:s(r`Cita agendada de ${t.from.speciality??""}`),startsAt:o,endsAt:n,description:p&&t.consultation_short_url?s(r`Enlace a la cita: ${t.consultation_short_url}`):void 0});window.open(e,"_blank")}}">${O({size:24})} ${s("Añadir al calendario")}</mq-text-button></div>${h||p?m`<div class="actions">${h?m`<mq-button variant="primary" fullwidth size="md" @click="${()=>{N.track(U(this._patientHash,this.appointmentId)),this.isChatOpen=!this.isChatOpen}}">${T({size:24})} ${s("Chatear con el profesional")} ${(this.unreadQuery.result?.data?.unread_count??0)>0?m`<mq-unread-badge></mq-unread-badge>`:u}</mq-button>`:u} ${p?m`<mq-button variant="outline" fullwidth size="md" @click="${()=>{N.track(F(this._patientHash,this.appointmentId)),this.dispatchEvent(new OpenVideocallEvent({appointmentId:this.appointmentId}))}}">${P({size:24})} ${s("Ir a videollamada")}</mq-button>`:u}</div>`:u}</div><mq-callout background="default" variant="info" ?noPadding="${!(h||p)}">${this._getCalloutText(t)}</mq-callout></mq-card>${this.showNavCtas?m`<mq-card class="footer-cta" roundness="md"><h2>${s("Tus citas")}</h2><p class="description">${s("Accede, modifica o anula tus citas.")}</p><div class="actions"><mq-button variant="primary" size="md" fullwidth @click="${()=>{this.dispatchEvent(new f({tab:"next"}))}}">${s("Ver mis citas")}</mq-button><mq-button variant="outline" size="md" fullwidth @click="${()=>{this.dispatchEvent(new k)}}">${s("Volver al inicio")}</mq-button></div></mq-card>`:u}</div><mq-floating-bubble ?dismissable="${!1}" .open="${this.isChatOpen}" @mq-close="${()=>{this.isChatOpen=!1}}" hideCloseButton>${this.isChatOpen&&v?m`<div slot="content" class="floating-content"><mq-chat-room .consultationId="${t.id}" .consultationType="${j.appointment}" .token="${v}" .roomId="${Number(t.room_id)}" .professionalHash="${t.from.hash}" @mq-chat-room-close="${()=>{this.isChatOpen=!1}}"></mq-chat-room></div>`:u}</mq-floating-bubble>`}})}};n([h({type:String})],W.prototype,"kind",void 0),n([h({type:String})],W.prototype,"appointmentId",void 0),n([h({type:String,attribute:"api-key"})],W.prototype,"apiKey",void 0),n([h({type:String,attribute:"token"})],W.prototype,"token",void 0),n([h({type:String,attribute:"timezone"})],W.prototype,"timezone",void 0),n([h({type:String,attribute:"locale"})],W.prototype,"locale",void 0),n([h({type:String,attribute:"env"})],W.prototype,"env",void 0),n([h({type:Boolean,attribute:"show-nav-ctas"})],W.prototype,"showNavCtas",void 0),n([q({context:M,subscribe:!0})],W.prototype,"queryClientContext",void 0),n([q({context:C})],W.prototype,"loginToken",void 0),n([q({context:p,subscribe:!0}),v()],W.prototype,"inheritedApiClient",void 0),n([$({context:p}),v()],W.prototype,"apiClient",void 0),n([v()],W.prototype,"isChatOpen",void 0),W=n([c(),a("mq-schedule-success")],W),o();export{W as MqScheduleSuccess,OpenVideocallEvent};
@@ -370,12 +370,18 @@ declare global {
370
370
  * Payment method picker for the schedule flow.
371
371
  *
372
372
  * @element payment-method-selector
373
+ * @attr {boolean} show-google-pay - Offer Google Pay, when the device supports it
374
+ * @attr {boolean} show-apple-pay - Offer Apple Pay, when the device supports it
373
375
  * @fires payment-method-selected - Fired when the user confirms a method (bubbles, composed; `method` on the event)
374
376
  */
375
377
  declare class PaymentMethodSelector extends LitElement {
376
378
  static styles: lit.CSSResult;
377
379
  showWallets: boolean;
380
+ showGooglePay: boolean;
381
+ showApplePay: boolean;
378
382
  private _selected;
383
+ private get _googlePayVisible();
384
+ private get _applePayVisible();
379
385
  protected willUpdate(changed: PropertyValues<this>): void;
380
386
  private _select;
381
387
  private _confirm;
@@ -426,6 +432,8 @@ declare class PaymentStep extends LitElement {
426
432
  countryCode: string;
427
433
  successUrl?: string;
428
434
  provider?: PaymentProvider;
435
+ googlePayEnabled: boolean;
436
+ applePayEnabled: boolean;
429
437
  queryClientContext: QueryClient | undefined;
430
438
  private _view;
431
439
  private _walletWaiting;
@@ -580,7 +588,6 @@ declare class SelectProfessionalStep extends LitElement {
580
588
  patient: SchedulePatient;
581
589
  defaultSpecialty: string | undefined;
582
590
  defaultService: string | undefined;
583
- showBack: boolean;
584
591
  formData: {
585
592
  service_id: string;
586
593
  specialty_id: string;
@@ -754,6 +761,10 @@ declare class MqSchedule extends LitElement {
754
761
  */
755
762
  applePaySuccessUrl?: string;
756
763
  returnUrl?: string;
764
+ /** Offer Google Pay in the payment step, when the device supports it. */
765
+ googlePayEnabled: boolean;
766
+ /** Offer Apple Pay in the payment step, when the device supports it. */
767
+ applePayEnabled: boolean;
757
768
  /** IANA timezone for slot times; the host supplies it (not in the profile),
758
769
  * defaulting to the browser's. */
759
770
  timezone?: string;