@mediquo/elements 0.10.0 → 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.
- package/dist/chunks/api-chat-client-CzlZkbW1.js +1 -0
- package/dist/chunks/{apple-pay-outcomes-BU_PyQdT.js → apple-pay-outcomes-K8FQPELX.js} +1 -1
- package/dist/chunks/ca_ES-DMretbb7.js +1 -0
- package/dist/chunks/de_DE-DUtzXD1z.js +1 -0
- package/dist/chunks/{documentation-view-CEfoq9vD.js → documentation-view-BqUQwjti.js} +1 -1
- package/dist/chunks/en_US-mxYf5Jqv.js +1 -0
- package/dist/chunks/{index-Cgni0Is9.d.ts → index-C1325SFM.d.ts} +1 -1
- package/dist/chunks/{index-CYBd3XL2.js → index-DybIBddw.js} +1 -1
- package/dist/chunks/{index-DjD-3x4f.js → index-M3514yfv.js} +1 -1
- package/dist/chunks/{index-Bv4Mk1Ch.d.ts → index-kaUOEhUj.d.ts} +1 -1
- package/dist/chunks/{index-D0njwg5o.d.ts → index-pnQMnaEN.d.ts} +1 -1
- package/dist/chunks/{index.d-DeJP_xib.d.ts → index.d-CRSzJK71.d.ts} +15 -0
- package/dist/chunks/{mq-chat-room-B3ant6md.d.ts → mq-chat-room-CWIDQUxq.d.ts} +1 -1
- package/dist/chunks/{mq-next-appointments-BdsRyXJB.js → mq-next-appointments-BlIFuGgO.js} +1 -1
- package/dist/chunks/{mq-recent-documents-CNweIX5U.js → mq-recent-documents-D0krQAnf.js} +1 -1
- package/dist/chunks/{next-appointment-card-CWz0tef1.d.ts → next-appointment-card-Cd6GXAne.d.ts} +2 -2
- package/dist/chunks/{next-appointment-card-KXLkEJDg.js → next-appointment-card-fL1VemkX.js} +1 -1
- package/dist/chunks/pt_PT-g8meEZVV.js +1 -0
- package/dist/env.js +1 -1
- package/dist/i18n.js +1 -1
- package/dist/mq-api-client-provider.d.ts +1 -1
- package/dist/mq-api-client-provider.js +1 -1
- package/dist/mq-apple-pay-checkout.d.ts +1 -1
- package/dist/mq-apple-pay-checkout.js +1 -1
- package/dist/mq-appointment-checkout.d.ts +3 -1
- package/dist/mq-appointment-checkout.js +1 -1
- package/dist/mq-appointment-documentation.d.ts +3 -3
- package/dist/mq-appointment-documentation.js +1 -1
- package/dist/mq-chat-room.d.ts +2 -2
- package/dist/mq-chat-room.js +1 -1
- package/dist/mq-checkout.d.ts +1 -1
- package/dist/mq-checkout.js +1 -1
- package/dist/mq-dashboard.d.ts +4 -4
- package/dist/mq-dashboard.js +1 -1
- package/dist/mq-documents.d.ts +2 -2
- package/dist/mq-documents.js +1 -1
- package/dist/mq-google-pay-checkout.d.ts +1 -1
- package/dist/mq-google-pay-checkout.js +1 -1
- package/dist/mq-immediate-videocall-checkout.d.ts +1 -1
- package/dist/mq-immediate-videocall-checkout.js +1 -1
- package/dist/mq-my-appointments.d.ts +3 -3
- package/dist/mq-my-appointments.js +1 -1
- package/dist/mq-next-appointments.d.ts +3 -3
- package/dist/mq-next-appointments.js +1 -1
- package/dist/mq-payment-poller.d.ts +1 -1
- package/dist/mq-payment-poller.js +1 -1
- package/dist/mq-recent-documents.d.ts +2 -2
- package/dist/mq-recent-documents.js +1 -1
- package/dist/mq-schedule-success.d.ts +2 -2
- package/dist/mq-schedule-success.js +1 -1
- package/dist/mq-schedule.d.ts +7 -5
- package/dist/mq-schedule.js +1 -1
- package/dist/mq-support-chat.d.ts +2 -2
- package/dist/mq-support-chat.js +1 -1
- package/dist/mq-terms-and-conditions.d.ts +2 -2
- package/dist/mq-terms-and-conditions.js +1 -1
- package/dist/mq-videocall.d.ts +3 -3
- package/dist/mq-videocall.js +1 -1
- package/dist/react/mq-api-client-provider.d.ts +1 -1
- package/dist/react/mq-api-client-provider.js +1 -1
- package/dist/react/mq-apple-pay-checkout.d.ts +1 -1
- package/dist/react/mq-apple-pay-checkout.js +1 -1
- package/dist/react/mq-appointment-checkout.d.ts +2 -1
- package/dist/react/mq-appointment-checkout.js +1 -1
- package/dist/react/mq-appointment-documentation.d.ts +3 -3
- package/dist/react/mq-appointment-documentation.js +1 -1
- package/dist/react/mq-chat-room.d.ts +2 -2
- package/dist/react/mq-chat-room.js +1 -1
- package/dist/react/mq-checkout.d.ts +1 -1
- package/dist/react/mq-checkout.js +1 -1
- package/dist/react/mq-dashboard.d.ts +4 -4
- package/dist/react/mq-dashboard.js +1 -1
- package/dist/react/mq-documents-page.d.ts +2 -2
- package/dist/react/mq-documents-page.js +1 -1
- package/dist/react/mq-documents.d.ts +2 -2
- package/dist/react/mq-documents.js +1 -1
- package/dist/react/mq-google-pay-checkout.d.ts +1 -1
- package/dist/react/mq-google-pay-checkout.js +1 -1
- package/dist/react/mq-immediate-videocall-checkout.d.ts +1 -1
- package/dist/react/mq-immediate-videocall-checkout.js +1 -1
- package/dist/react/mq-my-appointments.d.ts +3 -3
- package/dist/react/mq-my-appointments.js +1 -1
- package/dist/react/mq-next-appointments.d.ts +3 -3
- package/dist/react/mq-next-appointments.js +1 -1
- package/dist/react/mq-payment-poller.d.ts +1 -1
- package/dist/react/mq-payment-poller.js +1 -1
- package/dist/react/mq-recent-documents.d.ts +2 -2
- package/dist/react/mq-recent-documents.js +1 -1
- package/dist/react/mq-schedule-success.d.ts +2 -2
- package/dist/react/mq-schedule-success.js +1 -1
- package/dist/react/mq-schedule.d.ts +1 -1
- package/dist/react/mq-schedule.js +1 -1
- package/dist/react/mq-support-chat.d.ts +2 -2
- package/dist/react/mq-support-chat.js +1 -1
- package/dist/react/mq-terms-and-conditions.d.ts +2 -2
- package/dist/react/mq-terms-and-conditions.js +1 -1
- package/dist/react/mq-videocall.d.ts +3 -3
- package/dist/react/mq-videocall.js +1 -1
- package/package.json +1 -1
- package/dist/chunks/api-chat-client-BhxUWldC.js +0 -1
- package/dist/chunks/ca_ES-OHfUU0MP.js +0 -1
- package/dist/chunks/de_DE-BTPGM932.js +0 -1
- package/dist/chunks/en_US-C2zY9QiH.js +0 -1
- package/dist/chunks/pt_PT-DUs_Ox73.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getLocale as t,isValidLocale as e,setLocale as i,initLocalization as n}from"./i18n.js";export{A as AppointmentDetails}from"./chunks/appointment-details-BriSqXWj.js";import{_ as a,c as o}from"./chunks/custom-element-D2ziPxYE.js";import{m as s}from"./chunks/runtime-Bg1WXVCx.js";import{l as r}from"./chunks/localized-decorator-BlOuLhym.js";import{a as p,i as l,x as c,E as d}from"./chunks/lit-element-DiWJYFwC.js";import{n as m}from"./chunks/property-scuRaFcM.js";import{e as h}from"./chunks/external-CJj32K_p.js";import"./ui/mq-tabs.js";import{c as u}from"./chunks/consume-CovVqBjI.js";import{A as v}from"./chunks/api-client-context-V1UAGtKW.js";import{A as g,e as b,d as f}from"./chunks/api-chat-client-BhxUWldC.js";import"./ui/mq-button.js";import{g as y,a as x}from"./chunks/next-appointment-card-KXLkEJDg.js";import{Q as k}from"./chunks/query-controller-BlO1Ax65.js";import{g as $}from"./chunks/get-organization-setup-query-Dr1cXnHl.js";import{t as q,j as C,k as j,q as w,f as H,s as V,g as R,a as M,i as S}from"./chunks/telemetry-client-DEIuDZfA.js";import{g as E}from"./chunks/get-schedule-services-query-Fzvb9ug9.js";import{g as D}from"./chunks/chunk-Y4EKUX25-QqMl3eiq.js";import{r as z}from"./chunks/state-LQivXIgA.js";import"./ui/mq-card.js";export{P as ProfessionalOverview}from"./chunks/professional-overview-B4E05rLd.js";import{l as O}from"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import"./mq-chat-room.js";import"./ui/mq-floating-bubble.js";import{e as I}from"./chunks/class-map-Co76I6aw.js";import{MqAppointmentRescheduleEvent as N,MqAppointmentBookEvent as U,MqAppointmentJoinVideocallEvent as _,MqAppointmentViewDocumentationEvent as T}from"./events.js";import{messageBubbleIcon as Z}from"./ui/icons/message-bubble-icon.js";import{videoIcon as Q}from"./ui/icons/video-icon.js";import"./ui/mq-unread-badge.js";import{c as B}from"./chunks/refund-cancel-policy-QG_OE6g5.js";import{toast as G}from"./ui/mq-toast.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/chunk-2TKJJNS7-BGwxtEg7.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/addSeconds-ofMnxlgT.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/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/directive-2EDmOukv.js";import"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import"./ui/icons/dots-horizontal-icon.js";import"./ui/mq-dialog.js";import"./ui/icons/x-icon.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/mutation-controller-CR2qcqhH.js";import"./chunks/price-DU3YLTpk.js";import"./chunks/query-Cjvi4_dT.js";import"./ui/icons/chevron-down-icon.js";import"./ui/mq-text-button.js";import"./ui/mq-avatar.js";import"./chunks/provide-BwI4DDGF.js";import"./theme.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"./ui/icons/check-double-icon.js";import"./ui/icons/check-icon.js";import"./chunks/chunk-YTQUGGS3-DmCGIoFy.js";const J=h(["next","history"]).enum;class MqMyAppointmentsSelectEvent extends Event{static{this.eventName="ontabchange"}constructor(t){super(MqMyAppointmentsSelectEvent.eventName,{bubbles:!0,composed:!0}),this.value=t}}let F=class AppointmentCardSkeleton extends p{static{this.styles=l`div{border-radius:var(--border-radius-md);background:color-mix(in srgb,var(--color-neutrals-background-disabled) 50%,#fff 50%);height:337px;width:100%}`}render(){return c`<div></div>`}};F=a([o("appointment-card-skeleton")],F);let L=class EmptyState extends p{static{this.styles=l`.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 c`<div class="container"><div class="card">${function({color:t="currentColor"}){return c`<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}">${s("Pedir cita")}</mq-button></div></div>`}};a([m({type:String})],L.prototype,"title",void 0),a([m({type:String})],L.prototype,"description",void 0),L=a([o("empty-state")],L);const W=[g.pending,g.accepted],K=l`.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 p{constructor(){super(...arguments),this.getAppointmentsQuery=new k(this,()=>y(this.apiClient,{status:W,order:{field:"starts_at",direction:"asc"}}))}static{this.styles=K}render(){return this.getAppointmentsQuery.render({complete:t=>c`${t.data.length>0?c`<div class="appointments-list">${t.data.map(t=>c`<div class="card"><next-appointment-card .appointmentResource="${t}"></next-appointment-card></div>`)}</div>`:c`<empty-state title="${s("No tienes próximas citas")}" description="${s("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:()=>c`<div class="appointments-list"><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton></div>`})}};a([u({context:v,subscribe:!0})],X.prototype,"apiClient",void 0),X=a([r(),o("next-appointments-tab")],X);let Y=class AppointmentCardActions extends p{constructor(){super(...arguments),this.variant="next",this.isVideocall=!1,this.hasChatSupport=!1,this.unreadCount=0,this.isModifyUnavailable=!1,this.isCancelUnavailable=!1,this.hasNoSlots=!1,this.modifyUnavailableMessage="",this.cancelUnavailableMessage="",this.repeatTarget=null,this.professionalHash="",this.openDialog=null,this.handleModifyClick=()=>{this.isModifyUnavailable?this.openDialog="modify":(q.track(C(this.patientHash,this.appointmentId)),this.dispatchEvent(new N({appointmentId:this.appointmentId})))},this.handleCancelClick=()=>{this.isCancelUnavailable?this.openDialog="cancel":(q.track(j(this.patientHash,this.appointmentId)),this.dispatchEvent(new CustomEvent("request-cancel",{bubbles:!0,composed:!0})))},this.handleRepeatClick=()=>{this.hasNoSlots?this.openDialog="repeat-no-slots":this.repeatTarget?(q.track(w(this.patientHash,this.appointmentId)),this.dispatchEvent(new U({specialty:this.repeatTarget.specialty,service:this.repeatTarget.service,professional:this.professionalHash}))):this.openDialog="repeat-error"},this.handleDialogClose=()=>{this.openDialog=null}}static{this.styles=l`:host{display:contents}.actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-2)}.actions.next{flex-direction:column}.actions-secondary{display:flex;gap:var(--sp-3)}.actions mq-button{flex:1}`}get patientHash(){return this.loginToken.patient.hash}renderChatButton(){return c`<mq-button variant="primary" fullwidth noPadding @click="${()=>{this.dispatchEvent(new CustomEvent("toggle-chat",{bubbles:!0,composed:!0}))}}">${Z({size:24})} ${s("Chat")} ${this.unreadCount>0?c`<mq-unread-badge></mq-unread-badge>`:d}</mq-button>`}renderNextActions(){return c`${this.isVideocall?c`<mq-button variant="outline" fullwidth noPadding @click="${()=>{q.track(H(this.patientHash,this.appointmentId)),this.dispatchEvent(new _({appointmentId:this.appointmentId}))}}">${Q({size:24})} ${s("Ir a videollamada")}</mq-button>`:d}<div class="actions-secondary">${this.hasChatSupport?this.renderChatButton():d}<mq-button variant="outline" fullwidth noPadding @click="${this.handleModifyClick}">${s("Modificar")}</mq-button><mq-button variant="outline-negative" fullwidth noPadding @click="${this.handleCancelClick}">${s("Cancelar")}</mq-button></div>`}renderHistoryActions(){return c`${this.hasChatSupport?this.renderChatButton():d}<mq-button variant="outline" fullwidth noPadding @click="${()=>{q.track(V(this.patientHash,this.appointmentId)),this.dispatchEvent(new T({appointmentId:this.appointmentId}))}}">${s("Documentos")}</mq-button><mq-button variant="outline" fullwidth noPadding @click="${this.handleRepeatClick}">${s("Repetir")}</mq-button>`}render(){return c`<div class="${I({actions:!0,next:"next"===this.variant})}">${"next"===this.variant?this.renderNextActions():this.renderHistoryActions()}</div><appointment-action-unavailable-dialog .open="${"modify"===this.openDialog}" .heading="${s("Modificar cita")}" .message="${this.modifyUnavailableMessage}" @close="${this.handleDialogClose}"></appointment-action-unavailable-dialog><appointment-action-unavailable-dialog .open="${"cancel"===this.openDialog}" .heading="${s("Anular cita")}" .message="${this.cancelUnavailableMessage}" @close="${this.handleDialogClose}"></appointment-action-unavailable-dialog><appointment-action-unavailable-dialog .open="${"repeat-no-slots"===this.openDialog}" .heading="${s("Repetir cita")}" .message="${s("Este profesional no tiene horarios disponibles")}" @close="${this.handleDialogClose}"></appointment-action-unavailable-dialog><appointment-action-unavailable-dialog .open="${"repeat-error"===this.openDialog}" .heading="${s("Repetir cita")}" .message="${s("Lo sentimos, no hemos podido repetir tu cita. Por favor, contacta con soporte.")}" @close="${this.handleDialogClose}"></appointment-action-unavailable-dialog>`}};a([u({context:O})],Y.prototype,"loginToken",void 0),a([m({type:String})],Y.prototype,"variant",void 0),a([m({type:String})],Y.prototype,"appointmentId",void 0),a([m({type:Boolean})],Y.prototype,"isVideocall",void 0),a([m({type:Boolean})],Y.prototype,"hasChatSupport",void 0),a([m({type:Number})],Y.prototype,"unreadCount",void 0),a([m({type:Boolean})],Y.prototype,"isModifyUnavailable",void 0),a([m({type:Boolean})],Y.prototype,"isCancelUnavailable",void 0),a([m({type:Boolean})],Y.prototype,"hasNoSlots",void 0),a([m({type:String})],Y.prototype,"modifyUnavailableMessage",void 0),a([m({type:String})],Y.prototype,"cancelUnavailableMessage",void 0),a([m({type:Object})],Y.prototype,"repeatTarget",void 0),a([m({type:String})],Y.prototype,"professionalHash",void 0),a([z()],Y.prototype,"openDialog",void 0),Y=a([r(),o("appointment-card-actions")],Y);let tt=class AppointmentCard extends p{constructor(){super(...arguments),this.variant="next",this.detailsVariant="wide",this.isChatOpen=!1,this.isCancelDialogOpen=!1,this.unreadQuery=new k(this,()=>D(this.apiClient,{roomId:this.appointmentResource?.room?.id})),this.getOrganizationSpecialtiesQuery=new k(this,()=>R(this.apiClient,{enabled:!!this.appointmentResource?.speciality?.id})),this.getOrganizationSetupQuery=new k(this,()=>$(this.apiClient)),this.getScheduleServicesQuery=new k(this,()=>E(this.apiClient))}static{this.styles=l`:host{display:flex}.card{width:100%;padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4);justify-content:space-between}.card-top-content{display:flex;flex-direction:column;gap:var(--sp-6)}.see-details{color:var(--color-primary-link-default);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-bold)}.see-details:hover{text-decoration:underline}.chevron-down{width:16px;height:16px;transition:transform .2s ease}.appointment-details{display:flex;flex-direction:column;gap:12px}.clock-icon-wrapper{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.clock-icon-wrapper svg{width:100%;height:100%}.appointment-type{display:flex;align-items:center;gap:12px;font-size:18px;color:#2c3e50}.actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-2)}.actions.next{flex-direction:column}.actions-secondary{display:flex;gap:var(--sp-3)}.actions mq-button{flex:1}`}render(){const e=this.appointmentResource.appointment.channel===b.videocall,i=this.appointmentResource.appointment.channel===b.phonecall,n=!0===this.appointmentResource.appointment.has_chat_in_appointment,a=(e||i)&&n,o=t(),r=f(this.appointmentResource.appointment.expires_at),p=0===this.appointmentResource.slots.length,l=this.getOrganizationSetupQuery.result?.data?.appointments?.seconds_before_start_to_refund_on_cancel,m=B({startsAtIso:this.appointmentResource.appointment.starts_at,refundPolicySeconds:l}),h=r||p||!m,u=r||!m,v=x({action:"modify",refundPolicySeconds:l}),g=x({action:"cancel",refundPolicySeconds:l}),y=this.getOrganizationSpecialtiesQuery.result?.data?.find(t=>Number(t.id)===Number(this.appointmentResource.speciality.id)),k=M(y?.code??"",o,y?.name??this.appointmentResource.speciality.name),$=this.getScheduleServicesQuery.result?.data?.find(t=>t.id===this.appointmentResource.appointment.service_id)?.code,C=y?.code&&$?{specialty:y.code,service:$}:null;return c`<mq-card class="card" roundness="md"><div class="card-top-content"><professional-overview .specialtyName="${k??""}" .collegiateNumber="${this.appointmentResource.professional.collegiate_number??void 0}" .description="${this.appointmentResource.professional.description??""}" .languages="${this.appointmentResource.professional.languages}" .avatar="${this.appointmentResource.professional.avatar??""}" .name="${this.appointmentResource.professional.name}"></professional-overview><appointment-details .startsAt="${this.appointmentResource.appointment.starts_at}" .duration="${this.appointmentResource.appointment.duration}" .channel="${this.appointmentResource.appointment.channel}" .timezone="${this.loginToken?.patient?.timezone}" variant="${this.detailsVariant}"></appointment-details></div><appointment-card-actions .variant="${this.variant}" .appointmentId="${this.appointmentResource.appointment.id??""}" .isVideocall="${e}" .hasChatSupport="${a}" .unreadCount="${this.unreadQuery.result?.data?.unread_count??0}" .isModifyUnavailable="${h}" .isCancelUnavailable="${u}" .hasNoSlots="${p}" .modifyUnavailableMessage="${v}" .cancelUnavailableMessage="${g}" .repeatTarget="${C}" .professionalHash="${this.appointmentResource.professional.hash}" @toggle-chat="${()=>{this.isChatOpen=!this.isChatOpen,this.isChatOpen&&q.track(S(this.loginToken.patient.hash,this.appointmentResource.appointment.id??""))}}" @request-cancel="${()=>{this.isCancelDialogOpen=!0}}"></appointment-card-actions><mq-floating-bubble ?dismissable="${!1}" .open="${this.isChatOpen}" @mq-close="${()=>{this.isChatOpen=!1}}" hideCloseButton>${this.isChatOpen?c`<mq-chat-room slot="content" .consultationId="${this.appointmentResource.appointment.id}" consultation-type="appointment" token="${this.loginToken.access_token}" .roomId="${this.appointmentResource.room.id}" .professionalHash="${this.appointmentResource.professional.hash}" @mq-chat-room-close="${()=>{this.isChatOpen=!1}}" ?readonly="${r}"></mq-chat-room>`:d}</mq-floating-bubble><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,G.success(s("Consulta anulada correctamente")),this.dispatchEvent(new CustomEvent("appointment-cancel-confirmed",{bubbles:!0,composed:!0,detail:{id:this.appointmentResource.appointment.id}}))}}"></cancel-appointment-confirmation-dialog></mq-card>`}};a([u({context:v,subscribe:!0})],tt.prototype,"apiClient",void 0),a([m({type:Object})],tt.prototype,"appointmentResource",void 0),a([m({type:Number})],tt.prototype,"specialtyId",void 0),a([m({type:String})],tt.prototype,"variant",void 0),a([m({type:String})],tt.prototype,"detailsVariant",void 0),a([u({context:O})],tt.prototype,"loginToken",void 0),a([z()],tt.prototype,"isChatOpen",void 0),a([z()],tt.prototype,"isCancelDialogOpen",void 0),tt=a([r(),o("appointment-card")],tt);const et=[g.finished,g.reporting];let it=class AppointmentsHistoryTab extends p{constructor(){super(...arguments),this.getAppointmentsQuery=new k(this,()=>y(this.apiClient,{status:et,order:{field:"starts_at",direction:"desc"}}))}static{this.styles=l`.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=>c`${t.data.length>0?c`<div class="appointments-list">${t.data.map(t=>c`<appointment-card .appointmentResource="${t}" .specialtyId="${t.speciality?.id}" variant="history"></appointment-card>`)}</div>`:c`<empty-state title="${s("No tienes citas en el historial")}" description="${s("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:()=>c`<div class="appointments-list"><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton></div>`})}};a([u({context:v,subscribe:!0})],it.prototype,"apiClient",void 0),it=a([r(),o("appointments-history-tab")],it);const nt=l`.container{display:flex;flex-direction:column;gap:var(--size-3)}`;let at=class MqMyAppointments extends p{constructor(){super(...arguments),this.tab=J.next}static{this.styles=nt}willUpdate(t){t.has("locale")&&this.locale&&e(this.locale)&&i(this.locale)}handleSelect(t){this.dispatchEvent(new MqMyAppointmentsSelectEvent(t.value))}render(){return c`<div class="container"><mq-tabs .value="${this.tab}" @onvaluechange="${this.handleSelect}"><mq-tabs-list label="${s("Mis citas")}"><mq-tabs-trigger value="${J.next}">${s("Próximas citas")}</mq-tabs-trigger><mq-tabs-trigger value="${J.history}">${s("Histórico")}</mq-tabs-trigger></mq-tabs-list><mq-tabs-content value="${J.next}"><next-appointments-tab></next-appointments-tab></mq-tabs-content><mq-tabs-content value="${J.history}"><appointments-history-tab></appointments-history-tab></mq-tabs-content></mq-tabs></div>`}};a([m({type:String,reflect:!0})],at.prototype,"tab",void 0),a([m({type:String,attribute:"locale"})],at.prototype,"locale",void 0),at=a([r(),o("mq-my-appointments")],at);const ot=l`: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 st=class RequestAppointmentCta extends p{static{this.styles=ot}handleRequestAppointment(){this.dispatchEvent(new RequestAppointmentEvent)}render(){return c`<div class="request-appointment-cta"><div class="title-body"><h2 class="title">${s("Nueva cita de especialidades digitales")}</h2><p class="subtitle">${s("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">${s("Pedir cita")}</span> <span class="button-text-desktop">${s("Pedir una nueva cita")}</span></mq-button></div>`}};st=a([r(),o("request-appointment-cta")],st),n();export{at as MqMyAppointments,MqMyAppointmentsSelectEvent,st as RequestAppointmentCta,RequestAppointmentEvent};
|
|
1
|
+
import{getLocale as t,isValidLocale as e,setLocale as i,initLocalization as n}from"./i18n.js";export{A as AppointmentDetails}from"./chunks/appointment-details-BriSqXWj.js";import{_ as a,c as o}from"./chunks/custom-element-D2ziPxYE.js";import{m as s}from"./chunks/runtime-Bg1WXVCx.js";import{l as r}from"./chunks/localized-decorator-BlOuLhym.js";import{a as p,i as l,x as c,E as d}from"./chunks/lit-element-DiWJYFwC.js";import{n as m}from"./chunks/property-scuRaFcM.js";import{e as h}from"./chunks/external-CJj32K_p.js";import"./ui/mq-tabs.js";import{c as u}from"./chunks/consume-CovVqBjI.js";import{A as v}from"./chunks/api-client-context-V1UAGtKW.js";import{A as g,e as b,d as f}from"./chunks/api-chat-client-CzlZkbW1.js";import"./ui/mq-button.js";import{g as y,a as x}from"./chunks/next-appointment-card-fL1VemkX.js";import{Q as k}from"./chunks/query-controller-BlO1Ax65.js";import{g as $}from"./chunks/get-organization-setup-query-Dr1cXnHl.js";import{t as q,j as C,k as j,q as w,f as H,s as V,g as R,a as M,i as S}from"./chunks/telemetry-client-DEIuDZfA.js";import{g as E}from"./chunks/get-schedule-services-query-Fzvb9ug9.js";import{g as D}from"./chunks/chunk-Y4EKUX25-QqMl3eiq.js";import{r as z}from"./chunks/state-LQivXIgA.js";import"./ui/mq-card.js";export{P as ProfessionalOverview}from"./chunks/professional-overview-B4E05rLd.js";import{l as O}from"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import"./mq-chat-room.js";import"./ui/mq-floating-bubble.js";import{e as I}from"./chunks/class-map-Co76I6aw.js";import{MqAppointmentRescheduleEvent as N,MqAppointmentBookEvent as U,MqAppointmentJoinVideocallEvent as _,MqAppointmentViewDocumentationEvent as T}from"./events.js";import{messageBubbleIcon as Z}from"./ui/icons/message-bubble-icon.js";import{videoIcon as Q}from"./ui/icons/video-icon.js";import"./ui/mq-unread-badge.js";import{c as B}from"./chunks/refund-cancel-policy-QG_OE6g5.js";import{toast as G}from"./ui/mq-toast.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/chunk-2TKJJNS7-BGwxtEg7.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/addSeconds-ofMnxlgT.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/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/directive-2EDmOukv.js";import"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import"./ui/icons/dots-horizontal-icon.js";import"./ui/mq-dialog.js";import"./ui/icons/x-icon.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/mutation-controller-CR2qcqhH.js";import"./chunks/price-DU3YLTpk.js";import"./chunks/query-Cjvi4_dT.js";import"./ui/icons/chevron-down-icon.js";import"./ui/mq-text-button.js";import"./ui/mq-avatar.js";import"./chunks/provide-BwI4DDGF.js";import"./theme.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"./ui/icons/check-double-icon.js";import"./ui/icons/check-icon.js";import"./chunks/chunk-YTQUGGS3-DmCGIoFy.js";const J=h(["next","history"]).enum;class MqMyAppointmentsSelectEvent extends Event{static{this.eventName="ontabchange"}constructor(t){super(MqMyAppointmentsSelectEvent.eventName,{bubbles:!0,composed:!0}),this.value=t}}let F=class AppointmentCardSkeleton extends p{static{this.styles=l`div{border-radius:var(--border-radius-md);background:color-mix(in srgb,var(--color-neutrals-background-disabled) 50%,#fff 50%);height:337px;width:100%}`}render(){return c`<div></div>`}};F=a([o("appointment-card-skeleton")],F);let L=class EmptyState extends p{static{this.styles=l`.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 c`<div class="container"><div class="card">${function({color:t="currentColor"}){return c`<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}">${s("Pedir cita")}</mq-button></div></div>`}};a([m({type:String})],L.prototype,"title",void 0),a([m({type:String})],L.prototype,"description",void 0),L=a([o("empty-state")],L);const W=[g.pending,g.accepted],K=l`.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 p{constructor(){super(...arguments),this.getAppointmentsQuery=new k(this,()=>y(this.apiClient,{status:W,order:{field:"starts_at",direction:"asc"}}))}static{this.styles=K}render(){return this.getAppointmentsQuery.render({complete:t=>c`${t.data.length>0?c`<div class="appointments-list">${t.data.map(t=>c`<div class="card"><next-appointment-card .appointmentResource="${t}"></next-appointment-card></div>`)}</div>`:c`<empty-state title="${s("No tienes próximas citas")}" description="${s("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:()=>c`<div class="appointments-list"><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton></div>`})}};a([u({context:v,subscribe:!0})],X.prototype,"apiClient",void 0),X=a([r(),o("next-appointments-tab")],X);let Y=class AppointmentCardActions extends p{constructor(){super(...arguments),this.variant="next",this.isVideocall=!1,this.hasChatSupport=!1,this.unreadCount=0,this.isModifyUnavailable=!1,this.isCancelUnavailable=!1,this.hasNoSlots=!1,this.modifyUnavailableMessage="",this.cancelUnavailableMessage="",this.repeatTarget=null,this.professionalHash="",this.openDialog=null,this.handleModifyClick=()=>{this.isModifyUnavailable?this.openDialog="modify":(q.track(C(this.patientHash,this.appointmentId)),this.dispatchEvent(new N({appointmentId:this.appointmentId})))},this.handleCancelClick=()=>{this.isCancelUnavailable?this.openDialog="cancel":(q.track(j(this.patientHash,this.appointmentId)),this.dispatchEvent(new CustomEvent("request-cancel",{bubbles:!0,composed:!0})))},this.handleRepeatClick=()=>{this.hasNoSlots?this.openDialog="repeat-no-slots":this.repeatTarget?(q.track(w(this.patientHash,this.appointmentId)),this.dispatchEvent(new U({specialty:this.repeatTarget.specialty,service:this.repeatTarget.service,professional:this.professionalHash}))):this.openDialog="repeat-error"},this.handleDialogClose=()=>{this.openDialog=null}}static{this.styles=l`:host{display:contents}.actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-2)}.actions.next{flex-direction:column}.actions-secondary{display:flex;gap:var(--sp-3)}.actions mq-button{flex:1}`}get patientHash(){return this.loginToken.patient.hash}renderChatButton(){return c`<mq-button variant="primary" fullwidth noPadding @click="${()=>{this.dispatchEvent(new CustomEvent("toggle-chat",{bubbles:!0,composed:!0}))}}">${Z({size:24})} ${s("Chat")} ${this.unreadCount>0?c`<mq-unread-badge></mq-unread-badge>`:d}</mq-button>`}renderNextActions(){return c`${this.isVideocall?c`<mq-button variant="outline" fullwidth noPadding @click="${()=>{q.track(H(this.patientHash,this.appointmentId)),this.dispatchEvent(new _({appointmentId:this.appointmentId}))}}">${Q({size:24})} ${s("Ir a videollamada")}</mq-button>`:d}<div class="actions-secondary">${this.hasChatSupport?this.renderChatButton():d}<mq-button variant="outline" fullwidth noPadding @click="${this.handleModifyClick}">${s("Modificar")}</mq-button><mq-button variant="outline-negative" fullwidth noPadding @click="${this.handleCancelClick}">${s("Cancelar")}</mq-button></div>`}renderHistoryActions(){return c`${this.hasChatSupport?this.renderChatButton():d}<mq-button variant="outline" fullwidth noPadding @click="${()=>{q.track(V(this.patientHash,this.appointmentId)),this.dispatchEvent(new T({appointmentId:this.appointmentId}))}}">${s("Documentos")}</mq-button><mq-button variant="outline" fullwidth noPadding @click="${this.handleRepeatClick}">${s("Repetir")}</mq-button>`}render(){return c`<div class="${I({actions:!0,next:"next"===this.variant})}">${"next"===this.variant?this.renderNextActions():this.renderHistoryActions()}</div><appointment-action-unavailable-dialog .open="${"modify"===this.openDialog}" .heading="${s("Modificar cita")}" .message="${this.modifyUnavailableMessage}" @close="${this.handleDialogClose}"></appointment-action-unavailable-dialog><appointment-action-unavailable-dialog .open="${"cancel"===this.openDialog}" .heading="${s("Anular cita")}" .message="${this.cancelUnavailableMessage}" @close="${this.handleDialogClose}"></appointment-action-unavailable-dialog><appointment-action-unavailable-dialog .open="${"repeat-no-slots"===this.openDialog}" .heading="${s("Repetir cita")}" .message="${s("Este profesional no tiene horarios disponibles")}" @close="${this.handleDialogClose}"></appointment-action-unavailable-dialog><appointment-action-unavailable-dialog .open="${"repeat-error"===this.openDialog}" .heading="${s("Repetir cita")}" .message="${s("Lo sentimos, no hemos podido repetir tu cita. Por favor, contacta con soporte.")}" @close="${this.handleDialogClose}"></appointment-action-unavailable-dialog>`}};a([u({context:O})],Y.prototype,"loginToken",void 0),a([m({type:String})],Y.prototype,"variant",void 0),a([m({type:String})],Y.prototype,"appointmentId",void 0),a([m({type:Boolean})],Y.prototype,"isVideocall",void 0),a([m({type:Boolean})],Y.prototype,"hasChatSupport",void 0),a([m({type:Number})],Y.prototype,"unreadCount",void 0),a([m({type:Boolean})],Y.prototype,"isModifyUnavailable",void 0),a([m({type:Boolean})],Y.prototype,"isCancelUnavailable",void 0),a([m({type:Boolean})],Y.prototype,"hasNoSlots",void 0),a([m({type:String})],Y.prototype,"modifyUnavailableMessage",void 0),a([m({type:String})],Y.prototype,"cancelUnavailableMessage",void 0),a([m({type:Object})],Y.prototype,"repeatTarget",void 0),a([m({type:String})],Y.prototype,"professionalHash",void 0),a([z()],Y.prototype,"openDialog",void 0),Y=a([r(),o("appointment-card-actions")],Y);let tt=class AppointmentCard extends p{constructor(){super(...arguments),this.variant="next",this.detailsVariant="wide",this.isChatOpen=!1,this.isCancelDialogOpen=!1,this.unreadQuery=new k(this,()=>D(this.apiClient,{roomId:this.appointmentResource?.room?.id})),this.getOrganizationSpecialtiesQuery=new k(this,()=>R(this.apiClient,{enabled:!!this.appointmentResource?.speciality?.id})),this.getOrganizationSetupQuery=new k(this,()=>$(this.apiClient)),this.getScheduleServicesQuery=new k(this,()=>E(this.apiClient))}static{this.styles=l`:host{display:flex}.card{width:100%;padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4);justify-content:space-between}.card-top-content{display:flex;flex-direction:column;gap:var(--sp-6)}.see-details{color:var(--color-primary-link-default);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-bold)}.see-details:hover{text-decoration:underline}.chevron-down{width:16px;height:16px;transition:transform .2s ease}.appointment-details{display:flex;flex-direction:column;gap:12px}.clock-icon-wrapper{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.clock-icon-wrapper svg{width:100%;height:100%}.appointment-type{display:flex;align-items:center;gap:12px;font-size:18px;color:#2c3e50}.actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-2)}.actions.next{flex-direction:column}.actions-secondary{display:flex;gap:var(--sp-3)}.actions mq-button{flex:1}`}render(){const e=this.appointmentResource.appointment.channel===b.videocall,i=this.appointmentResource.appointment.channel===b.phonecall,n=!0===this.appointmentResource.appointment.has_chat_in_appointment,a=(e||i)&&n,o=t(),r=f(this.appointmentResource.appointment.expires_at),p=0===this.appointmentResource.slots.length,l=this.getOrganizationSetupQuery.result?.data?.appointments?.seconds_before_start_to_refund_on_cancel,m=B({startsAtIso:this.appointmentResource.appointment.starts_at,refundPolicySeconds:l}),h=r||p||!m,u=r||!m,v=x({action:"modify",refundPolicySeconds:l}),g=x({action:"cancel",refundPolicySeconds:l}),y=this.getOrganizationSpecialtiesQuery.result?.data?.find(t=>Number(t.id)===Number(this.appointmentResource.speciality.id)),k=M(y?.code??"",o,y?.name??this.appointmentResource.speciality.name),$=this.getScheduleServicesQuery.result?.data?.find(t=>t.id===this.appointmentResource.appointment.service_id)?.code,C=y?.code&&$?{specialty:y.code,service:$}:null;return c`<mq-card class="card" roundness="md"><div class="card-top-content"><professional-overview .specialtyName="${k??""}" .collegiateNumber="${this.appointmentResource.professional.collegiate_number??void 0}" .description="${this.appointmentResource.professional.description??""}" .languages="${this.appointmentResource.professional.languages}" .avatar="${this.appointmentResource.professional.avatar??""}" .name="${this.appointmentResource.professional.name}"></professional-overview><appointment-details .startsAt="${this.appointmentResource.appointment.starts_at}" .duration="${this.appointmentResource.appointment.duration}" .channel="${this.appointmentResource.appointment.channel}" .timezone="${this.loginToken?.patient?.timezone}" variant="${this.detailsVariant}"></appointment-details></div><appointment-card-actions .variant="${this.variant}" .appointmentId="${this.appointmentResource.appointment.id??""}" .isVideocall="${e}" .hasChatSupport="${a}" .unreadCount="${this.unreadQuery.result?.data?.unread_count??0}" .isModifyUnavailable="${h}" .isCancelUnavailable="${u}" .hasNoSlots="${p}" .modifyUnavailableMessage="${v}" .cancelUnavailableMessage="${g}" .repeatTarget="${C}" .professionalHash="${this.appointmentResource.professional.hash}" @toggle-chat="${()=>{this.isChatOpen=!this.isChatOpen,this.isChatOpen&&q.track(S(this.loginToken.patient.hash,this.appointmentResource.appointment.id??""))}}" @request-cancel="${()=>{this.isCancelDialogOpen=!0}}"></appointment-card-actions><mq-floating-bubble ?dismissable="${!1}" .open="${this.isChatOpen}" @mq-close="${()=>{this.isChatOpen=!1}}" hideCloseButton>${this.isChatOpen?c`<mq-chat-room slot="content" .consultationId="${this.appointmentResource.appointment.id}" consultation-type="appointment" token="${this.loginToken.access_token}" .roomId="${this.appointmentResource.room.id}" .professionalHash="${this.appointmentResource.professional.hash}" @mq-chat-room-close="${()=>{this.isChatOpen=!1}}" ?readonly="${r}"></mq-chat-room>`:d}</mq-floating-bubble><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,G.success(s("Consulta anulada correctamente")),this.dispatchEvent(new CustomEvent("appointment-cancel-confirmed",{bubbles:!0,composed:!0,detail:{id:this.appointmentResource.appointment.id}}))}}"></cancel-appointment-confirmation-dialog></mq-card>`}};a([u({context:v,subscribe:!0})],tt.prototype,"apiClient",void 0),a([m({type:Object})],tt.prototype,"appointmentResource",void 0),a([m({type:Number})],tt.prototype,"specialtyId",void 0),a([m({type:String})],tt.prototype,"variant",void 0),a([m({type:String})],tt.prototype,"detailsVariant",void 0),a([u({context:O})],tt.prototype,"loginToken",void 0),a([z()],tt.prototype,"isChatOpen",void 0),a([z()],tt.prototype,"isCancelDialogOpen",void 0),tt=a([r(),o("appointment-card")],tt);const et=[g.finished,g.reporting];let it=class AppointmentsHistoryTab extends p{constructor(){super(...arguments),this.getAppointmentsQuery=new k(this,()=>y(this.apiClient,{status:et,order:{field:"starts_at",direction:"desc"}}))}static{this.styles=l`.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=>c`${t.data.length>0?c`<div class="appointments-list">${t.data.map(t=>c`<appointment-card .appointmentResource="${t}" .specialtyId="${t.speciality?.id}" variant="history"></appointment-card>`)}</div>`:c`<empty-state title="${s("No tienes citas en el historial")}" description="${s("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:()=>c`<div class="appointments-list"><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton></div>`})}};a([u({context:v,subscribe:!0})],it.prototype,"apiClient",void 0),it=a([r(),o("appointments-history-tab")],it);const nt=l`.container{display:flex;flex-direction:column;gap:var(--size-3)}`;let at=class MqMyAppointments extends p{constructor(){super(...arguments),this.tab=J.next}static{this.styles=nt}willUpdate(t){t.has("locale")&&this.locale&&e(this.locale)&&i(this.locale)}handleSelect(t){this.dispatchEvent(new MqMyAppointmentsSelectEvent(t.value))}render(){return c`<div class="container"><mq-tabs .value="${this.tab}" @onvaluechange="${this.handleSelect}"><mq-tabs-list label="${s("Mis citas")}"><mq-tabs-trigger value="${J.next}">${s("Próximas citas")}</mq-tabs-trigger><mq-tabs-trigger value="${J.history}">${s("Histórico")}</mq-tabs-trigger></mq-tabs-list><mq-tabs-content value="${J.next}"><next-appointments-tab></next-appointments-tab></mq-tabs-content><mq-tabs-content value="${J.history}"><appointments-history-tab></appointments-history-tab></mq-tabs-content></mq-tabs></div>`}};a([m({type:String,reflect:!0})],at.prototype,"tab",void 0),a([m({type:String,attribute:"locale"})],at.prototype,"locale",void 0),at=a([r(),o("mq-my-appointments")],at);const ot=l`: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 st=class RequestAppointmentCta extends p{static{this.styles=ot}handleRequestAppointment(){this.dispatchEvent(new RequestAppointmentEvent)}render(){return c`<div class="request-appointment-cta"><div class="title-body"><h2 class="title">${s("Nueva cita de especialidades digitales")}</h2><p class="subtitle">${s("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">${s("Pedir cita")}</span> <span class="button-text-desktop">${s("Pedir una nueva cita")}</span></mq-button></div>`}};st=a([r(),o("request-appointment-cta")],st),n();export{at as MqMyAppointments,MqMyAppointmentsSelectEvent,st as RequestAppointmentCta,RequestAppointmentEvent};
|
|
@@ -1,17 +1,17 @@
|
|
|
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 './chunks/index.d-
|
|
4
|
+
import { M as MediquoApiChatClient } from './chunks/index.d-CRSzJK71.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/next-appointment-card-
|
|
9
|
+
import './chunks/next-appointment-card-Cd6GXAne.js';
|
|
10
10
|
export { MqAppointmentJoinVideocallEvent, MqAppointmentRescheduleEvent, MqViewAppointmentsEvent } from './events.js';
|
|
11
11
|
import 'axios';
|
|
12
12
|
import 'zod';
|
|
13
13
|
import './chunks/schemas.d-b6_AekBb.js';
|
|
14
|
-
import './chunks/mq-chat-room-
|
|
14
|
+
import './chunks/mq-chat-room-CWIDQUxq.js';
|
|
15
15
|
import './ui/mq-avatar.js';
|
|
16
16
|
import './ui/mq-button.js';
|
|
17
17
|
import './chunks/appointment.model.d-BWwBLaEL.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{initLocalization as i}from"./i18n.js";export{M as MqNextAppointments}from"./chunks/mq-next-appointments-
|
|
1
|
+
import{initLocalization as i}from"./i18n.js";export{M as MqNextAppointments}from"./chunks/mq-next-appointments-BlIFuGgO.js";export{MqAppointmentJoinVideocallEvent,MqAppointmentRescheduleEvent,MqViewAppointmentsEvent}from"./events.js";import"./chunks/runtime-Bg1WXVCx.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/external-CJj32K_p.js";import"./chunks/custom-element-D2ziPxYE.js";import"./chunks/provide-BwI4DDGF.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/consume-CovVqBjI.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/localized-decorator-BlOuLhym.js";import"./chunks/query-controller-BlO1Ax65.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/query-Cjvi4_dT.js";import"./chunks/api-client-context-V1UAGtKW.js";import"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import"./chunks/api-chat-client-CzlZkbW1.js";import"./chunks/chunk-2TKJJNS7-BGwxtEg7.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.js";import"./env.js";import"./chunks/next-appointment-card-fL1VemkX.js";import"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import"./chunks/get-organization-setup-query-Dr1cXnHl.js";import"./chunks/telemetry-client-DEIuDZfA.js";import"./chunks/chunk-Y4EKUX25-QqMl3eiq.js";import"./chunks/refund-cancel-policy-QG_OE6g5.js";import"./chunks/lit-element-DiWJYFwC.js";import"./chunks/property-scuRaFcM.js";import"./chunks/state-LQivXIgA.js";import"./ui/icons/calendar-icon.js";import"./chunks/if-defined-BYeVdwgd.js";import"./ui/icons/types.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/icons/x-icon.js";import"./ui/mq-avatar.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./ui/mq-button.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"./ui/icons/check-double-icon.js";import"./ui/icons/check-icon.js";import"./chunks/chunk-YTQUGGS3-DmCGIoFy.js";import"./chunks/mutation-controller-CR2qcqhH.js";import"./ui/mq-dialog.js";import"./chunks/price-DU3YLTpk.js";import"./chunks/professional-overview-B4E05rLd.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";import"./chunks/get-patient-profile-query-4AO6xvVn.js";import"./chunks/index-DEEAEB_4.js";import"./ui/icons/file-icon.js";import"./chunks/index-Bw-MbGKw.js";import"./ui/icons/arrow-right-icon.js";i();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as lit from 'lit';
|
|
2
2
|
import { LitElement, PropertyValues, TemplateResult } from 'lit';
|
|
3
|
-
import { M as MediquoApiChatClient } from './chunks/index.d-
|
|
3
|
+
import { M as MediquoApiChatClient } from './chunks/index.d-CRSzJK71.js';
|
|
4
4
|
import { Env } from './env.js';
|
|
5
5
|
import './ui/mq-button.js';
|
|
6
6
|
export { MqHomeEvent, MqPaymentSucceededEvent } from './events.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isValidLocale as e,setLocale as t,initLocalization as i}from"./i18n.js";import{_ as s,c as o}from"./chunks/custom-element-D2ziPxYE.js";import{e as r}from"./chunks/provide-BwI4DDGF.js";import{c as a}from"./chunks/consume-CovVqBjI.js";import{m as n}from"./chunks/runtime-Bg1WXVCx.js";import{l}from"./chunks/localized-decorator-BlOuLhym.js";import{i as d,a as c,b as p,c as u,n as h,P as m}from"./chunks/api-chat-client-
|
|
1
|
+
import{isValidLocale as e,setLocale as t,initLocalization as i}from"./i18n.js";import{_ as s,c as o}from"./chunks/custom-element-D2ziPxYE.js";import{e as r}from"./chunks/provide-BwI4DDGF.js";import{c as a}from"./chunks/consume-CovVqBjI.js";import{m as n}from"./chunks/runtime-Bg1WXVCx.js";import{l}from"./chunks/localized-decorator-BlOuLhym.js";import{i as d,a as c,b as p,c as u,n as h,P as m}from"./chunks/api-chat-client-CzlZkbW1.js";import{A as v}from"./chunks/api-client-context-V1UAGtKW.js";import{i as f,a as g,x as _}from"./chunks/lit-element-DiWJYFwC.js";import{n as y}from"./chunks/property-scuRaFcM.js";import{r as b}from"./chunks/state-LQivXIgA.js";import{setEnv as x}from"./env.js";import{MqHomeEvent as k,MqPaymentSucceededEvent as j}from"./events.js";import{spinnerIcon as w}from"./ui/icons/spinner-icon.js";import"./ui/mq-button.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-2TKJJNS7-BGwxtEg7.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.js";import"./chunks/create-context-DqP79qjF.js";import"./ui/icons/types.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./chunks/if-defined-BYeVdwgd.js";const $="support@mediquo.com",I=f`:host{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;min-height:320px;padding:var(--sp-6);box-sizing:border-box}.card{width:100%;max-width:460px;box-sizing:border-box;padding:var(--sp-10);background:var(--color-card);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg)}.verifying{display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);text-align:center}.outcome{display:flex;flex-direction:column;gap:var(--sp-4)}.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-negative);margin:0}.verifying .title{font-size:var(--text-lg);line-height:var(--text-lg--line-height);font-weight:var(--font-weight-semibold);color:var(--color-neutrals-text-default)}.message{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);color:var(--color-neutrals-text-subtle);margin:0}.support a{color:var(--color-primary-text-link);font-weight:var(--font-weight-medium);text-decoration:none}.support a:hover{text-decoration:underline}.actions{display:flex;flex-direction:column;gap:var(--sp-3);margin-top:var(--sp-2)}`;let C=class MqPaymentPoller extends g{constructor(){super(...arguments),this.timeoutMs=9e4,this._view="verifying",this._refunded=!1,this._deadline=0,this._settled=!1,this.apiClient=u(),this._onHome=()=>{this.dispatchEvent(new k)}}static{this.styles=I}willUpdate(i){i.has("env")&&this.env&&x(this.env),i.has("locale")&&this.locale&&e(this.locale)&&t(this.locale);const s=h(i,{env:this.env,apiKey:this.apiKey,token:this.token,locale:this.locale},this.inheritedApiClient);s&&(this.apiClient=s)}updated(e){e.has("sessionId")&&this._restart()}disconnectedCallback(){this._stop(),super.disconnectedCallback()}_restart(){this._stop(),this._settled=!1,this._refunded=!1,this._view="verifying",this.sessionId&&(this._deadline=Date.now()+this.timeoutMs,this._pollOnce(),this._intervalId=setInterval(()=>{this._pollOnce()},2e3))}_stop(){void 0!==this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0)}_settle(e){this._stop(),this._settled=!0,this._view=e}async _pollOnce(){const e=this.sessionId;if(this._settled||!e)return;if(Date.now()>=this._deadline)return void this._settle("timeout");let t;try{t=await this.apiClient.payments.getPaymentSession(e)}catch(t){const i=function(e){if(!d(e)||e.response?.status!==c.SlotUnavailable)return{kind:"retry"};const t=p.safeParse(e.response.data);return{kind:"unavailable",refunded:!0===t.data?.refunded}}(t);return void("unavailable"!==i.kind||this._settled||e!==this.sessionId||(this._refunded=i.refunded,this._settle("unavailable")))}return this._settled||e!==this.sessionId?void 0:t.status===m.Paid?(this._stop(),this._settled=!0,void this.dispatchEvent(new j({appointmentId:t.consultation_id,consultationType:t.consultation_type}))):t.status===m.Refunded?(this._refunded=!0,void this._settle("unavailable")):void(t.status===m.Denied&&this._settle("denied"))}_renderVerifying(){return _`<div class="card"><div class="verifying" role="status" aria-live="polite">${w({size:28,color:"var(--color-primary)"})}<p class="title">${n("Confirmando tu pago")}</p><p class="message">${n("No cierres, vuelvas atrás ni actualices la ventana; esto puede tardar unos momentos.")}</p></div></div>`}_renderOutcome(e,t){return _`<div class="card"><div class="outcome" role="alert"><p class="title">${e}</p>${t}<div class="actions"><mq-button variant="primary" size="lg" fullwidth @click="${this._onHome}">${n("Volver al inicio")}</mq-button></div></div></div>`}_renderDenied(){return this._renderOutcome(n("Tu pago no se ha completado"),_`<p class="message">${n("El pago ha sido rechazado y no hemos creado la cita. No se te ha cobrado nada: puedes volver a reservar desde el inicio.")}</p>`)}_renderUnavailable(){return this._renderOutcome(n("Ese horario ya no está disponible"),_`<p class="message">${n("Otro paciente ha reservado esa cita mientras completabas el pago, así que no hemos podido crearla.")}</p>${this._refunded?_`<p class="message">${n("Te hemos devuelto el importe automáticamente; puede tardar unos días en reflejarse en tu cuenta.")}</p>`:_`<p class="message support">${n("No hemos podido devolverte el importe automáticamente. Escríbenos y lo resolvemos:")} <a href="mailto:${$}">${$}</a></p>`}`)}_renderTimeout(){return this._renderOutcome(n("Ha ocurrido un error"),_`<p class="message">${n("No hemos podido confirmar tu pago. Por favor, inténtalo de nuevo más tarde.")}</p><p class="message support">${n("Si se te ha cobrado sin una cita confirmada, contacta con nuestro equipo en")} <a href="mailto:${$}">${$}</a></p>`)}render(){switch(this._view){case"denied":return this._renderDenied();case"unavailable":return this._renderUnavailable();case"timeout":return this._renderTimeout();default:return this._renderVerifying()}}};s([y({type:String,attribute:"session-id"})],C.prototype,"sessionId",void 0),s([y({type:String,attribute:"api-key"})],C.prototype,"apiKey",void 0),s([y({type:String,attribute:"token"})],C.prototype,"token",void 0),s([y({type:String,attribute:"locale"})],C.prototype,"locale",void 0),s([y({type:String,attribute:"env"})],C.prototype,"env",void 0),s([y({type:Number,attribute:"timeout-ms"})],C.prototype,"timeoutMs",void 0),s([b()],C.prototype,"_view",void 0),s([b()],C.prototype,"_refunded",void 0),s([a({context:v,subscribe:!0}),b()],C.prototype,"inheritedApiClient",void 0),s([r({context:v}),b()],C.prototype,"apiClient",void 0),C=s([l(),o("mq-payment-poller")],C),i();export{k as MqHomeEvent,C as MqPaymentPoller,j as MqPaymentSucceededEvent};
|
|
@@ -1,9 +1,9 @@
|
|
|
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 './chunks/index.d-
|
|
4
|
+
import { M as MediquoApiChatClient } from './chunks/index.d-CRSzJK71.js';
|
|
5
5
|
import { Env } from './env.js';
|
|
6
|
-
import './chunks/index-
|
|
6
|
+
import './chunks/index-pnQMnaEN.js';
|
|
7
7
|
import './chunks/index-DTEtqjQF.js';
|
|
8
8
|
import './chunks/index-Nf3nZ9O3.js';
|
|
9
9
|
export { DownloadFileEvent, MqViewDocumentsEvent } from './events.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{initLocalization as s}from"./i18n.js";export{M as MqRecentDocuments}from"./chunks/mq-recent-documents-
|
|
1
|
+
import{initLocalization as s}from"./i18n.js";export{M as MqRecentDocuments}from"./chunks/mq-recent-documents-D0krQAnf.js";export{DownloadFileEvent,MqViewDocumentsEvent}from"./events.js";import"./chunks/runtime-Bg1WXVCx.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/external-CJj32K_p.js";import"./chunks/custom-element-D2ziPxYE.js";import"./chunks/provide-BwI4DDGF.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/consume-CovVqBjI.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/localized-decorator-BlOuLhym.js";import"./chunks/query-controller-BlO1Ax65.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/query-Cjvi4_dT.js";import"./chunks/api-client-context-V1UAGtKW.js";import"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import"./chunks/telemetry-client-DEIuDZfA.js";import"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import"./chunks/index-M3514yfv.js";import"./chunks/lit-element-DiWJYFwC.js";import"./chunks/property-scuRaFcM.js";import"./chunks/api-chat-client-CzlZkbW1.js";import"./chunks/chunk-2TKJJNS7-BGwxtEg7.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.js";import"./env.js";import"./chunks/blob-to-base64-CUL1trde.js";import"./chunks/state-LQivXIgA.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/get-patient-profile-query-4AO6xvVn.js";import"./chunks/index-Bw-MbGKw.js";import"./ui/icons/arrow-right-icon.js";import"./chunks/index-DEEAEB_4.js";import"./ui/icons/calendar-icon.js";import"./ui/icons/file-icon.js";s();
|
|
@@ -1,13 +1,13 @@
|
|
|
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 './chunks/index.d-
|
|
4
|
+
import { M as MediquoApiChatClient } from './chunks/index.d-CRSzJK71.js';
|
|
5
5
|
import { Env } from './env.js';
|
|
6
6
|
import './ui/mq-callout.js';
|
|
7
7
|
import './ui/mq-button.js';
|
|
8
8
|
import './chunks/professional-overview-mO3tuMuH.js';
|
|
9
9
|
import './chunks/appointment-details-CVEDe_k0.js';
|
|
10
|
-
import './chunks/mq-chat-room-
|
|
10
|
+
import './chunks/mq-chat-room-CWIDQUxq.js';
|
|
11
11
|
import './ui/mq-floating-bubble.js';
|
|
12
12
|
import './ui/mq-unread-badge.js';
|
|
13
13
|
import './ui/mq-skeleton.js';
|
|
@@ -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,e as y,n as x,C as j}from"./chunks/api-chat-client-
|
|
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,e as y,n as x,C as j}from"./chunks/api-chat-client-CzlZkbW1.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-B4E05rLd.js";import"./chunks/appointment-details-BriSqXWj.js";import{Q as _}from"./chunks/query-controller-BlO1Ax65.js";import{s as S}from"./chunks/chunk-6CCJWPGL-TiaqZaPV.js";import{g as z}from"./chunks/get-appointment-query-C-gTTuiQ.js";import{g as I}from"./chunks/get-patient-profile-query-4AO6xvVn.js";import{g as A}from"./chunks/chunk-Y4EKUX25-QqMl3eiq.js";import{b as O}from"./chunks/chunk-2TKJJNS7-BGwxtEg7.js";import{calendarIcon as P}from"./ui/icons/calendar-icon.js";import{chatbubbleIcon as T}from"./ui/icons/chat-bubble-icon.js";import{videoIcon as Q}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,l as V,a as H,n as B,o as U,p as F}from"./chunks/telemetry-client-DEIuDZfA.js";import{f as G}from"./chunks/price-DU3YLTpk.js";import"./ui/mq-skeleton.js";import"./ui/mq-card.js";import{Q as K}from"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import{a as M}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 R=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 J=class MqScheduleSuccessSkeleton extends d{static{this.styles=R}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>`}};J=n([a("mq-schedule-success-skeleton")],J);const L=l`.success-title{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4)}.success-title .check{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;border-radius:50%;background:var(--color-primary-background-extraWeak);color:var(--color-primary-icon-link)}header h1{font-family:var(--font-titles);font-size:var(--text-3xl);line-height:var(--text-3xl--line-height);font-weight:var(--font-weight-semibold);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,()=>I(this.apiClient)),this.getAppointmentQuery=new _(this,()=>z(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=L}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=O(t.start_date),n=M(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"><span class="check">${w()}</span><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")}}">${P({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}))}}">${Q({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:K,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};
|
package/dist/mq-schedule.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import * as lit_html_directive_js from 'lit-html/directive.js';
|
|
|
2
2
|
import * as lit_html_directives_keyed_js from 'lit-html/directives/keyed.js';
|
|
3
3
|
import * as lit from 'lit';
|
|
4
4
|
import { LitElement, PropertyValues, TemplateResult, nothing } from 'lit';
|
|
5
|
-
import { M as MediquoApiChatClient, c as GetScheduleServicesResponse, C as CreatePaymentLinkRequest, P as PaymentProvider, d as GetProfessionalsBySpecialtyAndServiceResponse } from './chunks/index.d-
|
|
5
|
+
import { M as MediquoApiChatClient, c as GetScheduleServicesResponse, C as CreatePaymentLinkRequest, P as PaymentProvider, d as GetProfessionalsBySpecialtyAndServiceResponse } from './chunks/index.d-CRSzJK71.js';
|
|
6
6
|
import './ui/mq-button.js';
|
|
7
7
|
import { Env } from './env.js';
|
|
8
8
|
import * as lit_html from 'lit-html';
|
|
@@ -115,6 +115,7 @@ declare const ScheduleSlotSchema: z$1.ZodObject<{
|
|
|
115
115
|
} | null | undefined;
|
|
116
116
|
}>;
|
|
117
117
|
status: z$1.ZodEnum<["available", "reserved"]>;
|
|
118
|
+
payable_reference: z$1.ZodOptional<z$1.ZodNullable<z$1.ZodString>>;
|
|
118
119
|
}, "strip", z$1.ZodTypeAny, {
|
|
119
120
|
status: "available" | "reserved";
|
|
120
121
|
id: string;
|
|
@@ -137,6 +138,7 @@ declare const ScheduleSlotSchema: z$1.ZodObject<{
|
|
|
137
138
|
id: string;
|
|
138
139
|
name: string;
|
|
139
140
|
}[];
|
|
141
|
+
payable_reference?: string | null | undefined;
|
|
140
142
|
}, {
|
|
141
143
|
status: "available" | "reserved";
|
|
142
144
|
id: string;
|
|
@@ -159,6 +161,7 @@ declare const ScheduleSlotSchema: z$1.ZodObject<{
|
|
|
159
161
|
id: string;
|
|
160
162
|
name: string;
|
|
161
163
|
}[];
|
|
164
|
+
payable_reference?: string | null | undefined;
|
|
162
165
|
}>;
|
|
163
166
|
type ScheduleSlot = z$1.infer<typeof ScheduleSlotSchema>;
|
|
164
167
|
|
|
@@ -406,9 +409,6 @@ declare global {
|
|
|
406
409
|
* @fires google-pay-opened - Cancelable. Fired before the Google Pay popup opens.
|
|
407
410
|
* Call preventDefault() to open the checkout URL yourself.
|
|
408
411
|
* detail.url includes #token= (secret — do not log).
|
|
409
|
-
* @fires mq-payment-redirect - Cancelable. Fired when paying hands the user over
|
|
410
|
-
* to an off-site gateway (Stripe). Its default action is the navigation, so
|
|
411
|
-
* hosts need no listener unless they must open the URL themselves.
|
|
412
412
|
* @fires error - Fired when the polling timeout is reached
|
|
413
413
|
*/
|
|
414
414
|
declare class PaymentStep extends LitElement {
|
|
@@ -449,6 +449,8 @@ declare class PaymentStep extends LitElement {
|
|
|
449
449
|
private _pollStartTimeoutId?;
|
|
450
450
|
private _pollDeadline;
|
|
451
451
|
get isFullyDiscounted(): boolean;
|
|
452
|
+
/** Stripe checkout is hosted by the gateway but stays in the payment iframe. */
|
|
453
|
+
private get embedsHostedCheckout();
|
|
452
454
|
private createScheduleAppointment;
|
|
453
455
|
private confirmFree;
|
|
454
456
|
private _paymentAmountCents;
|
|
@@ -469,6 +471,7 @@ declare class PaymentStep extends LitElement {
|
|
|
469
471
|
private _walletReopenLinkLabel;
|
|
470
472
|
private _walletReopenAgainLabel;
|
|
471
473
|
private _onHeaderBack;
|
|
474
|
+
willUpdate(changed: PropertyValues): void;
|
|
472
475
|
updated(changed: PropertyValues): void;
|
|
473
476
|
connectedCallback(): void;
|
|
474
477
|
disconnectedCallback(): void;
|
|
@@ -567,7 +570,6 @@ declare class ProfessionalsList extends LitElement {
|
|
|
567
570
|
patient: SchedulePatient;
|
|
568
571
|
specialty_id: string | undefined;
|
|
569
572
|
service_id: string | undefined;
|
|
570
|
-
private getOrganizationSpecialtiesQuery;
|
|
571
573
|
private getScheduleServicesQuery;
|
|
572
574
|
private getProfessionalsBySpecialtyAndServiceQuery;
|
|
573
575
|
render(): typeof nothing | lit_html.TemplateResult<1> | null;
|