@mediquo/elements 0.6.2 → 0.6.4
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/documentation-view-DJCr5_MN.js +1 -0
- package/dist/env.js +1 -1
- package/dist/mq-appointment-documentation.d.ts +1 -2
- package/dist/mq-appointment-documentation.js +1 -1
- package/dist/mq-dashboard.js +1 -1
- package/dist/mq-documents.d.ts +3 -5
- package/dist/mq-documents.js +1 -1
- package/dist/mq-my-appointments.d.ts +2 -3
- package/dist/mq-my-appointments.js +1 -1
- package/dist/mq-payment-poller.d.ts +7 -0
- package/dist/mq-payment-poller.js +1 -1
- package/dist/mq-schedule-success.js +1 -1
- package/dist/mq-schedule.d.ts +2 -17
- package/dist/mq-schedule.js +1 -1
- package/dist/mq-support-chat.js +1 -1
- package/dist/mq-terms-and-conditions.js +1 -1
- package/dist/mq-videocall.d.ts +1 -1
- package/dist/mq-videocall.js +1 -1
- package/dist/react/mq-appointment-documentation.d.ts +1 -2
- package/dist/react/mq-appointment-documentation.js +1 -1
- package/dist/react/mq-chat-room.js +1 -1
- package/dist/react/mq-dashboard.js +1 -1
- package/dist/react/mq-documents-page.d.ts +1 -2
- package/dist/react/mq-documents-page.js +1 -1
- package/dist/react/mq-documents.d.ts +1 -2
- package/dist/react/mq-documents.js +1 -1
- package/dist/react/mq-my-appointments.d.ts +2 -2
- package/dist/react/mq-my-appointments.js +1 -1
- package/dist/react/mq-payment-poller.d.ts +8 -1
- package/dist/react/mq-payment-poller.js +1 -1
- package/dist/react/mq-schedule-success.js +1 -1
- package/dist/react/mq-schedule.d.ts +2 -1
- package/dist/react/mq-schedule.js +1 -1
- package/dist/react/mq-support-chat.js +1 -1
- 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/dist/ui/back-link.d.ts +3 -0
- package/dist/ui/icons/arrow-narrow-left-icon.d.ts +6 -0
- package/dist/ui/icons/arrow-narrow-left-icon.js +1 -0
- package/dist/ui/mq-button.d.ts +5 -2
- package/dist/ui/mq-button.js +1 -1
- package/dist/ui/mq-page-title.d.ts +31 -0
- package/dist/ui/mq-page-title.js +1 -0
- package/package.json +1 -1
- package/dist/chunks/documentation-view-DXSjqDwQ.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{m as i}from"./runtime-Bg1WXVCx.js";import{l as o}from"./localized-decorator-BlOuLhym.js";import{h as a,s as n}from"./task-Bj8p7kJX.js";import{a as s,C as r,b as l,i as d}from"./api-chat-client-BBL1U9EQ.js";import{t as c,d as m,a as p,b as h,c as u}from"./telemetry-client-BLJVs9me.js";import{a as g,i as f,E as v,x as y}from"./lit-element-DiWJYFwC.js";import{n as b}from"./property-scuRaFcM.js";import{getLocale as x}from"../i18n.js";import{calendarIcon as $}from"../ui/icons/calendar-icon.js";import{clockIcon as k}from"../ui/icons/clock-icon.js";import{r as w}from"./state-LQivXIgA.js";import{infoCircleOutineIcon as z}from"../ui/icons/info-circle-outine-icon.js";import"../ui/mq-button.js";import{l as q}from"./chunk-S5RWG6G2-DPesx3Od.js";import{messageBubbleIcon as j}from"../ui/icons/message-bubble-icon.js";import"../mq-chat-room.js";import"../ui/mq-floating-bubble.js";import"../ui/mq-card.js";import"../ui/mq-unread-badge.js";import{c as _}from"./consume-CovVqBjI.js";import{Q as C}from"./query-controller-BlO1Ax65.js";import{g as O}from"./chunk-GZF3YFSX-DM-GTqxg.js";import"../ui/mq-page-title.js";import"./index-KvIw19qY.js";import{M as S}from"./mutation-controller-CR2qcqhH.js";import{g as T}from"./get-organization-setup-query-BMbuRi6v.js";import{g as I,a as D}from"./i18n-formats-DYS91YEa.js";import{MqViewAppointmentsEvent as Q}from"../events.js";let E=class ChatCta extends g{constructor(){super(...arguments),this.text=i("Utiliza el chat para enviar el motivo de consulta, documentos o imágenes"),this.readonly=!1,this.isChatOpen=!1,this.unreadQuery=new C(this,()=>O(s,{roomId:this.roomId}))}static{this.styles=[f`.chat-cta{padding:var(--sp-6) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-4)}.cta-message{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-4);font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);color:var(--color-neutrals-text-default)}.cta-message svg{flex-shrink:0}mq-button svg{flex-shrink:0}mq-chat-room{height:100%}@media (min-width:768px){.chat-cta{padding:var(--sp-6)}mq-button{max-width:323px;margin:0 auto}}`]}render(){return y`<mq-card class="chat-cta" roundness="md"><div class="cta-message">${z({size:24})} <span>${this.text}</span></div><mq-button variant="primary" size="md" fullwidth @click="${()=>{this.isChatOpen=!this.isChatOpen,this.isChatOpen&&this.onOpenChat?.()}}">${j({size:24})} ${i("Chatea con el profesional")} ${(this.unreadQuery.result?.data?.unread_count??0)>0?y`<mq-unread-badge></mq-unread-badge>`:v}</mq-button></mq-card><mq-floating-bubble ?dismissable="${!1}" .open="${this.isChatOpen}" @mq-close="${()=>{this.isChatOpen=!1}}" hideCloseButton>${this.isChatOpen?y`<mq-chat-room slot="content" .consultationId="${this.consultationId}" .consultationType="${r.appointment}" token="${this.loginToken.access_token}" .roomId="${this.roomId}" .professionalHash="${this.professionalHash}" ?readonly="${this.readonly}" @mq-chat-room-close="${()=>{this.isChatOpen=!1}}"></mq-chat-room>`:v}</mq-floating-bubble>`}};t([b({type:Number})],E.prototype,"roomId",void 0),t([b({type:String})],E.prototype,"professionalHash",void 0),t([b({type:String})],E.prototype,"text",void 0),t([b({type:String})],E.prototype,"consultationId",void 0),t([b({type:Boolean,reflect:!0})],E.prototype,"readonly",void 0),t([b({attribute:!1})],E.prototype,"onOpenChat",void 0),t([_({context:q})],E.prototype,"loginToken",void 0),t([w()],E.prototype,"isChatOpen",void 0),E=t([o(),e("chat-cta")],E);let F=class PageLayout extends g{constructor(){super(...arguments),this.yCentered=!1,this.background="solid"}static{this.styles=f`:host([background=transparent]){background-color:transparent}:host([background=solid]){background-color:var(--color-background)}:host([y-centered]) div{display:grid;place-items:center}div{width:100%;max-width:1000px;padding:var(--mq-layout-padding,0);margin:0 auto;box-sizing:border-box}:host([y-centered]) div{height:100%}main{width:100%}`}render(){return y`<div><main><slot></slot></main></div>`}};t([b({type:Boolean,attribute:"y-centered"})],F.prototype,"yCentered",void 0),t([b({type:String})],F.prototype,"background",void 0),F=t([e("page-layout")],F);const B=f`mq-page-title{margin:var(--size-3) 0}.description{font-size:var(--text-sm);line-height:var(--text-sm--line-height);color:var(--color-neutrals-text-default);font-weight:var(--font-weight-normal);margin:0;margin-bottom:var(--size-5)}.professional-card{padding:var(--size-4);margin-bottom:var(--size-4)}.professional-card>:not(:first-child){margin-top:var(--size-4)}.professional-name{font-family:var(--font-titles);font-size:var(--text-lg);line-height:var(--text-lg--line-height);color:var(--color-neutrals-text-default);font-weight:var(--font-weight-bold);margin:0;margin-bottom:var(--size-1)}.professional-speciality{font-size:var(--text-base);line-height:var(--text-base--line-height);color:var(--color-neutrals-text-default);font-weight:var(--font-weight-normal);margin:0}.description-list{display:flex;flex-direction:column;gap:var(--size-4)}.description-list-item{display:flex;flex-direction:row;align-items:center;gap:var(--size-2);color:var(--color-neutrals-text-default)}.description-list-item dt{display:inline-flex}.description-list-item dd{margin:0;font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);font-weight:var(--font-weight-semibold)}.description-list-item dd::first-letter{text-transform:uppercase}.documents-card{padding:var(--size-4);margin-bottom:var(--size-6)}.documents-card-empty{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);color:var(--color-neutrals-text-default);font-weight:var(--font-weight-normal)}.documents-card-title{font-family:var(--font-titles);font-size:var(--text-lg);line-height:var(--text-lg--line-height);color:var(--color-neutrals-text-default);font-weight:var(--font-weight-bold);margin:0;margin-bottom:var(--size-4)}.documents-list{margin-bottom:var(--size-4)}.documents-list>:not(:first-child){margin-top:var(--size-2)}.finished-consultation-footer{display:flex;flex-direction:column;gap:var(--size-5)}.document-item-skeleton{height:57px;width:100%;background-color:var(--color-muted);animation:skeleton-pulse 1.5s infinite}@keyframes skeleton-pulse{0%{opacity:1}50%{opacity:.6}100%{opacity:1}}@media (min-width:768px){.description-list{flex-direction:row}mq-button{display:block;max-width:323px;margin:0 auto}}`;let G=class DocumentationView extends g{constructor(){super(...arguments),this.canReconnect=!1,this._sharedocumentsTask=new a(this,{task:async([t])=>await s.flash.getSharedDocuments({appointment_id:t}),args:()=>[this.appointment.id]}),this.getOrganizationSpecialtiesQuery=new C(this,()=>I(s)),this.getOrganizationSetupQuery=new C(this,()=>T(s)),this._reconnectMutation=new S(this,{mutationFn:t=>s.appointments.reconnectAppointment(t),onSuccess:()=>{this.dispatchEvent(new CustomEvent("reconnect",{bubbles:!0,composed:!0}))}})}static{this.styles=B}firstUpdated(){c.track(m(this.loginToken.patient.hash,this.appointment.id??""))}render(){const t=!0===this.getOrganizationSetupQuery.result?.data?.appointments?.has_chat_in_appointment,e=x(),o=e.replace("_","-"),a=this.loginToken.patient.timezone,s=a?{timeZone:a}:{},r=new Intl.DateTimeFormat(o,{dateStyle:"full",...s}),m=new Intl.DateTimeFormat(o,{hour:"2-digit",minute:"2-digit",...s}),g=new Date(this.appointment.start_date),f=p(g,this.appointment.duration),b=a?l(a,g):"";return y`<mq-page-title .title="${i("Consulta finalizada")}" back-label="${i("Salir")}" @mq-back="${t=>{t.stopPropagation(),this.dispatchEvent(new Q({tab:"history"}))}}"></mq-page-title><p class="description">${i("Si tu médico ha generado alguna documentación podrás verla y descargarla aquí, desde la sección de documentación, tu correo o el chat.")}</p><mq-card class="professional-card" roundness="md"><div><h2 class="professional-name">${this.appointment.from.name}</h2><p class="professional-speciality">${this.appointment.from.speciality}</p></div><dl class="description-list"><div class="description-list-item"><dt>${$()}</dt><dd>${r.format(g)}</dd></div><div class="description-list-item"><dt>${k()}</dt><dd>${m.format(g)} - ${m.format(f)}${b?` (${b})`:""}</dd></div></dl></mq-card><mq-card class="documents-card" roundness="md"><h2 class="documents-card-title">${i("Documentación")}</h2><div class="documents-list">${this._sharedocumentsTask?.render({pending:()=>y`<div class="document-item-skeleton"></div>`,complete:()=>0===this._sharedocumentsTask?.value?.length?y`<p class="documents-card-empty">${i("El médico está terminando de gestionar tu consulta. Actualiza en unos minutos para ver si tienes documentación.")}</p>`:this._sharedocumentsTask?.value?.map(t=>y`<patient-document .kind="${t.document_type}" .filename="${t.name}" .specialty="${(()=>{const i=this.getOrganizationSpecialtiesQuery.result?.data?.find(e=>e.id===t.professional.speciality_id);return D(i?.code??"",e,i?.name)})()}" .description="${t.name}" .date="${t.created_at}" .downloadUrl="${t.url}"></patient-document>`)})}</div><mq-button variant="outline" size="md" fullwidth @click="${()=>{c.track(h(this.loginToken.patient.hash,this.appointment.id??"")),this._sharedocumentsTask?.run()}}" .disabled="${this._sharedocumentsTask?.status===n.PENDING}">${i("Actualizar")}</mq-button></mq-card><div class="finished-consultation-footer">${this.canReconnect?y`<mq-button variant="primary" size="md" fullwidth ?disabled="${this._reconnectMutation.isPending}" @click="${()=>this._reconnectMutation.run({appointmentId:this.appointment.id})}">${i("Volver a la sala de espera")}</mq-button>`:v} ${t?y`<chat-cta .consultationId="${this.appointment.id}" .roomId="${Number(this.appointment.room_id)}" .professionalHash="${this.appointment.from.hash}" .text="${i("Puedes chatear con tu profesional hasta 48 horas finalizada tu cita")}" ?readonly="${d(this.appointment.expires_at)}" .onOpenChat="${()=>{c.track(u(this.loginToken.patient.hash,this.appointment.id??""))}}"></chat-cta>`:v}</div>`}};t([b({type:Object})],G.prototype,"appointment",void 0),t([b({type:String})],G.prototype,"token",void 0),t([b({type:Boolean,attribute:"can-reconnect"})],G.prototype,"canReconnect",void 0),t([_({context:q})],G.prototype,"loginToken",void 0),G=t([o(),e("documentation-view")],G);
|
package/dist/env.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const E="https://mediquo-landing.s3.eu-central-1.amazonaws.com/sdk-web/elements",o="production",e="0.6.
|
|
1
|
+
const E="https://mediquo-landing.s3.eu-central-1.amazonaws.com/sdk-web/elements",o="production",e="0.6.4",n={development:{MODE:"development",MQ_DEFAULT_ENV:o,MQ_ELEMENTS_VERSION:e,OPENTOK_API_KEY:"47836441",ASSETS_BASE_URL:E},production:{MODE:"production",MQ_DEFAULT_ENV:o,MQ_ELEMENTS_VERSION:e,OPENTOK_API_KEY:"46655102",ASSETS_BASE_URL:E}};let t=o;const _=new Proxy({},{get:(E,o)=>n[t??"production"][o]});function S(E){t=E}export{E as ASSETS_BASE_URL,_ as env,S as setEnv};
|
|
@@ -6,7 +6,7 @@ import './chunks/mq-chat-room-DuG4RuIp.js';
|
|
|
6
6
|
import './ui/mq-floating-bubble.js';
|
|
7
7
|
import './ui/mq-card.js';
|
|
8
8
|
import './ui/mq-unread-badge.js';
|
|
9
|
-
import './ui/
|
|
9
|
+
import './ui/mq-page-title.js';
|
|
10
10
|
import './chunks/index-DNUbmrQl.js';
|
|
11
11
|
import './chunks/mq-layout-D8Mak16a.js';
|
|
12
12
|
import './ui/mq-avatar.js';
|
|
@@ -14,7 +14,6 @@ import './ui/mq-skeleton.js';
|
|
|
14
14
|
import 'zod';
|
|
15
15
|
import './chunks/appointment.model.d-Dy50gMPg.js';
|
|
16
16
|
import '@tanstack/query-core';
|
|
17
|
-
import './ui/mq-text-button.js';
|
|
18
17
|
|
|
19
18
|
/**
|
|
20
19
|
* Standalone "appointment documentation" screen: fetches an appointment by id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isValidLocale as t,setLocale as e,initLocalization as i}from"./i18n.js";import{_ as s,c as o}from"./chunks/custom-element-D2ziPxYE.js";import{Q as r}from"./chunks/query-controller-BlO1Ax65.js";import{g as n}from"./chunks/get-appointment-query-Ck68BEMg.js";import{a,i as c,x as
|
|
1
|
+
import{isValidLocale as t,setLocale as e,initLocalization as i}from"./i18n.js";import{_ as s,c as o}from"./chunks/custom-element-D2ziPxYE.js";import{Q as r}from"./chunks/query-controller-BlO1Ax65.js";import{g as n}from"./chunks/get-appointment-query-Ck68BEMg.js";import{a,i as c,x as p}from"./chunks/lit-element-DiWJYFwC.js";import{n as d}from"./chunks/property-scuRaFcM.js";import{setEnv as m}from"./env.js";import{a as l}from"./chunks/api-chat-client-BBL1U9EQ.js";import"./chunks/documentation-view-DJCr5_MN.js";import"./ui/mq-card.js";import"./chunks/mq-layout-BndHxkbb.js";import"./chunks/runtime-Bg1WXVCx.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/external-CJj32K_p.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/query-Cjvi4_dT.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.js";import"./chunks/localized-decorator-BlOuLhym.js";import"./chunks/task-Bj8p7kJX.js";import"./chunks/telemetry-client-BLJVs9me.js";import"./ui/icons/calendar-icon.js";import"./ui/icons/types.js";import"./ui/icons/clock-icon.js";import"./chunks/state-LQivXIgA.js";import"./ui/icons/info-circle-outine-icon.js";import"./ui/mq-button.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./chunks/if-defined-BYeVdwgd.js";import"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import"./ui/icons/message-bubble-icon.js";import"./mq-chat-room.js";import"./chunks/provide-D2fnEhT2.js";import"./chunks/context-provider--AKuwfs9.js";import"./chunks/consume-CovVqBjI.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-YMQSBQHL-De_r7BNk.js";import"./ui/icons/chevron-left-icon.js";import"./chunks/query-CeeutdfT.js";import"./events.js";import"./chunks/chunk-GZF3YFSX-DM-GTqxg.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-floating-bubble.js";import"./ui/mq-unread-badge.js";import"./ui/mq-page-title.js";import"./ui/icons/arrow-narrow-left-icon.js";import"./chunks/index-KvIw19qY.js";import"./ui/icons/download-icon.js";import"./chunks/get-organization-setup-query-BMbuRi6v.js";import"./chunks/i18n-formats-DYS91YEa.js";let u=class DocumentationViewSkeleton extends a{static{this.styles=c`.skeleton{border-radius:var(--border-radius-md);background-color:#f0f0f0;animation:skeleton-pulse 1.5s infinite}.page-title-skeleton{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--size-3)}.back-button-skeleton{width:var(--size-10);height:var(--size-10);border-radius:var(--border-radius-full);flex-shrink:0}.title-bar-skeleton{width:120px;height:24px;border-radius:var(--border-radius-sm)}@media (min-width:768px){.page-title-skeleton{gap:var(--sp-6)}.title-bar-skeleton{width:200px;height:32px}}.description-skeleton{width:100%;height:16px;border-radius:var(--border-radius-sm);margin-bottom:var(--size-2)}.description-skeleton:last-of-type{width:70%;margin-bottom:var(--size-5)}.professional-card{padding:var(--size-4);margin-bottom:var(--size-4)}.professional-name-skeleton{width:180px;height:24px;border-radius:var(--border-radius-sm);margin-bottom:var(--size-1)}.professional-speciality-skeleton{width:140px;height:16px;border-radius:var(--border-radius-sm);margin-bottom:var(--size-4)}.description-list{display:flex;flex-direction:column;gap:var(--size-4)}.description-list-item{display:flex;flex-direction:row;align-items:center;gap:var(--size-2);font-family:var(--font-body)}.icon-skeleton{width:20px;height:20px;border-radius:var(--border-radius-sm)}.text-skeleton{width:120px;height:16px;border-radius:var(--border-radius-sm)}.documents-card{padding:var(--size-4);margin-bottom:var(--size-6)}.documents-card .skeleton{background-color:var(--color-muted)}.documents-card-title-skeleton{width:150px;height:24px;border-radius:var(--border-radius-sm);margin-bottom:var(--size-4)}.button-skeleton{width:100%;height:44px;border-radius:var(--border-radius-md);margin-top:var(--size-4)}@keyframes skeleton-pulse{0%{opacity:1}50%{opacity:.6}100%{opacity:1}}`}render(){return p`<div class="page-title-skeleton"><div class="skeleton back-button-skeleton"></div><div class="skeleton title-bar-skeleton"></div></div><div class="skeleton description-skeleton"></div><div class="skeleton description-skeleton"></div><mq-card class="professional-card" roundness="md"><div><div class="skeleton professional-name-skeleton"></div><div class="skeleton professional-speciality-skeleton"></div></div><dl class="description-list"><div class="description-list-item"><div class="skeleton icon-skeleton"></div><div class="skeleton text-skeleton"></div></div><div class="description-list-item"><div class="skeleton icon-skeleton"></div><div class="skeleton text-skeleton"></div></div></dl></mq-card><mq-card class="documents-card" roundness="md"><div class="skeleton documents-card-title-skeleton"></div><div class="skeleton button-skeleton"></div></mq-card>`}};u=s([o("documentation-view-skeleton")],u);let k=class MqAppointmentDocumentation extends a{constructor(){super(...arguments),this.getAppointmentQuery=new r(this,()=>n(l,{id:this.appointmentId}))}willUpdate(i){i.has("env")&&this.env&&m(this.env),i.has("apiKey")&&this.apiKey&&l.setApiKey(this.apiKey),i.has("token")&&this.token&&l.setAuthToken(this.token),i.has("locale")&&this.locale&&t(this.locale)&&(e(this.locale),l.setLanguage(this.locale))}render(){return p`<mq-layout background="transparent">${this.getAppointmentQuery.render({complete:t=>p`<documentation-view .token="${this.token}" .appointment="${t}"></documentation-view>`,error:()=>p``,pending:()=>p`<documentation-view-skeleton></documentation-view-skeleton>`})}</mq-layout>`}};s([d({type:String,attribute:"appointment-id"})],k.prototype,"appointmentId",void 0),s([d({type:String,attribute:"token"})],k.prototype,"token",void 0),s([d({type:String,attribute:"api-key"})],k.prototype,"apiKey",void 0),s([d({type:String,attribute:"locale"})],k.prototype,"locale",void 0),s([d({type:String,attribute:"env"})],k.prototype,"env",void 0),k=s([o("mq-appointment-documentation")],k),i();export{k as MqAppointmentDocumentation};
|
package/dist/mq-dashboard.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getLocale as t,isValidLocale as e,setLocale as i,initLocalization as o}from"./i18n.js";import{_ as n,c as r}from"./chunks/custom-element-D2ziPxYE.js";import{c as a}from"./chunks/consume-CovVqBjI.js";import{l as s}from"./chunks/localized-decorator-BlOuLhym.js";import{m as l}from"./chunks/runtime-Bg1WXVCx.js";import{Q as c}from"./chunks/query-controller-BlO1Ax65.js";import{l as p}from"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import{g as d}from"./chunks/get-organization-setup-query-BMbuRi6v.js";import{t as h,m,v as u,r as g,i as v}from"./chunks/telemetry-client-BLJVs9me.js";import{i as f,a as b,E as x,x as w}from"./chunks/lit-element-DiWJYFwC.js";import{n as k}from"./chunks/property-scuRaFcM.js";import{setEnv as y}from"./env.js";import{a as C,c as j,d as $}from"./chunks/api-chat-client-BBL1U9EQ.js";import"./chunks/mq-layout-BndHxkbb.js";import"./ui/mq-skeleton.js";import{g as q}from"./chunks/chunk-YMQSBQHL-De_r7BNk.js";import{r as z}from"./chunks/state-LQivXIgA.js";import{S as V,a as _,b as S}from"./chunks/index-BJYWtEmT.js";import{messageSquareIcon as H}from"./ui/icons/message-square-icon.js";import"./ui/mq-avatar.js";import"./ui/mq-button.js";import{o as M}from"./chunks/style-map-CIdqdn7C.js";import{MqAppointmentBookEvent as A,MqViewAppointmentsEvent as B,MqViewDocumentsEvent as Q}from"./events.js";export{MqAppointmentJoinVideocallEvent,MqAppointmentRescheduleEvent,MqAppointmentViewDocumentationEvent}from"./events.js";import{g as T,a as E}from"./chunks/i18n-formats-DYS91YEa.js";import{g as Z}from"./chunks/get-patient-documents-query-DIQH-TMM.js";import"./chunks/index-KvIw19qY.js";import"./ui/mq-card.js";import{g as D}from"./chunks/appointment-card-skeleton-C8VERHzq.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/external-CJj32K_p.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/query-Cjvi4_dT.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.js";import"./chunks/directive-2EDmOukv.js";import"./ui/icons/types.js";import"./chunks/class-map-Co76I6aw.js";import"./ui/icons/download-icon.js";import"./chunks/refund-cancel-policy-CXFTrFfo.js";import"./chunks/chunk-GZF3YFSX-DM-GTqxg.js";import"./chunks/price-LTnCz9kN.js";import"./ui/icons/briefcase-icon.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/professional-overview-C4H_znIJ.js";import"./ui/icons/chevron-down-icon.js";import"./chunks/if-defined-BYeVdwgd.js";import"./ui/mq-text-button.js";import"./mq-chat-room.js";import"./chunks/provide-D2fnEhT2.js";import"./chunks/context-provider--AKuwfs9.js";import"./theme.js";import"./ui/icons/x-icon.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-floating-bubble.js";import"./ui/mq-dialog.js";import"./ui/icons/video-icon.js";import"./ui/mq-unread-badge.js";import"./ui/mq-toast.js";const I=f`*{box-sizing:border-box}:host{display:block;--color-text-icons--success:#34c759}@keyframes banner-reveal{from{grid-template-rows:0fr}to{grid-template-rows:1fr}}.reveal{display:grid;grid-template-rows:1fr;animation:banner-reveal .4s cubic-bezier(.22,1,.36,1)}@media (prefers-reduced-motion:reduce){.reveal{animation:none}}.clip{min-height:0;overflow:hidden}.banner{position:relative;display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-2) var(--sp-3);background:linear-gradient(105.4deg,color-mix(in srgb,var(--color-primary) 35%,#000) 0,var(--color-primary-dark,color-mix(in srgb,var(--color-primary) 70%,#000)) 30%,var(--color-primary) 65%,color-mix(in srgb,var(--color-primary) 70%,#fff) 100%);font-family:var(--font-body)}.avatar{position:relative;flex-shrink:0;width:var(--size-10);height:var(--size-10);--avatar-size:var(--size-10)}.avatar mq-avatar{width:var(--size-10);height:var(--size-10)}.online-dot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) translate(calc(var(--avatar-size) * .35355),calc(var(--avatar-size) * -.35355));width:var(--size-2_5);height:var(--size-2_5);border-radius:var(--border-radius-full);background-color:var(--color-gray-medium);border:2px solid var(--color-white)}.online-dot[data-presence=online]{background-color:var(--color-text-icons--success)}.online-dot[data-presence=absent]{background-color:var(--color-negative)}.mobile-info{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0;flex:1}.mobile-title{margin:0;font-size:var(--text-xs);font-weight:var(--font-weight-semibold);line-height:normal;color:var(--color-white);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-title .mobile-role{color:#9b90ae}.mobile-welcome{margin:0;font-size:var(--text-xs);font-weight:var(--font-weight-normal);line-height:normal;color:var(--color-white);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cta-overlay{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:none;background:0 0;cursor:pointer;font:inherit;color:inherit;z-index:1}.cta-overlay:focus-visible{outline:2px solid var(--color-white);outline-offset:-3px}.cta-mobile{flex-shrink:0;display:inline-grid;place-items:center;width:var(--size-7);height:var(--size-7);color:var(--color-white)}.identity{display:none;flex-direction:column;gap:var(--sp-0_5);flex-shrink:0;min-width:0;max-width:180px}.role{margin:0;font-size:var(--text-xxs);line-height:14px;font-weight:var(--font-weight-bold);letter-spacing:.5px;text-transform:uppercase;color:#9b90ae;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.name{margin:0;font-size:15px;line-height:21px;font-weight:var(--font-weight-bold);color:var(--color-white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.divider{display:none;flex-shrink:0;width:1px;height:var(--size-8);background-color:#9b90ae}.welcome{display:none;flex:1;min-width:0;margin:0;font-size:var(--text-sm);line-height:19.5px;color:var(--color-white);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cta-desktop{display:none;flex-shrink:0}.icon-wrap{position:relative;display:inline-grid;place-items:center}.unread-dot{position:absolute;top:-1px;right:-1px;width:6px;height:6px;border-radius:var(--border-radius-full);background-color:var(--color-negative)}@media (min-width:768px){.banner{gap:var(--sp-5);padding:var(--sp-4) var(--sp-10)}.avatar,.avatar mq-avatar{width:var(--size-12);height:var(--size-12)}.avatar{--avatar-size:var(--size-12)}.cta-mobile,.cta-overlay,.mobile-info{display:none}.identity{display:flex}.divider{display:block}.welcome{display:block}.cta-desktop{display:inline-block}}`;let U=class SupportChatBanner extends b{constructor(){super(...arguments),this._unreadCount=0,this._professionalQuery=new c(this,()=>q(C,{hash:this.professionalHash??""},{enabled:Boolean(this.professionalHash)})),this._onUnreadChange=t=>{this._unreadCount=t.count??0}}static{this.styles=I}connectedCallback(){super.connectedCallback(),window.addEventListener(V.eventName,this._onUnreadChange),window.dispatchEvent(new _)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener(V.eventName,this._onUnreadChange)}get _hasUnread(){return this._unreadCount>0}_toggleSupportChat(){window.dispatchEvent(new S)}_ctaIcon(t=16){return w`<span class="icon-wrap">${H({size:t,color:"currentColor"})} ${this._hasUnread?w`<span class="unread-dot"></span>`:x}</span>`}render(){return this.professionalHash?this._professionalQuery.render({pending:()=>w``,error:()=>w``,complete:t=>{const e=t.title??l("Asesor comercial"),i=j(t);return w`<div class="reveal"><div class="clip"><div class="banner"><button class="cta-overlay" type="button" aria-label="${l("Iniciar chat con asesor comercial")}" @click="${this._toggleSupportChat}"></button> <span class="avatar"><mq-avatar .src="${t.avatar??void 0}" .fallback="${t.name}" .alt="${t.name}"></mq-avatar><span class="online-dot" data-presence="${i}"></span> </span><span class="mobile-info"><p class="mobile-title">${t.title?w`<span class="mobile-role">${t.title}</span> - ${t.name}`:t.name}</p><p class="mobile-welcome">${l("¿Cómo puedo ayudarte?")}</p></span><span class="cta-mobile" aria-hidden="true">${this._ctaIcon(28)} </span><span class="identity"><p class="role">${e}</p><p class="name">${t.name}</p></span><span class="divider" aria-hidden="true"></span><p class="welcome">${l("¿Cómo puedo ayudarte?")}</p><mq-button class="cta-desktop" variant="outline-inverted" size="md" @click="${this._toggleSupportChat}">${l("Chatea conmigo")} ${this._ctaIcon()}</mq-button></div></div></div>`}}):x}};n([k({type:String,attribute:"professional-hash"})],U.prototype,"professionalHash",void 0),n([z()],U.prototype,"_unreadCount",void 0),U=n([s(),r("support-chat-banner")],U);const L=f`:host{padding:var(--size-6) var(--size-4);border-radius:var(--border-radius-md);background-color:var(--color-top-banner-background,transparent);display:block}.banner-inner{display:grid;grid-template-columns:1fr;gap:var(--sp-3);align-items:stretch}.banner-inner:not(.single-column) .top-banner-image{order:-1}.banner-inner.single-column{grid-template-columns:1fr}.top-banner-info{margin:0;text-align:left;display:flex;flex-direction:column;gap:var(--size-4)}.top-banner-info h3{font-family:var(--font-titles);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;margin-bottom:var(--size-2)}.top-banner-info p{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-normal);color:var(--color-neutrals-text-default);margin:0}.top-banner-actions{display:flex;flex-direction:column;gap:var(--size-2)}.top-banner-image{background-size:cover;background-position:center;background-repeat:no-repeat;border-radius:8px;min-width:151px;min-height:11rem;position:relative}@media (min-width:768px){:host{padding:var(--sp-6)}.banner-inner{gap:var(--sp-8)}.banner-inner:not(.single-column){grid-template-columns:1fr 1fr}.banner-inner:not(.single-column) .top-banner-image{order:0}.top-banner-image{border-radius:4px;min-height:0}.top-banner-info h3{font-size:var(--text-xl);line-height:var(--text-xl--line-height)}.top-banner-info p{font-size:var(--text-base);line-height:var(--text-base--line-height)}}@media (min-width:1024px){.top-banner-info{width:100%;max-width:364px;margin-left:auto;margin-right:auto}.top-banner-info h3{font-size:var(--text-2xl);line-height:var(--text-2xl--line-height)}}`;let P=class TopBanner extends b{static{this.styles=L}_handleBook(){h.track(m(this.loginToken.patient.hash)),this.dispatchEvent(new A)}_handleViewAppointments(){h.track(u(this.loginToken.patient.hash)),this.dispatchEvent(new B({tab:"next"}))}render(){const t=this.orgSetup.home.title||l("Cita con un especialista en menos de 72 horas"),e=this.orgSetup.home.description||l("Traumatología, ginecología, endocrinología, digestivo o psiquiatría"),i=this.orgSetup.home.image_url;return w`<div class="banner-inner ${i?"":"single-column"}"><div class="top-banner-info"><div>${t?w`<h3>${t}</h3>`:x} ${e?w`<p>${e}</p>`:x}</div><div class="top-banner-actions"><mq-button variant="primary" fullwidth @click="${this._handleBook}">${l("Pedir cita")}</mq-button><mq-button variant="outline" fullwidth @click="${this._handleViewAppointments}">${l("Ver todas mis citas")}</mq-button></div></div>${i?w`<div class="top-banner-image" style="${M({background:`linear-gradient(180deg, rgba(0, 0, 0, 0) 68.17%, rgba(0, 0, 0, 0.2) 100%), url('${i}') lightgray 50% / cover no-repeat`})}"></div>`:x}</div>`}};n([a({context:p})],P.prototype,"loginToken",void 0),n([k({attribute:!1})],P.prototype,"orgSetup",void 0),P=n([s(),r("top-banner")],P);const F=f`:host{border-radius:var(--border-radius-md);box-sizing:border-box;width:100%;display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-6);background-color:var(--color-card);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);margin:0 auto}svg{flex-shrink:0;width:25px;height:auto}.title{font-family:var(--font-titles);font-size:var(--text-lg);line-height:var(--text-base--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);color:var(--color-neutrals-text-default);margin:0}.content{display:flex;flex-direction:column;gap:var(--sp-4)}@media (min-width:768px){:host{align-items:start;flex-direction:row;gap:var(--sp-6)}svg{width:32px;height:auto}.description{font-size:var(--text-base);line-height:var(--text-base--line-height)}}`;let G=class HomeEmptyState extends b{constructor(){super(...arguments),this.title="",this.description="",this.icon="document"}static{this.styles=F}render(){return w`${"document"===this.icon?function({color:t="currentColor"}){return w`<svg width="32" height="40" viewBox="0 0 32 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M24 18H8V16H24V18ZM24 23H8V25H24V23ZM24 30H8V32H24V30ZM32 39V10C32 9.86867 31.9742 9.73862 31.9239 9.61728C31.8737 9.49594 31.8001 9.38568 31.7072 9.2928L22.7064 0.2952C22.5672 0.15435 22.3889 0.0585355 22.1947 0.0201668C22.0004 -0.018202 21.7991 0.00264228 21.6168 0.08C21.4342 0.155546 21.278 0.283605 21.1682 0.447954C21.0584 0.612303 20.9999 0.805545 21 1.0032V10C20.9999 10.1314 21.0257 10.2614 21.0759 10.3828C21.1261 10.5042 21.1998 10.6145 21.2927 10.7073C21.3855 10.8002 21.4958 10.8739 21.6172 10.9241C21.7386 10.9743 21.8686 11.0001 22 11H30V38H2V2H19V0H1C0.734784 0 0.480429 0.105357 0.292893 0.292893C0.105357 0.48043 0 0.734784 0 1V39C-4.20445e-08 39.1314 0.0258922 39.2615 0.0761969 39.3829C0.126502 39.5042 0.200233 39.6145 0.293176 39.7074C0.386119 39.8003 0.496453 39.8739 0.617871 39.9241C0.739289 39.9743 0.869411 40.0001 1.0008 40H31.0008C31.2659 39.9998 31.52 39.8943 31.7074 39.7068C31.8948 39.5193 32 39.2651 32 39ZM23 3.416L28.5856 9.0016H23V3.416Z" fill="${t}"/></svg>`}({color:"var(--color-primary)"}):function({color:t="currentColor"}){return w`<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M20 20.9512C22.2362 20.9487 24.38 20.057 25.9612 18.4717C27.5424 16.8864 28.4319 14.7371 28.4344 12.4952V8.45605C28.4344 6.21336 27.5458 4.06254 25.964 2.47672C24.3823 0.890903 22.2369 0 20 0C17.7631 0 15.6177 0.890903 14.036 2.47672C12.4542 4.06254 11.5656 6.21336 11.5656 8.45605V12.4952C11.5681 14.7371 12.4576 16.8864 14.0388 18.4717C15.62 20.057 17.7638 20.9487 20 20.9512ZM13.5656 8.45605C13.5656 6.74516 14.2435 5.10434 15.4502 3.89456C16.6569 2.68478 18.2935 2.00513 20 2.00513C21.7065 2.00513 23.3431 2.68478 24.5498 3.89456C25.7565 5.10434 26.4344 6.74516 26.4344 8.45605V12.4952C26.4344 14.2061 25.7565 15.8469 24.5498 17.0567C23.3431 18.2665 21.7065 18.9461 20 18.9461C18.2935 18.9461 16.6569 18.2665 15.4502 17.0567C14.2435 15.8469 13.5656 14.2061 13.5656 12.4952V8.45605ZM36.24 24.1386C33.9712 21.9859 30.8304 20.5414 27.156 19.9607C26.9367 19.9252 26.7119 19.964 26.517 20.0709C26.3222 20.1778 26.1684 20.3467 26.08 20.551C25.1576 22.6748 22.86 24.9623 20 24.9623C17.14 24.9623 14.8392 22.6756 13.92 20.551C13.8316 20.3474 13.6783 20.179 13.4842 20.0721C13.29 19.9653 13.066 19.9261 12.8472 19.9607C9.1696 20.5414 6.0288 21.9859 3.76 24.1386C1.3 26.4718 0 29.53 0 32.982V40H2V32.982C2 30.0946 3.084 27.5401 5.1344 25.5951C6.484 24.3118 8.2088 23.3197 10.2112 22.6524V29.0231H9.2272C8.42757 29.024 7.66093 29.3428 7.0955 29.9097C6.53008 30.4765 6.21205 31.2452 6.2112 32.0468V36.7974C6.21162 37.2613 6.39556 37.7061 6.72266 38.0341C7.04976 38.3622 7.49331 38.5468 7.956 38.5475H8.996V36.5424H8.2072V32.0468C8.20762 31.7768 8.3148 31.518 8.50525 31.327C8.69569 31.1361 8.95387 31.0287 9.2232 31.0282H13.2C13.467 31.0287 13.7229 31.1352 13.9117 31.3245C14.1005 31.5137 14.2068 31.7703 14.2072 32.038V36.5424H13V38.5475H14.484C14.9418 38.5471 15.3808 38.3646 15.7046 38.0401C16.0284 37.7156 16.2106 37.2756 16.2112 36.8167V32.038C16.2104 31.2387 15.8933 30.4723 15.3295 29.9071C14.7657 29.3419 14.0013 29.024 13.204 29.0231H12.2112V22.1166C12.2848 22.1006 12.3576 22.0837 12.432 22.0693C13.1066 23.3192 14.0396 24.4103 15.1688 25.2695C16.64 26.3795 18.3096 26.9666 20 26.9666C21.6904 26.9666 23.36 26.3795 24.8312 25.2695C25.6704 24.6323 26.4026 23.8647 27 22.9957V32.9636C26.3723 33.2245 25.8562 33.6985 25.5421 34.3025C25.2279 34.9066 25.1358 35.6022 25.2817 36.2675C25.4277 36.9329 25.8025 37.5255 26.3405 37.9416C26.8784 38.3578 27.5453 38.5709 28.2242 38.5437C28.9032 38.5164 29.5509 38.2506 30.054 37.7927C30.5571 37.3348 30.8835 36.7141 30.976 36.0392C31.0685 35.3643 30.9212 34.6783 30.5599 34.1013C30.1987 33.5243 29.6465 33.0932 29 32.8834V22.4118C31.3392 23.0679 33.3416 24.149 34.8656 25.5951C36.916 27.5393 38 30.0946 38 32.982V40H40V32.982C40 29.53 38.7 26.4718 36.24 24.1386ZM28.1056 36.5424C27.9287 36.5424 27.7558 36.4898 27.6087 36.3912C27.4616 36.2927 27.347 36.1527 27.2793 35.9888C27.2116 35.825 27.1939 35.6447 27.2284 35.4707C27.2629 35.2968 27.3481 35.137 27.4732 35.0116C27.5982 34.8862 27.7576 34.8008 27.9311 34.7662C28.1046 34.7316 28.2844 34.7493 28.4479 34.8172C28.6113 34.8851 28.751 35 28.8493 35.1475C28.9475 35.2949 29 35.4683 29 35.6457C28.9998 35.8834 28.9055 36.1114 28.7378 36.2795C28.5701 36.4476 28.3427 36.5421 28.1056 36.5424Z" fill="${t}"/></svg>`}({color:"var(--color-primary)"})}<div class="content"><p class="title">${this.title}</p><p class="description">${this.description}</p></div>`}};n([k({type:String})],G.prototype,"title",void 0),n([k({type:String})],G.prototype,"description",void 0),n([k({type:String})],G.prototype,"icon",void 0),G=n([s(),r("home-empty-state")],G);const K=f`:host{display:block;max-width:var(--content-max-width);margin:0 auto}.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;margin-bottom:var(--sp-4)}.container{padding:var(--sp-6) var(--sp-4)}.documents-list{border-radius:var(--border-radius-md);padding:var(--sp-3);background-color:var(--color-muted);display:flex;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-6)}hr{width:100%;border:none;border-top:1px solid #e5e5e5;margin:0}.button-container{max-width:332px;margin:0 auto}`;let N=class RecentDocuments extends b{constructor(){super(...arguments),this.getPatientDocumentsQuery=new c(this,()=>Z(C,{patient_hash:this.loginToken.patient.hash,page:1,per_page:2})),this.getOrganizationSpecialtiesQuery=new c(this,()=>T(C))}static{this.styles=K}renderDocuments(){return this.getPatientDocumentsQuery.render({complete:e=>{const i=t();return 0===e.data.length?w`<home-empty-state icon="document" title="${l("No tienes documentación")}" description="${l("Aquí se mostrarán tus recetas e informes médicos. Consulta a tu profesional de salud para recibir documentación.")}"></home-empty-state>`:w`<mq-card class="container" roundness="md"><div class="documents-list">${e.data.map((t,o)=>{const n=this.getOrganizationSpecialtiesQuery.result?.data?.find(e=>e.id===t.professional.speciality_id),r=E(n?.code??"",i,n?.name);return w`<patient-document filename="${t.name}" kind="${t.document_type}" specialty="${r}" description="${t.name}" date="${t.created_at}" downloadUrl="${t.url}"></patient-document>${o<e.data.length-1?w`<hr>`:x}`})}</div><div class="button-container"><mq-button variant="primary" size="md" fullwidth @click="${()=>{h.track(g(this.loginToken.patient.hash)),this.dispatchEvent(new Q)}}">${l("Ver toda la documentación")}</mq-button></div></mq-card>`},pending:()=>w`<mq-card class="container" roundness="md"><div class="documents-list"><mq-skeleton height="57px"></mq-skeleton><hr><mq-skeleton height="57px"></mq-skeleton></div></mq-card>`})}render(){return w`<h2 class="title">${l("Documentación más reciente")}</h2>${this.renderDocuments()}`}};n([a({context:p})],N.prototype,"loginToken",void 0),N=n([s(),r("recent-documents")],N);const R=[$.pending,$.accepted],J=f`:host{display:block}.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;margin-bottom:var(--sp-4)}.container{background-color:var(--color-neutrals-background-weak);padding:var(--sp-6) var(--sp-4)}.appointment-card{margin-bottom:var(--sp-6)}`;let O=class NextAppointments extends b{constructor(){super(...arguments),this.getAppointmentsQuery=new c(this,()=>D(C,{status:R,order:{field:"starts_at",direction:"asc"},page:1,per_page:1}))}static{this.styles=J}renderAppointment(){return this.getAppointmentsQuery.render({complete:t=>{const e=t.data?.[0];return e?w`<div class="appointment-card"><appointment-card .appointmentResource="${e}" .specialtyId="${e.speciality?.id}" variant="next" detailsVariant="default"></appointment-card></div>`:w`<home-empty-state icon="doctor" title="${l("No tienes próximas citas")}" description="${l("Cuando agendes una cita, aparecerá aquí para que puedas consultarla, modificarla o cancelarla.")}"></home-empty-state>`},pending:()=>w`<div class="appointment-card"><appointment-card-skeleton></appointment-card-skeleton></div>`})}render(){return w`<h2 class="title">${l("Próxima cita")}</h2>${this.renderAppointment()}`}};O=n([s(),r("next-appointments")],O);const Y=f`:host{display:flex;flex-direction:column;height:100%}.support-banner{display:block;flex-shrink:0;margin-bottom:var(--sp-4)}mq-layout{flex:1 1 auto;min-height:0}.banner-area{margin-top:calc(-1 * var(--sp-4));margin-left:calc(-1 * var(--sp-4));margin-right:calc(-1 * var(--sp-4))}.content{display:flex;flex-direction:column;padding-top:var(--sp-6);gap:var(--sp-6)}next-appointments{width:100%}recent-documents{width:100%}@media (min-width:768px){.banner-area{margin:0 auto}.content{flex-direction:row}next-appointments{width:50%}recent-documents{width:50%}}`;let X=class MqDashboard extends b{constructor(){super(...arguments),this.showMediquoBranding=!0,this._trackedPageView=!1,this.orgSetupQuery=new c(this,()=>d(C))}static{this.styles=Y}willUpdate(t){t.has("env")&&this.env&&y(this.env),t.has("apiKey")&&this.apiKey&&C.setApiKey(this.apiKey),t.has("token")&&this.token&&C.setAuthToken(this.token),t.has("locale")&&this.locale&&e(this.locale)&&(i(this.locale),C.setLanguage(this.locale))}updated(){!this._trackedPageView&&this.loginToken?.patient.hash&&(this._trackedPageView=!0,h.track(v(this.loginToken.patient.hash)))}render(){return w`${this.orgSetupQuery.render({pending:()=>w``,complete:t=>t.support_professional?.hash?w`<support-chat-banner class="support-banner" professional-hash="${t.support_professional.hash}"></support-chat-banner>`:w``})}<mq-layout background="transparent" variant="wide" .showMediquoBranding="${this.showMediquoBranding}">${this.orgSetupQuery.render({pending:()=>w`<mq-skeleton class="banner-area" width="100%" height="296px" border-radius="none"></mq-skeleton>`,complete:t=>w`<top-banner class="banner-area" .orgSetup="${t}"></top-banner>`})}<div class="content"><next-appointments></next-appointments><recent-documents></recent-documents></div></mq-layout>`}};n([k({type:String,attribute:"api-key"})],X.prototype,"apiKey",void 0),n([k({type:String,attribute:"token"})],X.prototype,"token",void 0),n([k({type:String,attribute:"locale"})],X.prototype,"locale",void 0),n([k({type:String,attribute:"env"})],X.prototype,"env",void 0),n([k({type:Boolean,attribute:"show-mediquo-branding"})],X.prototype,"showMediquoBranding",void 0),n([a({context:p})],X.prototype,"loginToken",void 0),X=n([s(),r("mq-dashboard")],X),o();export{A as MqAppointmentBookEvent,X as MqDashboard,B as MqViewAppointmentsEvent,Q as MqViewDocumentsEvent};
|
|
1
|
+
import{getLocale as t,isValidLocale as e,setLocale as i,initLocalization as o}from"./i18n.js";import{_ as n,c as r}from"./chunks/custom-element-D2ziPxYE.js";import{c as a}from"./chunks/consume-CovVqBjI.js";import{l as s}from"./chunks/localized-decorator-BlOuLhym.js";import{m as l}from"./chunks/runtime-Bg1WXVCx.js";import{Q as c}from"./chunks/query-controller-BlO1Ax65.js";import{l as p}from"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import{g as d}from"./chunks/get-organization-setup-query-BMbuRi6v.js";import{t as h,m,v as u,r as g,i as v}from"./chunks/telemetry-client-BLJVs9me.js";import{i as f,a as b,E as x,x as w}from"./chunks/lit-element-DiWJYFwC.js";import{n as k}from"./chunks/property-scuRaFcM.js";import{setEnv as y}from"./env.js";import{a as C,c as j,d as $}from"./chunks/api-chat-client-BBL1U9EQ.js";import"./chunks/mq-layout-BndHxkbb.js";import"./ui/mq-skeleton.js";import{g as q}from"./chunks/chunk-YMQSBQHL-De_r7BNk.js";import{r as z}from"./chunks/state-LQivXIgA.js";import{S as V,a as _,b as S}from"./chunks/index-BJYWtEmT.js";import{messageSquareIcon as H}from"./ui/icons/message-square-icon.js";import"./ui/mq-avatar.js";import"./ui/mq-button.js";import{o as M}from"./chunks/style-map-CIdqdn7C.js";import{MqAppointmentBookEvent as A,MqViewAppointmentsEvent as B,MqViewDocumentsEvent as Q}from"./events.js";export{MqAppointmentJoinVideocallEvent,MqAppointmentRescheduleEvent,MqAppointmentViewDocumentationEvent}from"./events.js";import{g as T,a as E}from"./chunks/i18n-formats-DYS91YEa.js";import{g as Z}from"./chunks/get-patient-documents-query-DIQH-TMM.js";import"./chunks/index-KvIw19qY.js";import"./ui/mq-card.js";import{g as D}from"./chunks/appointment-card-skeleton-C8VERHzq.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/external-CJj32K_p.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/query-Cjvi4_dT.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.js";import"./chunks/directive-2EDmOukv.js";import"./ui/icons/types.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/if-defined-BYeVdwgd.js";import"./ui/icons/download-icon.js";import"./chunks/refund-cancel-policy-CXFTrFfo.js";import"./chunks/chunk-GZF3YFSX-DM-GTqxg.js";import"./chunks/price-LTnCz9kN.js";import"./ui/icons/briefcase-icon.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/professional-overview-C4H_znIJ.js";import"./ui/icons/chevron-down-icon.js";import"./ui/mq-text-button.js";import"./mq-chat-room.js";import"./chunks/provide-D2fnEhT2.js";import"./chunks/context-provider--AKuwfs9.js";import"./theme.js";import"./ui/icons/x-icon.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-floating-bubble.js";import"./ui/mq-dialog.js";import"./ui/icons/video-icon.js";import"./ui/mq-unread-badge.js";import"./ui/mq-toast.js";const I=f`*{box-sizing:border-box}:host{display:block;--color-text-icons--success:#34c759}@keyframes banner-reveal{from{grid-template-rows:0fr}to{grid-template-rows:1fr}}.reveal{display:grid;grid-template-rows:1fr;animation:banner-reveal .4s cubic-bezier(.22,1,.36,1)}@media (prefers-reduced-motion:reduce){.reveal{animation:none}}.clip{min-height:0;overflow:hidden}.banner{position:relative;display:flex;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-2) var(--sp-3);background:linear-gradient(105.4deg,color-mix(in srgb,var(--color-primary) 35%,#000) 0,var(--color-primary-dark,color-mix(in srgb,var(--color-primary) 70%,#000)) 30%,var(--color-primary) 65%,color-mix(in srgb,var(--color-primary) 70%,#fff) 100%);font-family:var(--font-body)}.avatar{position:relative;flex-shrink:0;width:var(--size-10);height:var(--size-10);--avatar-size:var(--size-10)}.avatar mq-avatar{width:var(--size-10);height:var(--size-10)}.online-dot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) translate(calc(var(--avatar-size) * .35355),calc(var(--avatar-size) * -.35355));width:var(--size-2_5);height:var(--size-2_5);border-radius:var(--border-radius-full);background-color:var(--color-gray-medium);border:2px solid var(--color-white)}.online-dot[data-presence=online]{background-color:var(--color-text-icons--success)}.online-dot[data-presence=absent]{background-color:var(--color-negative)}.mobile-info{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0;flex:1}.mobile-title{margin:0;font-size:var(--text-xs);font-weight:var(--font-weight-semibold);line-height:normal;color:var(--color-white);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-title .mobile-role{color:#9b90ae}.mobile-welcome{margin:0;font-size:var(--text-xs);font-weight:var(--font-weight-normal);line-height:normal;color:var(--color-white);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cta-overlay{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:none;background:0 0;cursor:pointer;font:inherit;color:inherit;z-index:1}.cta-overlay:focus-visible{outline:2px solid var(--color-white);outline-offset:-3px}.cta-mobile{flex-shrink:0;display:inline-grid;place-items:center;width:var(--size-7);height:var(--size-7);color:var(--color-white)}.identity{display:none;flex-direction:column;gap:var(--sp-0_5);flex-shrink:0;min-width:0;max-width:180px}.role{margin:0;font-size:var(--text-xxs);line-height:14px;font-weight:var(--font-weight-bold);letter-spacing:.5px;text-transform:uppercase;color:#9b90ae;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.name{margin:0;font-size:15px;line-height:21px;font-weight:var(--font-weight-bold);color:var(--color-white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.divider{display:none;flex-shrink:0;width:1px;height:var(--size-8);background-color:#9b90ae}.welcome{display:none;flex:1;min-width:0;margin:0;font-size:var(--text-sm);line-height:19.5px;color:var(--color-white);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cta-desktop{display:none;flex-shrink:0}.icon-wrap{position:relative;display:inline-grid;place-items:center}.unread-dot{position:absolute;top:-1px;right:-1px;width:6px;height:6px;border-radius:var(--border-radius-full);background-color:var(--color-negative)}@media (min-width:768px){.banner{gap:var(--sp-5);padding:var(--sp-4) var(--sp-10)}.avatar,.avatar mq-avatar{width:var(--size-12);height:var(--size-12)}.avatar{--avatar-size:var(--size-12)}.cta-mobile,.cta-overlay,.mobile-info{display:none}.identity{display:flex}.divider{display:block}.welcome{display:block}.cta-desktop{display:inline-block}}`;let U=class SupportChatBanner extends b{constructor(){super(...arguments),this._unreadCount=0,this._professionalQuery=new c(this,()=>q(C,{hash:this.professionalHash??""},{enabled:Boolean(this.professionalHash)})),this._onUnreadChange=t=>{this._unreadCount=t.count??0}}static{this.styles=I}connectedCallback(){super.connectedCallback(),window.addEventListener(V.eventName,this._onUnreadChange),window.dispatchEvent(new _)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener(V.eventName,this._onUnreadChange)}get _hasUnread(){return this._unreadCount>0}_toggleSupportChat(){window.dispatchEvent(new S)}_ctaIcon(t=16){return w`<span class="icon-wrap">${H({size:t,color:"currentColor"})} ${this._hasUnread?w`<span class="unread-dot"></span>`:x}</span>`}render(){return this.professionalHash?this._professionalQuery.render({pending:()=>w``,error:()=>w``,complete:t=>{const e=t.title??l("Asesor comercial"),i=j(t);return w`<div class="reveal"><div class="clip"><div class="banner"><button class="cta-overlay" type="button" aria-label="${l("Iniciar chat con asesor comercial")}" @click="${this._toggleSupportChat}"></button> <span class="avatar"><mq-avatar .src="${t.avatar??void 0}" .fallback="${t.name}" .alt="${t.name}"></mq-avatar><span class="online-dot" data-presence="${i}"></span> </span><span class="mobile-info"><p class="mobile-title">${t.title?w`<span class="mobile-role">${t.title}</span> - ${t.name}`:t.name}</p><p class="mobile-welcome">${l("¿Cómo puedo ayudarte?")}</p></span><span class="cta-mobile" aria-hidden="true">${this._ctaIcon(28)} </span><span class="identity"><p class="role">${e}</p><p class="name">${t.name}</p></span><span class="divider" aria-hidden="true"></span><p class="welcome">${l("¿Cómo puedo ayudarte?")}</p><mq-button class="cta-desktop" variant="outline-inverted" size="md" @click="${this._toggleSupportChat}">${l("Chatea conmigo")} ${this._ctaIcon()}</mq-button></div></div></div>`}}):x}};n([k({type:String,attribute:"professional-hash"})],U.prototype,"professionalHash",void 0),n([z()],U.prototype,"_unreadCount",void 0),U=n([s(),r("support-chat-banner")],U);const L=f`:host{padding:var(--size-6) var(--size-4);border-radius:var(--border-radius-md);background-color:var(--color-top-banner-background,transparent);display:block}.banner-inner{display:grid;grid-template-columns:1fr;gap:var(--sp-3);align-items:stretch}.banner-inner:not(.single-column) .top-banner-image{order:-1}.banner-inner.single-column{grid-template-columns:1fr}.top-banner-info{margin:0;text-align:left;display:flex;flex-direction:column;gap:var(--size-4)}.top-banner-info h3{font-family:var(--font-titles);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;margin-bottom:var(--size-2)}.top-banner-info p{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-normal);color:var(--color-neutrals-text-default);margin:0}.top-banner-actions{display:flex;flex-direction:column;gap:var(--size-2)}.top-banner-image{background-size:cover;background-position:center;background-repeat:no-repeat;border-radius:8px;min-width:151px;min-height:11rem;position:relative}@media (min-width:768px){:host{padding:var(--sp-6)}.banner-inner{gap:var(--sp-8)}.banner-inner:not(.single-column){grid-template-columns:1fr 1fr}.banner-inner:not(.single-column) .top-banner-image{order:0}.top-banner-image{border-radius:4px;min-height:0}.top-banner-info h3{font-size:var(--text-xl);line-height:var(--text-xl--line-height)}.top-banner-info p{font-size:var(--text-base);line-height:var(--text-base--line-height)}}@media (min-width:1024px){.top-banner-info{width:100%;max-width:364px;margin-left:auto;margin-right:auto}.top-banner-info h3{font-size:var(--text-2xl);line-height:var(--text-2xl--line-height)}}`;let P=class TopBanner extends b{static{this.styles=L}_handleBook(){h.track(m(this.loginToken.patient.hash)),this.dispatchEvent(new A)}_handleViewAppointments(){h.track(u(this.loginToken.patient.hash)),this.dispatchEvent(new B({tab:"next"}))}render(){const t=this.orgSetup.home.title||l("Cita con un especialista en menos de 72 horas"),e=this.orgSetup.home.description||l("Traumatología, ginecología, endocrinología, digestivo o psiquiatría"),i=this.orgSetup.home.image_url;return w`<div class="banner-inner ${i?"":"single-column"}"><div class="top-banner-info"><div>${t?w`<h3>${t}</h3>`:x} ${e?w`<p>${e}</p>`:x}</div><div class="top-banner-actions"><mq-button variant="primary" fullwidth @click="${this._handleBook}">${l("Pedir cita")}</mq-button><mq-button variant="outline" fullwidth @click="${this._handleViewAppointments}">${l("Ver todas mis citas")}</mq-button></div></div>${i?w`<div class="top-banner-image" style="${M({background:`linear-gradient(180deg, rgba(0, 0, 0, 0) 68.17%, rgba(0, 0, 0, 0.2) 100%), url('${i}') lightgray 50% / cover no-repeat`})}"></div>`:x}</div>`}};n([a({context:p})],P.prototype,"loginToken",void 0),n([k({attribute:!1})],P.prototype,"orgSetup",void 0),P=n([s(),r("top-banner")],P);const F=f`:host{border-radius:var(--border-radius-md);box-sizing:border-box;width:100%;display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-6);background-color:var(--color-card);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);margin:0 auto}svg{flex-shrink:0;width:25px;height:auto}.title{font-family:var(--font-titles);font-size:var(--text-lg);line-height:var(--text-base--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);color:var(--color-neutrals-text-default);margin:0}.content{display:flex;flex-direction:column;gap:var(--sp-4)}@media (min-width:768px){:host{align-items:start;flex-direction:row;gap:var(--sp-6)}svg{width:32px;height:auto}.description{font-size:var(--text-base);line-height:var(--text-base--line-height)}}`;let G=class HomeEmptyState extends b{constructor(){super(...arguments),this.title="",this.description="",this.icon="document"}static{this.styles=F}render(){return w`${"document"===this.icon?function({color:t="currentColor"}){return w`<svg width="32" height="40" viewBox="0 0 32 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M24 18H8V16H24V18ZM24 23H8V25H24V23ZM24 30H8V32H24V30ZM32 39V10C32 9.86867 31.9742 9.73862 31.9239 9.61728C31.8737 9.49594 31.8001 9.38568 31.7072 9.2928L22.7064 0.2952C22.5672 0.15435 22.3889 0.0585355 22.1947 0.0201668C22.0004 -0.018202 21.7991 0.00264228 21.6168 0.08C21.4342 0.155546 21.278 0.283605 21.1682 0.447954C21.0584 0.612303 20.9999 0.805545 21 1.0032V10C20.9999 10.1314 21.0257 10.2614 21.0759 10.3828C21.1261 10.5042 21.1998 10.6145 21.2927 10.7073C21.3855 10.8002 21.4958 10.8739 21.6172 10.9241C21.7386 10.9743 21.8686 11.0001 22 11H30V38H2V2H19V0H1C0.734784 0 0.480429 0.105357 0.292893 0.292893C0.105357 0.48043 0 0.734784 0 1V39C-4.20445e-08 39.1314 0.0258922 39.2615 0.0761969 39.3829C0.126502 39.5042 0.200233 39.6145 0.293176 39.7074C0.386119 39.8003 0.496453 39.8739 0.617871 39.9241C0.739289 39.9743 0.869411 40.0001 1.0008 40H31.0008C31.2659 39.9998 31.52 39.8943 31.7074 39.7068C31.8948 39.5193 32 39.2651 32 39ZM23 3.416L28.5856 9.0016H23V3.416Z" fill="${t}"/></svg>`}({color:"var(--color-primary)"}):function({color:t="currentColor"}){return w`<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M20 20.9512C22.2362 20.9487 24.38 20.057 25.9612 18.4717C27.5424 16.8864 28.4319 14.7371 28.4344 12.4952V8.45605C28.4344 6.21336 27.5458 4.06254 25.964 2.47672C24.3823 0.890903 22.2369 0 20 0C17.7631 0 15.6177 0.890903 14.036 2.47672C12.4542 4.06254 11.5656 6.21336 11.5656 8.45605V12.4952C11.5681 14.7371 12.4576 16.8864 14.0388 18.4717C15.62 20.057 17.7638 20.9487 20 20.9512ZM13.5656 8.45605C13.5656 6.74516 14.2435 5.10434 15.4502 3.89456C16.6569 2.68478 18.2935 2.00513 20 2.00513C21.7065 2.00513 23.3431 2.68478 24.5498 3.89456C25.7565 5.10434 26.4344 6.74516 26.4344 8.45605V12.4952C26.4344 14.2061 25.7565 15.8469 24.5498 17.0567C23.3431 18.2665 21.7065 18.9461 20 18.9461C18.2935 18.9461 16.6569 18.2665 15.4502 17.0567C14.2435 15.8469 13.5656 14.2061 13.5656 12.4952V8.45605ZM36.24 24.1386C33.9712 21.9859 30.8304 20.5414 27.156 19.9607C26.9367 19.9252 26.7119 19.964 26.517 20.0709C26.3222 20.1778 26.1684 20.3467 26.08 20.551C25.1576 22.6748 22.86 24.9623 20 24.9623C17.14 24.9623 14.8392 22.6756 13.92 20.551C13.8316 20.3474 13.6783 20.179 13.4842 20.0721C13.29 19.9653 13.066 19.9261 12.8472 19.9607C9.1696 20.5414 6.0288 21.9859 3.76 24.1386C1.3 26.4718 0 29.53 0 32.982V40H2V32.982C2 30.0946 3.084 27.5401 5.1344 25.5951C6.484 24.3118 8.2088 23.3197 10.2112 22.6524V29.0231H9.2272C8.42757 29.024 7.66093 29.3428 7.0955 29.9097C6.53008 30.4765 6.21205 31.2452 6.2112 32.0468V36.7974C6.21162 37.2613 6.39556 37.7061 6.72266 38.0341C7.04976 38.3622 7.49331 38.5468 7.956 38.5475H8.996V36.5424H8.2072V32.0468C8.20762 31.7768 8.3148 31.518 8.50525 31.327C8.69569 31.1361 8.95387 31.0287 9.2232 31.0282H13.2C13.467 31.0287 13.7229 31.1352 13.9117 31.3245C14.1005 31.5137 14.2068 31.7703 14.2072 32.038V36.5424H13V38.5475H14.484C14.9418 38.5471 15.3808 38.3646 15.7046 38.0401C16.0284 37.7156 16.2106 37.2756 16.2112 36.8167V32.038C16.2104 31.2387 15.8933 30.4723 15.3295 29.9071C14.7657 29.3419 14.0013 29.024 13.204 29.0231H12.2112V22.1166C12.2848 22.1006 12.3576 22.0837 12.432 22.0693C13.1066 23.3192 14.0396 24.4103 15.1688 25.2695C16.64 26.3795 18.3096 26.9666 20 26.9666C21.6904 26.9666 23.36 26.3795 24.8312 25.2695C25.6704 24.6323 26.4026 23.8647 27 22.9957V32.9636C26.3723 33.2245 25.8562 33.6985 25.5421 34.3025C25.2279 34.9066 25.1358 35.6022 25.2817 36.2675C25.4277 36.9329 25.8025 37.5255 26.3405 37.9416C26.8784 38.3578 27.5453 38.5709 28.2242 38.5437C28.9032 38.5164 29.5509 38.2506 30.054 37.7927C30.5571 37.3348 30.8835 36.7141 30.976 36.0392C31.0685 35.3643 30.9212 34.6783 30.5599 34.1013C30.1987 33.5243 29.6465 33.0932 29 32.8834V22.4118C31.3392 23.0679 33.3416 24.149 34.8656 25.5951C36.916 27.5393 38 30.0946 38 32.982V40H40V32.982C40 29.53 38.7 26.4718 36.24 24.1386ZM28.1056 36.5424C27.9287 36.5424 27.7558 36.4898 27.6087 36.3912C27.4616 36.2927 27.347 36.1527 27.2793 35.9888C27.2116 35.825 27.1939 35.6447 27.2284 35.4707C27.2629 35.2968 27.3481 35.137 27.4732 35.0116C27.5982 34.8862 27.7576 34.8008 27.9311 34.7662C28.1046 34.7316 28.2844 34.7493 28.4479 34.8172C28.6113 34.8851 28.751 35 28.8493 35.1475C28.9475 35.2949 29 35.4683 29 35.6457C28.9998 35.8834 28.9055 36.1114 28.7378 36.2795C28.5701 36.4476 28.3427 36.5421 28.1056 36.5424Z" fill="${t}"/></svg>`}({color:"var(--color-primary)"})}<div class="content"><p class="title">${this.title}</p><p class="description">${this.description}</p></div>`}};n([k({type:String})],G.prototype,"title",void 0),n([k({type:String})],G.prototype,"description",void 0),n([k({type:String})],G.prototype,"icon",void 0),G=n([s(),r("home-empty-state")],G);const K=f`:host{display:block;max-width:var(--content-max-width);margin:0 auto}.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;margin-bottom:var(--sp-4)}.container{padding:var(--sp-6) var(--sp-4)}.documents-list{border-radius:var(--border-radius-md);padding:var(--sp-3);background-color:var(--color-muted);display:flex;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-6)}hr{width:100%;border:none;border-top:1px solid #e5e5e5;margin:0}.button-container{max-width:332px;margin:0 auto}`;let N=class RecentDocuments extends b{constructor(){super(...arguments),this.getPatientDocumentsQuery=new c(this,()=>Z(C,{patient_hash:this.loginToken.patient.hash,page:1,per_page:2})),this.getOrganizationSpecialtiesQuery=new c(this,()=>T(C))}static{this.styles=K}renderDocuments(){return this.getPatientDocumentsQuery.render({complete:e=>{const i=t();return 0===e.data.length?w`<home-empty-state icon="document" title="${l("No tienes documentación")}" description="${l("Aquí se mostrarán tus recetas e informes médicos. Consulta a tu profesional de salud para recibir documentación.")}"></home-empty-state>`:w`<mq-card class="container" roundness="md"><div class="documents-list">${e.data.map((t,o)=>{const n=this.getOrganizationSpecialtiesQuery.result?.data?.find(e=>e.id===t.professional.speciality_id),r=E(n?.code??"",i,n?.name);return w`<patient-document filename="${t.name}" kind="${t.document_type}" specialty="${r}" description="${t.name}" date="${t.created_at}" downloadUrl="${t.url}"></patient-document>${o<e.data.length-1?w`<hr>`:x}`})}</div><div class="button-container"><mq-button variant="primary" size="md" fullwidth @click="${()=>{h.track(g(this.loginToken.patient.hash)),this.dispatchEvent(new Q)}}">${l("Ver toda la documentación")}</mq-button></div></mq-card>`},pending:()=>w`<mq-card class="container" roundness="md"><div class="documents-list"><mq-skeleton height="57px"></mq-skeleton><hr><mq-skeleton height="57px"></mq-skeleton></div></mq-card>`})}render(){return w`<h2 class="title">${l("Documentación más reciente")}</h2>${this.renderDocuments()}`}};n([a({context:p})],N.prototype,"loginToken",void 0),N=n([s(),r("recent-documents")],N);const R=[$.pending,$.accepted],J=f`:host{display:block}.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;margin-bottom:var(--sp-4)}.container{background-color:var(--color-neutrals-background-weak);padding:var(--sp-6) var(--sp-4)}.appointment-card{margin-bottom:var(--sp-6)}`;let O=class NextAppointments extends b{constructor(){super(...arguments),this.getAppointmentsQuery=new c(this,()=>D(C,{status:R,order:{field:"starts_at",direction:"asc"},page:1,per_page:1}))}static{this.styles=J}renderAppointment(){return this.getAppointmentsQuery.render({complete:t=>{const e=t.data?.[0];return e?w`<div class="appointment-card"><appointment-card .appointmentResource="${e}" .specialtyId="${e.speciality?.id}" variant="next" detailsVariant="default"></appointment-card></div>`:w`<home-empty-state icon="doctor" title="${l("No tienes próximas citas")}" description="${l("Cuando agendes una cita, aparecerá aquí para que puedas consultarla, modificarla o cancelarla.")}"></home-empty-state>`},pending:()=>w`<div class="appointment-card"><appointment-card-skeleton></appointment-card-skeleton></div>`})}render(){return w`<h2 class="title">${l("Próxima cita")}</h2>${this.renderAppointment()}`}};O=n([s(),r("next-appointments")],O);const Y=f`:host{display:flex;flex-direction:column;height:100%}.support-banner{display:block;flex-shrink:0;margin-bottom:var(--sp-4)}mq-layout{flex:1 1 auto;min-height:0}.banner-area{margin-top:calc(-1 * var(--sp-4));margin-left:calc(-1 * var(--sp-4));margin-right:calc(-1 * var(--sp-4))}.content{display:flex;flex-direction:column;padding-top:var(--sp-6);gap:var(--sp-6)}next-appointments{width:100%}recent-documents{width:100%}@media (min-width:768px){.banner-area{margin:0 auto}.content{flex-direction:row}next-appointments{width:50%}recent-documents{width:50%}}`;let X=class MqDashboard extends b{constructor(){super(...arguments),this.showMediquoBranding=!0,this._trackedPageView=!1,this.orgSetupQuery=new c(this,()=>d(C))}static{this.styles=Y}willUpdate(t){t.has("env")&&this.env&&y(this.env),t.has("apiKey")&&this.apiKey&&C.setApiKey(this.apiKey),t.has("token")&&this.token&&C.setAuthToken(this.token),t.has("locale")&&this.locale&&e(this.locale)&&(i(this.locale),C.setLanguage(this.locale))}updated(){!this._trackedPageView&&this.loginToken?.patient.hash&&(this._trackedPageView=!0,h.track(v(this.loginToken.patient.hash)))}render(){return w`${this.orgSetupQuery.render({pending:()=>w``,complete:t=>t.support_professional?.hash?w`<support-chat-banner class="support-banner" professional-hash="${t.support_professional.hash}"></support-chat-banner>`:w``})}<mq-layout background="transparent" variant="wide" .showMediquoBranding="${this.showMediquoBranding}">${this.orgSetupQuery.render({pending:()=>w`<mq-skeleton class="banner-area" width="100%" height="296px" border-radius="none"></mq-skeleton>`,complete:t=>w`<top-banner class="banner-area" .orgSetup="${t}"></top-banner>`})}<div class="content"><next-appointments></next-appointments><recent-documents></recent-documents></div></mq-layout>`}};n([k({type:String,attribute:"api-key"})],X.prototype,"apiKey",void 0),n([k({type:String,attribute:"token"})],X.prototype,"token",void 0),n([k({type:String,attribute:"locale"})],X.prototype,"locale",void 0),n([k({type:String,attribute:"env"})],X.prototype,"env",void 0),n([k({type:Boolean,attribute:"show-mediquo-branding"})],X.prototype,"showMediquoBranding",void 0),n([a({context:p})],X.prototype,"loginToken",void 0),X=n([s(),r("mq-dashboard")],X),o();export{A as MqAppointmentBookEvent,X as MqDashboard,B as MqViewAppointmentsEvent,Q as MqViewDocumentsEvent};
|
package/dist/mq-documents.d.ts
CHANGED
|
@@ -4,10 +4,9 @@ import { LitElement, PropertyValues } from 'lit';
|
|
|
4
4
|
import { Env } from './env.js';
|
|
5
5
|
import './chunks/index-DNUbmrQl.js';
|
|
6
6
|
import './ui/mq-skeleton.js';
|
|
7
|
-
import './ui/
|
|
7
|
+
import './ui/mq-page-title.js';
|
|
8
8
|
import './ui/mq-button.js';
|
|
9
9
|
import 'zod';
|
|
10
|
-
import './ui/mq-text-button.js';
|
|
11
10
|
|
|
12
11
|
/**
|
|
13
12
|
* Patient documents list (prescriptions, reports). Fetches the patient's
|
|
@@ -59,9 +58,8 @@ declare global {
|
|
|
59
58
|
* The chrome is always on. Hosts that provide their own title and back
|
|
60
59
|
* navigation mount `mq-documents` instead, which stays content-only.
|
|
61
60
|
*
|
|
62
|
-
* Back is decoupled from routing
|
|
63
|
-
* `
|
|
64
|
-
* where that goes.
|
|
61
|
+
* Back is decoupled from routing: `mq-page-title` emits `mq-back` with
|
|
62
|
+
* `source: "documents"`, and the host decides where that goes.
|
|
65
63
|
*
|
|
66
64
|
* Props are forwarded verbatim to the inner `mq-documents`, which owns the
|
|
67
65
|
* env/token/locale wiring — this element adds no side effects of its own.
|
package/dist/mq-documents.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isValidLocale as t,setLocale as e,getLocale as i,initLocalization as n}from"./i18n.js";import{_ as o,c as
|
|
1
|
+
import{isValidLocale as t,setLocale as e,getLocale as i,initLocalization as n}from"./i18n.js";import{_ as o,c as s}from"./chunks/custom-element-D2ziPxYE.js";import{m as r,s 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{g as l,a as u}from"./chunks/i18n-formats-DYS91YEa.js";import{g as m}from"./chunks/get-patient-documents-query-DIQH-TMM.js";import{g as d}from"./chunks/get-patient-profile-query-B0tUDJmT.js";import{i as h,a as g,x as y,E as v}from"./chunks/lit-element-DiWJYFwC.js";import{n as k}from"./chunks/property-scuRaFcM.js";import{r as f}from"./chunks/state-LQivXIgA.js";import{setEnv as b}from"./env.js";import{a as j}from"./chunks/api-chat-client-BBL1U9EQ.js";import{chevronLeftIcon as x}from"./ui/icons/chevron-left-icon.js";import{chevronRightIcon as $}from"./ui/icons/chevron-right-icon.js";import"./chunks/index-KvIw19qY.js";import"./ui/mq-skeleton.js";import{o as q}from"./chunks/if-defined-BYeVdwgd.js";import"./ui/mq-page-title.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/external-CJj32K_p.js";import"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import"./chunks/create-context-DqP79qjF.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/query-Cjvi4_dT.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.js";import"./ui/icons/types.js";import"./ui/icons/download-icon.js";import"./ui/mq-button.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./events.js";import"./chunks/style-map-CIdqdn7C.js";import"./ui/icons/arrow-narrow-left-icon.js";const P=h`:host{display:block}.container{background-color:var(--color-card);padding:var(--mq-documents-padding,var(--sp-5) var(--sp-4));border-radius:var(--border-radius-md)}.documents-list{border-radius:var(--border-radius-md);background-color:var(--color-muted);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-4)}.empty{font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-neutrals-text-default);text-align:center;padding:var(--sp-6) var(--sp-4);margin:0}hr{width:100%;border:none;border-top:1px solid var(--color-border);margin:0}.pagination{display:flex;align-items:center;justify-content:center;gap:var(--sp-2_5);margin-top:var(--sp-4)}.pagination-text{font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-weight-normal);color:var(--color-neutrals-text-default);line-height:normal}.pagination-button{background:0 0;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--color-neutrals-text-default)}.pagination-button:disabled{opacity:0;cursor:not-allowed}.pagination-button:not(:disabled):hover{opacity:.7}@media (min-width:768px){.documents-list{padding:var(--sp-6)}}`;let _=class MqDocuments extends g{constructor(){super(...arguments),this.currentPage=1,this.getPatientProfileQuery=new c(this,()=>d(j)),this.getPatientDocumentsQuery=new c(this,()=>({...m(j,{patient_hash:this._patientHash,page:this.currentPage,per_page:6}),enabled:!!this._patientHash})),this.getOrganizationSpecialtiesQuery=new c(this,()=>l(j))}static{this.styles=P}willUpdate(i){i.has("env")&&this.env&&b(this.env),i.has("apiKey")&&this.apiKey&&j.setApiKey(this.apiKey),i.has("token")&&this.token&&j.setAuthToken(this.token),i.has("locale")&&this.locale&&t(this.locale)&&(e(this.locale),j.setLanguage(this.locale))}get _patientHash(){return this.getPatientProfileQuery.result?.data?.hash??""}handlePreviousPage(){this.currentPage>1&&(this.currentPage-=1)}handleNextPage(){const t=this.getPatientDocumentsQuery.result?.data?.meta?.last_page??1;this.currentPage<t&&(this.currentPage+=1)}renderDocuments(){return this.getPatientDocumentsQuery.render({complete:t=>{const e=i();return 0===t.data.length?y`<p class="empty">${r("Aquí se mostrarán tus recetas e informes médicos.")}</p>`:y`<div class="documents-list">${t.data.map((i,n)=>y`<patient-document filename="${i.name}" kind="${i.document_type}" specialty="${(()=>{const t=this.getOrganizationSpecialtiesQuery.result?.data?.find(t=>t.id===i.professional.speciality_id);return u(t?.code??"",e,t?.name)})()}" description="${i.name}" date="${i.created_at}" downloadUrl="${i.url}"></patient-document>${n<t.data.length-1?y`<hr>`:v}`)}</div>${this.renderPagination(t.meta)}`},pending:()=>y`<div class="documents-list"><mq-skeleton height="57px"></mq-skeleton><hr><mq-skeleton height="57px"></mq-skeleton><hr><mq-skeleton height="57px"></mq-skeleton></div>`})}renderPagination(t){const e=t.current_page>1,i=t.current_page<t.last_page;return y`<div class="pagination"><button class="pagination-button" @click="${this.handlePreviousPage}" ?disabled="${!e}" aria-label="${r("Página anterior")}">${x({size:24})}</button> <span class="pagination-text">${r(a`${t.current_page} de ${t.last_page}`)} </span><button class="pagination-button" @click="${this.handleNextPage}" ?disabled="${!i}" aria-label="${r("Página siguiente")}">${$({size:24})}</button></div>`}render(){return y`<div class="container">${this.renderDocuments()}</div>`}};o([k({type:String,attribute:"api-key"})],_.prototype,"apiKey",void 0),o([k({type:String,attribute:"token"})],_.prototype,"token",void 0),o([k({type:String,attribute:"locale"})],_.prototype,"locale",void 0),o([k({type:String,attribute:"env"})],_.prototype,"env",void 0),o([f()],_.prototype,"currentPage",void 0),_=o([p(),s("mq-documents")],_);const w=h`:host{display:block}`;let S=class MqDocumentsPage extends g{static{this.styles=w}render(){return y`<mq-page-title source="documents" .title="${r("Mis documentos")}"></mq-page-title><mq-documents api-key="${q(this.apiKey)}" token="${q(this.token)}" locale="${q(this.locale)}" env="${q(this.env)}"></mq-documents>`}};o([k({type:String,attribute:"api-key"})],S.prototype,"apiKey",void 0),o([k({type:String,attribute:"token"})],S.prototype,"token",void 0),o([k({type:String,attribute:"locale"})],S.prototype,"locale",void 0),o([k({type:String,attribute:"env"})],S.prototype,"env",void 0),S=o([p(),s("mq-documents-page")],S),n();export{_ as MqDocuments,S as MqDocumentsPage};
|
|
@@ -2,15 +2,15 @@ export { A as AppointmentDetails } from './chunks/appointment-details-DpzdYLjq.j
|
|
|
2
2
|
import * as lit_html from 'lit-html';
|
|
3
3
|
import * as lit from 'lit';
|
|
4
4
|
import { LitElement } from 'lit';
|
|
5
|
-
import { L as LoginTokenResponse } from './chunks/schemas.d-5LR6aN9I.js';
|
|
6
5
|
import { z } from 'zod';
|
|
7
6
|
import { MqTabsSelectEvent } from './ui/mq-tabs.js';
|
|
8
7
|
import './chunks/appointment-card-skeleton-1c7552Ln.js';
|
|
9
8
|
import './ui/mq-button.js';
|
|
10
|
-
import './ui/
|
|
9
|
+
import './ui/mq-page-title.js';
|
|
11
10
|
export { P as ProfessionalOverview } from './chunks/professional-overview-mO3tuMuH.js';
|
|
12
11
|
import './chunks/appointment.model.d-Dy50gMPg.js';
|
|
13
12
|
import './ui/mq-card.js';
|
|
13
|
+
import './chunks/schemas.d-5LR6aN9I.js';
|
|
14
14
|
import './chunks/mq-chat-room-DuG4RuIp.js';
|
|
15
15
|
import './ui/mq-avatar.js';
|
|
16
16
|
import './ui/mq-skeleton.js';
|
|
@@ -57,7 +57,6 @@ declare global {
|
|
|
57
57
|
*/
|
|
58
58
|
declare class MqMyAppointments extends LitElement {
|
|
59
59
|
static styles: lit.CSSResult;
|
|
60
|
-
loginToken: LoginTokenResponse;
|
|
61
60
|
tab: MqMyAppointmentsTabs;
|
|
62
61
|
handleSelect(event: MqTabsSelectEvent): void;
|
|
63
62
|
render(): lit_html.TemplateResult<1>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export{A as AppointmentDetails}from"./chunks/price-LTnCz9kN.js";import{_ as t,c as e}from"./chunks/custom-element-D2ziPxYE.js";import{c as i}from"./chunks/consume-CovVqBjI.js";import{m as n,s}from"./chunks/runtime-Bg1WXVCx.js";import{l as o}from"./chunks/localized-decorator-BlOuLhym.js";import{l as a}from"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import{a as r,i as p,x as l}from"./chunks/lit-element-DiWJYFwC.js";import{n as c}from"./chunks/property-scuRaFcM.js";import{e as m}from"./chunks/external-CJj32K_p.js";import{MqHomeEvent as d}from"./events.js";import"./ui/mq-tabs.js";import{d as u,a as h}from"./chunks/api-chat-client-BBL1U9EQ.js";import{g as v}from"./chunks/appointment-card-skeleton-C8VERHzq.js";import"./ui/mq-button.js";import{Q as g}from"./chunks/query-controller-BlO1Ax65.js";import"./ui/back-link.js";export{P as ProfessionalOverview}from"./chunks/professional-overview-C4H_znIJ.js";import"./chunks/telemetry-client-BLJVs9me.js";import"./chunks/parseISO-Dj3qSTG8.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/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.js";import"./env.js";import"./chunks/get-organization-setup-query-BMbuRi6v.js";import"./chunks/i18n-formats-DYS91YEa.js";import"./chunks/refund-cancel-policy-CXFTrFfo.js";import"./chunks/chunk-GZF3YFSX-DM-GTqxg.js";import"./chunks/state-LQivXIgA.js";import"./ui/mq-card.js";import"./mq-chat-room.js";import"./chunks/provide-D2fnEhT2.js";import"./chunks/context-provider--AKuwfs9.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-YMQSBQHL-De_r7BNk.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/mq-dialog.js";import"./ui/icons/video-icon.js";import"./ui/mq-unread-badge.js";import"./ui/mq-toast.js";import"./ui/mq-text-button.js";import"./ui/icons/chevron-down-icon.js";const b=m(["next","history"]).enum;class MqMyAppointmentsSelectEvent extends Event{static{this.eventName="ontabchange"}constructor(t){super(MqMyAppointmentsSelectEvent.eventName,{bubbles:!0,composed:!0}),this.value=t}}let x=class EmptyState extends r{static{this.styles=p`.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 l`<div class="container"><div class="card">${function({color:t="currentColor"}){return l`<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}">${n("Pedir cita")}</mq-button></div></div>`}};t([c({type:String})],x.prototype,"title",void 0),t([c({type:String})],x.prototype,"description",void 0),x=t([e("empty-state")],x);const f=[u.pending,u.accepted],k=p`.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 y=class NextAppointmentsTab extends r{constructor(){super(...arguments),this.getAppointmentsQuery=new g(this,()=>v(h,{status:f,order:{field:"starts_at",direction:"asc"}}))}static{this.styles=k}render(){return this.getAppointmentsQuery.render({complete:t=>l`${t.data.length>0?l`<div class="appointments-list">${t.data.map(t=>l`<appointment-card .appointmentResource="${t}" .specialtyId="${t.speciality?.id}"></appointment-card>`)}</div>`:l`<empty-state title="${n("No tienes próximas citas")}" description="${n("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:()=>l`<div class="appointments-list"><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton></div>`})}};y=t([o(),e("next-appointments-tab")],y);const j=[u.finished,u.reporting];let q=class AppointmentsHistoryTab extends r{constructor(){super(...arguments),this.getAppointmentsQuery=new g(this,()=>v(h,{status:j,order:{field:"starts_at",direction:"desc"}}))}static{this.styles=p`.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=>l`${t.data.length>0?l`<div class="appointments-list">${t.data.map(t=>l`<appointment-card .appointmentResource="${t}" .specialtyId="${t.speciality?.id}" variant="history"></appointment-card>`)}</div>`:l`<empty-state title="${n("No tienes citas en el historial")}" description="${n("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:()=>l`<div class="appointments-list"><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton><appointment-card-skeleton></appointment-card-skeleton></div>`})}};q=t([o(),e("appointments-history-tab")],q);const H=p`.container{display:flex;flex-direction:column;gap:var(--size-3)}h1{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-neutral-link-dark);margin:0}p{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-neutral-link-dark);margin:0}.user-info{display:flex;align-items:center;justify-content:space-between}@media (min-width:768px){h1{font-size:var(--text-3xl);line-height:var(--text-3xl--line-height)}mq-tabs-list{max-width:435px}}`;let w=class MqMyAppointments extends r{constructor(){super(...arguments),this.tab=b.next}static{this.styles=H}handleSelect(t){this.dispatchEvent(new MqMyAppointmentsSelectEvent(t.value))}render(){return l`<div class="container"><back-link @mq-back="${t=>{t.stopPropagation(),this.dispatchEvent(new d)}}">${n("Volver al inicio")}</back-link><h1>${n("Mis citas")}</h1><div class="user-info"><p>${n(s`Para: ${this.loginToken.patient.name}`)}</p></div><mq-tabs .value="${this.tab}" @onvaluechange="${this.handleSelect}"><mq-tabs-list><mq-tabs-trigger value="${b.next}">${n("Próximas citas")}</mq-tabs-trigger><mq-tabs-trigger value="${b.history}">${n("Histórico")}</mq-tabs-trigger></mq-tabs-list><mq-tabs-content value="${b.next}"><next-appointments-tab></next-appointments-tab></mq-tabs-content><mq-tabs-content value="${b.history}"><appointments-history-tab></appointments-history-tab></mq-tabs-content></mq-tabs></div>`}};t([i({context:a})],w.prototype,"loginToken",void 0),t([c({type:String,reflect:!0})],w.prototype,"tab",void 0),w=t([o(),e("mq-my-appointments")],w);const V=p`: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 $=class RequestAppointmentCta extends r{static{this.styles=V}handleRequestAppointment(){this.dispatchEvent(new RequestAppointmentEvent)}render(){return l`<div class="request-appointment-cta"><div class="title-body"><h2 class="title">${n("Nueva cita de especialidades digitales")}</h2><p class="subtitle">${n("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">${n("Pedir cita")}</span> <span class="button-text-desktop">${n("Pedir una nueva cita")}</span></mq-button></div>`}};$=t([o(),e("request-appointment-cta")],$);export{w as MqMyAppointments,MqMyAppointmentsSelectEvent,$ as RequestAppointmentCta,RequestAppointmentEvent};
|
|
1
|
+
export{A as AppointmentDetails}from"./chunks/price-LTnCz9kN.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{d as m,a as l}from"./chunks/api-chat-client-BBL1U9EQ.js";import{g as d}from"./chunks/appointment-card-skeleton-C8VERHzq.js";import"./ui/mq-button.js";import{Q as u}from"./chunks/query-controller-BlO1Ax65.js";import"./ui/mq-page-title.js";export{P as ProfessionalOverview}from"./chunks/professional-overview-C4H_znIJ.js";import"./chunks/telemetry-client-BLJVs9me.js";import"./chunks/parseISO-Dj3qSTG8.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/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.js";import"./env.js";import"./chunks/consume-CovVqBjI.js";import"./chunks/context-consumer-ESdICVAb.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/get-organization-setup-query-BMbuRi6v.js";import"./chunks/i18n-formats-DYS91YEa.js";import"./chunks/refund-cancel-policy-CXFTrFfo.js";import"./chunks/chunk-GZF3YFSX-DM-GTqxg.js";import"./chunks/state-LQivXIgA.js";import"./ui/mq-card.js";import"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import"./chunks/create-context-DqP79qjF.js";import"./mq-chat-room.js";import"./chunks/provide-D2fnEhT2.js";import"./chunks/context-provider--AKuwfs9.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-YMQSBQHL-De_r7BNk.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/mq-dialog.js";import"./ui/icons/video-icon.js";import"./ui/mq-unread-badge.js";import"./ui/mq-toast.js";import"./ui/icons/arrow-narrow-left-icon.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 g=[m.pending,m.accepted],b=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 x=class NextAppointmentsTab extends n{constructor(){super(...arguments),this.getAppointmentsQuery=new u(this,()=>d(l,{status:g,order:{field:"starts_at",direction:"asc"}}))}static{this.styles=b}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>`})}};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 u(this,()=>d(l,{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>`})}};k=t([s(),e("appointments-history-tab")],k);const y=o`.container{display:flex;flex-direction:column;gap:var(--size-3)}@media (min-width:768px){mq-tabs-list{max-width:435px}}`;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-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="${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};
|
|
@@ -2,6 +2,7 @@ import * as lit_html from 'lit-html';
|
|
|
2
2
|
import * as lit from 'lit';
|
|
3
3
|
import { LitElement, PropertyValues } from 'lit';
|
|
4
4
|
import { Env } from './env.js';
|
|
5
|
+
import './ui/mq-button.js';
|
|
5
6
|
export { MqPaymentSucceededEvent } from './events.js';
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -21,6 +22,10 @@ export { MqPaymentSucceededEvent } from './events.js';
|
|
|
21
22
|
*
|
|
22
23
|
* @fires mq-payment-succeeded - The session reached `paid`. Carries the created
|
|
23
24
|
* appointment id, so the host can route straight to the confirmation screen.
|
|
25
|
+
* @fires mq-back - The user asked to leave a terminal error screen (the "Volver"
|
|
26
|
+
* action on the rejected / unconfirmable states). Purely a navigation hint —
|
|
27
|
+
* the host decides where "back" goes; hosts that render the poller as a
|
|
28
|
+
* dedicated return page can ignore it.
|
|
24
29
|
*/
|
|
25
30
|
declare class MqPaymentPoller extends LitElement {
|
|
26
31
|
static styles: lit.CSSResult;
|
|
@@ -47,6 +52,8 @@ declare class MqPaymentPoller extends LitElement {
|
|
|
47
52
|
private _stop;
|
|
48
53
|
private _settle;
|
|
49
54
|
private _pollOnce;
|
|
55
|
+
private _onRetry;
|
|
56
|
+
private _onBack;
|
|
50
57
|
private _renderVerifying;
|
|
51
58
|
private _renderDenied;
|
|
52
59
|
private _renderTimeout;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{isValidLocale as t,setLocale as e,initLocalization as i}from"./i18n.js";import{_ as s,c as o}from"./chunks/custom-element-D2ziPxYE.js";import{m as
|
|
1
|
+
import{isValidLocale as t,setLocale as e,initLocalization as i}from"./i18n.js";import{_ as s,c as o}from"./chunks/custom-element-D2ziPxYE.js";import{m as r}from"./chunks/runtime-Bg1WXVCx.js";import{l as a}from"./chunks/localized-decorator-BlOuLhym.js";import{a as n,P as l}from"./chunks/api-chat-client-BBL1U9EQ.js";import{i as c,a as d,x as p}from"./chunks/lit-element-DiWJYFwC.js";import{n as h}from"./chunks/property-scuRaFcM.js";import{r as u}from"./chunks/state-LQivXIgA.js";import{setEnv as m}from"./env.js";import{MqBackEvent as v,MqPaymentSucceededEvent as f}from"./events.js";import{spinnerIcon as g}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/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.js";import"./ui/icons/types.js";import"./chunks/class-map-Co76I6aw.js";import"./chunks/directive-2EDmOukv.js";import"./chunks/if-defined-BYeVdwgd.js";const y="support@mediquo.com",_=c`: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 b=class MqPaymentPoller extends d{constructor(){super(...arguments),this.timeoutMs=9e4,this._view="verifying",this._deadline=0,this._settled=!1,this._onRetry=()=>{this._restart()},this._onBack=()=>{this.dispatchEvent(new v({source:"payment-poller"}))}}static{this.styles=_}willUpdate(i){i.has("env")&&this.env&&m(this.env),i.has("apiKey")&&this.apiKey&&n.setApiKey(this.apiKey),i.has("token")&&this.token&&n.setAuthToken(this.token),i.has("locale")&&this.locale&&t(this.locale)&&(e(this.locale),n.setLanguage(this.locale))}updated(t){t.has("sessionId")&&this._restart()}disconnectedCallback(){this._stop(),super.disconnectedCallback()}_restart(){this._stop(),this._settled=!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(t){this._stop(),this._settled=!0,this._view=t}async _pollOnce(){const t=this.sessionId;if(this._settled||!t)return;if(Date.now()>=this._deadline)return void this._settle("timeout");let e;try{e=await n.payments.getPaymentSession(t)}catch{return}return this._settled||t!==this.sessionId?void 0:e.status===l.Paid?(this._stop(),this._settled=!0,void this.dispatchEvent(new f({appointmentId:e.consultation_id,consultationType:e.consultation_type}))):void(e.status===l.Denied&&this._settle("denied"))}_renderVerifying(){return p`<div class="card"><div class="verifying" role="status" aria-live="polite">${g({size:28,color:"var(--color-primary)"})}<p class="title">${r("Confirmando tu pago")}</p><p class="message">${r("No cierres, vuelvas atrás ni actualices la ventana; esto puede tardar unos momentos.")}</p></div></div>`}_renderDenied(){return p`<div class="card"><div class="outcome" role="alert"><p class="title">${r("Tu pago no se ha completado")}</p><p class="message">${r("El pago ha sido rechazado y no hemos creado la cita. No se te ha cobrado nada: vuelve a intentarlo con otro método de pago.")}</p><div class="actions"><mq-button variant="primary" size="lg" fullwidth @click="${this._onBack}">${r("Volver")}</mq-button></div></div></div>`}_renderTimeout(){return p`<div class="card"><div class="outcome" role="alert"><p class="title">${r("Ha ocurrido un error")}</p><p class="message">${r("No hemos podido confirmar tu pago. Por favor, inténtalo de nuevo más tarde.")}</p><p class="message support">${r("Si se te ha cobrado sin una cita confirmada, contacta con nuestro equipo en")} <a href="mailto:${y}">${y}</a></p><div class="actions"><mq-button variant="primary" size="lg" fullwidth @click="${this._onRetry}">${r("Reintentar verificación")}</mq-button><mq-button variant="secondary" size="lg" fullwidth @click="${this._onBack}">${r("Volver")}</mq-button></div></div></div>`}render(){switch(this._view){case"denied":return this._renderDenied();case"timeout":return this._renderTimeout();default:return this._renderVerifying()}}};s([h({type:String,attribute:"session-id"})],b.prototype,"sessionId",void 0),s([h({type:String,attribute:"api-key"})],b.prototype,"apiKey",void 0),s([h({type:String,attribute:"token"})],b.prototype,"token",void 0),s([h({type:String,attribute:"locale"})],b.prototype,"locale",void 0),s([h({type:String,attribute:"env"})],b.prototype,"env",void 0),s([h({type:Number,attribute:"timeout-ms"})],b.prototype,"timeoutMs",void 0),s([u()],b.prototype,"_view",void 0),b=s([a(),o("mq-payment-poller")],b),i();export{b as MqPaymentPoller,f as MqPaymentSucceededEvent};
|
|
@@ -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{i as p,a as l,x as d,E as m}from"./chunks/lit-element-DiWJYFwC.js";import{n as u}from"./chunks/property-scuRaFcM.js";import{r as h}from"./chunks/state-LQivXIgA.js";import{setEnv as v}from"./env.js";import{MqViewAppointmentsEvent as g,MqHomeEvent as f}from"./events.js";import{a as k,A as y,g as b,C as x}from"./chunks/api-chat-client-BBL1U9EQ.js";import{checkIcon as j}from"./ui/icons/check-icon.js";import"./ui/mq-callout.js";import"./ui/mq-button.js";import{c as w}from"./chunks/consume-CovVqBjI.js";import{l as $}from"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import"./chunks/professional-overview-C4H_znIJ.js";import{f as q}from"./chunks/price-LTnCz9kN.js";import{Q as C}from"./chunks/query-controller-BlO1Ax65.js";import{g as _}from"./chunks/get-appointment-query-Ck68BEMg.js";import{g as S}from"./chunks/get-organization-setup-query-BMbuRi6v.js";import{g as z}from"./chunks/get-patient-profile-query-B0tUDJmT.js";import{g as I}from"./chunks/chunk-GZF3YFSX-DM-GTqxg.js";import{calendarIcon as O}from"./ui/icons/calendar-icon.js";import{chatbubbleIcon as Q}from"./ui/icons/chat-bubble-icon.js";import{videoIcon as A}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 T,a as P}from"./chunks/i18n-formats-DYS91YEa.js";import"./ui/mq-skeleton.js";import"./ui/mq-card.js";import{Q as E}from"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import{t as N,e as V,a as F,f as H,g as B,h as G}from"./chunks/telemetry-client-BLJVs9me.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/external-CJj32K_p.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.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-consumer-ESdICVAb.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/create-context-DqP79qjF.js";import"./ui/icons/chevron-down-icon.js";import"./
|
|
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{i as p,a as l,x as d,E as m}from"./chunks/lit-element-DiWJYFwC.js";import{n as u}from"./chunks/property-scuRaFcM.js";import{r as h}from"./chunks/state-LQivXIgA.js";import{setEnv as v}from"./env.js";import{MqViewAppointmentsEvent as g,MqHomeEvent as f}from"./events.js";import{a as k,A as y,g as b,C as x}from"./chunks/api-chat-client-BBL1U9EQ.js";import{checkIcon as j}from"./ui/icons/check-icon.js";import"./ui/mq-callout.js";import"./ui/mq-button.js";import{c as w}from"./chunks/consume-CovVqBjI.js";import{l as $}from"./chunks/chunk-S5RWG6G2-DPesx3Od.js";import"./chunks/professional-overview-C4H_znIJ.js";import{f as q}from"./chunks/price-LTnCz9kN.js";import{Q as C}from"./chunks/query-controller-BlO1Ax65.js";import{g as _}from"./chunks/get-appointment-query-Ck68BEMg.js";import{g as S}from"./chunks/get-organization-setup-query-BMbuRi6v.js";import{g as z}from"./chunks/get-patient-profile-query-B0tUDJmT.js";import{g as I}from"./chunks/chunk-GZF3YFSX-DM-GTqxg.js";import{calendarIcon as O}from"./ui/icons/calendar-icon.js";import{chatbubbleIcon as Q}from"./ui/icons/chat-bubble-icon.js";import{videoIcon as A}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 T,a as P}from"./chunks/i18n-formats-DYS91YEa.js";import"./ui/mq-skeleton.js";import"./ui/mq-card.js";import{Q as E}from"./chunks/chunk-RCFIJTXZ-C6Ir0-sM.js";import{t as N,e as V,a as F,f as H,g as B,h as G}from"./chunks/telemetry-client-BLJVs9me.js";import"./chunks/chunk-4FFT6DC2-CVWibomC.js";import"./chunks/external-CJj32K_p.js";import"./chunks/parseISO-Dj3qSTG8.js";import"./chunks/format-CRFiCNHw.js";import"./chunks/isBefore-CPpTogxo.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-consumer-ESdICVAb.js";import"./chunks/context-request-event-Dfydf1ub.js";import"./chunks/create-context-DqP79qjF.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/provide-D2fnEhT2.js";import"./chunks/context-provider--AKuwfs9.js";import"./theme.js";import"./ui/icons/x-icon.js";import"./chunks/chunk-YMQSBQHL-De_r7BNk.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=p`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 M=class MqScheduleSuccessSkeleton extends l{static{this.styles=K}render(){return d`<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>`}};M=n([a("mq-schedule-success-skeleton")],M);const R=p`.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 U=class MqScheduleSuccess extends l{constructor(){super(...arguments),this.kind="schedule",this.showNavCtas=!1,this._trackedPageView=!1,this.getPatientProfileQuery=new C(this,()=>z(k)),this.getAppointmentQuery=new C(this,()=>_(k,{id:this.appointmentId})),this.getCouponQuery=new C(this,()=>{return t=k,e={appointmentId:this.appointmentId},i={enabled:!!this.appointmentId},{queryKey:["appointment-consultation-coupon",e.appointmentId],queryFn:()=>t.payments.getAppointmentConsultationCoupon(e.appointmentId),retry:!1,...i};var t,e,i}),this.getOrganizationSpecialtiesQuery=new C(this,()=>T(k)),this.getOrganizationSetupQuery=new C(this,()=>S(k)),this.isChatOpen=!1,this.unreadQuery=new C(this,()=>I(k,{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 m}}}static{this.styles=R}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&&v(this.env),i.has("apiKey")&&this.apiKey&&k.setApiKey(this.apiKey),i.has("token")&&this.token&&k.setAuthToken(this.token),i.has("locale")&&this.locale&&t(this.locale)&&(e(this.locale),k.setLanguage(this.locale))}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 m;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,u=r?p?.percent_off??Math.round(a/o*100):0,h=l?`${s("Promoción")} ${l}`:s("Promoción");return d`<div class="price-breakdown"><div class="price-row"><span>${i}</span> <span>${q({amount:o,currency:n},e)}</span></div>${r?d`<div class="price-row"><span>${h} (-${u}%)</span> <span>${q({amount:-a,currency:n},e)}</span></div><hr><div class="price-row price-row--total"><span>${s("Total")}</span> <span>${q({amount:c,currency:n},e)}</span></div>`:m}</div>`}render(){return this.getAppointmentQuery.render({pending:()=>d`<mq-schedule-success-skeleton></mq-schedule-success-skeleton>`,complete:t=>{const e=i(),o=b(t.start_date),n=F(o,t.duration),a=this.getOrganizationSpecialtiesQuery.result?.data?.find(e=>e.id===Number(t.speciality_id)),c=P(a?.code??"",e,a?.name),p=t.channel===y.videocall,l=t.channel===y.phonecall,u=!0===this.getOrganizationSetupQuery.result?.data?.appointments?.has_chat_in_appointment,h=(p||l)&&u,v=this._accessToken;return d`<div><header><div class="success-title">${j()}<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(H(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?d`<div class="actions">${h?d`<mq-button variant="primary" fullwidth size="md" @click="${()=>{N.track(B(this._patientHash,this.appointmentId)),this.isChatOpen=!this.isChatOpen}}">${Q({size:24})} ${s("Chatear con el profesional")} ${(this.unreadQuery.result?.data?.unread_count??0)>0?d`<mq-unread-badge></mq-unread-badge>`:m}</mq-button>`:m} ${p?d`<mq-button variant="outline" fullwidth size="md" @click="${()=>{N.track(G(this._patientHash,this.appointmentId)),this.dispatchEvent(new OpenVideocallEvent({appointmentId:this.appointmentId}))}}">${A({size:24})} ${s("Ir a videollamada")}</mq-button>`:m}</div>`:m}</div><mq-callout background="default" variant="info" ?noPadding="${!(h||p)}">${this._getCalloutText(t)}</mq-callout></mq-card>${this.showNavCtas?d`<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 g({tab:"next"}))}}">${s("Ver mis citas")}</mq-button><mq-button variant="outline" size="md" fullwidth @click="${()=>{this.dispatchEvent(new f)}}">${s("Volver al inicio")}</mq-button></div></mq-card>`:m}</div><mq-floating-bubble ?dismissable="${!1}" .open="${this.isChatOpen}" @mq-close="${()=>{this.isChatOpen=!1}}" hideCloseButton>${this.isChatOpen&&v?d`<div slot="content" class="floating-content"><mq-chat-room .consultationId="${t.id}" .consultationType="${x.appointment}" .token="${v}" .roomId="${Number(t.room_id)}" .professionalHash="${t.from.hash}" @mq-chat-room-close="${()=>{this.isChatOpen=!1}}"></mq-chat-room></div>`:m}</mq-floating-bubble>`}})}};n([u({type:String})],U.prototype,"kind",void 0),n([u({type:String})],U.prototype,"appointmentId",void 0),n([u({type:String,attribute:"api-key"})],U.prototype,"apiKey",void 0),n([u({type:String,attribute:"token"})],U.prototype,"token",void 0),n([u({type:String,attribute:"timezone"})],U.prototype,"timezone",void 0),n([u({type:String,attribute:"locale"})],U.prototype,"locale",void 0),n([u({type:String,attribute:"env"})],U.prototype,"env",void 0),n([u({type:Boolean,attribute:"show-nav-ctas"})],U.prototype,"showNavCtas",void 0),n([w({context:E,subscribe:!0})],U.prototype,"queryClientContext",void 0),n([w({context:$})],U.prototype,"loginToken",void 0),n([h()],U.prototype,"isChatOpen",void 0),U=n([c(),a("mq-schedule-success")],U),o();export{U as MqScheduleSuccess,OpenVideocallEvent};
|
package/dist/mq-schedule.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { Env } from './env.js';
|
|
|
6
6
|
import { A as AppointmentChannel, a as Appointment } from './chunks/appointment.model.d-Dy50gMPg.js';
|
|
7
7
|
import z, { z as z$1 } from 'zod';
|
|
8
8
|
import './ui/mq-callout.js';
|
|
9
|
-
import './ui/mq-
|
|
9
|
+
import './ui/mq-page-title.js';
|
|
10
10
|
import './chunks/professional-overview-mO3tuMuH.js';
|
|
11
11
|
import './chunks/appointment-details-DpzdYLjq.js';
|
|
12
12
|
import './ui/mq-clamped-text.js';
|
|
@@ -15,6 +15,7 @@ import { P as PriceInCents } from './chunks/price.d-CwLosdAN.js';
|
|
|
15
15
|
import { QueryClient } from '@tanstack/query-core';
|
|
16
16
|
import { C as CreatePaymentLinkRequest, P as PaymentProvider } from './chunks/schemas.d-Bss7CeCZ.js';
|
|
17
17
|
import './ui/mq-skeleton.js';
|
|
18
|
+
import './ui/mq-text-button.js';
|
|
18
19
|
import './ui/mq-select.js';
|
|
19
20
|
import './ui/mq-time-slot-picker.js';
|
|
20
21
|
import './ui/mq-calendar.js';
|
|
@@ -206,22 +207,6 @@ interface SchedulePatient {
|
|
|
206
207
|
timezone: string;
|
|
207
208
|
}
|
|
208
209
|
|
|
209
|
-
/**
|
|
210
|
-
* @fires back - Fired when the back button is clicked
|
|
211
|
-
*/
|
|
212
|
-
declare class NewAppointmentHeader extends LitElement {
|
|
213
|
-
static styles: lit.CSSResult;
|
|
214
|
-
kind: "schedule" | "reschedule";
|
|
215
|
-
showBack: boolean;
|
|
216
|
-
patient: SchedulePatient;
|
|
217
|
-
render(): lit_html.TemplateResult<1>;
|
|
218
|
-
}
|
|
219
|
-
declare global {
|
|
220
|
-
interface HTMLElementTagNameMap {
|
|
221
|
-
"new-appointment-header": NewAppointmentHeader;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
|
|
225
210
|
declare const GetScheduleServicesResponseSchema: z.ZodArray<z.ZodObject<{
|
|
226
211
|
id: z.ZodString;
|
|
227
212
|
name: z.ZodString;
|