@mediquo/elements 0.8.0 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +61 -5
- package/dist/chunks/action-unavailable-message-BIgsXk9u.js +1 -0
- package/dist/chunks/api-chat-client-CJ1EGJe3.js +1 -0
- package/dist/chunks/api-client-context-V1UAGtKW.js +1 -0
- package/dist/chunks/{apple-pay-outcomes-BpcbdGfO.js → apple-pay-outcomes-B1LrUXHR.js} +1 -1
- package/dist/chunks/appointment-action-unavailable-dialog-CTiL4nMo.d.ts +54 -0
- package/dist/chunks/{appointment-card-skeleton-B7dKtGv0.d.ts → appointment-card-skeleton-C2Sim4nR.d.ts} +5 -3
- package/dist/chunks/appointment-card-skeleton-D8gypuKh.js +1 -0
- package/dist/chunks/appointment-details-DXLBQnPN.js +1 -0
- package/dist/chunks/chunk-6CCJWPGL-TiaqZaPV.js +1 -0
- package/dist/chunks/{chunk-BUV4MGML-Bn3JWCAv.js → chunk-BUV4MGML-CkhBbfUu.js} +1 -1
- package/dist/chunks/chunk-HN62IQ7S-xbkIy7k_.js +1 -0
- package/dist/chunks/chunk-Y4EKUX25-QqMl3eiq.js +1 -0
- package/dist/chunks/consume-CovVqBjI.js +1 -0
- package/dist/chunks/{chunk-6CCJWPGL-DlOpbEYH.js → context-consumer-ESdICVAb.js} +1 -1
- package/dist/chunks/documentation-view-BbMbGneD.js +1 -0
- package/dist/chunks/{get-appointment-query-lJe75hGS.js → get-appointment-query-C-gTTuiQ.js} +1 -1
- package/dist/chunks/{get-organization-setup-query-DxHNY0w8.js → get-organization-setup-query-Dr1cXnHl.js} +1 -1
- package/dist/chunks/{get-patient-documents-query-D1SfC_k_.js → get-patient-documents-query-NC9xCa_N.js} +1 -1
- package/dist/chunks/{get-patient-profile-query-DiU2f_QH.js → get-patient-profile-query-4AO6xvVn.js} +1 -1
- package/dist/chunks/{get-schedule-services-query-Ckvz9Fqh.js → get-schedule-services-query-Fzvb9ug9.js} +1 -1
- package/dist/chunks/index-Bw-MbGKw.js +1 -0
- package/dist/chunks/{index-Ca-l41nB.js → index-CXb3gOFA.js} +1 -1
- package/dist/chunks/{index-63zQSBy4.js → index-CyteNROM.js} +1 -1
- package/dist/chunks/index-D6Hg-beW.js +1 -0
- package/dist/chunks/{index-CDBk7hVW.d.ts → index-DTEtqjQF.d.ts} +0 -13
- package/dist/chunks/{index-czcKClL3.d.ts → index-Dbbpnw8f.d.ts} +8 -0
- package/dist/chunks/index-DdkeWQrh.d.ts +53 -0
- package/dist/chunks/index-Nf3nZ9O3.d.ts +16 -0
- package/dist/chunks/index-iaTXVzFa.js +1 -0
- package/dist/chunks/index-uHvVQMNc.js +1 -0
- package/dist/chunks/index.d-XSe7Hy-Q.d.ts +2989 -0
- package/dist/chunks/login-token-task-Yib__6a9.js +1 -0
- package/dist/chunks/{mq-chat-room-CRPruRJD.d.ts → mq-chat-room-jeDvIF1Z.d.ts} +12 -227
- package/dist/chunks/mq-layout-E5mKSz4A.js +1 -0
- package/dist/chunks/{index-CSJzkkRA.d.ts → mq-layout-TG2K4zRv.d.ts} +20 -0
- package/dist/chunks/provide-BwI4DDGF.js +1 -0
- package/dist/chunks/query-controller-BlO1Ax65.js +1 -0
- package/dist/chunks/refund-cancel-policy-CcsJ-pMx.js +1 -0
- package/dist/chunks/{schemas.d-D7bCe24u.d.ts → schemas.d-b6_AekBb.d.ts} +12 -1
- package/dist/chunks/telemetry-client-7fvNqUSU.js +1 -0
- package/dist/env.js +1 -1
- package/dist/i18n.js +1 -1
- package/dist/mq-api-client-provider.d.ts +39 -0
- package/dist/mq-api-client-provider.js +1 -0
- package/dist/mq-apple-pay-checkout.d.ts +12 -0
- package/dist/mq-apple-pay-checkout.js +1 -1
- package/dist/mq-appointment-checkout.d.ts +3 -1
- package/dist/mq-appointment-checkout.js +1 -1
- package/dist/mq-appointment-documentation.d.ts +13 -4
- package/dist/mq-appointment-documentation.js +1 -1
- package/dist/mq-chat-room.d.ts +5 -2
- package/dist/mq-chat-room.js +1 -1
- package/dist/mq-checkout.d.ts +21 -1
- package/dist/mq-checkout.js +1 -1
- package/dist/mq-dashboard.d.ts +21 -120
- package/dist/mq-dashboard.js +1 -1
- package/dist/mq-documents.d.ts +21 -7
- package/dist/mq-documents.js +1 -1
- package/dist/mq-google-pay-checkout.d.ts +12 -0
- package/dist/mq-google-pay-checkout.js +1 -1
- package/dist/mq-immediate-videocall-checkout.d.ts +3 -0
- package/dist/mq-immediate-videocall-checkout.js +1 -1
- package/dist/mq-my-appointments.d.ts +11 -7
- package/dist/mq-my-appointments.js +1 -1
- package/dist/mq-next-appointments.d.ts +17 -6
- package/dist/mq-next-appointments.js +1 -1
- package/dist/mq-payment-poller.d.ts +11 -0
- package/dist/mq-payment-poller.js +1 -1
- package/dist/mq-professional-presence-sync.d.ts +1 -0
- package/dist/mq-professional-presence-sync.js +1 -1
- package/dist/mq-query-client-provider.d.ts +4 -1
- package/dist/mq-query-client-provider.js +1 -1
- package/dist/mq-recent-documents.d.ts +19 -30
- package/dist/mq-recent-documents.js +1 -1
- package/dist/mq-schedule-success.d.ts +12 -2
- package/dist/mq-schedule-success.js +2 -2
- package/dist/mq-schedule.d.ts +24 -220
- package/dist/mq-schedule.js +1 -1
- package/dist/mq-session-provider.d.ts +1 -1
- package/dist/mq-session-provider.js +1 -1
- package/dist/mq-socket-provider.js +1 -1
- package/dist/mq-support-chat.d.ts +12 -2
- package/dist/mq-support-chat.js +1 -1
- package/dist/mq-terms-and-conditions.d.ts +5 -1
- package/dist/mq-terms-and-conditions.js +1 -1
- package/dist/mq-unread-count-sync.d.ts +1 -0
- package/dist/mq-unread-count-sync.js +1 -1
- package/dist/mq-videocall.d.ts +13 -3
- package/dist/mq-videocall.js +1 -1
- package/dist/react/mq-api-client-provider.d.ts +26 -0
- package/dist/react/mq-api-client-provider.js +2 -0
- package/dist/react/mq-apple-pay-checkout.d.ts +4 -1
- package/dist/react/mq-apple-pay-checkout.js +1 -1
- package/dist/react/mq-appointment-checkout.d.ts +3 -1
- package/dist/react/mq-appointment-checkout.js +1 -1
- package/dist/react/mq-appointment-documentation.d.ts +6 -4
- package/dist/react/mq-appointment-documentation.js +1 -1
- package/dist/react/mq-chat-room.d.ts +5 -2
- package/dist/react/mq-chat-room.js +1 -1
- package/dist/react/mq-checkout.d.ts +4 -1
- package/dist/react/mq-checkout.js +1 -1
- package/dist/react/mq-dashboard.d.ts +12 -11
- package/dist/react/mq-dashboard.js +1 -1
- package/dist/react/mq-documents-page.d.ts +7 -3
- package/dist/react/mq-documents-page.js +1 -1
- package/dist/react/mq-documents.d.ts +7 -3
- package/dist/react/mq-documents.js +1 -1
- package/dist/react/mq-google-pay-checkout.d.ts +4 -1
- package/dist/react/mq-google-pay-checkout.js +1 -1
- package/dist/react/mq-immediate-videocall-checkout.d.ts +3 -0
- package/dist/react/mq-immediate-videocall-checkout.js +1 -1
- package/dist/react/mq-my-appointments.d.ts +10 -8
- package/dist/react/mq-my-appointments.js +1 -1
- package/dist/react/mq-next-appointments.d.ts +12 -8
- package/dist/react/mq-next-appointments.js +1 -1
- package/dist/react/mq-payment-poller.d.ts +4 -0
- package/dist/react/mq-payment-poller.js +1 -1
- package/dist/react/mq-professional-presence-sync.js +1 -1
- package/dist/react/mq-query-client-provider.d.ts +1 -0
- package/dist/react/mq-query-client-provider.js +1 -1
- package/dist/react/mq-recent-documents.d.ts +8 -3
- package/dist/react/mq-recent-documents.js +1 -1
- package/dist/react/mq-schedule-success.d.ts +5 -2
- package/dist/react/mq-schedule-success.js +1 -1
- package/dist/react/mq-schedule.d.ts +4 -2
- package/dist/react/mq-schedule.js +1 -1
- package/dist/react/mq-session-provider.d.ts +1 -1
- package/dist/react/mq-session-provider.js +1 -1
- package/dist/react/mq-socket-provider.js +1 -1
- package/dist/react/mq-support-chat.d.ts +5 -2
- package/dist/react/mq-support-chat.js +1 -1
- package/dist/react/mq-terms-and-conditions.d.ts +5 -1
- package/dist/react/mq-terms-and-conditions.js +1 -1
- package/dist/react/mq-toast-container.js +1 -1
- package/dist/react/mq-unread-count-sync.js +1 -1
- package/dist/react/mq-videocall.d.ts +6 -4
- package/dist/react/mq-videocall.js +1 -1
- package/dist/theme.js +1 -1
- package/dist/ui/icons/download-02-icon.d.ts +6 -0
- package/dist/ui/icons/download-02-icon.js +1 -0
- package/dist/ui/mq-calendar.js +1 -1
- package/dist/ui/mq-clamped-text.js +1 -1
- package/package.json +5 -1
- package/dist/chunks/action-unavailable-message-CRLimFj5.js +0 -1
- package/dist/chunks/api-chat-client-BiiYnU-b.js +0 -1
- package/dist/chunks/appointment-action-unavailable-dialog-Da2IATYj.d.ts +0 -321
- package/dist/chunks/appointment-card-skeleton-ZfTAElLq.js +0 -1
- package/dist/chunks/appointment-details-Bm3Uuw2g.js +0 -1
- package/dist/chunks/chunk-Y4EKUX25-CqL3lLdx.js +0 -1
- package/dist/chunks/consume-BhoQNO_8.js +0 -1
- package/dist/chunks/context-provider--AKuwfs9.js +0 -1
- package/dist/chunks/documentation-view-CTnpWIxq.js +0 -1
- package/dist/chunks/i18n-formats-EgnwLxKt.js +0 -1
- package/dist/chunks/index-CZ9HtP96.js +0 -1
- package/dist/chunks/index-DMiowcMQ.js +0 -1
- package/dist/chunks/index-DZjrAnPq.js +0 -1
- package/dist/chunks/login-token-task-BI-L2zSV.js +0 -1
- package/dist/chunks/mq-layout-BndHxkbb.js +0 -1
- package/dist/chunks/mq-layout-D8Mak16a.d.ts +0 -21
- package/dist/chunks/provide-D2fnEhT2.js +0 -1
- package/dist/chunks/query-controller-D7jBX4X7.js +0 -1
- package/dist/chunks/refund-cancel-policy-DV6bzqcu.js +0 -1
- package/dist/chunks/schemas.d-Bss7CeCZ.d.ts +0 -53
- package/dist/chunks/telemetry-client-Bkbn48Dd.js +0 -1
package/README.md
CHANGED
|
@@ -79,6 +79,7 @@ Mount these as ancestors of the features that need them:
|
|
|
79
79
|
| `mq-query-client-provider` | `@mediquo/elements/mq-query-client-provider` | Data-fetching features (`mq-schedule`, `mq-chat-room`, …) |
|
|
80
80
|
| `mq-socket-provider` | `@mediquo/elements/mq-socket-provider` | Realtime features (`mq-chat-room`) |
|
|
81
81
|
| `mq-session-provider` | `@mediquo/elements/mq-session-provider` | Features that read the patient session — `mq-dashboard`, `mq-my-appointments`, `mq-videocall`, `mq-appointment-documentation`, background sync |
|
|
82
|
+
| `mq-api-client-provider` | `@mediquo/elements/mq-api-client-provider` | Features configured entirely by context — `mq-my-appointments`, `mq-unread-count-sync`, `mq-professional-presence-sync` — and any subtree you want scoped to one organization |
|
|
82
83
|
|
|
83
84
|
Set `mq-session-provider`'s `session` as a **property** (it's the login-token
|
|
84
85
|
response object from your auth exchange, not a string attribute):
|
|
@@ -101,12 +102,65 @@ response object from your auth exchange, not a string attribute):
|
|
|
101
102
|
|
|
102
103
|
In React, pass it as a prop: `<MqSessionProvider session={loginTokenResponse}>`.
|
|
103
104
|
|
|
105
|
+
## Organizations
|
|
106
|
+
|
|
107
|
+
`api-key` identifies the organization an element speaks for. Each element builds
|
|
108
|
+
its **own** API client from the `api-key` it was given and keeps it for its whole
|
|
109
|
+
lifetime, so requests always carry the key that element was configured with —
|
|
110
|
+
whatever other elements mount, update or unmount alongside it.
|
|
111
|
+
|
|
112
|
+
Cached data is scoped by that key too. Two organizations never read each other's
|
|
113
|
+
cache, and changing an element's `api-key` in place shows the new organization's
|
|
114
|
+
data, not the previous one's.
|
|
115
|
+
|
|
116
|
+
### Several organizations on one page
|
|
117
|
+
|
|
118
|
+
Supported, with no extra setup. Give each element its own `api-key`:
|
|
119
|
+
|
|
120
|
+
```html
|
|
121
|
+
<mq-query-client-provider>
|
|
122
|
+
<!-- clinic booking -->
|
|
123
|
+
<mq-schedule api-key="CLINIC_KEY" token="..."></mq-schedule>
|
|
124
|
+
|
|
125
|
+
<!-- your tenant's support chat, at the same time -->
|
|
126
|
+
<mq-support-chat api-key="TENANT_KEY" token="..."></mq-support-chat>
|
|
127
|
+
</mq-query-client-provider>
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
One `mq-query-client-provider` for the whole session is fine — the cache is
|
|
131
|
+
partitioned by organization inside it. You do not need to remount it, clear the
|
|
132
|
+
cache, or key elements by organization.
|
|
133
|
+
|
|
134
|
+
### Elements without an `api-key`
|
|
135
|
+
|
|
136
|
+
> **Upgrading:** `mq-my-appointments`, `mq-unread-count-sync` and
|
|
137
|
+
> `mq-professional-presence-sync` used to inherit whatever organization the last
|
|
138
|
+
> element on the page happened to configure. That is what made two organizations
|
|
139
|
+
> unsafe. Wrap them in `mq-api-client-provider` — it is the only integration
|
|
140
|
+
> change this release asks for.
|
|
141
|
+
|
|
142
|
+
Some features take no `api-key` of their own (`mq-my-appointments`,
|
|
143
|
+
`mq-unread-count-sync`, `mq-professional-presence-sync`), and some accept one but
|
|
144
|
+
are often embedded (`mq-chat-room`). Wrap those in `mq-api-client-provider` to say
|
|
145
|
+
which organization the subtree belongs to:
|
|
146
|
+
|
|
147
|
+
```html
|
|
148
|
+
<mq-api-client-provider api-key="CLINIC_KEY" token="...">
|
|
149
|
+
<mq-my-appointments></mq-my-appointments>
|
|
150
|
+
</mq-api-client-provider>
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
An element inside a provider that is given its own `api-key` uses its own; one
|
|
154
|
+
given only a `token` binds that token to the organization it inherited. Mount one
|
|
155
|
+
provider per organization — they nest and coexist.
|
|
156
|
+
|
|
104
157
|
## Background sync
|
|
105
158
|
|
|
106
159
|
Two headless elements keep the shared query cache in sync with realtime socket
|
|
107
160
|
events, so unread badges and presence indicators update without refetching.
|
|
108
|
-
Mount each once,
|
|
109
|
-
|
|
161
|
+
Mount each once, under the query-client + socket providers and inside the
|
|
162
|
+
`mq-api-client-provider` for the organization whose data they keep fresh; they
|
|
163
|
+
render nothing:
|
|
110
164
|
|
|
111
165
|
| Element | Import | Keeps in sync |
|
|
112
166
|
| --- | --- | --- |
|
|
@@ -116,9 +170,11 @@ nothing:
|
|
|
116
170
|
```html
|
|
117
171
|
<mq-query-client-provider>
|
|
118
172
|
<mq-socket-provider>
|
|
119
|
-
<mq-
|
|
120
|
-
|
|
121
|
-
|
|
173
|
+
<mq-api-client-provider api-key="YOUR_API_KEY" token="...">
|
|
174
|
+
<mq-unread-count-sync></mq-unread-count-sync>
|
|
175
|
+
<mq-professional-presence-sync></mq-professional-presence-sync>
|
|
176
|
+
<!-- feature elements whose cached data these keep fresh -->
|
|
177
|
+
</mq-api-client-provider>
|
|
122
178
|
</mq-socket-provider>
|
|
123
179
|
</mq-query-client-provider>
|
|
124
180
|
```
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as t}from"./chunk-6CCJWPGL-TiaqZaPV.js";import{_ as e,c as i}from"./custom-element-D2ziPxYE.js";import{Q as o}from"./chunk-RCFIJTXZ-C6Ir0-sM.js";import{A as n}from"./api-client-context-V1UAGtKW.js";import{M as a}from"./mutation-controller-CR2qcqhH.js";import{h as s,f as r}from"./price-DU3YLTpk.js";import{getLocale as l}from"../i18n.js";import"../ui/mq-button.js";import"../ui/mq-dialog.js";import{c as p}from"./consume-CovVqBjI.js";import{m,s as c}from"./runtime-Bg1WXVCx.js";import{l as d}from"./localized-decorator-BlOuLhym.js";import{a as h,i as u,x as f}from"./lit-element-DiWJYFwC.js";import{n as v}from"./property-scuRaFcM.js";function g(e,i){return{queryKey:t(e,"appointments",i),queryFn:()=>e.appointments.getAppointments(i)}}let b=class CancelAppointmentConfirmationDialog extends h{constructor(){super(...arguments),this.open=!1,this.cancelAppointmentMutation=new a(this,{mutationFn:async t=>this.apiClient.appointments.cancelAppointment(t),onSuccess:()=>{this.queryClientContext?.invalidateQueries(),this.dispatchEvent(new CustomEvent("success",{bubbles:!0,composed:!0}))}}),this.handleClose=()=>{this.open=!1,this.dispatchEvent(new CustomEvent("cancel",{bubbles:!0,composed:!0}))},this.handleDismissClick=()=>{this.open=!1,this.dispatchEvent(new CustomEvent("cancel",{bubbles:!0,composed:!0}))},this.handleConfirmClick=()=>{this.cancelAppointmentMutation.run({id:this.appointmentId})}}static{this.styles=u`:host{display:contents}h2{font-family:var(--font-titles);font-size:var(--text-2xl);line-height:var(--text-2xl--line-height);font-weight:var(--font-weight-bold);margin:0}p{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-normal);margin:0}.subheading-payable{font-size:var(--text-base);line-height:22px}.price-rows{display:flex;flex-direction:column;font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-weight-medium);line-height:var(--text-sm--line-height);color:var(--color-card-foreground);width:100%;margin-bottom:var(--sp-4)}.price-row{display:flex;align-items:center;justify-content:space-between;min-height:34px;gap:var(--sp-2)}.price-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-4);justify-content:flex-end;flex-wrap:wrap}`}render(){const t=l(),e=this.price,i=s(e),o=this.cancelAppointmentMutation.isPending;if(i){const i=r(e,t),n=`-${i}`;return f`<mq-dialog .open="${this.open}" @mq-close="${this.handleClose}" dismissable><h2 slot="heading">${m("Confirmar cancelación")}</h2><p slot="subheading" class="subheading-payable">${m("¿Seguro que quieres cancelar esta cita? Se te devolverá el importe pagado en un plazo de 5-10 días hábiles.")}</p><div><div class="price-rows"><div class="price-row"><span>${m("Importe pagado")}</span> <span>${i}</span></div><div class="price-row"><span>${m("Importe a devolver")}</span> <span>${n}</span></div></div><div class="actions"><mq-button variant="outline" ?disabled="${o}" @click="${this.handleDismissClick}">${m("Volver")}</mq-button><mq-button variant="primary" ?disabled="${o}" @click="${this.handleConfirmClick}">${m("Confirmar")}</mq-button></div></div></mq-dialog>`}return f`<mq-dialog .open="${this.open}" @mq-close="${this.handleClose}" dismissable><h2 slot="heading">${m("Confirmar cancelación")}</h2><p slot="subheading">${m("¿Seguro que quieres cancelar esta cita?")}</p><div><div class="actions"><mq-button variant="outline" ?disabled="${o}" @click="${this.handleDismissClick}">${m("Cancelar")}</mq-button><mq-button variant="primary" ?disabled="${o}" @click="${this.handleConfirmClick}">${m("Confirmar")}</mq-button></div></div></mq-dialog>`}};e([p({context:n,subscribe:!0})],b.prototype,"apiClient",void 0),e([v({type:Boolean,reflect:!0})],b.prototype,"open",void 0),e([p({context:o,subscribe:!0})],b.prototype,"queryClientContext",void 0),e([v({type:String})],b.prototype,"appointmentId",void 0),e([v({type:Object})],b.prototype,"price",void 0),b=e([d(),i("cancel-appointment-confirmation-dialog")],b);let y=class AppointmentActionUnavailableDialog extends h{constructor(){super(...arguments),this.open=!1,this.heading="",this.message="",this.handleClose=()=>{this.open=!1,this.dispatchEvent(new CustomEvent("close",{bubbles:!0,composed:!0}))}}static{this.styles=u`:host{display:contents}mq-dialog::part(dialog){max-width:343px;min-width:0}h2{font-family:var(--font-titles);font-size:var(--text-2xl);line-height:var(--text-2xl--line-height);font-weight:var(--font-weight-bold);margin:0}p{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-normal);margin:0}.actions{display:flex;margin-top:var(--sp-4)}`}render(){return f`<mq-dialog .open="${this.open}" @mq-close="${this.handleClose}" dismissable><h2 slot="heading">${this.heading}</h2><p slot="subheading">${this.message}</p><div class="actions"><mq-button variant="primary" fullwidth @click="${this.handleClose}">${m("Volver")}</mq-button></div></mq-dialog>`}};function x(t){const{action:e,refundPolicySeconds:i}=t,o=null!=i&&i<3600,n=Math.ceil((i??0)/60),a=Math.ceil((i??0)/3600);return m(0===(o?n:a)?"modify"===e?"Esta cita ya ha pasado, por lo que no se puede modificar.":"Esta cita ya ha pasado, por lo que no se puede anular.":"modify"===e?o?c`Lo sentimos, como faltan menos de ${n} minutos para tu cita no podemos modificarla.`:c`Lo sentimos, como faltan menos de ${a} horas para tu cita no podemos modificarla.`:o?c`Lo sentimos, como faltan menos de ${n} minutos para tu cita no podemos anularla.`:c`Lo sentimos, como faltan menos de ${a} horas para tu cita no podemos anularla.`)}e([v({type:Boolean,reflect:!0})],y.prototype,"open",void 0),e([v({type:String})],y.prototype,"heading",void 0),e([v({type:String})],y.prototype,"message",void 0),y=e([d(),i("appointment-action-unavailable-dialog")],y);export{g as a,x as g};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as e}from"./chunk-HN62IQ7S-xbkIy7k_.js";import{z as t,o as n,s as i,n as r,a as s,e as o,i as a,b as l,r as c,u,c as d,d as p,f as h,l as f,g as m}from"./external-CJj32K_p.js";import{i as g}from"./isBefore-CPpTogxo.js";import{env as b}from"../env.js";var y=t.enum(["pending","expired","accepted","inCall","declined","cancelled","finished","free_of_charge","owed","unpaid","reporting"]),_=y.enum,v=t.enum(["videocall","chat","phonecall"]),w=v.enum,C=t.object({id:t.string().uuid(),room_id:t.string(),channel:v,consultation_short_url:t.string().url().nullable(),call_id:t.string().url(),duration:t.number(),from:t.object({hash:t.string(),name:t.string().nullable(),avatar:t.string().url().nullable(),speciality:t.string().nullable(),collegiate_number:t.string().nullable(),is_dismissed:t.boolean(),languages:t.array(t.string()),description:t.string().nullable()}),to:t.object({id:t.number(),hash:t.string(),name:t.string().nullable(),avatar:t.string().url().nullable(),is_dismissed:t.boolean()}),speciality_id:t.number().nullable(),has_chat_in_appointment:t.boolean().optional(),created_at:t.string(),status:y,seconds_to_open:t.number().nonnegative(),start_date:t.string(),started_at:t.string().nullable(),expires_at:t.string().nullable(),consultation_reason:t.string().nullable(),preconsultation_documents:t.array(t.object({file_path:t.string(),file_name:t.string(),id:t.string().uuid()})).nullable(),service_id:t.string().uuid().nullable(),price:t.number().nullable().optional(),currency:t.string().nullable().optional(),discount_amount:t.number().nullable().optional()}),E=t.enum(["appointment","chat","immediate"]),R=E.enum;function S(e){return 0===e.seconds_to_open}function O(t){if(!t)return!1;const n=new Date,i=e(t);return g(i,n)}var A=o(["available","reserved"]),T=A.enum,j=n({id:i().uuid(),channel:v,duration:r(),starts_at:i(),finishes_at:i(),professional:n({id:i().uuid(),name:i()}),services:s(n({id:i().uuid(),name:i()})),speciality:n({id:r(),price:n({amount:r(),currency:i()}).nullish()}),status:A}),x=t.array(t.object({id:t.string().uuid(),name:t.string(),code:t.string(),channel:v,price:t.object({amount:t.number(),currency:t.string()}).nullable()})),P=t.array(t.object({id:t.string().uuid(),avatar:t.string().url().nullable(),description:t.string().nullable(),collegiate_number:t.string().nullable(),languages:t.array(t.string()),name:t.string(),slots:t.array(j),speciality:t.object({id:t.number()}),tax_id:t.string().nullable()}));t.object({speciality_id:t.number(),organization_schedule_service_id:t.string().uuid(),closest_slots_days:t.number().optional(),slots_per_day:t.number().optional()}),t.object({service_id:t.string().uuid(),professional_hash:t.string().uuid(),starts_at:t.string(),finishes_at:t.string(),rescheduling_appointment_id:t.string().uuid().optional()});var k=t.array(j),N=t.array(t.object({id:t.number(),name:t.string(),code:t.string().nullish(),price:t.object({amount:t.number(),currency:t.string()}).nullable()}));t.object({slot_id:t.string().uuid(),service_id:t.string().uuid().optional(),speciality_id:t.number().optional()});var U=j;n({consultation_id:i(),consultation_type:E,rating:r().int().min(1).max(5),comment:i().nullable().optional()});var L=n({rating:r().int().optional(),comment:i().nullable().optional()}).passthrough();n({file:a(File)});var F=n({url:i().url()});function D(e){return n({data:s(e),meta:n({current_page:r(),last_page:r(),per_page:r(),total:r()})})}var B=t.enum(["prescription","report","diagnosticTestPrescription"]),I=B.enum,$=t.enum(["published","draft"]);$.enum;var q=t.object({document_id:t.string().uuid(),document_type:B,name:t.string(),professional:t.object({speciality_id:t.number(),speciality_name:t.string().optional()}),status:$,url:t.string().url(),created_at:t.string()}),z=n({hash:i(),profile:n({first_name:i().nullable(),last_name:i().nullable(),birth_date:i().nullable(),gender:o(["male","female"]).nullable(),email:i().nullable(),phone_prefix:i().nullable(),phone:i().nullable(),billing:n({tax_id:i().nullable(),address:i().nullable(),country_code:i().nullable(),region:i().nullable(),postal_code:i().nullable()})})});function M(e){const t=e?.profile;return`${t?.first_name??""} ${t?.last_name??""}`.trim()}function K(e){return[e?.profile.first_name,e?.profile.last_name,e?.profile.email,e?.profile.phone,e?.profile.birth_date,e?.profile?.billing?.tax_id].every(e=>null!==e)}t.object({appointmentId:t.string()});var H=C;t.object({callId:t.string()});var J=t.object({session_id:t.string(),session_token:t.string()});t.object({professional_hash:t.string(),consultation_id:t.string(),consultation_type:t.enum(["appointment"])}),t.object({professional_hash:t.string(),consultation_id:t.string(),consultation_type:t.enum(["appointment"])}),t.object({appointment_id:t.string()});var W=t.array(q);t.object({url:t.string().url()}),t.object({first_name:z.shape.profile.shape.first_name,last_name:z.shape.profile.shape.last_name,tax_id:z.shape.profile.shape.billing.shape.tax_id,birth_date:z.shape.profile.shape.birth_date,gender:z.shape.profile.shape.gender.optional(),email:z.shape.profile.shape.email,phone_prefix:z.shape.profile.shape.phone_prefix,phone:z.shape.profile.shape.phone,terms_accepted:t.boolean(),privacy_accepted:t.boolean()}),t.object({patient_hash:t.string(),page:t.number().optional(),per_page:t.number().optional()});var V=D(q);n({slot_id:i().uuid(),service_id:i().uuid(),specialty_id:i(),consultation_reason:i().optional(),preconsultation_documents:s(n({file_path:i(),file_name:i()})).optional(),discount_code:i().optional(),return_url:i().url().optional()});var X=n({id:i(),percent_off:r(),code:i(),after_discount_amount:r().nullable()}),G=n({id:i(),percent_off:r(),code:i(),name:i().nullish()}),Q={Addon:"addon",Stripe:"stripe"},Z=n({session_id:i(),payment_link:i().url(),provider:l(Q).optional()});n({video_call_schedule_id:i()});var Y=Z;n({professional_hash:i().uuid()});var ee=Z,te={Paid:"paid",Unpaid:"unpaid",Denied:"denied"},ne=n({status:l(te),consultation_id:i(),consultation_type:i()});n({order_id:i(),validation_url:i().url()});var ie=c(u());n({order_id:i(),token:i()});var re=n({data:n({status:l(te),consultation_id:i(),consultation_type:i().optional()})});n({order_id:i(),token:i()});var se=n({data:n({status:l(te),consultation_id:i(),consultation_type:i().optional()})}),oe=t.array(t.object({id:t.number(),name:t.string(),code:t.string()})),ae=t.object({primary_color:t.string().nullable(),logo:t.string().nullable(),favicon:t.string().nullable(),support_professional:t.object({hash:t.string().nullable()}).optional(),home:t.object({title:t.string().nullable(),description:t.string().nullable(),image_url:t.string().nullable()}),appointments:t.object({reserve_conditions:t.string().nullable(),seconds_before_start_to_refund_on_cancel:t.number().nullable(),has_nps:t.boolean().optional(),has_chat_in_appointment:t.boolean().optional(),has_discount_coupons_show:t.boolean().optional(),payment_provider:t.nativeEnum(Q).nullish()}),legal_consent:t.object({terms_url:t.string().nullable(),privacy_url:t.string().nullable()})}),le=o(["monday","tuesday","wednesday","thursday","friday","saturday","sunday","working_week","weekend","all_week"]);le.enum;var ce=n({days_of_week:le,from_time:i(),to_time:i()});n({hash:i().uuid()});var ue=n({hash:i().uuid(),active_absence:n({id:i().uuid(),finishes_at:i()}).nullable(),avatar:i().url().nullable(),collegiate_number:i().nullable(),description:i().nullable(),is_available:d(),name:i(),overview:i().nullable(),schedule_description:i().nullable(),speciality_id:r().nullable(),status:o(["online","offline"]),title:i().nullable(),chat_schedule:n({channel:v,duration:r(),name:i(),timezone:i(),starts_at:i(),gaps:s(ce)}).nullable()});function de(e){return e.active_absence?"absent":"online"===e.status?"online":"offline"}o(["online","offline","absent"]),n({roomId:r()});var pe=z;n({first_name:i(),last_name:i(),tax_id:i(),birth_date:i(),gender:o(["male","female"]),email:i(),phone_prefix:i(),phone:i(),terms_accepted:d(),privacy_accepted:d()}),n({terms_accepted:d(),privacy_accepted:d(),commercial_accepted:d()}),n({hash:i().uuid()});var he=n({id:r(),hash:i().uuid(),speciality_alias:i(),name:i(),avatar:i().url(),description:i(),collegiate_number:i(),languages:s(i()),centers:s(n({id:i().uuid(),name:i()}))});p([f(1),f(2),f(3)]);var fe={Sent:1,Received:2,Read:3},me=n({roomId:r(),messageId:i().uuid(),string:i(),status:r(),senderType:o(["ordinary","system"]),fromUserHash:i().uuid(),auto:p([f(0),f(1)]),createdAt:i().nullable(),deletedAt:i().nullable(),time:r().nullable()}),ge=n({file_name:i(),file_size:r(),url:i().url(),signed_url:i().url().nullable(),type:o(["uncategorized","voice_note"]),meta:n({duration:r()})}),be=me.extend({type:f("string"),attachment:h()}),ye=me.extend({type:f("file"),attachment:ge}),_e=me.extend({type:f("image"),attachment:ge});n({roomId:r()});var ve=s(p([be,ye,_e]));n({roomId:r()});var we=n({unread_count:r()});n({professional_hash:i()});var Ce=n({room_id:r()});n({status:s(y).optional(),order:n({field:o(["starts_at"]).optional(),direction:o(["asc","desc"]).optional()}).optional(),page:r().optional(),per_page:r().optional()});var Ee=D(n({appointment:n({id:i().uuid(),url:i().url(),starts_at:i(),duration:r(),status:y,channel:v,expires_at:i().nullable(),service_id:i().uuid().nullable(),has_chat_in_appointment:d().optional()}),room:n({id:r()}),price:n({amount:r(),currency:i()}).nullable(),patient:n({hash:i().uuid()}),slots:s(m()),professional:n({hash:i().uuid(),name:i(),avatar:i().url().optional(),description:i().optional(),languages:s(i()),collegiate_number:i().optional()}),speciality:n({id:r(),name:i()})}));n({slot_id:i().uuid(),service_id:i().uuid(),consultation_reason:i().optional(),preconsultation_documents:s(n({file_path:i(),file_name:i()})).optional(),discount_code:i().optional()});var Re=n({appointment:n({id:i().uuid()})});n({id:i().uuid()});var Se=C,Oe=n({file_path:i(),presigned_storage_url:i().url()});n({id:i().uuid(),slot_id:i().uuid(),consultation_reason:i().optional(),preconsultation_documents:s(n({file_path:i(),file_name:i()})).optional()}),n({id:i().uuid()}),n({appointment_id:i().uuid(),consultation_reason:i().optional()}),n({appointment_id:i().uuid(),file_path:i(),file_name:i()}),n({appointment_id:i().uuid(),document_id:i().uuid()}),n({appointmentId:i().uuid()}),t.object({api_key:t.string(),token:t.string()});var Ae=t.object({access_token:t.string(),patient:t.object({hash:t.string(),country_code:t.string(),timezone:t.string(),first_name:t.string(),last_name:t.string().nullable(),name:t.string(),birth_date:t.string().nullable(),email:t.string().email().nullable(),language_code:t.string(),phone:t.string(),phone_prefix:t.string(),tax_id:t.string().nullable(),legal_consent:t.object({accepted_at:t.string().nullable(),last_version_at:t.string().nullable(),terms_url:t.string(),privacy_url:t.string(),has_commercial_communications:t.boolean(),organization_name:t.string()})})});function Te(e,t){return function(){return e.apply(t,arguments)}}const{toString:je}=Object.prototype,{getPrototypeOf:xe}=Object,{iterator:Pe,toStringTag:ke}=Symbol,Ne=(Ue=Object.create(null),e=>{const t=je.call(e);return Ue[t]||(Ue[t]=t.slice(8,-1).toLowerCase())});var Ue;const Le=e=>(e=e.toLowerCase(),t=>Ne(t)===e),Fe=e=>t=>typeof t===e,{isArray:De}=Array,Be=Fe("undefined");function Ie(e){return null!==e&&!Be(e)&&null!==e.constructor&&!Be(e.constructor)&&ze(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const $e=Le("ArrayBuffer");const qe=Fe("string"),ze=Fe("function"),Me=Fe("number"),Ke=e=>null!==e&&"object"==typeof e,He=e=>{if("object"!==Ne(e))return!1;const t=xe(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||ke in e||Pe in e)},Je=Le("Date"),We=Le("File"),Ve=Le("Blob"),Xe=Le("FileList"),Ge=Le("URLSearchParams"),[Qe,Ze,Ye,et]=["ReadableStream","Request","Response","Headers"].map(Le);function tt(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let i,r;if("object"!=typeof e&&(e=[e]),De(e))for(i=0,r=e.length;i<r;i++)t.call(null,e[i],i,e);else{if(Ie(e))return;const r=n?Object.getOwnPropertyNames(e):Object.keys(e),s=r.length;let o;for(i=0;i<s;i++)o=r[i],t.call(null,e[o],o,e)}}function nt(e,t){if(Ie(e))return null;t=t.toLowerCase();const n=Object.keys(e);let i,r=n.length;for(;r-- >0;)if(i=n[r],t===i.toLowerCase())return i;return null}const it="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,rt=e=>!Be(e)&&e!==it;const st=(ot="undefined"!=typeof Uint8Array&&xe(Uint8Array),e=>ot&&e instanceof ot);var ot;const at=Le("HTMLFormElement"),lt=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),ct=Le("RegExp"),ut=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),i={};tt(n,(n,r)=>{let s;!1!==(s=t(n,r,e))&&(i[r]=s||n)}),Object.defineProperties(e,i)};const dt=Le("AsyncFunction"),pt=(ht="function"==typeof setImmediate,ft=ze(it.postMessage),ht?setImmediate:ft?(mt=`axios@${Math.random()}`,gt=[],it.addEventListener("message",({source:e,data:t})=>{e===it&&t===mt&>.length&>.shift()()},!1),e=>{gt.push(e),it.postMessage(mt,"*")}):e=>setTimeout(e));var ht,ft,mt,gt;const bt="undefined"!=typeof queueMicrotask?queueMicrotask.bind(it):"undefined"!=typeof process&&process.nextTick||pt;var yt={isArray:De,isArrayBuffer:$e,isBuffer:Ie,isFormData:e=>{let t;return e&&("function"==typeof FormData&&e instanceof FormData||ze(e.append)&&("formdata"===(t=Ne(e))||"object"===t&&ze(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&$e(e.buffer),t},isString:qe,isNumber:Me,isBoolean:e=>!0===e||!1===e,isObject:Ke,isPlainObject:He,isEmptyObject:e=>{if(!Ke(e)||Ie(e))return!1;try{return 0===Object.keys(e).length&&Object.getPrototypeOf(e)===Object.prototype}catch(e){return!1}},isReadableStream:Qe,isRequest:Ze,isResponse:Ye,isHeaders:et,isUndefined:Be,isDate:Je,isFile:We,isBlob:Ve,isRegExp:ct,isFunction:ze,isStream:e=>Ke(e)&&ze(e.pipe),isURLSearchParams:Ge,isTypedArray:st,isFileList:Xe,forEach:tt,merge:function e(){const{caseless:t}=rt(this)&&this||{},n={},i=(i,r)=>{const s=t&&nt(n,r)||r;He(n[s])&&He(i)?n[s]=e(n[s],i):He(i)?n[s]=e({},i):De(i)?n[s]=i.slice():n[s]=i};for(let e=0,t=arguments.length;e<t;e++)arguments[e]&&tt(arguments[e],i);return n},extend:(e,t,n,{allOwnKeys:i}={})=>(tt(t,(t,i)=>{n&&ze(t)?e[i]=Te(t,n):e[i]=t},{allOwnKeys:i}),e),trim:e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""),stripBOM:e=>(65279===e.charCodeAt(0)&&(e=e.slice(1)),e),inherits:(e,t,n,i)=>{e.prototype=Object.create(t.prototype,i),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:(e,t,n,i)=>{let r,s,o;const a={};if(t=t||{},null==e)return t;do{for(r=Object.getOwnPropertyNames(e),s=r.length;s-- >0;)o=r[s],i&&!i(o,e,t)||a[o]||(t[o]=e[o],a[o]=!0);e=!1!==n&&xe(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:Ne,kindOfTest:Le,endsWith:(e,t,n)=>{e=String(e),(void 0===n||n>e.length)&&(n=e.length),n-=t.length;const i=e.indexOf(t,n);return-1!==i&&i===n},toArray:e=>{if(!e)return null;if(De(e))return e;let t=e.length;if(!Me(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Pe]).call(e);let i;for(;(i=n.next())&&!i.done;){const n=i.value;t.call(e,n[0],n[1])}},matchAll:(e,t)=>{let n;const i=[];for(;null!==(n=e.exec(t));)i.push(n);return i},isHTMLForm:at,hasOwnProperty:lt,hasOwnProp:lt,reduceDescriptors:ut,freezeMethods:e=>{ut(e,(t,n)=>{if(ze(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const i=e[n];ze(i)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")}))})},toObjectSet:(e,t)=>{const n={},i=e=>{e.forEach(e=>{n[e]=!0})};return De(e)?i(e):i(String(e).split(t)),n},toCamelCase:e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),noop:()=>{},toFiniteNumber:(e,t)=>null!=e&&Number.isFinite(e=+e)?e:t,findKey:nt,global:it,isContextDefined:rt,isSpecCompliantForm:function(e){return!!(e&&ze(e.append)&&"FormData"===e[ke]&&e[Pe])},toJSONObject:e=>{const t=new Array(10),n=(e,i)=>{if(Ke(e)){if(t.indexOf(e)>=0)return;if(Ie(e))return e;if(!("toJSON"in e)){t[i]=e;const r=De(e)?[]:{};return tt(e,(e,t)=>{const s=n(e,i+1);!Be(s)&&(r[t]=s)}),t[i]=void 0,r}}return e};return n(e,0)},isAsyncFn:dt,isThenable:e=>e&&(Ke(e)||ze(e))&&ze(e.then)&&ze(e.catch),setImmediate:pt,asap:bt,isIterable:e=>null!=e&&ze(e[Pe])};function _t(e,t,n,i,r){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),i&&(this.request=i),r&&(this.response=r,this.status=r.status?r.status:null)}yt.inherits(_t,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:yt.toJSONObject(this.config),code:this.code,status:this.status}}});const vt=_t.prototype,wt={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{wt[e]={value:e}}),Object.defineProperties(_t,wt),Object.defineProperty(vt,"isAxiosError",{value:!0}),_t.from=(e,t,n,i,r,s)=>{const o=Object.create(vt);return yt.toFlatObject(e,o,function(e){return e!==Error.prototype},e=>"isAxiosError"!==e),_t.call(o,e.message,t,n,i,r),o.cause=e,o.name=e.name,s&&Object.assign(o,s),o};function Ct(e){return yt.isPlainObject(e)||yt.isArray(e)}function Et(e){return yt.endsWith(e,"[]")?e.slice(0,-2):e}function Rt(e,t,n){return e?e.concat(t).map(function(e,t){return e=Et(e),!n&&t?"["+e+"]":e}).join(n?".":""):t}const St=yt.toFlatObject(yt,{},null,function(e){return/^is[A-Z]/.test(e)});function Ot(e,t,n){if(!yt.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const i=(n=yt.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!yt.isUndefined(t[e])})).metaTokens,r=n.visitor||c,s=n.dots,o=n.indexes,a=(n.Blob||"undefined"!=typeof Blob&&Blob)&&yt.isSpecCompliantForm(t);if(!yt.isFunction(r))throw new TypeError("visitor must be a function");function l(e){if(null===e)return"";if(yt.isDate(e))return e.toISOString();if(yt.isBoolean(e))return e.toString();if(!a&&yt.isBlob(e))throw new _t("Blob is not supported. Use a Buffer instead.");return yt.isArrayBuffer(e)||yt.isTypedArray(e)?a&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,n,r){let a=e;if(e&&!r&&"object"==typeof e)if(yt.endsWith(n,"{}"))n=i?n:n.slice(0,-2),e=JSON.stringify(e);else if(yt.isArray(e)&&function(e){return yt.isArray(e)&&!e.some(Ct)}(e)||(yt.isFileList(e)||yt.endsWith(n,"[]"))&&(a=yt.toArray(e)))return n=Et(n),a.forEach(function(e,i){!yt.isUndefined(e)&&null!==e&&t.append(!0===o?Rt([n],i,s):null===o?n:n+"[]",l(e))}),!1;return!!Ct(e)||(t.append(Rt(r,n,s),l(e)),!1)}const u=[],d=Object.assign(St,{defaultVisitor:c,convertValue:l,isVisitable:Ct});if(!yt.isObject(e))throw new TypeError("data must be an object");return function e(n,i){if(!yt.isUndefined(n)){if(-1!==u.indexOf(n))throw Error("Circular reference detected in "+i.join("."));u.push(n),yt.forEach(n,function(n,s){!0===(!(yt.isUndefined(n)||null===n)&&r.call(t,n,yt.isString(s)?s.trim():s,i,d))&&e(n,i?i.concat(s):[s])}),u.pop()}}(e),t}function At(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(e){return t[e]})}function Tt(e,t){this._pairs=[],e&&Ot(e,this,t)}const jt=Tt.prototype;function xt(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Pt(e,t,n){if(!t)return e;const i=n&&n.encode||xt;yt.isFunction(n)&&(n={serialize:n});const r=n&&n.serialize;let s;if(s=r?r(t,n):yt.isURLSearchParams(t)?t.toString():new Tt(t,n).toString(i),s){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}jt.append=function(e,t){this._pairs.push([e,t])},jt.toString=function(e){const t=e?function(t){return e.call(this,t,At)}:At;return this._pairs.map(function(e){return t(e[0])+"="+t(e[1])},"").join("&")};class InterceptorManager{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(e){yt.forEach(this.handlers,function(t){null!==t&&e(t)})}}var kt={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Nt={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Tt,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]};const Ut="undefined"!=typeof window&&"undefined"!=typeof document,Lt="object"==typeof navigator&&navigator||void 0,Ft=Ut&&(!Lt||["ReactNative","NativeScript","NS"].indexOf(Lt.product)<0),Dt="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Bt=Ut&&window.location.href||"http://localhost";var It={...Object.freeze({__proto__:null,hasBrowserEnv:Ut,hasStandardBrowserEnv:Ft,hasStandardBrowserWebWorkerEnv:Dt,navigator:Lt,origin:Bt}),...Nt};function $t(e){function t(e,n,i,r){let s=e[r++];if("__proto__"===s)return!0;const o=Number.isFinite(+s),a=r>=e.length;if(s=!s&&yt.isArray(i)?i.length:s,a)return yt.hasOwnProp(i,s)?i[s]=[i[s],n]:i[s]=n,!o;i[s]&&yt.isObject(i[s])||(i[s]=[]);return t(e,n,i[s],r)&&yt.isArray(i[s])&&(i[s]=function(e){const t={},n=Object.keys(e);let i;const r=n.length;let s;for(i=0;i<r;i++)s=n[i],t[s]=e[s];return t}(i[s])),!o}if(yt.isFormData(e)&&yt.isFunction(e.entries)){const n={};return yt.forEachEntry(e,(e,i)=>{t(function(e){return yt.matchAll(/\w+|\[(\w*)]/g,e).map(e=>"[]"===e[0]?"":e[1]||e[0])}(e),i,n,0)}),n}return null}const qt={transitional:kt,adapter:["xhr","http","fetch"],transformRequest:[function(e,t){const n=t.getContentType()||"",i=n.indexOf("application/json")>-1,r=yt.isObject(e);r&&yt.isHTMLForm(e)&&(e=new FormData(e));if(yt.isFormData(e))return i?JSON.stringify($t(e)):e;if(yt.isArrayBuffer(e)||yt.isBuffer(e)||yt.isStream(e)||yt.isFile(e)||yt.isBlob(e)||yt.isReadableStream(e))return e;if(yt.isArrayBufferView(e))return e.buffer;if(yt.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let s;if(r){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return Ot(e,new It.classes.URLSearchParams,{visitor:function(e,t,n,i){return It.isNode&&yt.isBuffer(e)?(this.append(t,e.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)},...t})}(e,this.formSerializer).toString();if((s=yt.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return Ot(s?{"files[]":e}:e,t&&new t,this.formSerializer)}}return r||i?(t.setContentType("application/json",!1),function(e,t,n){if(yt.isString(e))try{return(t||JSON.parse)(e),yt.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||qt.transitional,n=t&&t.forcedJSONParsing,i="json"===this.responseType;if(yt.isResponse(e)||yt.isReadableStream(e))return e;if(e&&yt.isString(e)&&(n&&!this.responseType||i)){const n=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw _t.from(e,_t.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:It.classes.FormData,Blob:It.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};yt.forEach(["delete","get","head","post","put","patch"],e=>{qt.headers[e]={}});const zt=yt.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]);const Mt=Symbol("internals");function Kt(e){return e&&String(e).trim().toLowerCase()}function Ht(e){return!1===e||null==e?e:yt.isArray(e)?e.map(Ht):String(e)}function Jt(e,t,n,i,r){return yt.isFunction(i)?i.call(this,t,n):(r&&(t=n),yt.isString(t)?yt.isString(i)?-1!==t.indexOf(i):yt.isRegExp(i)?i.test(t):void 0:void 0)}let Wt=class AxiosHeaders{constructor(e){e&&this.set(e)}set(e,t,n){const i=this;function r(e,t,n){const r=Kt(t);if(!r)throw new Error("header name must be a non-empty string");const s=yt.findKey(i,r);(!s||void 0===i[s]||!0===n||void 0===n&&!1!==i[s])&&(i[s||t]=Ht(e))}const s=(e,t)=>yt.forEach(e,(e,n)=>r(e,n,t));if(yt.isPlainObject(e)||e instanceof this.constructor)s(e,t);else if(yt.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))s((e=>{const t={};let n,i,r;return e&&e.split("\n").forEach(function(e){r=e.indexOf(":"),n=e.substring(0,r).trim().toLowerCase(),i=e.substring(r+1).trim(),!n||t[n]&&zt[n]||("set-cookie"===n?t[n]?t[n].push(i):t[n]=[i]:t[n]=t[n]?t[n]+", "+i:i)}),t})(e),t);else if(yt.isObject(e)&&yt.isIterable(e)){let n,i,r={};for(const t of e){if(!yt.isArray(t))throw TypeError("Object iterator must return a key-value pair");r[i=t[0]]=(n=r[i])?yt.isArray(n)?[...n,t[1]]:[n,t[1]]:t[1]}s(r,t)}else null!=e&&r(t,e,n);return this}get(e,t){if(e=Kt(e)){const n=yt.findKey(this,e);if(n){const e=this[n];if(!t)return e;if(!0===t)return function(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let i;for(;i=n.exec(e);)t[i[1]]=i[2];return t}(e);if(yt.isFunction(t))return t.call(this,e,n);if(yt.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=Kt(e)){const n=yt.findKey(this,e);return!(!n||void 0===this[n]||t&&!Jt(0,this[n],n,t))}return!1}delete(e,t){const n=this;let i=!1;function r(e){if(e=Kt(e)){const r=yt.findKey(n,e);!r||t&&!Jt(0,n[r],r,t)||(delete n[r],i=!0)}}return yt.isArray(e)?e.forEach(r):r(e),i}clear(e){const t=Object.keys(this);let n=t.length,i=!1;for(;n--;){const r=t[n];e&&!Jt(0,this[r],r,e,!0)||(delete this[r],i=!0)}return i}normalize(e){const t=this,n={};return yt.forEach(this,(i,r)=>{const s=yt.findKey(n,r);if(s)return t[s]=Ht(i),void delete t[r];const o=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}(r):String(r).trim();o!==r&&delete t[r],t[o]=Ht(i),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return yt.forEach(this,(n,i)=>{null!=n&&!1!==n&&(t[i]=e&&yt.isArray(n)?n.join(", "):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+": "+t).join("\n")}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){const n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){const t=(this[Mt]=this[Mt]={accessors:{}}).accessors,n=this.prototype;function i(e){const i=Kt(e);t[i]||(!function(e,t){const n=yt.toCamelCase(" "+t);["get","set","has"].forEach(i=>{Object.defineProperty(e,i+n,{value:function(e,n,r){return this[i].call(this,t,e,n,r)},configurable:!0})})}(n,e),t[i]=!0)}return yt.isArray(e)?e.forEach(i):i(e),this}};function Vt(e,t){const n=this||qt,i=t||n,r=Wt.from(i.headers);let s=i.data;return yt.forEach(e,function(e){s=e.call(n,s,r.normalize(),t?t.status:void 0)}),r.normalize(),s}function Xt(e){return!(!e||!e.__CANCEL__)}function Gt(e,t,n){_t.call(this,e??"canceled",_t.ERR_CANCELED,t,n),this.name="CanceledError"}function Qt(e,t,n){const i=n.config.validateStatus;n.status&&i&&!i(n.status)?t(new _t("Request failed with status code "+n.status,[_t.ERR_BAD_REQUEST,_t.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}Wt.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),yt.reduceDescriptors(Wt.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),yt.freezeMethods(Wt),yt.inherits(Gt,_t,{__CANCEL__:!0});const Zt=(e,t,n=3)=>{let i=0;const r=function(e,t){e=e||10;const n=new Array(e),i=new Array(e);let r,s=0,o=0;return t=void 0!==t?t:1e3,function(a){const l=Date.now(),c=i[o];r||(r=l),n[s]=a,i[s]=l;let u=o,d=0;for(;u!==s;)d+=n[u++],u%=e;if(s=(s+1)%e,s===o&&(o=(o+1)%e),l-r<t)return;const p=c&&l-c;return p?Math.round(1e3*d/p):void 0}}(50,250);return function(e,t){let n,i,r=0,s=1e3/t;const o=(t,s=Date.now())=>{r=s,n=null,i&&(clearTimeout(i),i=null),e(...t)};return[(...e)=>{const t=Date.now(),a=t-r;a>=s?o(e,t):(n=e,i||(i=setTimeout(()=>{i=null,o(n)},s-a)))},()=>n&&o(n)]}(n=>{const s=n.loaded,o=n.lengthComputable?n.total:void 0,a=s-i,l=r(a);i=s;e({loaded:s,total:o,progress:o?s/o:void 0,bytes:a,rate:l||void 0,estimated:l&&o&&s<=o?(o-s)/l:void 0,event:n,lengthComputable:null!=o,[t?"download":"upload"]:!0})},n)},Yt=(e,t)=>{const n=null!=e;return[i=>t[0]({lengthComputable:n,total:e,loaded:i}),t[1]]},en=e=>(...t)=>yt.asap(()=>e(...t));var tn=It.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,It.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(It.origin),It.navigator&&/(msie|trident)/i.test(It.navigator.userAgent)):()=>!0,nn=It.hasStandardBrowserEnv?{write(e,t,n,i,r,s){const o=[e+"="+encodeURIComponent(t)];yt.isNumber(n)&&o.push("expires="+new Date(n).toGMTString()),yt.isString(i)&&o.push("path="+i),yt.isString(r)&&o.push("domain="+r),!0===s&&o.push("secure"),document.cookie=o.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read:()=>null,remove(){}};function rn(e,t,n){let i=!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t);return e&&(i||0==n)?function(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const sn=e=>e instanceof Wt?{...e}:e;function on(e,t){t=t||{};const n={};function i(e,t,n,i){return yt.isPlainObject(e)&&yt.isPlainObject(t)?yt.merge.call({caseless:i},e,t):yt.isPlainObject(t)?yt.merge({},t):yt.isArray(t)?t.slice():t}function r(e,t,n,r){return yt.isUndefined(t)?yt.isUndefined(e)?void 0:i(void 0,e,0,r):i(e,t,0,r)}function s(e,t){if(!yt.isUndefined(t))return i(void 0,t)}function o(e,t){return yt.isUndefined(t)?yt.isUndefined(e)?void 0:i(void 0,e):i(void 0,t)}function a(n,r,s){return s in t?i(n,r):s in e?i(void 0,n):void 0}const l={url:s,method:s,data:s,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:a,headers:(e,t,n)=>r(sn(e),sn(t),0,!0)};return yt.forEach(Object.keys({...e,...t}),function(i){const s=l[i]||r,o=s(e[i],t[i],i);yt.isUndefined(o)&&s!==a||(n[i]=o)}),n}var an=e=>{const t=on({},e);let n,{data:i,withXSRFToken:r,xsrfHeaderName:s,xsrfCookieName:o,headers:a,auth:l}=t;if(t.headers=a=Wt.from(a),t.url=Pt(rn(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),l&&a.set("Authorization","Basic "+btoa((l.username||"")+":"+(l.password?unescape(encodeURIComponent(l.password)):""))),yt.isFormData(i))if(It.hasStandardBrowserEnv||It.hasStandardBrowserWebWorkerEnv)a.setContentType(void 0);else if(!1!==(n=a.getContentType())){const[e,...t]=n?n.split(";").map(e=>e.trim()).filter(Boolean):[];a.setContentType([e||"multipart/form-data",...t].join("; "))}if(It.hasStandardBrowserEnv&&(r&&yt.isFunction(r)&&(r=r(t)),r||!1!==r&&tn(t.url))){const e=s&&o&&nn.read(o);e&&a.set(s,e)}return t};var ln="undefined"!=typeof XMLHttpRequest&&function(e){return new Promise(function(t,n){const i=an(e);let r=i.data;const s=Wt.from(i.headers).normalize();let o,a,l,c,u,{responseType:d,onUploadProgress:p,onDownloadProgress:h}=i;function f(){c&&c(),u&&u(),i.cancelToken&&i.cancelToken.unsubscribe(o),i.signal&&i.signal.removeEventListener("abort",o)}let m=new XMLHttpRequest;function g(){if(!m)return;const i=Wt.from("getAllResponseHeaders"in m&&m.getAllResponseHeaders());Qt(function(e){t(e),f()},function(e){n(e),f()},{data:d&&"text"!==d&&"json"!==d?m.response:m.responseText,status:m.status,statusText:m.statusText,headers:i,config:e,request:m}),m=null}m.open(i.method.toUpperCase(),i.url,!0),m.timeout=i.timeout,"onloadend"in m?m.onloadend=g:m.onreadystatechange=function(){m&&4===m.readyState&&(0!==m.status||m.responseURL&&0===m.responseURL.indexOf("file:"))&&setTimeout(g)},m.onabort=function(){m&&(n(new _t("Request aborted",_t.ECONNABORTED,e,m)),m=null)},m.onerror=function(){n(new _t("Network Error",_t.ERR_NETWORK,e,m)),m=null},m.ontimeout=function(){let t=i.timeout?"timeout of "+i.timeout+"ms exceeded":"timeout exceeded";const r=i.transitional||kt;i.timeoutErrorMessage&&(t=i.timeoutErrorMessage),n(new _t(t,r.clarifyTimeoutError?_t.ETIMEDOUT:_t.ECONNABORTED,e,m)),m=null},void 0===r&&s.setContentType(null),"setRequestHeader"in m&&yt.forEach(s.toJSON(),function(e,t){m.setRequestHeader(t,e)}),yt.isUndefined(i.withCredentials)||(m.withCredentials=!!i.withCredentials),d&&"json"!==d&&(m.responseType=i.responseType),h&&([l,u]=Zt(h,!0),m.addEventListener("progress",l)),p&&m.upload&&([a,c]=Zt(p),m.upload.addEventListener("progress",a),m.upload.addEventListener("loadend",c)),(i.cancelToken||i.signal)&&(o=t=>{m&&(n(!t||t.type?new Gt(null,e,m):t),m.abort(),m=null)},i.cancelToken&&i.cancelToken.subscribe(o),i.signal&&(i.signal.aborted?o():i.signal.addEventListener("abort",o)));const b=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(i.url);b&&-1===It.protocols.indexOf(b)?n(new _t("Unsupported protocol "+b+":",_t.ERR_BAD_REQUEST,e)):m.send(r||null)})};const cn=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let n,i=new AbortController;const r=function(e){if(!n){n=!0,o();const t=e instanceof Error?e:this.reason;i.abort(t instanceof _t?t:new Gt(t instanceof Error?t.message:t))}};let s=t&&setTimeout(()=>{s=null,r(new _t(`timeout ${t} of ms exceeded`,_t.ETIMEDOUT))},t);const o=()=>{e&&(s&&clearTimeout(s),s=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(r):e.removeEventListener("abort",r)}),e=null)};e.forEach(e=>e.addEventListener("abort",r));const{signal:a}=i;return a.unsubscribe=()=>yt.asap(o),a}},un=function*(e,t){let n=e.byteLength;if(n<t)return void(yield e);let i,r=0;for(;r<n;)i=r+t,yield e.slice(r,i),r=i},dn=async function*(e){if(e[Symbol.asyncIterator])return void(yield*e);const t=e.getReader();try{for(;;){const{done:e,value:n}=await t.read();if(e)break;yield n}}finally{await t.cancel()}},pn=(e,t,n,i)=>{const r=async function*(e,t){for await(const n of dn(e))yield*un(n,t)}(e,t);let s,o=0,a=e=>{s||(s=!0,i&&i(e))};return new ReadableStream({async pull(e){try{const{done:t,value:i}=await r.next();if(t)return a(),void e.close();let s=i.byteLength;if(n){let e=o+=s;n(e)}e.enqueue(new Uint8Array(i))}catch(e){throw a(e),e}},cancel:e=>(a(e),r.return())},{highWaterMark:2})},hn="function"==typeof fetch&&"function"==typeof Request&&"function"==typeof Response,fn=hn&&"function"==typeof ReadableStream,mn=hn&&("function"==typeof TextEncoder?(gn=new TextEncoder,e=>gn.encode(e)):async e=>new Uint8Array(await new Response(e).arrayBuffer()));var gn;const bn=(e,...t)=>{try{return!!e(...t)}catch(e){return!1}},yn=fn&&bn(()=>{let e=!1;const t=new Request(It.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t}),_n=fn&&bn(()=>yt.isReadableStream(new Response("").body)),vn={stream:_n&&(e=>e.body)};var wn;hn&&(wn=new Response,["text","arrayBuffer","blob","formData","stream"].forEach(e=>{!vn[e]&&(vn[e]=yt.isFunction(wn[e])?t=>t[e]():(t,n)=>{throw new _t(`Response type '${e}' is not supported`,_t.ERR_NOT_SUPPORT,n)})}));const Cn=async(e,t)=>{const n=yt.toFiniteNumber(e.getContentLength());return n??(async e=>{if(null==e)return 0;if(yt.isBlob(e))return e.size;if(yt.isSpecCompliantForm(e)){const t=new Request(It.origin,{method:"POST",body:e});return(await t.arrayBuffer()).byteLength}return yt.isArrayBufferView(e)||yt.isArrayBuffer(e)?e.byteLength:(yt.isURLSearchParams(e)&&(e+=""),yt.isString(e)?(await mn(e)).byteLength:void 0)})(t)};const En={http:null,xhr:ln,fetch:hn&&(async e=>{let{url:t,method:n,data:i,signal:r,cancelToken:s,timeout:o,onDownloadProgress:a,onUploadProgress:l,responseType:c,headers:u,withCredentials:d="same-origin",fetchOptions:p}=an(e);c=c?(c+"").toLowerCase():"text";let h,f=cn([r,s&&s.toAbortSignal()],o);const m=f&&f.unsubscribe&&(()=>{f.unsubscribe()});let g;try{if(l&&yn&&"get"!==n&&"head"!==n&&0!==(g=await Cn(u,i))){let e,n=new Request(t,{method:"POST",body:i,duplex:"half"});if(yt.isFormData(i)&&(e=n.headers.get("content-type"))&&u.setContentType(e),n.body){const[e,t]=Yt(g,Zt(en(l)));i=pn(n.body,65536,e,t)}}yt.isString(d)||(d=d?"include":"omit");const r="credentials"in Request.prototype;h=new Request(t,{...p,signal:f,method:n.toUpperCase(),headers:u.normalize().toJSON(),body:i,duplex:"half",credentials:r?d:void 0});let s=await fetch(h,p);const o=_n&&("stream"===c||"response"===c);if(_n&&(a||o&&m)){const e={};["status","statusText","headers"].forEach(t=>{e[t]=s[t]});const t=yt.toFiniteNumber(s.headers.get("content-length")),[n,i]=a&&Yt(t,Zt(en(a),!0))||[];s=new Response(pn(s.body,65536,n,()=>{i&&i(),m&&m()}),e)}c=c||"text";let b=await vn[yt.findKey(vn,c)||"text"](s,e);return!o&&m&&m(),await new Promise((t,n)=>{Qt(t,n,{data:b,headers:Wt.from(s.headers),status:s.status,statusText:s.statusText,config:e,request:h})})}catch(t){if(m&&m(),t&&"TypeError"===t.name&&/Load failed|fetch/i.test(t.message))throw Object.assign(new _t("Network Error",_t.ERR_NETWORK,e,h),{cause:t.cause||t});throw _t.from(t,t&&t.code,e,h)}})};yt.forEach(En,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}});const Rn=e=>`- ${e}`,Sn=e=>yt.isFunction(e)||null===e||!1===e;var On=e=>{e=yt.isArray(e)?e:[e];const{length:t}=e;let n,i;const r={};for(let s=0;s<t;s++){let t;if(n=e[s],i=n,!Sn(n)&&(i=En[(t=String(n)).toLowerCase()],void 0===i))throw new _t(`Unknown adapter '${t}'`);if(i)break;r[t||"#"+s]=i}if(!i){const e=Object.entries(r).map(([e,t])=>`adapter ${e} `+(!1===t?"is not supported by the environment":"is not available in the build"));throw new _t("There is no suitable adapter to dispatch the request "+(t?e.length>1?"since :\n"+e.map(Rn).join("\n"):" "+Rn(e[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return i};function An(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Gt(null,e)}function Tn(e){An(e),e.headers=Wt.from(e.headers),e.data=Vt.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1);return On(e.adapter||qt.adapter)(e).then(function(t){return An(e),t.data=Vt.call(e,e.transformResponse,t),t.headers=Wt.from(t.headers),t},function(t){return Xt(t)||(An(e),t&&t.response&&(t.response.data=Vt.call(e,e.transformResponse,t.response),t.response.headers=Wt.from(t.response.headers))),Promise.reject(t)})}const jn="1.11.0",xn={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{xn[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}});const Pn={};xn.transitional=function(e,t,n){function i(e,t){return"[Axios v"+jn+"] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,r,s)=>{if(!1===e)throw new _t(i(r," has been removed"+(t?" in "+t:"")),_t.ERR_DEPRECATED);return t&&!Pn[r]&&(Pn[r]=!0,console.warn(i(r," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(n,r,s)}},xn.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};var kn={assertOptions:function(e,t,n){if("object"!=typeof e)throw new _t("options must be an object",_t.ERR_BAD_OPTION_VALUE);const i=Object.keys(e);let r=i.length;for(;r-- >0;){const s=i[r],o=t[s];if(o){const t=e[s],n=void 0===t||o(t,s,e);if(!0!==n)throw new _t("option "+s+" must be "+n,_t.ERR_BAD_OPTION_VALUE);continue}if(!0!==n)throw new _t("Unknown option "+s,_t.ERR_BAD_OPTION)}},validators:xn};const Nn=kn.validators;let Un=class Axios{constructor(e){this.defaults=e||{},this.interceptors={request:new InterceptorManager,response:new InterceptorManager}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=new Error;const n=t.stack?t.stack.replace(/^.+\n/,""):"";try{e.stack?n&&!String(e.stack).endsWith(n.replace(/^.+\n.+\n/,""))&&(e.stack+="\n"+n):e.stack=n}catch(e){}}throw e}}_request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=on(this.defaults,t);const{transitional:n,paramsSerializer:i,headers:r}=t;void 0!==n&&kn.assertOptions(n,{silentJSONParsing:Nn.transitional(Nn.boolean),forcedJSONParsing:Nn.transitional(Nn.boolean),clarifyTimeoutError:Nn.transitional(Nn.boolean)},!1),null!=i&&(yt.isFunction(i)?t.paramsSerializer={serialize:i}:kn.assertOptions(i,{encode:Nn.function,serialize:Nn.function},!0)),void 0!==t.allowAbsoluteUrls||(void 0!==this.defaults.allowAbsoluteUrls?t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:t.allowAbsoluteUrls=!0),kn.assertOptions(t,{baseUrl:Nn.spelling("baseURL"),withXsrfToken:Nn.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();let s=r&&yt.merge(r.common,r[t.method]);r&&yt.forEach(["delete","get","head","post","put","patch","common"],e=>{delete r[e]}),t.headers=Wt.concat(s,r);const o=[];let a=!0;this.interceptors.request.forEach(function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(a=a&&e.synchronous,o.unshift(e.fulfilled,e.rejected))});const l=[];let c;this.interceptors.response.forEach(function(e){l.push(e.fulfilled,e.rejected)});let u,d=0;if(!a){const e=[Tn.bind(this),void 0];for(e.unshift(...o),e.push(...l),u=e.length,c=Promise.resolve(t);d<u;)c=c.then(e[d++],e[d++]);return c}u=o.length;let p=t;for(d=0;d<u;){const e=o[d++],t=o[d++];try{p=e(p)}catch(e){t.call(this,e);break}}try{c=Tn.call(this,p)}catch(e){return Promise.reject(e)}for(d=0,u=l.length;d<u;)c=c.then(l[d++],l[d++]);return c}getUri(e){return Pt(rn((e=on(this.defaults,e)).baseURL,e.url,e.allowAbsoluteUrls),e.params,e.paramsSerializer)}};yt.forEach(["delete","get","head","options"],function(e){Un.prototype[e]=function(t,n){return this.request(on(n||{},{method:e,url:t,data:(n||{}).data}))}}),yt.forEach(["post","put","patch"],function(e){function t(t){return function(n,i,r){return this.request(on(r||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:n,data:i}))}}Un.prototype[e]=t(),Un.prototype[e+"Form"]=t(!0)});const Ln={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ln).forEach(([e,t])=>{Ln[t]=e});const Fn=function e(t){const n=new Un(t),i=Te(Un.prototype.request,n);return yt.extend(i,Un.prototype,n,{allOwnKeys:!0}),yt.extend(i,n,null,{allOwnKeys:!0}),i.create=function(n){return e(on(t,n))},i}(qt);Fn.Axios=Un,Fn.CanceledError=Gt,Fn.CancelToken=class CancelToken{constructor(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");let t;this.promise=new Promise(function(e){t=e});const n=this;this.promise.then(e=>{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t;const i=new Promise(e=>{n.subscribe(e),t=e}).then(e);return i.cancel=function(){n.unsubscribe(t)},i},e(function(e,i,r){n.reason||(n.reason=new Gt(e,i,r),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;const t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}toAbortSignal(){const e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let e;return{token:new CancelToken(function(t){e=t}),cancel:e}}},Fn.isCancel=Xt,Fn.VERSION=jn,Fn.toFormData=Ot,Fn.AxiosError=_t,Fn.Cancel=Fn.CanceledError,Fn.all=function(e){return Promise.all(e)},Fn.spread=function(e){return function(t){return e.apply(null,t)}},Fn.isAxiosError=function(e){return yt.isObject(e)&&!0===e.isAxiosError},Fn.mergeConfig=on,Fn.AxiosHeaders=Wt,Fn.formToJSON=e=>$t(yt.isHTMLForm(e)?new FormData(e):e),Fn.getAdapter=On,Fn.HttpStatusCode=Ln,Fn.default=Fn;const{Axios:Dn,AxiosError:Bn,CanceledError:In,isCancel:$n,CancelToken:qn,VERSION:zn,all:Mn,Cancel:Kn,isAxiosError:Hn,spread:Jn,toFormData:Wn,AxiosHeaders:Vn,HttpStatusCode:Xn,formToJSON:Gn,getAdapter:Qn,mergeConfig:Zn}=Fn;var Yn=class{constructor(e,t){this.httpClient=e,this.validate=t}async getAppointments(e){return this.httpClient.get("/appointments/v1",{params:e}).then(this.validate(Ee))}async createAppointment(e){return this.httpClient.post(`/appointments/v1/slots/${e.slot_id}`,e).then(e=>e.data).then(this.validate(Re))}async getAppointment(e){return this.httpClient.get(`/api/v1/appointments/${e.id}`).then(e=>e.data).then(this.validate(Se))}async getDocumentsStorage(){return this.httpClient.get("/appointments/v1/documents/storage").then(e=>e.data).then(this.validate(Oe))}async rescheduleAppointment(e){const{id:t,...n}=e;return this.httpClient.put(`/appointments/v1/${t}/reschedule`,n)}async cancelAppointment(e){return this.httpClient.put(`/appointments/v1/${e.id}/cancel`)}async updateAppointment(e){const{appointment_id:t,...n}=e;return this.httpClient.put(`/appointments/v1/${t}/update`,n)}async addDocument(e){const{appointment_id:t,...n}=e;return this.httpClient.post(`/appointments/v1/${t}/consultation-document`,n)}async deleteDocument(e){return this.httpClient.delete(`/appointments/v1/${e.appointment_id}/consultation-document/${e.document_id}`)}async reconnectAppointment(e){return this.httpClient.put(`/appointments/v1/${e.appointmentId}/reconnect`)}},ei=class{constructor(e,t){this.httpClient=e,this.validate=t}async loginToken(e){return this.httpClient.post("/login/v1/token",{token:e.token},{headers:{"x-api-key":e.api_key}}).then(this.validate(Ae))}};var ti=class{constructor(e,t){this.httpClient=e,this.validate=t}async postReview(e){return this.httpClient.post("/consultations/v1/review",e)}async startChatConsultation(e){return this.httpClient.put(`/consultations/v1/chat/professionals/${encodeURIComponent(e)}/consult`).then(()=>{})}async getReview(e){return this.httpClient.get(`/consultations/v1/review/${e}`).then(e=>e.data).then(this.validate(L))}},ni=class{constructor(e,t){this.httpClient=e,this.validate=t}async uploadFile(e){const t=new FormData;return t.append("file",e.file,e.file.name),this.httpClient.post("/documents/v1/upload-file",t,{headers:{"Content-Type":"multipart/form-data"}}).then(this.validate(F))}},ii=class{constructor(e,t){this.httpClient=e,this.validate=t}async getAppointment(e){return this.httpClient.get(`/flash/v1/appointments/${e.appointmentId}`).then(e=>e.data).then(this.validate(H))}async joinCall(e){return this.httpClient.get(`/flash/v1/calls/${e.callId}/join`).then(e=>e.data).then(this.validate(J))}async setReady(e){return this.httpClient.post(`/flash/v1/waiting/${e.professional_hash}/ready`,{consultation_id:e.consultation_id,consultation_type:e.consultation_type})}async leaveWaitingRoom(e){return this.httpClient.post(`/flash/v1/waiting/${e.professional_hash}/leave`,{consultation_id:e.consultation_id,consultation_type:e.consultation_type})}async getSharedDocuments(e){return this.httpClient.get(`/flash/v1/appointments/${e.appointment_id}/documents`).then(e=>e.data).then(this.validate(W))}async downloadDocument(e){return this.httpClient.get(e.url,{responseType:"blob"}).then(e=>e.data)}async updatePatientProfile(e){return this.httpClient.put("/flash/v1/profile",e)}async getPatientDocuments(e){return this.httpClient.get(`/flash/v1/patients/${e.patient_hash}/documents`,{params:{page:e.page,per_page:e.per_page}}).then(this.validate(V))}},ri=class{constructor(e,t){this.httpClient=e,this.validate=t}async getOrganizationSpecialties(){return this.httpClient.get("/organizations/v1/specialities").then(e=>e.data).then(this.validate(oe))}async getOrganizationSetup(){return this.httpClient.get("/organizations/v1/setup").then(e=>e.data).then(this.validate(ae))}},si=class{constructor(e,t){this.httpClient=e,this.validate=t}async createPaymentLink(e){const{specialty_id:t,...n}=e,i={...n,speciality_id:t};return this.httpClient.post("/payments/v1/schedule",i).then(e=>e.data).then(this.validate(Z))}async createImmediateVideocallPaymentLink(e){return this.httpClient.post("/payments/v1/immediate-videocall",e).then(e=>e.data).then(this.validate(Y))}async createChatConsultationPaymentLink(e){return this.httpClient.post("/payments/v1/schedule",e).then(e=>e.data).then(this.validate(ee))}async getConsultationCoupon(e,t){return this.httpClient.get(`/payments/v1/consultation-coupon/${encodeURIComponent(e)}`,{params:{amount:t}}).then(e=>e.data).then(this.validate(X))}async getAppointmentConsultationCoupon(e){return this.httpClient.get(`/payments/v1/appointment/${encodeURIComponent(e)}/consultation-coupon`).then(e=>e.data).then(this.validate(G))}async getPaymentSession(e){return this.httpClient.get(`/payments/v1/session/${e}`).then(e=>e.data).then(this.validate(ne))}async validateApplePayMerchant(e){return this.httpClient.post("/payments/v1/apple-pay/validate-merchant",e).then(this.validate(ie))}async authorizeApplePay(e){return this.httpClient.post("/payments/v1/apple-pay/authorize",e).then(this.validate(re))}async authorizeGooglePay(e){return this.httpClient.post("/payments/v1/google-pay/authorize",e).then(this.validate(se))}},oi=class{constructor(e,t){this.httpClient=e,this.validate=t}async getProfessional(e){return this.httpClient.get(`sdk/v1/professionals/${e.hash}`).then(e=>e.data).then(this.validate(ue))}async readAllMessages(e){return this.httpClient.put(`sdk/v1/rooms/${e.roomId}/messages/read`).then(e=>e.data)}},ai=class{constructor(e,t){this.httpClient=e,this.validate=t}async getPatientProfile(){return this.httpClient.get("/profile/v1/patients").then(e=>e.data).then(this.validate(pe))}async getProfessionalPublicProfile(e){return this.httpClient.get(`/profile/v1/public/professionals/${e.hash}`).then(e=>e.data).then(this.validate(he))}async acceptLegalConsent(e){return this.httpClient.post("/profile/v1/legal-consent",e)}},li=class{constructor(e,t){this.httpClient=e,this.validate=t}async getRoomMessages(e){return this.httpClient.get(`api/v1/rooms/${e.roomId}/messages`).then(e=>e.data).then(this.validate(ve))}async getUnreadMessagesCount(e){return this.httpClient.get(`chat/v1/${e.roomId}/unread-count`).then(e=>e.data).then(this.validate(we))}async createSupportRoom(e){return this.httpClient.post("chat/v1/support-room",e).then(e=>e.data).then(this.validate(Ce))}},ci=class{constructor(e,t){this.httpClient=e,this.validate=t}async getScheduleServices(){return this.httpClient.get("/schedules/v1/services").then(e=>e.data).then(this.validate(x))}async getProfessionalsBySpecialtyAndService(e){return this.httpClient.get("/schedules/v1/professionals",{params:e}).then(e=>e.data).then(this.validate(P))}async getScheduleServiceProfessionalSlots(e){return this.httpClient.get(`/schedules/v1/services/${e.service_id}/professionals/${e.professional_hash}/slots`,{params:{starts_at:e.starts_at,finishes_at:e.finishes_at,rescheduling_appointment_id:e.rescheduling_appointment_id}}).then(e=>e.data).then(this.validate(k))}async getScheduleServiceSpecialities(e){return this.httpClient.get(`/schedules/v1/services/${e}/specialities`).then(e=>e.data).then(this.validate(N))}async getScheduleSlot(e){return this.httpClient.get(`schedules/v1/slot/${e.slot_id}`,{params:{service_id:e.service_id,speciality_id:e.speciality_id}}).then(e=>e.data).then(this.validate(U))}};var ui={development:"https://chat-dev.mediquo.com",production:"https://chat.mediquo.com"},di=class{constructor({env:e="production",baseURL:t,debug:n,apiKey:i,token:r,locale:s}={}){const o=t??ui[e];var a;this.httpClient=(a=o,Fn.create({baseURL:a,headers:{"Content-Type":"application/json"}}));const l=(c={debug:n},e=>t=>{const n=e.safeParse(t.data);if(n.error&&c?.debug){const e=t.config?.url??"";console.warn(`[Validation Error]${e?` - URL: ${e}`:""}\n${i=n.error,i.issues.map(e=>`${e.path.join(".")}: ${e.message}`).join("\n")}`)}var i;return n.data??t.data});var c;this.flash=new ii(this.httpClient,l),this.auth=new ei(this.httpClient,l),this.appointments=new Yn(this.httpClient,l),this.payments=new si(this.httpClient,l),this.schedules=new ci(this.httpClient,l),this.organizations=new ri(this.httpClient,l),this.profile=new ai(this.httpClient,l),this.professionals=new oi(this.httpClient,l),this.rooms=new li(this.httpClient,l),this.documents=new ni(this.httpClient,l),this.consultations=new ti(this.httpClient,l),i&&this.setApiKey(i),r&&this.setAuthToken(r),s&&this.setLanguage(s)}setAuthToken(e){this.httpClient.defaults.headers.common.Authorization=`Bearer ${e}`}setApiKey(e){this._apiKey=e,this.httpClient.defaults.headers.common["x-api-key"]=e}getApiKey(){return this._apiKey}setLanguage(e){this.httpClient.defaults.headers.common["Accept-Language"]=e}};function pi({env:e,apiKey:t,token:n,locale:i}={}){const r=e??b.MODE;return new di({env:r,debug:"development"===r,apiKey:t,token:n,locale:i})}const hi=["env","apiKey","token","locale","inheritedApiClient"];function fi(e,t,n){if(hi.some(t=>e.has(t)))return t.apiKey||t.token||t.locale||!n?pi({...t,apiKey:t.apiKey??n?.getApiKey()}):n}export{w as A,R as C,I as D,fe as M,te as P,T as S,_ as a,Hn as b,pi as c,Q as d,M as e,K as f,de as g,S as h,O as i,fi as n};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as o}from"./create-context-DqP79qjF.js";var e=o(Symbol.for("mediquo-api-client"));export{e as A};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{P as n}from"./api-chat-client-
|
|
1
|
+
import{P as n}from"./api-chat-client-CJ1EGJe3.js";function e(e,r,t){return e===n.Paid?{kind:"success",sessionId:t,reference:r}:e===n.Denied?{kind:"denied",sessionId:t}:{kind:"error",reason:"authorize"}}function r(n){const e=n.merchant_session;return null===e||"object"!=typeof e||Array.isArray(e)?n:e}function t(n){if("string"==typeof n)return n;if(null!==n&&"object"==typeof n&&"paymentData"in n){const e=n.paymentData;if("string"==typeof e)return e;if(null!=e)return JSON.stringify(e)}return JSON.stringify(n)}export{e as r,t as s,r as u};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as lit_html from 'lit-html';
|
|
2
|
+
import * as lit from 'lit';
|
|
3
|
+
import { LitElement } from 'lit';
|
|
4
|
+
import { M as MediquoApiChatClient } from './index.d-XSe7Hy-Q.js';
|
|
5
|
+
import { P as PriceInCents } from './price.d-CwLosdAN.js';
|
|
6
|
+
import '../ui/mq-button.js';
|
|
7
|
+
import '../ui/mq-dialog.js';
|
|
8
|
+
import { QueryClient } from '@tanstack/query-core';
|
|
9
|
+
|
|
10
|
+
declare class CancelAppointmentConfirmationDialog extends LitElement {
|
|
11
|
+
apiClient: MediquoApiChatClient;
|
|
12
|
+
static styles: lit.CSSResult;
|
|
13
|
+
open: boolean;
|
|
14
|
+
queryClientContext: QueryClient | undefined;
|
|
15
|
+
appointmentId: string;
|
|
16
|
+
price?: PriceInCents;
|
|
17
|
+
private cancelAppointmentMutation;
|
|
18
|
+
private handleClose;
|
|
19
|
+
private handleDismissClick;
|
|
20
|
+
private handleConfirmClick;
|
|
21
|
+
render(): lit_html.TemplateResult<1>;
|
|
22
|
+
}
|
|
23
|
+
declare global {
|
|
24
|
+
interface HTMLElementTagNameMap {
|
|
25
|
+
"cancel-appointment-confirmation-dialog": CancelAppointmentConfirmationDialog;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Informational dialog shown when an appointment action (modify, cancel,
|
|
31
|
+
* repeat) is currently unavailable. Purely presentational: the parent owns
|
|
32
|
+
* the copy (already translated) and decides when to open it.
|
|
33
|
+
*
|
|
34
|
+
* Usage:
|
|
35
|
+
* <appointment-action-unavailable-dialog
|
|
36
|
+
* .open=${true}
|
|
37
|
+
* .heading=${"Anular cita"}
|
|
38
|
+
* .message=${"Lo sentimos, ..."}
|
|
39
|
+
* @close=${() => { ... }}
|
|
40
|
+
* ></appointment-action-unavailable-dialog>
|
|
41
|
+
*/
|
|
42
|
+
declare class AppointmentActionUnavailableDialog extends LitElement {
|
|
43
|
+
static styles: lit.CSSResult;
|
|
44
|
+
open: boolean;
|
|
45
|
+
heading: string;
|
|
46
|
+
message: string;
|
|
47
|
+
private handleClose;
|
|
48
|
+
render(): lit_html.TemplateResult<1>;
|
|
49
|
+
}
|
|
50
|
+
declare global {
|
|
51
|
+
interface HTMLElementTagNameMap {
|
|
52
|
+
"appointment-action-unavailable-dialog": AppointmentActionUnavailableDialog;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import * as lit_html from 'lit-html';
|
|
2
2
|
import * as lit from 'lit';
|
|
3
3
|
import { LitElement } from 'lit';
|
|
4
|
-
import { G as GetAppointmentsResponse } from './
|
|
4
|
+
import { M as MediquoApiChatClient, G as GetAppointmentsResponse } from './index.d-XSe7Hy-Q.js';
|
|
5
5
|
import './appointment-details-CVEDe_k0.js';
|
|
6
6
|
import '../ui/mq-card.js';
|
|
7
7
|
import './professional-overview-mO3tuMuH.js';
|
|
8
|
-
import { L as LoginTokenResponse } from './schemas.d-
|
|
9
|
-
import './mq-chat-room-
|
|
8
|
+
import { L as LoginTokenResponse } from './schemas.d-b6_AekBb.js';
|
|
9
|
+
import './mq-chat-room-jeDvIF1Z.js';
|
|
10
10
|
import '../ui/mq-floating-bubble.js';
|
|
11
|
+
import './appointment-action-unavailable-dialog-CTiL4nMo.js';
|
|
11
12
|
import '../ui/mq-button.js';
|
|
12
13
|
import '../ui/mq-unread-badge.js';
|
|
13
14
|
|
|
@@ -60,6 +61,7 @@ declare global {
|
|
|
60
61
|
}
|
|
61
62
|
|
|
62
63
|
declare class AppointmentCard extends LitElement {
|
|
64
|
+
apiClient: MediquoApiChatClient;
|
|
63
65
|
static styles: lit.CSSResult;
|
|
64
66
|
appointmentResource: GetAppointmentsResponse["data"][number];
|
|
65
67
|
specialtyId: number;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{c as i}from"./consume-CovVqBjI.js";import{m as a}from"./runtime-Bg1WXVCx.js";import{l as o}from"./localized-decorator-BlOuLhym.js";import{Q as n}from"./query-controller-BlO1Ax65.js";import{A as s}from"./api-client-context-V1UAGtKW.js";import{g as p}from"./get-organization-setup-query-Dr1cXnHl.js";import{t as r,f as l,h as c,i as d,j as h,k as m,a as u,g,l as v}from"./telemetry-client-7fvNqUSU.js";import{g as f}from"./get-schedule-services-query-Fzvb9ug9.js";import{g as y}from"./chunk-Y4EKUX25-QqMl3eiq.js";import{a as b,i as $,E as C,x}from"./lit-element-DiWJYFwC.js";import{n as k}from"./property-scuRaFcM.js";import{r as R}from"./state-LQivXIgA.js";import{getLocale as j}from"../i18n.js";import"./appointment-details-DXLBQnPN.js";import"../ui/mq-card.js";import"./professional-overview-C4H_znIJ.js";import{l as q}from"./chunk-S5RWG6G2-DPesx3Od.js";import"../mq-chat-room.js";import"../ui/mq-floating-bubble.js";import{A as w,i as S}from"./api-chat-client-CJ1EGJe3.js";import{g as D}from"./action-unavailable-message-BIgsXk9u.js";import{e as I}from"./class-map-Co76I6aw.js";import{MqAppointmentRescheduleEvent as O,MqAppointmentBookEvent as M,MqAppointmentJoinVideocallEvent as U,MqAppointmentViewDocumentationEvent as _}from"../events.js";import{messageBubbleIcon as A}from"../ui/icons/message-bubble-icon.js";import{videoIcon as H}from"../ui/icons/video-icon.js";import"../ui/mq-button.js";import"../ui/mq-unread-badge.js";import{c as z}from"./refund-cancel-policy-CcsJ-pMx.js";import{toast as E}from"../ui/mq-toast.js";let N=class AppointmentCardActions extends b{constructor(){super(...arguments),this.variant="next",this.isVideocall=!1,this.hasChatSupport=!1,this.unreadCount=0,this.isModifyUnavailable=!1,this.isCancelUnavailable=!1,this.hasNoSlots=!1,this.modifyUnavailableMessage="",this.cancelUnavailableMessage="",this.repeatTarget=null,this.professionalHash="",this.openDialog=null,this.handleModifyClick=()=>{this.isModifyUnavailable?this.openDialog="modify":(r.track(l(this.patientHash,this.appointmentId)),this.dispatchEvent(new O({appointmentId:this.appointmentId})))},this.handleCancelClick=()=>{this.isCancelUnavailable?this.openDialog="cancel":(r.track(c(this.patientHash,this.appointmentId)),this.dispatchEvent(new CustomEvent("request-cancel",{bubbles:!0,composed:!0})))},this.handleRepeatClick=()=>{this.hasNoSlots?this.openDialog="repeat-no-slots":this.repeatTarget?(r.track(d(this.patientHash,this.appointmentId)),this.dispatchEvent(new M({specialty:this.repeatTarget.specialty,service:this.repeatTarget.service,professional:this.professionalHash}))):this.openDialog="repeat-error"},this.handleDialogClose=()=>{this.openDialog=null}}static{this.styles=$`:host{display:contents}.actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-2)}.actions.next{flex-direction:column}.actions-secondary{display:flex;gap:var(--sp-3)}.actions mq-button{flex:1}`}get patientHash(){return this.loginToken.patient.hash}renderChatButton(){return x`<mq-button variant="primary" fullwidth noPadding @click="${()=>{this.dispatchEvent(new CustomEvent("toggle-chat",{bubbles:!0,composed:!0}))}}">${A({size:24})} ${a("Chat")} ${this.unreadCount>0?x`<mq-unread-badge></mq-unread-badge>`:C}</mq-button>`}renderNextActions(){return x`${this.isVideocall?x`<mq-button variant="outline" fullwidth noPadding @click="${()=>{r.track(h(this.patientHash,this.appointmentId)),this.dispatchEvent(new U({appointmentId:this.appointmentId}))}}">${H({size:24})} ${a("Ir a videollamada")}</mq-button>`:C}<div class="actions-secondary">${this.hasChatSupport?this.renderChatButton():C}<mq-button variant="outline" fullwidth noPadding @click="${this.handleModifyClick}">${a("Modificar")}</mq-button><mq-button variant="outline-negative" fullwidth noPadding @click="${this.handleCancelClick}">${a("Cancelar")}</mq-button></div>`}renderHistoryActions(){return x`${this.hasChatSupport?this.renderChatButton():C}<mq-button variant="outline" fullwidth noPadding @click="${()=>{r.track(m(this.patientHash,this.appointmentId)),this.dispatchEvent(new _({appointmentId:this.appointmentId}))}}">${a("Documentos")}</mq-button><mq-button variant="outline" fullwidth noPadding @click="${this.handleRepeatClick}">${a("Repetir")}</mq-button>`}render(){return x`<div class="${I({actions:!0,next:"next"===this.variant})}">${"next"===this.variant?this.renderNextActions():this.renderHistoryActions()}</div><appointment-action-unavailable-dialog .open="${"modify"===this.openDialog}" .heading="${a("Modificar cita")}" .message="${this.modifyUnavailableMessage}" @close="${this.handleDialogClose}"></appointment-action-unavailable-dialog><appointment-action-unavailable-dialog .open="${"cancel"===this.openDialog}" .heading="${a("Anular cita")}" .message="${this.cancelUnavailableMessage}" @close="${this.handleDialogClose}"></appointment-action-unavailable-dialog><appointment-action-unavailable-dialog .open="${"repeat-no-slots"===this.openDialog}" .heading="${a("Repetir cita")}" .message="${a("Este profesional no tiene horarios disponibles")}" @close="${this.handleDialogClose}"></appointment-action-unavailable-dialog><appointment-action-unavailable-dialog .open="${"repeat-error"===this.openDialog}" .heading="${a("Repetir cita")}" .message="${a("Lo sentimos, no hemos podido repetir tu cita. Por favor, contacta con soporte.")}" @close="${this.handleDialogClose}"></appointment-action-unavailable-dialog>`}};t([i({context:q})],N.prototype,"loginToken",void 0),t([k({type:String})],N.prototype,"variant",void 0),t([k({type:String})],N.prototype,"appointmentId",void 0),t([k({type:Boolean})],N.prototype,"isVideocall",void 0),t([k({type:Boolean})],N.prototype,"hasChatSupport",void 0),t([k({type:Number})],N.prototype,"unreadCount",void 0),t([k({type:Boolean})],N.prototype,"isModifyUnavailable",void 0),t([k({type:Boolean})],N.prototype,"isCancelUnavailable",void 0),t([k({type:Boolean})],N.prototype,"hasNoSlots",void 0),t([k({type:String})],N.prototype,"modifyUnavailableMessage",void 0),t([k({type:String})],N.prototype,"cancelUnavailableMessage",void 0),t([k({type:Object})],N.prototype,"repeatTarget",void 0),t([k({type:String})],N.prototype,"professionalHash",void 0),t([R()],N.prototype,"openDialog",void 0),N=t([o(),e("appointment-card-actions")],N);let T=class AppointmentCard extends b{constructor(){super(...arguments),this.variant="next",this.detailsVariant="wide",this.isChatOpen=!1,this.isCancelDialogOpen=!1,this.unreadQuery=new n(this,()=>y(this.apiClient,{roomId:this.appointmentResource?.room?.id})),this.getOrganizationSpecialtiesQuery=new n(this,()=>u(this.apiClient,{enabled:!!this.appointmentResource?.speciality?.id})),this.getOrganizationSetupQuery=new n(this,()=>p(this.apiClient)),this.getScheduleServicesQuery=new n(this,()=>f(this.apiClient))}static{this.styles=$`:host{display:flex}.card{width:100%;padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4);justify-content:space-between}.card-top-content{display:flex;flex-direction:column;gap:var(--sp-6)}.see-details{color:var(--color-primary-link-default);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-bold)}.see-details:hover{text-decoration:underline}.chevron-down{width:16px;height:16px;transition:transform .2s ease}.appointment-details{display:flex;flex-direction:column;gap:12px}.clock-icon-wrapper{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.clock-icon-wrapper svg{width:100%;height:100%}.appointment-type{display:flex;align-items:center;gap:12px;font-size:18px;color:#2c3e50}.actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-2)}.actions.next{flex-direction:column}.actions-secondary{display:flex;gap:var(--sp-3)}.actions mq-button{flex:1}`}render(){const t=this.appointmentResource.appointment.channel===w.videocall,e=this.appointmentResource.appointment.channel===w.phonecall,i=!0===this.appointmentResource.appointment.has_chat_in_appointment,o=(t||e)&&i,n=j(),s=S(this.appointmentResource.appointment.expires_at),p=0===this.appointmentResource.slots.length,l=this.getOrganizationSetupQuery.result?.data?.appointments?.seconds_before_start_to_refund_on_cancel,c=z({startsAtIso:this.appointmentResource.appointment.starts_at,refundPolicySeconds:l}),d=s||p||!c,h=s||!c,m=D({action:"modify",refundPolicySeconds:l}),u=D({action:"cancel",refundPolicySeconds:l}),f=this.getOrganizationSpecialtiesQuery.result?.data?.find(t=>Number(t.id)===Number(this.appointmentResource.speciality.id)),y=g(f?.code??"",n,f?.name??this.appointmentResource.speciality.name),b=this.getScheduleServicesQuery.result?.data?.find(t=>t.id===this.appointmentResource.appointment.service_id)?.code,$=f?.code&&b?{specialty:f.code,service:b}:null;return x`<mq-card class="card" roundness="md"><div class="card-top-content"><professional-overview .specialtyName="${y??""}" .collegiateNumber="${this.appointmentResource.professional.collegiate_number??void 0}" .description="${this.appointmentResource.professional.description??""}" .languages="${this.appointmentResource.professional.languages}" .avatar="${this.appointmentResource.professional.avatar??""}" .name="${this.appointmentResource.professional.name}"></professional-overview><appointment-details .startsAt="${this.appointmentResource.appointment.starts_at}" .duration="${this.appointmentResource.appointment.duration}" .channel="${this.appointmentResource.appointment.channel}" .timezone="${this.loginToken?.patient?.timezone}" variant="${this.detailsVariant}"></appointment-details></div><appointment-card-actions .variant="${this.variant}" .appointmentId="${this.appointmentResource.appointment.id??""}" .isVideocall="${t}" .hasChatSupport="${o}" .unreadCount="${this.unreadQuery.result?.data?.unread_count??0}" .isModifyUnavailable="${d}" .isCancelUnavailable="${h}" .hasNoSlots="${p}" .modifyUnavailableMessage="${m}" .cancelUnavailableMessage="${u}" .repeatTarget="${$}" .professionalHash="${this.appointmentResource.professional.hash}" @toggle-chat="${()=>{this.isChatOpen=!this.isChatOpen,this.isChatOpen&&r.track(v(this.loginToken.patient.hash,this.appointmentResource.appointment.id??""))}}" @request-cancel="${()=>{this.isCancelDialogOpen=!0}}"></appointment-card-actions><mq-floating-bubble ?dismissable="${!1}" .open="${this.isChatOpen}" @mq-close="${()=>{this.isChatOpen=!1}}" hideCloseButton>${this.isChatOpen?x`<mq-chat-room slot="content" .consultationId="${this.appointmentResource.appointment.id}" consultation-type="appointment" token="${this.loginToken.access_token}" .roomId="${this.appointmentResource.room.id}" .professionalHash="${this.appointmentResource.professional.hash}" @mq-chat-room-close="${()=>{this.isChatOpen=!1}}" ?readonly="${s}"></mq-chat-room>`:C}</mq-floating-bubble><cancel-appointment-confirmation-dialog .appointmentId="${this.appointmentResource.appointment.id}" .price="${this.appointmentResource.price??void 0}" .open="${this.isCancelDialogOpen}" @cancel="${()=>{this.isCancelDialogOpen=!1}}" @success="${()=>{this.isCancelDialogOpen=!1,E.success(a("Consulta anulada correctamente")),this.dispatchEvent(new CustomEvent("appointment-cancel-confirmed",{bubbles:!0,composed:!0,detail:{id:this.appointmentResource.appointment.id}}))}}"></cancel-appointment-confirmation-dialog></mq-card>`}};t([i({context:s,subscribe:!0})],T.prototype,"apiClient",void 0),t([k({type:Object})],T.prototype,"appointmentResource",void 0),t([k({type:Number})],T.prototype,"specialtyId",void 0),t([k({type:String})],T.prototype,"variant",void 0),t([k({type:String})],T.prototype,"detailsVariant",void 0),t([i({context:q})],T.prototype,"loginToken",void 0),t([R()],T.prototype,"isChatOpen",void 0),t([R()],T.prototype,"isCancelDialogOpen",void 0),T=t([o(),e("appointment-card")],T);let P=class AppointmentCardSkeleton extends b{static{this.styles=$`div{border-radius:var(--border-radius-md);background:color-mix(in srgb,var(--color-neutrals-background-disabled) 50%,#fff 50%);height:337px;width:100%}`}render(){return x`<div></div>`}};P=t([e("appointment-card-skeleton")],P);
|
|
@@ -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{g as n}from"./chunk-HN62IQ7S-xbkIy7k_.js";import{a}from"./addSeconds-ofMnxlgT.js";import{i as r,a as s,E as l,x as p}from"./lit-element-DiWJYFwC.js";import{n as m}from"./property-scuRaFcM.js";import{e as c}from"./class-map-Co76I6aw.js";import{getLocale as h}from"../i18n.js";import{briefcaseIcon as d}from"../ui/icons/briefcase-icon.js";import{calendarIcon as u}from"../ui/icons/calendar-icon.js";import{clockIcon as f}from"../ui/icons/clock-icon.js";import{messageBubbleIcon as v}from"../ui/icons/message-bubble-icon.js";import{phoneIcon as w}from"../ui/icons/phone-icon.js";const y=r`.appointment-details{display:flex;flex-direction:column;gap:var(--sp-3)}.detail-row{display:inline-flex;width:fit-content;align-items:center;gap:var(--sp-2);color:var(--color-neutrals-text-default);font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-bold)}.detail-row svg{flex-shrink:0}.detail-row span::first-letter{text-transform:uppercase}.detail-row.full-width{width:100%}:host([strike-through]) .detail-row span{text-decoration:line-through}@media (min-width:768px){.appointment-details.wide{flex-direction:row;flex-wrap:wrap}}`;let g=class AppointmentDetails extends s{constructor(){super(...arguments),this.channel=void 0,this.variant="default",this.strikeThrough=!1,this.timezone=void 0,this._appointmentChannelToLabel=t=>{switch(t){case"videocall":return i("Videoconsulta");case"chat":return i("Chat");case"phonecall":return i("Consulta telefónica");default:return""}},this._appointmentChannelToIcon=t=>{switch(t){case"videocall":return d({size:24});case"chat":return v({size:24});case"phonecall":return w({size:24});default:return l}}}static{this.styles=y}render(){const t=h().replace("_","-"),e=new Intl.DateTimeFormat(t,{weekday:"long",year:"numeric",month:"long",day:"numeric",...this.timezone?{timeZone:this.timezone}:{}}),i=new Intl.DateTimeFormat(t,{timeStyle:"short",...this.timezone?{timeZone:this.timezone}:{}}),o=new Date(this.startsAt),r=a(o,this.duration),s=e.format(o),m=i.format(o),d=i.format(r),v=this.timezone?n(this.timezone,o):"";return p`<div class="${c({"appointment-details":!0,wide:"wide"===this.variant})}"><div class="detail-row">${u({size:24})} <span>${s}</span></div><div class="detail-row">${f({size:24})} <span>${m} - ${d}${v?` (${v})`:""}</span></div>${this.channel?p`<div class="detail-row full-width">${this._appointmentChannelToIcon(this.channel)} <span>${this._appointmentChannelToLabel(this.channel)}</span></div>`:l}</div>`}};t([m({type:String})],g.prototype,"startsAt",void 0),t([m({type:Number})],g.prototype,"duration",void 0),t([m({type:String})],g.prototype,"channel",void 0),t([m({type:String})],g.prototype,"variant",void 0),t([m({type:Boolean,attribute:"strike-through"})],g.prototype,"strikeThrough",void 0),t([m({type:String})],g.prototype,"timezone",void 0),g=t([o(),e("appointment-details")],g);export{g as A};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function e(e,...t){return[e.getApiKey()??"_",...t]}export{e as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s}from"./chunk-6CCJWPGL-
|
|
1
|
+
import{s}from"./chunk-6CCJWPGL-TiaqZaPV.js";function e(e,o,r){return{queryKey:s(e,"professionals",o.hash),queryFn:()=>e.professionals.getProfessional(o),staleTime:0,...r}}export{e as g};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{p as t}from"./parseISO-Dj3qSTG8.js";import{f as e}from"./format-CRFiCNHw.js";function n(e){return t(`${e.replace(" ","T")}Z`)}function r(t){const n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()));return e(n,"yyyy-MM-dd HH:mm:ss")}function a(t,e){try{const n=new Intl.DateTimeFormat("en",{timeZone:t,timeZoneName:"shortOffset"}).formatToParts(e);return n.find(t=>"timeZoneName"===t.type)?.value??""}catch{return""}}export{n as a,r as b,a as g};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{z as e}from"./external-CJj32K_p.js";import{s as r}from"./chunk-6CCJWPGL-TiaqZaPV.js";var s=e.enum(["ordinary","system"]).enum;function n(e,s,n){return{queryKey:r(e,"unread-messages",s),queryFn:()=>e.rooms.getUnreadMessagesCount(s),staleTime:0,...n}}export{s as S,n as g};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as t}from"./context-consumer-ESdICVAb.js";function c({context:c,subscribe:e}){return(n,i)=>{"object"==typeof i?i.addInitializer(function(){new t(this,{context:c,callback:t=>{n.set.call(this,t)},subscribe:e})}):n.constructor.addInitializer(n=>{new t(n,{context:c,callback:t=>{n[i]=t},subscribe:e})})}}export{c};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as t}from"./context-request-event-Dfydf1ub.js";class s{constructor(t,i,e,h){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(t,i)=>{this.unsubscribe&&(this.unsubscribe!==i&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=t,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(t,i)),this.unsubscribe=i},this.host=t,void 0!==i.context){const t=i;this.context=t.context,this.callback=t.callback,this.subscribe=t.subscribe??!1}else this.context=i,this.callback=e,this.subscribe=h??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new t(this.context,this.host,this.t,this.subscribe))}}
|
|
1
|
+
import{s as t}from"./context-request-event-Dfydf1ub.js";class s{constructor(t,i,e,h){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(t,i)=>{this.unsubscribe&&(this.unsubscribe!==i&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=t,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(t,i)),this.unsubscribe=i},this.host=t,void 0!==i.context){const t=i;this.context=t.context,this.callback=t.callback,this.subscribe=t.subscribe??!1}else this.context=i,this.callback=e,this.subscribe=h??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new t(this.context,this.host,this.t,this.subscribe))}}export{s};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{m as i}from"./runtime-Bg1WXVCx.js";import{l as o}from"./localized-decorator-BlOuLhym.js";import{h as a,s as n}from"./task-Bj8p7kJX.js";import{A as s}from"./api-client-context-V1UAGtKW.js";import{C as r,i as l}from"./api-chat-client-CJ1EGJe3.js";import{g as d}from"./chunk-HN62IQ7S-xbkIy7k_.js";import{a as c}from"./addSeconds-ofMnxlgT.js";import{a as m,i as p,E as h,x as u}from"./lit-element-DiWJYFwC.js";import{n as f}from"./property-scuRaFcM.js";import{getLocale as g}from"../i18n.js";import{calendarIcon as v}from"../ui/icons/calendar-icon.js";import{clockIcon as y}from"../ui/icons/clock-icon.js";import{r as b}from"./state-LQivXIgA.js";import{infoCircleOutineIcon as x}from"../ui/icons/info-circle-outine-icon.js";import"../ui/mq-button.js";import{l as $}from"./chunk-S5RWG6G2-DPesx3Od.js";import{messageBubbleIcon as k}from"../ui/icons/message-bubble-icon.js";import"../mq-chat-room.js";import"../ui/mq-floating-bubble.js";import"../ui/mq-card.js";import"../ui/mq-unread-badge.js";import{c as q}from"./consume-CovVqBjI.js";import{Q as w}from"./query-controller-BlO1Ax65.js";import{g as z}from"./chunk-Y4EKUX25-QqMl3eiq.js";import"../ui/mq-page-title.js";import"./mq-layout-E5mKSz4A.js";import{M as j}from"./mutation-controller-CR2qcqhH.js";import{a as C,t as _,b as I,g as T,c as O,e as S}from"./telemetry-client-7fvNqUSU.js";import{MqViewAppointmentsEvent as D}from"../events.js";let E=class ChatCta extends m{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 w(this,()=>z(this.apiClient,{roomId:this.roomId}))}static{this.styles=[p`.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 u`<mq-card class="chat-cta" roundness="md"><div class="cta-message">${x({size:24})} <span>${this.text}</span></div><mq-button variant="primary" size="md" fullwidth @click="${()=>{this.isChatOpen=!this.isChatOpen,this.isChatOpen&&this.onOpenChat?.()}}">${k({size:24})} ${i("Chatea con el profesional")} ${(this.unreadQuery.result?.data?.unread_count??0)>0?u`<mq-unread-badge></mq-unread-badge>`:h}</mq-button></mq-card><mq-floating-bubble ?dismissable="${!1}" .open="${this.isChatOpen}" @mq-close="${()=>{this.isChatOpen=!1}}" hideCloseButton>${this.isChatOpen?u`<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>`:h}</mq-floating-bubble>`}};t([q({context:s,subscribe:!0})],E.prototype,"apiClient",void 0),t([f({type:Number})],E.prototype,"roomId",void 0),t([f({type:String})],E.prototype,"professionalHash",void 0),t([f({type:String})],E.prototype,"text",void 0),t([f({type:String})],E.prototype,"consultationId",void 0),t([f({type:Boolean,reflect:!0})],E.prototype,"readonly",void 0),t([f({attribute:!1})],E.prototype,"onOpenChat",void 0),t([q({context:$})],E.prototype,"loginToken",void 0),t([b()],E.prototype,"isChatOpen",void 0),E=t([o(),e("chat-cta")],E);let Q=class PageLayout extends m{constructor(){super(...arguments),this.yCentered=!1,this.background="solid"}static{this.styles=p`: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 u`<div><main><slot></slot></main></div>`}};t([f({type:Boolean,attribute:"y-centered"})],Q.prototype,"yCentered",void 0),t([f({type:String})],Q.prototype,"background",void 0),Q=t([e("page-layout")],Q);const H=p`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 N=class DocumentationView extends m{constructor(){super(...arguments),this.canReconnect=!1,this._sharedocumentsTask=new a(this,{task:async([t])=>await this.apiClient.flash.getSharedDocuments({appointment_id:t}),args:()=>[this.appointment.id]}),this.getOrganizationSpecialtiesQuery=new w(this,()=>C(this.apiClient)),this._reconnectMutation=new j(this,{mutationFn:t=>this.apiClient.appointments.reconnectAppointment(t),onSuccess:()=>{this.dispatchEvent(new CustomEvent("reconnect",{bubbles:!0,composed:!0}))}})}static{this.styles=H}firstUpdated(){_.track(I(this.loginToken.patient.hash,this.appointment.id??""))}render(){const t=!0===this.appointment.has_chat_in_appointment,e=g(),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}),p=new Date(this.appointment.start_date),f=c(p,this.appointment.duration),b=a?d(a,p):"";return u`<mq-page-title .title="${i("Consulta finalizada")}" back-label="${i("Salir")}" @mq-back="${t=>{t.stopPropagation(),this.dispatchEvent(new D({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>${v()}</dt><dd>${r.format(p)}</dd></div><div class="description-list-item"><dt>${y()}</dt><dd>${m.format(p)} - ${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:()=>u`<div class="document-item-skeleton"></div>`,complete:()=>0===this._sharedocumentsTask?.value?.length?u`<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=>u`<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 T(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="${()=>{_.track(O(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?u`<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>`:h} ${t?u`<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="${l(this.appointment.expires_at)}" .onOpenChat="${()=>{_.track(S(this.loginToken.patient.hash,this.appointment.id??""))}}"></chat-cta>`:h}</div>`}};t([q({context:s,subscribe:!0})],N.prototype,"apiClient",void 0),t([f({type:Object})],N.prototype,"appointment",void 0),t([f({type:String})],N.prototype,"token",void 0),t([f({type:Boolean,attribute:"can-reconnect"})],N.prototype,"canReconnect",void 0),t([q({context:$})],N.prototype,"loginToken",void 0),N=t([o(),e("documentation-view")],N);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as n}from"./chunk-6CCJWPGL-
|
|
1
|
+
import{s as n}from"./chunk-6CCJWPGL-TiaqZaPV.js";function t(t,e,p){return{queryKey:n(t,"appointments",e.id),queryFn:()=>t.appointments.getAppointment(e),...p}}export{t as g};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as n}from"./chunk-6CCJWPGL-
|
|
1
|
+
import{s as n}from"./chunk-6CCJWPGL-TiaqZaPV.js";function r(r,t){return{queryKey:n(r,"organization-setup"),queryFn:()=>r.organizations.getOrganizationSetup(),...t}}export{r as g};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as t}from"./chunk-6CCJWPGL-
|
|
1
|
+
import{s as t}from"./chunk-6CCJWPGL-TiaqZaPV.js";function e(e,n){return{queryKey:t(e,"patient-documents",n),queryFn:()=>e.flash.getPatientDocuments(n)}}export{e as g};
|
package/dist/chunks/{get-patient-profile-query-DiU2f_QH.js → get-patient-profile-query-4AO6xvVn.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./chunk-6CCJWPGL-
|
|
1
|
+
import{s as e}from"./chunk-6CCJWPGL-TiaqZaPV.js";function r(r,t){return{queryKey:e(r,"patient-profile"),queryFn:()=>r.profile.getPatientProfile(),...t}}export{r as g};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as e}from"./chunk-6CCJWPGL-
|
|
1
|
+
import{s as e}from"./chunk-6CCJWPGL-TiaqZaPV.js";function s(s){return{queryKey:e(s,"schedule-services"),queryFn:()=>s.schedules.getScheduleServices()}}export{s as g};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{l as o}from"./localized-decorator-BlOuLhym.js";import"./runtime-Bg1WXVCx.js";import{i,a as n,E as a,x as r}from"./lit-element-DiWJYFwC.js";import{n as s}from"./property-scuRaFcM.js";import{arrowRightIcon as c}from"../ui/icons/arrow-right-icon.js";const l=i`:host{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);width:100%}.heading{font-family:var(--font-titles);font-size:var(--text-base);line-height:1.5;font-weight:var(--font-weight-medium);color:var(--color-text-icons--primary,#0a0a22);margin:0}.action{display:inline-flex;align-items:center;gap:6px;background:0 0;border:none;padding:0;cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);line-height:1.35;font-weight:var(--font-weight-normal);color:var(--color-primary-text-link,#4a1ea7);white-space:nowrap}.action:hover{text-decoration:underline}.action svg{flex-shrink:0}`;let p=class SectionHeader extends n{constructor(){super(...arguments),this.heading=""}static{this.styles=l}render(){return r`<h2 class="heading">${this.heading}</h2>${this.actionLabel?r`<button class="action" type="button" @click="${()=>{this.dispatchEvent(new CustomEvent("section-action",{bubbles:!0,composed:!0}))}}">${this.actionLabel} ${c({size:18,color:"var(--color-primary-text-link, #4a1ea7)"})}</button>`:a}`}};t([s({type:String})],p.prototype,"heading",void 0),t([s({type:String,attribute:"action-label"})],p.prototype,"actionLabel",void 0),p=t([o(),e("section-header")],p);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{m as a}from"./runtime-Bg1WXVCx.js";import{l as r}from"./localized-decorator-BlOuLhym.js";import{i as n,a as s,x as o}from"./lit-element-DiWJYFwC.js";import{n as i}from"./property-scuRaFcM.js";import{r as l}from"./state-LQivXIgA.js";import{e as d}from"./class-map-Co76I6aw.js";import{chevronLeftIcon as c}from"../ui/icons/chevron-left-icon.js";import{chevronRightIcon as v}from"../ui/icons/chevron-right-icon.js";import{spinnerIcon as h}from"../ui/icons/spinner-icon.js";import{t as u,c as p,n as g,g as m,p as y,a as b,s as f}from"./parseISO-Dj3qSTG8.js";import{i as D}from"./isSameDay-CuhZMy1T.js";import{i as k}from"./isBefore-CPpTogxo.js";function w(t,e,a){const r=u(t,a?.in);if(isNaN(e))return p(t,NaN);if(!e)return r;const n=r.getDate(),s=p(t,r.getTime());s.setMonth(r.getMonth()+e+1,0);return n>=s.getDate()?s:(r.setFullYear(s.getFullYear(),s.getMonth(),n),r)}function M(t,e){const a=u(t,e?.in),r=a.getMonth();return a.setFullYear(a.getFullYear(),r+1,0),a.setHours(23,59,59,999),a}function
|
|
1
|
+
import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{m as a}from"./runtime-Bg1WXVCx.js";import{l as r}from"./localized-decorator-BlOuLhym.js";import{i as n,a as s,x as o}from"./lit-element-DiWJYFwC.js";import{n as i}from"./property-scuRaFcM.js";import{r as l}from"./state-LQivXIgA.js";import{e as d}from"./class-map-Co76I6aw.js";import{chevronLeftIcon as c}from"../ui/icons/chevron-left-icon.js";import{chevronRightIcon as v}from"../ui/icons/chevron-right-icon.js";import{spinnerIcon as h}from"../ui/icons/spinner-icon.js";import{t as u,c as p,n as g,g as m,p as y,a as b,s as f}from"./parseISO-Dj3qSTG8.js";import{i as D}from"./isSameDay-CuhZMy1T.js";import{i as k}from"./isBefore-CPpTogxo.js";function w(t,e,a){const r=u(t,a?.in);if(isNaN(e))return p(t,NaN);if(!e)return r;const n=r.getDate(),s=p(t,r.getTime());s.setMonth(r.getMonth()+e+1,0);return n>=s.getDate()?s:(r.setFullYear(s.getFullYear(),s.getMonth(),n),r)}function M(t,e){const a=u(t,e?.in),r=a.getMonth();return a.setFullYear(a.getFullYear(),r+1,0),a.setHours(23,59,59,999),a}function S(t,e){const{start:a,end:r}=function(t,e){const[a,r]=g(t,e.start,e.end);return{start:a,end:r}}(e?.in,t);let n=+a>+r;const s=n?+a:+r,o=n?r:a;o.setHours(0,0,0,0);const i=[];for(;+o<=s;)i.push(p(a,o)),o.setDate(o.getDate()+1),o.setHours(0,0,0,0);return n?i.reverse():i}function x(t,e){const a=u(t,e?.in);return a.setDate(1),a.setHours(0,0,0,0),a}function j(t,e){const a=m(),r=e?.weekStartsOn??e?.locale?.options?.weekStartsOn??a.weekStartsOn??a.locale?.options?.weekStartsOn??0,n=u(t,e?.in),s=n.getDay(),o=6+(s<r?-7:0)-(s-r);return n.setDate(n.getDate()+o),n.setHours(23,59,59,999),n}function E(t,e){return+u(t)>+u(e)}function $(t,e){return D(p(t,t),function(t){return p(t,Date.now())}(t))}const N=n`:host{display:block;font-family:var(--font-body)}.calendar{background:var(--color-card);border-radius:var(--border-radius-lg);user-select:none}.calendar-header{display:flex;align-items:center;justify-content:space-between;background:var(--color-primary-background-extraWeak);padding:var(--sp-4);border-radius:var(--border-radius-lg) var(--border-radius-lg) 0 0}.calendar-header-title{font-family:var(--font-titles);font-size:var(--text-lg);font-weight:var(--font-weight-bold);color:var(--color-gray-darkest)}.calendar-body{position:relative;transition:opacity .2s}.calendar-body.loading{opacity:.4;pointer-events:none}.calendar-nav{display:flex;gap:var(--sp-2)}.calendar-nav-button{display:flex;align-items:center;justify-content:center;width:var(--size-8);height:var(--size-8);border:none;background:0 0;border-radius:var(--border-radius-md);cursor:pointer;transition:background-color .2s;color:var(--color-gray-darkest);padding:0}.calendar-nav-button:hover{background:var(--color-background-primary-light)}.calendar-nav-button:disabled{opacity:.3;cursor:not-allowed}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,var(--sp-11));justify-content:space-between;padding:var(--sp-4) var(--sp-4) var(--sp-2) var(--sp-4)}.calendar-weekday{text-align:center;font-size:var(--text-sm);font-weight:var(--font-weight-bold);color:var(--color-gray-darkest);padding:var(--sp-2)}.calendar-days{display:grid;gap:var(--sp-1);grid-template-columns:repeat(7,var(--sp-11));justify-content:space-between;padding:0 var(--sp-4) var(--sp-4) var(--sp-4)}.calendar-day{width:var(--sp-11);height:var(--sp-11);display:flex;align-items:center;justify-content:center;border:none;background:0 0;border-radius:var(--border-radius-full);cursor:pointer;font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-gray-darkest);transition:all .2s;padding:0;position:relative}.calendar-day:hover:not(:disabled):not(.other-month){background:var(--color-gray-lighter)}.calendar-day.other-month{color:var(--color-gray-medium);background:0 0}.calendar-day:disabled{color:var(--color-gray-medium);background:0 0;cursor:not-allowed}.calendar-day.available:not(.selected){background:var(--color-primary);color:var(--color-white);font-weight:var(--font-weight-semibold)}.calendar-day.available:hover:not(:disabled):not(.selected){background:var(--color-primary-dark)}.calendar-day.selected{background:var(--color-primary);color:var(--color-white);font-weight:var(--font-weight-bold)}.calendar-day.selected:hover:not(:disabled){background:var(--color-primary-dark)}.calendar-day-empty{width:var(--sp-11);height:var(--sp-11)}.calendar-spinner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:10}@media (min-width:640px){.calendar-weekdays{gap:var(--sp-2)}.calendar-days{gap:var(--sp-2)}}@media (min-width:768px){.calendar-weekdays{gap:var(--sp-3)}.calendar-days{gap:var(--sp-3)}}@media (min-width:1024px){.calendar-weekdays{gap:var(--sp-4)}.calendar-days{gap:var(--sp-4)}}`;class DateSelectEvent extends Event{static{this.eventName="date-select"}constructor(t){super(DateSelectEvent.eventName,{bubbles:!0,composed:!0}),this.detail=t}}class PrevMonthEvent extends Event{static{this.eventName="prev-month"}constructor(t){super(PrevMonthEvent.eventName,{bubbles:!0,composed:!0}),this.detail=t}}class NextMonthEvent extends Event{static{this.eventName="next-month"}constructor(t){super(NextMonthEvent.eventName,{bubbles:!0,composed:!0}),this.detail=t}}let C=class MqCalendar extends s{constructor(){super(...arguments),this.locale="es-ES",this.isLoading=!1,this.handlePrevMonth=()=>{const t=this.getCurrentMonthDate(),e=w(t,-1,a);var a;this.dispatchEvent(new PrevMonthEvent({currentMonth:e.toISOString()}))},this.handleNextMonth=()=>{const t=w(this.getCurrentMonthDate(),1);this.dispatchEvent(new NextMonthEvent({currentMonth:t.toISOString()}))},this.handleDayClick=t=>{t.isDisabled||(this.selectedDate=t.date,this.value=t.date.toISOString(),this.dispatchEvent(new DateSelectEvent({date:t.date.toISOString()})),this.requestUpdate())}}static{this.styles=[N]}connectedCallback(){super.connectedCallback(),this.value&&(this.selectedDate=y(this.value))}getMonthYear(){const t=this.getCurrentMonthDate();return new Intl.DateTimeFormat(this.locale,{month:"long",year:"numeric"}).format(t)}getCurrentMonthDate(){return this.currentMonth?y(this.currentMonth):new Date}getWeekdays(){const t=b(new Date(2024,0,1),{weekStartsOn:1}),e=S({start:t,end:j(t,{weekStartsOn:1})}),a=new Intl.DateTimeFormat(this.locale,{weekday:"narrow"});return e.map(t=>a.format(t).toUpperCase())}getDaysInMonth(){const t=this.getCurrentMonthDate(),e=x(t),a=M(t);return S({start:b(e,{weekStartsOn:1}),end:j(a,{weekStartsOn:1})}).map(e=>{const a=function(t,e,a){const[r,n]=g(a?.in,t,e);return r.getFullYear()===n.getFullYear()&&r.getMonth()===n.getMonth()}(e,t);return this.createCalendarDay(e,a)})}createCalendarDay(t,e){const a=f(t),r=$(a),n=this.isDateAvailable(a);return{date:a,isCurrentMonth:e,isToday:r,isDisabled:this.isDateDisabled(a,n),isSelected:!!this.selectedDate&&D(a,this.selectedDate),isAvailable:n}}isDateAvailable(t){if(!this.availableDays||0===this.availableDays.length)return!1;const e=f(t);return this.availableDays.some(t=>{const a=f(y(t));return D(e,a)})}isDateDisabled(t,e){const a=f(t);if(this.availableDays&&this.availableDays.length>0)return!e;if(this.minDate){const t=f(y(this.minDate));if(k(a,t))return!0}if(this.maxDate){if(E(a,f(y(this.maxDate))))return!0}return!1}render(){const t=this.getDaysInMonth(),e=this.getWeekdays();return o`<div class="calendar"><div class="calendar-header"><button class="calendar-nav-button" @click="${this.handlePrevMonth}" aria-label="${a("Mes anterior")}">${c({size:24})}</button><div class="calendar-header-title">${this.getMonthYear()}</div><button class="calendar-nav-button" @click="${this.handleNextMonth}" aria-label="${a("Mes siguiente")}">${v({size:24})}</button></div><div class="calendar-body ${this.isLoading?"loading":""}"><div class="calendar-weekdays">${e.map(t=>o`<div class="calendar-weekday">${t}</div>`)}</div><div class="calendar-days">${t.map(t=>t.isCurrentMonth?o`<button class="${d({"calendar-day":!0,"other-month":!t.isCurrentMonth,today:t.isToday,selected:t.isSelected,available:t.isAvailable})}" ?disabled="${t.isDisabled||this.isLoading}" @click="${()=>this.handleDayClick(t)}" aria-label="${t.date.toLocaleDateString(this.locale)}">${t.date.getDate()}</button>`:o`<div class="calendar-day-empty"></div>`)}</div>${this.isLoading?o`<div class="calendar-spinner">${h({size:40,color:"var(--color-primary)"})}</div>`:""}</div></div>`}};t([i({type:String})],C.prototype,"locale",void 0),t([i({type:String,attribute:"min-date"})],C.prototype,"minDate",void 0),t([i({type:String,attribute:"max-date"})],C.prototype,"maxDate",void 0),t([i({type:String})],C.prototype,"value",void 0),t([i({type:Boolean,attribute:"is-loading"})],C.prototype,"isLoading",void 0),t([i({type:String,attribute:"current-month"})],C.prototype,"currentMonth",void 0),t([i({type:Array,attribute:"available-days"})],C.prototype,"availableDays",void 0),t([l()],C.prototype,"selectedDate",void 0),C=t([r(),e("mq-calendar")],C);export{DateSelectEvent as D,C as M,NextMonthEvent as N,PrevMonthEvent as P,M as e,E as i,x as s};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{E as s,i,a as o,x as n}from"./lit-element-DiWJYFwC.js";import{n as r}from"./property-scuRaFcM.js";import{r as l}from"./state-LQivXIgA.js";import{e as a}from"./class-map-Co76I6aw.js";import{i as d,t as c,e as p}from"./directive-2EDmOukv.js";import{o as v}from"./style-map-CIdqdn7C.js";import"../ui/mq-text-button.js";const u={},m=(t,e=u)=>t._$AH=e
|
|
1
|
+
import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{E as s,i,a as o,x as n}from"./lit-element-DiWJYFwC.js";import{n as r}from"./property-scuRaFcM.js";import{r as l}from"./state-LQivXIgA.js";import{e as a}from"./class-map-Co76I6aw.js";import{i as d,t as c,e as p}from"./directive-2EDmOukv.js";import{o as v}from"./style-map-CIdqdn7C.js";import"../ui/mq-text-button.js";const u={},m=(t,e=u)=>t._$AH=e,$=(t,e)=>{const s=t._$AN;if(void 0===s)return!1;for(const t of s)t._$AO?.(e,!1),$(t,e);return!0},x=t=>{let e,s;do{if(void 0===(e=t._$AM))break;s=e._$AN,s.delete(t),t=e}while(0===s?.size)},b=t=>{for(let e;e=t._$AM;t=e){let s=e._$AN;if(void 0===s)e._$AN=s=new Set;else if(s.has(t))break;s.add(t),A(e)}};function _(t){void 0!==this._$AN?(x(this),this._$AM=t,b(this)):this._$AM=t}function g(t,e=!1,s=0){const i=this._$AH,o=this._$AN;if(void 0!==o&&0!==o.size)if(e)if(Array.isArray(i))for(let t=s;t<i.length;t++)$(i[t],!1),x(i[t]);else null!=i&&($(i,!1),x(i));else $(this,t)}const A=t=>{t.type==c.CHILD&&(t._$AP??=g,t._$AQ??=_)};class f extends d{constructor(){super(...arguments),this._$AN=void 0}_$AT(t,e,s){super._$AT(t,e,s),b(this),this.isConnected=t._$AU}_$AO(t,e=!0){t!==this.isConnected&&(this.isConnected=t,t?this.reconnected?.():this.disconnected?.()),e&&($(this,t),x(this))}setValue(t){if((t=>void 0===t.strings)(this._$Ct))this._$Ct._$AI(t,this);else{const e=[...this._$Ct._$AH];e[this._$Ci]=t,this._$Ct._$AI(e,this,0)}}disconnected(){}reconnected(){}}class h{}const y=new WeakMap,w=p(class extends f{render(t){return s}update(t,[e]){const i=e!==this.G;return i&&void 0!==this.G&&this.rt(void 0),(i||this.lt!==this.ct)&&(this.G=e,this.ht=t.options?.host,this.rt(this.ct=t.element)),s}rt(t){if(this.isConnected||(t=void 0),"function"==typeof this.G){const e=this.ht??globalThis;let s=y.get(e);void 0===s&&(s=new WeakMap,y.set(e,s)),void 0!==s.get(this.G)&&this.G.call(this.ht,void 0),s.set(this.G,t),void 0!==t&&this.G.call(this.ht,t)}else this.G.value=t}get lt(){return"function"==typeof this.G?y.get(this.ht??globalThis)?.get(this.G):this.G?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}}),C=i`:host{display:flex;flex-direction:column;gap:var(--sp-1)}.text{margin:0}.text.is-clamped{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.toggle{align-self:flex-start}`;let G=class MqClampedText extends o{constructor(){super(...arguments),this.lines=2,this.expandLabel="",this.collapseLabel="",this.expanded=!1,this.overflowing=!1,this.textRef=new h,this.measure=()=>{const t=this.textRef.value;if(!t||this.expanded)return;const e=t.scrollHeight-t.clientHeight>1;e!==this.overflowing&&(this.overflowing=e)}}static{this.styles=C}updated(){const t=this.textRef.value;t&&!this.resizeObserver&&(this.resizeObserver=new ResizeObserver(()=>this.measure()),this.resizeObserver.observe(t)),this.measure()}disconnectedCallback(){super.disconnectedCallback(),this.resizeObserver?.disconnect(),this.resizeObserver=void 0}render(){return n`<div ${w(this.textRef)} class="text ${a({"is-clamped":!this.expanded})}" style="${v({"-webkit-line-clamp":this.expanded?"":String(this.lines)})}"><slot @slotchange="${this.measure}"></slot></div>${this.expanded||this.overflowing?n`<mq-text-button class="toggle" type="button" size="sm" fontWeight="normal" underlined @click="${()=>{this.expanded=!this.expanded}}">${this.expanded?this.collapseLabel:this.expandLabel}</mq-text-button>`:s}`}};t([r({type:Number})],G.prototype,"lines",void 0),t([r({type:String,attribute:"expand-label"})],G.prototype,"expandLabel",void 0),t([r({type:String,attribute:"collapse-label"})],G.prototype,"collapseLabel",void 0),t([l()],G.prototype,"expanded",void 0),t([l()],G.prototype,"overflowing",void 0),G=t([e("mq-clamped-text")],G);export{G as M,f,m};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as t,c as e}from"./custom-element-D2ziPxYE.js";import{e as i}from"./provide-BwI4DDGF.js";import{c as o}from"./consume-CovVqBjI.js";import{A as n}from"./api-client-context-V1UAGtKW.js";import{i as a,a as s,x as r}from"./lit-element-DiWJYFwC.js";import{n as l}from"./property-scuRaFcM.js";import{r as h}from"./state-LQivXIgA.js";import"../ui/mq-checkbox.js";import"../ui/mq-button.js";import{M as c}from"./mutation-controller-CR2qcqhH.js";import{setEnv as d}from"../env.js";import{c as m,n as p}from"./api-chat-client-CJ1EGJe3.js";const g=a`.page-header{box-sizing:border-box;width:100%;display:none}.page-title{font-family:var(--font-body);font-size:var(--text-2xl);line-height:var(--text-2xl--line-height);font-weight:var(--font-weight-bold);color:var(--color-neutrals-text-default)}.page-title ::slotted(*){margin:0;margin-bottom:var(--sp-2);font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit}.page-subtitle{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);font-weight:var(--font-weight-normal);color:var(--color-neutrals-text-subtle)}.page-subtitle ::slotted(*){margin:0;font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit}.terms-section{box-sizing:border-box;width:100%;display:flex;flex-direction:column;gap:var(--sp-6);background-color:var(--color-neutrals-background-weak);padding:var(--sp-6);border-radius:var(--border-radius-md)}.terms-title{font-family:var(--font-titles);font-size:var(--text-2xl);line-height:var(--text-2xl--line-height);font-weight:var(--font-weight-bold);color:var(--color-neutrals-text-default)}.terms-title ::slotted(*){margin:0;margin-bottom:var(--sp-2);font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit}.terms-description{font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--text-sm--line-height);font-weight:var(--font-weight-normal);color:var(--color-neutrals-text-default)}.terms-description ::slotted(*){margin:0;font-family:inherit;font-size:inherit;line-height:inherit;font-weight:inherit;color:inherit}.checkbox-container{display:flex;gap:var(--sp-3);align-items:flex-start;cursor:pointer}.checkbox-label{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--text-base--line-height);font-weight:var(--font-weight-normal);color:var(--color-neutrals-text-default);flex:1}@media (min-width:768px){.page-header{display:block;margin-bottom:var(--sp-10)}.page-title{font-size:var(--text-3xl);line-height:var(--text-3xl--line-height)}.page-title ::slotted(*){font-size:inherit;line-height:inherit}.page-subtitle{font-size:var(--text-base);line-height:var(--text-base--line-height)}.page-subtitle ::slotted(*){font-size:inherit;line-height:inherit}.terms-title{font-size:var(--text-2xl);line-height:var(--text-2xl--line-height)}.terms-title ::slotted(*){font-size:inherit;line-height:inherit}.terms-description{font-size:var(--text-base);line-height:var(--text-base--line-height)}.terms-description ::slotted(*){font-size:inherit;line-height:inherit}.checkbox-label{font-size:var(--text-base);line-height:var(--text-base--line-height)}}`;let v=class MqTermsAndConditions extends s{constructor(){super(...arguments),this.disabled=!1,this.hasCommercialCommunications=!1,this._accepted=!1,this.apiClient=m(),this.acceptLegalConsentMutation=new c(this,{mutationFn:async t=>this.apiClient.profile.acceptLegalConsent(t),onSuccess:()=>{this.dispatchEvent(new CustomEvent("continue"))}})}static{this.styles=g}willUpdate(t){t.has("env")&&this.env&&d(this.env);const e=p(t,{env:this.env,apiKey:this.apiKey,token:this.token},this.inheritedApiClient);e&&(this.apiClient=e)}handleCheckboxChange(t){this._accepted=t.detail.checked}handleContinue(){this._accepted&&!this.disabled&&this.acceptLegalConsentMutation.run({terms_accepted:!0,privacy_accepted:!0,commercial_accepted:this.hasCommercialCommunications})}render(){const t=!this._accepted||this.disabled;return r`<div class="page-header"><div class="page-title"><slot name="page-title"></slot></div><div class="page-subtitle"><slot name="page-subtitle"></slot></div></div><div class="terms-section"><div><div class="terms-title"><slot name="terms-title"></slot></div><div class="terms-description"><slot name="terms-description"></slot></div></div><div class="checkbox-container"><mq-checkbox id="terms-checkbox" @change="${this.handleCheckboxChange}" ?disabled="${this.disabled}"></mq-checkbox><label class="checkbox-label" for="terms-checkbox"><slot name="checkbox-label"></slot></label></div><mq-button variant="primary" size="md" fullwidth ?disabled="${this.acceptLegalConsentMutation.isPending||t}" @click="${this.handleContinue}"><slot name="button-text"></slot></mq-button></div>`}};t([l({type:Boolean})],v.prototype,"disabled",void 0),t([l({type:Boolean})],v.prototype,"hasCommercialCommunications",void 0),t([l({type:String,attribute:"api-key"})],v.prototype,"apiKey",void 0),t([l({type:String,attribute:"token"})],v.prototype,"token",void 0),t([l({type:String,attribute:"env"})],v.prototype,"env",void 0),t([h()],v.prototype,"_accepted",void 0),t([o({context:n,subscribe:!0}),h()],v.prototype,"inheritedApiClient",void 0),t([i({context:n}),h()],v.prototype,"apiClient",void 0),v=t([e("mq-terms-and-conditions")],v);export{v as M};
|
|
@@ -2,19 +2,6 @@ import * as lit_html from 'lit-html';
|
|
|
2
2
|
import * as lit from 'lit';
|
|
3
3
|
import { LitElement } from 'lit';
|
|
4
4
|
|
|
5
|
-
declare class HomeWidgetEmptyState extends LitElement {
|
|
6
|
-
static styles: lit.CSSResult;
|
|
7
|
-
icon: "document" | "calendar";
|
|
8
|
-
heading: string;
|
|
9
|
-
description: string;
|
|
10
|
-
render(): lit_html.TemplateResult<1>;
|
|
11
|
-
}
|
|
12
|
-
declare global {
|
|
13
|
-
interface HTMLElementTagNameMap {
|
|
14
|
-
"home-widget-empty-state": HomeWidgetEmptyState;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
5
|
declare class SectionHeader extends LitElement {
|
|
19
6
|
static styles: lit.CSSResult;
|
|
20
7
|
heading: string;
|