medos-sdk 1.1.10 → 1.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/MedosClient.d.ts +1 -0
- package/dist/client/MedosClient.js +7 -0
- package/dist/components/AppointmentCalender.js +19 -22
- package/dist/components/AppointmentConfirmationStep.d.ts +1 -0
- package/dist/components/AppointmentConfirmationStep.js +34 -42
- package/dist/components/AppointmentDateTimeModal.d.ts +1 -0
- package/dist/components/AppointmentDateTimeModal.js +201 -168
- package/dist/components/AppointmentSummaryStep.d.ts +12 -0
- package/dist/components/AppointmentSummaryStep.js +168 -0
- package/dist/components/BookingOptionStep.d.ts +14 -0
- package/dist/components/BookingOptionStep.js +346 -0
- package/dist/components/ContactInformationStep.js +10 -4
- package/dist/components/ContactPreferenceStep.js +10 -1
- package/dist/components/DoctorSelectModal.js +105 -59
- package/dist/components/EnquiryForm.js +81 -69
- package/dist/components/Icons/CloseIcon.d.ts +9 -0
- package/dist/components/Icons/CloseIcon.js +5 -0
- package/dist/components/InquiryDetailsStep.js +5 -1
- package/dist/components/PatientDetailsStep.js +17 -12
- package/dist/components/PatientSelectionStep.d.ts +12 -0
- package/dist/components/PatientSelectionStep.js +254 -0
- package/dist/components/PhoneVerificationStep.js +1 -1
- package/dist/components/SuccessStep.js +1 -1
- package/dist/components/appointment-booking/AppointmentCalender.js +200 -60
- package/dist/components/appointment-booking/hooks/useAppointmentFlow.d.ts +0 -1
- package/dist/components/appointment-booking/hooks/useAppointmentFlow.js +110 -25
- package/dist/components/appointment-booking/hooks/useAppointmentState.js +32 -0
- package/dist/components/appointment-booking/hooks/useInitializeAddresses.js +0 -1
- package/dist/components/appointment-booking/types.d.ts +163 -0
- package/dist/components/appointment-booking/types.js +16 -0
- package/dist/components/appointment-modal-styles.d.ts +259 -0
- package/dist/components/appointment-modal-styles.js +395 -0
- package/dist/components/constant.d.ts +2 -0
- package/dist/components/constant.js +15 -0
- package/dist/components/custom-calendar.js +20 -11
- package/dist/components/styles.js +93 -52
- package/dist/components/theme-styles.d.ts +5 -4
- package/dist/components/theme-styles.js +221 -125
- package/dist/components/types.d.ts +3 -1
- package/dist/components/types.js +15 -0
- package/dist/components/utils.d.ts +3 -0
- package/dist/components/utils.js +59 -0
- package/dist/components/validation.d.ts +2 -0
- package/dist/components/validation.js +41 -0
- package/dist/core/theme/index.d.ts +1 -0
- package/dist/core/theme/index.js +1 -0
- package/dist/core/theme/responsive.d.ts +15 -0
- package/dist/core/theme/responsive.js +113 -0
- package/dist/core/theme/themes.js +16 -4
- package/dist/core/theme/types.d.ts +8 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/react/ThemeProvider.d.ts +2 -1
- package/dist/react/ThemeProvider.js +49 -10
- package/dist/services/AppointmentService.d.ts +80 -2
- package/dist/services/AppointmentService.js +114 -5
- package/dist/services/WorkspaceService.d.ts +58 -3
- package/dist/services/WorkspaceService.js +10 -1
- package/dist/vanilla/AppointmentCalendarWidget.d.ts +9 -7
- package/dist/vanilla/AppointmentCalendarWidget.js +820 -377
- package/dist/vanilla/EnquiryFormWidget.d.ts +1 -0
- package/dist/vanilla/EnquiryFormWidget.js +25 -43
- package/dist/vanilla/client/MedosClient.d.ts +1 -0
- package/dist/vanilla/components/AppointmentConfirmationStep.d.ts +1 -0
- package/dist/vanilla/components/AppointmentDateTimeModal.d.ts +1 -0
- package/dist/vanilla/components/AppointmentSummaryStep.d.ts +12 -0
- package/dist/vanilla/components/BookingOptionStep.d.ts +14 -0
- package/dist/vanilla/components/Icons/CloseIcon.d.ts +9 -0
- package/dist/vanilla/components/PatientSelectionStep.d.ts +12 -0
- package/dist/vanilla/components/VanillaCalendar.js +33 -18
- package/dist/vanilla/components/VanillaIcons.d.ts +5 -0
- package/dist/vanilla/components/VanillaIcons.js +92 -0
- package/dist/vanilla/components/VanillaSelect.d.ts +3 -0
- package/dist/vanilla/components/VanillaSelect.js +93 -5
- package/dist/vanilla/components/appointment-booking/hooks/useAppointmentFlow.d.ts +0 -1
- package/dist/vanilla/components/appointment-booking/types.d.ts +163 -0
- package/dist/vanilla/components/appointment-modal-styles.d.ts +259 -0
- package/dist/vanilla/components/constant.d.ts +2 -0
- package/dist/vanilla/components/theme-styles.d.ts +5 -4
- package/dist/vanilla/components/types.d.ts +3 -1
- package/dist/vanilla/components/utils.d.ts +3 -0
- package/dist/vanilla/components/validation.d.ts +2 -0
- package/dist/vanilla/core/theme/index.d.ts +1 -0
- package/dist/vanilla/core/theme/responsive.d.ts +15 -0
- package/dist/vanilla/core/theme/types.d.ts +8 -0
- package/dist/vanilla/enquiry-widget.js +373 -52
- package/dist/vanilla/index.d.ts +2 -0
- package/dist/vanilla/react/ThemeProvider.d.ts +2 -1
- package/dist/vanilla/services/AppointmentService.d.ts +80 -2
- package/dist/vanilla/services/WorkspaceService.d.ts +58 -3
- package/dist/vanilla/vanilla/AppointmentCalendarWidget.d.ts +9 -7
- package/dist/vanilla/vanilla/EnquiryFormWidget.d.ts +1 -0
- package/dist/vanilla/vanilla/components/VanillaIcons.d.ts +5 -0
- package/dist/vanilla/vanilla/components/VanillaSelect.d.ts +3 -0
- package/dist/vanilla/widget.css +833 -207
- package/dist/vanilla/widget.js +6444 -5676
- package/package.json +1 -1
|
@@ -1,4 +1,103 @@
|
|
|
1
1
|
import { Doctor, Slot, AddressItem } from "../../services/AppointmentService";
|
|
2
|
+
export interface Patient {
|
|
3
|
+
id: number;
|
|
4
|
+
firstName: string;
|
|
5
|
+
lastName: string;
|
|
6
|
+
email: string;
|
|
7
|
+
countryCode: string;
|
|
8
|
+
phoneNumber: string;
|
|
9
|
+
dob: string;
|
|
10
|
+
age: number;
|
|
11
|
+
gender: string;
|
|
12
|
+
bloodGroup: string;
|
|
13
|
+
mrn: string;
|
|
14
|
+
address: {
|
|
15
|
+
id: number;
|
|
16
|
+
completeAddress: string;
|
|
17
|
+
addressLine1: string;
|
|
18
|
+
addressLine2: string;
|
|
19
|
+
city: string;
|
|
20
|
+
state: string;
|
|
21
|
+
country: string;
|
|
22
|
+
zipcode: string;
|
|
23
|
+
landmark: string;
|
|
24
|
+
phoneNumber: string;
|
|
25
|
+
latitude: number;
|
|
26
|
+
longitude: number;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export interface SessionPackDoctor {
|
|
30
|
+
id: number;
|
|
31
|
+
fullName: string;
|
|
32
|
+
profilePicUrl: string | null;
|
|
33
|
+
}
|
|
34
|
+
export interface SessionPackResponse {
|
|
35
|
+
id: number;
|
|
36
|
+
workspaceId: number;
|
|
37
|
+
packageName: string;
|
|
38
|
+
description: string;
|
|
39
|
+
totalSessions: number;
|
|
40
|
+
packagePrice: number;
|
|
41
|
+
discount: number;
|
|
42
|
+
discountedPrice: number;
|
|
43
|
+
discountType: "PERCENTAGE" | "FLAT";
|
|
44
|
+
validityDays: number;
|
|
45
|
+
allowedConsultationModes: ("ONLINE" | "OFFLINE")[];
|
|
46
|
+
doctorIds: number[];
|
|
47
|
+
allowFamilyBooking: boolean;
|
|
48
|
+
maxFamilyMembers: number;
|
|
49
|
+
isActive: boolean;
|
|
50
|
+
allowedDoctors: SessionPackDoctor[];
|
|
51
|
+
}
|
|
52
|
+
export interface ActiveSessionPack {
|
|
53
|
+
id: number;
|
|
54
|
+
packageName: string;
|
|
55
|
+
totalSessions: number;
|
|
56
|
+
remainingSessions: number;
|
|
57
|
+
expiryDate: string;
|
|
58
|
+
purchaseDate?: string;
|
|
59
|
+
doctorId?: number;
|
|
60
|
+
doctorName?: string;
|
|
61
|
+
allowedConsultationModes?: ("ONLINE" | "OFFLINE")[];
|
|
62
|
+
}
|
|
63
|
+
export interface SessionPacksDetails {
|
|
64
|
+
associatedPatients: Patient[];
|
|
65
|
+
activeSessionPackResponses: ActiveSessionPack[];
|
|
66
|
+
allSessionPackResponses: SessionPackResponse[];
|
|
67
|
+
}
|
|
68
|
+
export interface SessionPack {
|
|
69
|
+
id: number;
|
|
70
|
+
name: string;
|
|
71
|
+
description?: string;
|
|
72
|
+
totalSessions: number;
|
|
73
|
+
remainingSessions: number;
|
|
74
|
+
price?: number;
|
|
75
|
+
validityDays?: number;
|
|
76
|
+
applicableOnline?: boolean;
|
|
77
|
+
applicableOffline?: boolean;
|
|
78
|
+
expiryDate: string;
|
|
79
|
+
purchaseDate?: string;
|
|
80
|
+
doctorId?: number;
|
|
81
|
+
doctorName?: string;
|
|
82
|
+
}
|
|
83
|
+
export interface AvailablePackage {
|
|
84
|
+
id: number;
|
|
85
|
+
name: string;
|
|
86
|
+
description?: string;
|
|
87
|
+
totalSessions: number;
|
|
88
|
+
sessions?: number;
|
|
89
|
+
price: number;
|
|
90
|
+
discountedPrice?: number;
|
|
91
|
+
discount?: number;
|
|
92
|
+
discountType?: "PERCENTAGE" | "FLAT";
|
|
93
|
+
currency?: string;
|
|
94
|
+
validityDays: number;
|
|
95
|
+
applicableOnline?: boolean;
|
|
96
|
+
applicableOffline?: boolean;
|
|
97
|
+
allowedConsultationModes?: ("ONLINE" | "OFFLINE")[];
|
|
98
|
+
allowedDoctors?: SessionPackDoctor[];
|
|
99
|
+
}
|
|
100
|
+
export type BookingOptionType = "session-pack" | "new-appointment" | "explore-packages" | null;
|
|
2
101
|
export interface AppointmentState {
|
|
3
102
|
step: number;
|
|
4
103
|
loading: boolean;
|
|
@@ -18,6 +117,7 @@ export interface AppointmentState {
|
|
|
18
117
|
patientEmail: string;
|
|
19
118
|
patientGender: string;
|
|
20
119
|
bloodGroup: string;
|
|
120
|
+
patientDob: string;
|
|
21
121
|
patientAddress: string;
|
|
22
122
|
patientCity: string;
|
|
23
123
|
patientState: string;
|
|
@@ -31,6 +131,21 @@ export interface AppointmentState {
|
|
|
31
131
|
otpVerified: boolean;
|
|
32
132
|
otpSending: boolean;
|
|
33
133
|
otpVerifying: boolean;
|
|
134
|
+
verifiedPatients: Patient[];
|
|
135
|
+
selectedPatient: Patient | null;
|
|
136
|
+
useExistingPatient: boolean;
|
|
137
|
+
userSessionPacks: SessionPack[];
|
|
138
|
+
availablePackages: AvailablePackage[];
|
|
139
|
+
selectedSessionPack: SessionPack | null;
|
|
140
|
+
selectedNewPackage: AvailablePackage | null;
|
|
141
|
+
bookingOptionType: BookingOptionType;
|
|
142
|
+
showPackageExplorer: boolean;
|
|
143
|
+
packagesLoading: boolean;
|
|
144
|
+
bookingType: "PACKAGE_PURCHASE" | "ONE_TIME_APPOINTMENT" | "USE_ACTIVE_PACKAGE";
|
|
145
|
+
paymentMode: "CASH" | "CARD" | string;
|
|
146
|
+
packageConfigId?: number;
|
|
147
|
+
patientPackageId?: number;
|
|
148
|
+
packageAmount?: number;
|
|
34
149
|
}
|
|
35
150
|
export type AppointmentAction = {
|
|
36
151
|
type: "SET_STEP";
|
|
@@ -83,6 +198,9 @@ export type AppointmentAction = {
|
|
|
83
198
|
} | {
|
|
84
199
|
type: "SET_BLOOD_GROUP";
|
|
85
200
|
payload: string;
|
|
201
|
+
} | {
|
|
202
|
+
type: "SET_PATIENT_DOB";
|
|
203
|
+
payload: string;
|
|
86
204
|
} | {
|
|
87
205
|
type: "SET_PATIENT_ADDRESS";
|
|
88
206
|
payload: string;
|
|
@@ -122,6 +240,51 @@ export type AppointmentAction = {
|
|
|
122
240
|
} | {
|
|
123
241
|
type: "SET_OTP_VERIFYING";
|
|
124
242
|
payload: boolean;
|
|
243
|
+
} | {
|
|
244
|
+
type: "SET_VERIFIED_PATIENTS";
|
|
245
|
+
payload: Patient[];
|
|
246
|
+
} | {
|
|
247
|
+
type: "SET_SELECTED_PATIENT";
|
|
248
|
+
payload: Patient | null;
|
|
249
|
+
} | {
|
|
250
|
+
type: "SET_USE_EXISTING_PATIENT";
|
|
251
|
+
payload: boolean;
|
|
252
|
+
} | {
|
|
253
|
+
type: "SET_USER_SESSION_PACKS";
|
|
254
|
+
payload: SessionPack[];
|
|
255
|
+
} | {
|
|
256
|
+
type: "SET_AVAILABLE_PACKAGES";
|
|
257
|
+
payload: AvailablePackage[];
|
|
258
|
+
} | {
|
|
259
|
+
type: "SET_SELECTED_SESSION_PACK";
|
|
260
|
+
payload: SessionPack | null;
|
|
261
|
+
} | {
|
|
262
|
+
type: "SET_SELECTED_NEW_PACKAGE";
|
|
263
|
+
payload: AvailablePackage | null;
|
|
264
|
+
} | {
|
|
265
|
+
type: "SET_BOOKING_OPTION_TYPE";
|
|
266
|
+
payload: BookingOptionType;
|
|
267
|
+
} | {
|
|
268
|
+
type: "SET_SHOW_PACKAGE_EXPLORER";
|
|
269
|
+
payload: boolean;
|
|
270
|
+
} | {
|
|
271
|
+
type: "SET_PACKAGES_LOADING";
|
|
272
|
+
payload: boolean;
|
|
273
|
+
} | {
|
|
274
|
+
type: "SET_BOOKING_TYPE";
|
|
275
|
+
payload: "PACKAGE_PURCHASE" | "ONE_TIME_APPOINTMENT" | "USE_ACTIVE_PACKAGE";
|
|
276
|
+
} | {
|
|
277
|
+
type: "SET_PAYMENT_MODE";
|
|
278
|
+
payload: "CASH" | "CARD" | string;
|
|
279
|
+
} | {
|
|
280
|
+
type: "SET_PACKAGE_CONFIG_ID";
|
|
281
|
+
payload: number | undefined;
|
|
282
|
+
} | {
|
|
283
|
+
type: "SET_PATIENT_PACKAGE_ID";
|
|
284
|
+
payload: number | undefined;
|
|
285
|
+
} | {
|
|
286
|
+
type: "SET_PACKAGE_AMOUNT";
|
|
287
|
+
payload: number | undefined;
|
|
125
288
|
} | {
|
|
126
289
|
type: "RESET_FORM";
|
|
127
290
|
};
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare const getMobileStyles: (theme: any, breakpoint: string) => {
|
|
3
|
+
container: {
|
|
4
|
+
backgroundColor: any;
|
|
5
|
+
padding: string;
|
|
6
|
+
maxWidth: string;
|
|
7
|
+
fontFamily: any;
|
|
8
|
+
color: any;
|
|
9
|
+
minHeight: string;
|
|
10
|
+
boxSizing: "border-box";
|
|
11
|
+
};
|
|
12
|
+
header: {
|
|
13
|
+
marginBottom: number;
|
|
14
|
+
};
|
|
15
|
+
title: {
|
|
16
|
+
fontSize: number;
|
|
17
|
+
fontWeight: number;
|
|
18
|
+
margin: number;
|
|
19
|
+
color: any;
|
|
20
|
+
};
|
|
21
|
+
section: {
|
|
22
|
+
marginBottom: number;
|
|
23
|
+
};
|
|
24
|
+
sectionTitle: {
|
|
25
|
+
fontSize: number;
|
|
26
|
+
fontWeight: number;
|
|
27
|
+
marginBottom: number;
|
|
28
|
+
color: any;
|
|
29
|
+
};
|
|
30
|
+
required: {
|
|
31
|
+
color: any;
|
|
32
|
+
marginLeft: number;
|
|
33
|
+
};
|
|
34
|
+
modeContainer: {
|
|
35
|
+
display: string;
|
|
36
|
+
flexDirection: "column";
|
|
37
|
+
gap: number;
|
|
38
|
+
};
|
|
39
|
+
modeOption: {
|
|
40
|
+
display: string;
|
|
41
|
+
alignItems: string;
|
|
42
|
+
gap: number;
|
|
43
|
+
padding: string;
|
|
44
|
+
border: string;
|
|
45
|
+
borderRadius: string;
|
|
46
|
+
cursor: string;
|
|
47
|
+
fontSize: number;
|
|
48
|
+
transition: string;
|
|
49
|
+
backgroundColor: any;
|
|
50
|
+
};
|
|
51
|
+
radioInput: {
|
|
52
|
+
width: number;
|
|
53
|
+
height: number;
|
|
54
|
+
accentColor: any;
|
|
55
|
+
};
|
|
56
|
+
chargeAmount: {
|
|
57
|
+
fontSize: number;
|
|
58
|
+
fontWeight: number;
|
|
59
|
+
color: any;
|
|
60
|
+
};
|
|
61
|
+
paymentOption: {
|
|
62
|
+
padding: string;
|
|
63
|
+
border: string;
|
|
64
|
+
borderRadius: string;
|
|
65
|
+
fontSize: number;
|
|
66
|
+
color: any;
|
|
67
|
+
backgroundColor: any;
|
|
68
|
+
};
|
|
69
|
+
dateSection: {
|
|
70
|
+
marginBottom: number;
|
|
71
|
+
padding: string;
|
|
72
|
+
backgroundColor: any;
|
|
73
|
+
borderRadius: string;
|
|
74
|
+
border: string;
|
|
75
|
+
};
|
|
76
|
+
dateSectionHeader: {
|
|
77
|
+
marginBottom: number;
|
|
78
|
+
};
|
|
79
|
+
dateSectionTitle: {
|
|
80
|
+
fontSize: number;
|
|
81
|
+
fontWeight: number;
|
|
82
|
+
color: any;
|
|
83
|
+
margin: number;
|
|
84
|
+
letterSpacing: string;
|
|
85
|
+
textTransform: "uppercase";
|
|
86
|
+
};
|
|
87
|
+
monthNavigationContainer: {
|
|
88
|
+
display: string;
|
|
89
|
+
alignItems: string;
|
|
90
|
+
justifyContent: string;
|
|
91
|
+
marginBottom: number;
|
|
92
|
+
position: "relative";
|
|
93
|
+
};
|
|
94
|
+
monthYearDisplay: {
|
|
95
|
+
fontSize: number;
|
|
96
|
+
fontWeight: number;
|
|
97
|
+
color: any;
|
|
98
|
+
textAlign: "center";
|
|
99
|
+
flex: number;
|
|
100
|
+
};
|
|
101
|
+
navButton: {
|
|
102
|
+
background: string;
|
|
103
|
+
border: string;
|
|
104
|
+
color: any;
|
|
105
|
+
cursor: string;
|
|
106
|
+
padding: number;
|
|
107
|
+
borderRadius: string;
|
|
108
|
+
display: string;
|
|
109
|
+
alignItems: string;
|
|
110
|
+
justifyContent: string;
|
|
111
|
+
transition: string;
|
|
112
|
+
minWidth: number;
|
|
113
|
+
minHeight: number;
|
|
114
|
+
flexShrink: number;
|
|
115
|
+
};
|
|
116
|
+
dateCardsContainer: {
|
|
117
|
+
display: string;
|
|
118
|
+
justifyContent: string;
|
|
119
|
+
alignItems: string;
|
|
120
|
+
gap: number;
|
|
121
|
+
width: string;
|
|
122
|
+
maxWidth: string;
|
|
123
|
+
overflow: string;
|
|
124
|
+
};
|
|
125
|
+
dateCard: {
|
|
126
|
+
width: number;
|
|
127
|
+
height: number;
|
|
128
|
+
border: string;
|
|
129
|
+
borderRadius: string;
|
|
130
|
+
display: string;
|
|
131
|
+
flexDirection: "column";
|
|
132
|
+
alignItems: string;
|
|
133
|
+
justifyContent: string;
|
|
134
|
+
cursor: string;
|
|
135
|
+
transition: string;
|
|
136
|
+
backgroundColor: any;
|
|
137
|
+
position: "relative";
|
|
138
|
+
flex: string;
|
|
139
|
+
};
|
|
140
|
+
dateCardSelected: {
|
|
141
|
+
borderColor: any;
|
|
142
|
+
backgroundColor: any;
|
|
143
|
+
color: any;
|
|
144
|
+
};
|
|
145
|
+
dateCardWeekday: {
|
|
146
|
+
fontSize: number;
|
|
147
|
+
fontWeight: number;
|
|
148
|
+
textTransform: "uppercase";
|
|
149
|
+
marginBottom: number;
|
|
150
|
+
letterSpacing: string;
|
|
151
|
+
lineHeight: number;
|
|
152
|
+
};
|
|
153
|
+
dateCardDay: {
|
|
154
|
+
fontSize: number;
|
|
155
|
+
fontWeight: number;
|
|
156
|
+
lineHeight: number;
|
|
157
|
+
};
|
|
158
|
+
slotsContainer: {
|
|
159
|
+
marginBottom: number;
|
|
160
|
+
};
|
|
161
|
+
slotGrid: {
|
|
162
|
+
display: string;
|
|
163
|
+
gridTemplateColumns: string;
|
|
164
|
+
gap: number;
|
|
165
|
+
marginTop: number;
|
|
166
|
+
maxHeight: string;
|
|
167
|
+
overflowY: "auto";
|
|
168
|
+
paddingRight: string;
|
|
169
|
+
paddingBottom: string;
|
|
170
|
+
scrollbarWidth: "thin";
|
|
171
|
+
scrollbarColor: string;
|
|
172
|
+
};
|
|
173
|
+
slotButton: {
|
|
174
|
+
padding: string;
|
|
175
|
+
border: string;
|
|
176
|
+
borderRadius: string;
|
|
177
|
+
backgroundColor: any;
|
|
178
|
+
color: any;
|
|
179
|
+
fontSize: number;
|
|
180
|
+
fontWeight: number;
|
|
181
|
+
cursor: string;
|
|
182
|
+
transition: string;
|
|
183
|
+
minHeight: number;
|
|
184
|
+
boxShadow: string;
|
|
185
|
+
position: "relative";
|
|
186
|
+
letterSpacing: string;
|
|
187
|
+
};
|
|
188
|
+
slotButtonSelected: {
|
|
189
|
+
borderColor: any;
|
|
190
|
+
backgroundColor: any;
|
|
191
|
+
color: any;
|
|
192
|
+
boxShadow: string;
|
|
193
|
+
transform: string;
|
|
194
|
+
};
|
|
195
|
+
noSlots: {
|
|
196
|
+
textAlign: "center";
|
|
197
|
+
color: any;
|
|
198
|
+
fontSize: number;
|
|
199
|
+
marginTop: number;
|
|
200
|
+
padding: string;
|
|
201
|
+
};
|
|
202
|
+
footer: {
|
|
203
|
+
display: string;
|
|
204
|
+
gap: number;
|
|
205
|
+
marginTop: string;
|
|
206
|
+
paddingTop: number;
|
|
207
|
+
borderTop: string;
|
|
208
|
+
};
|
|
209
|
+
backButton: {
|
|
210
|
+
flex: number;
|
|
211
|
+
padding: string;
|
|
212
|
+
border: string;
|
|
213
|
+
borderRadius: string;
|
|
214
|
+
backgroundColor: any;
|
|
215
|
+
color: any;
|
|
216
|
+
fontSize: number;
|
|
217
|
+
fontWeight: number;
|
|
218
|
+
cursor: string;
|
|
219
|
+
transition: string;
|
|
220
|
+
minHeight: number;
|
|
221
|
+
};
|
|
222
|
+
nextButton: {
|
|
223
|
+
flex: number;
|
|
224
|
+
padding: string;
|
|
225
|
+
border: string;
|
|
226
|
+
borderRadius: string;
|
|
227
|
+
backgroundColor: any;
|
|
228
|
+
color: any;
|
|
229
|
+
fontSize: number;
|
|
230
|
+
fontWeight: number;
|
|
231
|
+
cursor: string;
|
|
232
|
+
transition: string;
|
|
233
|
+
minHeight: number;
|
|
234
|
+
boxShadow: string;
|
|
235
|
+
};
|
|
236
|
+
};
|
|
237
|
+
export declare const getDesktopStyles: (theme: any, breakpoint: string) => {
|
|
238
|
+
modalWrapper: React.CSSProperties;
|
|
239
|
+
sectionCard: React.CSSProperties;
|
|
240
|
+
sectionHeader: React.CSSProperties;
|
|
241
|
+
sectionTitle: React.CSSProperties;
|
|
242
|
+
sectionBody: React.CSSProperties;
|
|
243
|
+
label: React.CSSProperties;
|
|
244
|
+
modeContainer: React.CSSProperties;
|
|
245
|
+
radioLabel: React.CSSProperties;
|
|
246
|
+
radioInput: React.CSSProperties;
|
|
247
|
+
rupee: React.CSSProperties;
|
|
248
|
+
dateTimeContainer: React.CSSProperties;
|
|
249
|
+
calendarBox: React.CSSProperties;
|
|
250
|
+
timesContainer: React.CSSProperties;
|
|
251
|
+
timesLabel: React.CSSProperties;
|
|
252
|
+
dateLabel: React.CSSProperties;
|
|
253
|
+
noSlots: React.CSSProperties;
|
|
254
|
+
slotGrid: React.CSSProperties;
|
|
255
|
+
slotButton: React.CSSProperties;
|
|
256
|
+
footer: React.CSSProperties;
|
|
257
|
+
backBtn: React.CSSProperties;
|
|
258
|
+
continueBtn: React.CSSProperties;
|
|
259
|
+
};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { MedosTheme } from "../core/theme/types";
|
|
3
|
-
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
3
|
+
import { Breakpoint } from "../core/theme/responsive";
|
|
4
|
+
export declare function getContainerStyles(theme: MedosTheme, prefix?: string, breakpoint?: Breakpoint): Record<string, React.CSSProperties>;
|
|
5
|
+
export declare function getButtonStyles(theme: MedosTheme, prefix?: string, breakpoint?: Breakpoint): Record<string, React.CSSProperties>;
|
|
6
|
+
export declare function getPhoneVerifyStyles(theme: MedosTheme, prefix?: string, breakpoint?: Breakpoint): Record<string, React.CSSProperties>;
|
|
7
|
+
export declare function getPatientDetailsStyles(theme: MedosTheme, prefix?: string, breakpoint?: Breakpoint): Record<string, React.CSSProperties>;
|
|
7
8
|
export declare function getSuccessStyles(theme: MedosTheme, prefix?: string): Record<string, React.CSSProperties>;
|
|
8
9
|
export declare const CONTAINER_STYLES: Record<string, React.CSSProperties>;
|
|
9
10
|
export declare const BUTTON_STYLES: Record<string, React.CSSProperties>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { AppointmentState, AppointmentAction, } from "./appointment-booking/types";
|
|
1
|
+
export type { AppointmentState, AppointmentAction, Patient, SessionPack, AvailablePackage, BookingOptionType, } from "./appointment-booking/types";
|
|
2
2
|
export { INITIAL_STATE } from "./appointment-booking/types";
|
|
3
3
|
export type PhoneVerificationStepProps = {
|
|
4
4
|
state: any;
|
|
@@ -13,6 +13,7 @@ export type PatientDetailsStepProps = {
|
|
|
13
13
|
dispatch: React.Dispatch<any>;
|
|
14
14
|
onBack: () => void;
|
|
15
15
|
onSubmit: () => Promise<void>;
|
|
16
|
+
isFirstStep?: boolean;
|
|
16
17
|
};
|
|
17
18
|
export type SuccessStepProps = {
|
|
18
19
|
onReset: () => void;
|
|
@@ -50,3 +51,4 @@ export declare const BLOOD_GROUP_OPTIONS: {
|
|
|
50
51
|
value: string;
|
|
51
52
|
label: string;
|
|
52
53
|
}[];
|
|
54
|
+
export declare const mapBloodGroupToApi: (uiBloodGroup: string) => string;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export declare const formatDateToISO: (date: Date) => string;
|
|
2
|
+
export declare const formatDate: (date: Date | string | null) => string;
|
|
3
|
+
export declare const formatTime: (timeStr: string | number) => string;
|
|
4
|
+
export declare const calculateDuration: (startTime?: string | number, endTime?: string | number, defaultDuration?: number) => number;
|
|
2
5
|
export declare const parsePatientName: (fullName: string) => {
|
|
3
6
|
firstName: string;
|
|
4
7
|
lastName: string;
|
|
@@ -1,2 +1,4 @@
|
|
|
1
1
|
export declare const validatePhoneNumber: (phone: string) => boolean;
|
|
2
2
|
export declare const validateCountryCode: (code: string) => boolean;
|
|
3
|
+
export declare const validateBloodGroup: (bloodGroup: string) => boolean;
|
|
4
|
+
export declare const validateDateOfBirth: (dob: string) => boolean;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { MedosTheme } from "./types";
|
|
2
|
+
export type Breakpoint = "mobile" | "tablet" | "desktop" | "wide";
|
|
3
|
+
export declare function useMediaQuery(query: string): boolean;
|
|
4
|
+
export declare function useBreakpoint(theme: MedosTheme): Breakpoint;
|
|
5
|
+
export declare function useIsMobile(theme: MedosTheme): boolean;
|
|
6
|
+
export declare function useIsTablet(theme: MedosTheme): boolean;
|
|
7
|
+
export declare function useIsDesktop(theme: MedosTheme): boolean;
|
|
8
|
+
export declare function useResponsiveValue<T>(theme: MedosTheme, values: Partial<Record<Breakpoint, T>>): T | undefined;
|
|
9
|
+
export declare function responsiveStyles(styles: Partial<Record<Breakpoint | "base", React.CSSProperties>>, currentBreakpoint: Breakpoint): React.CSSProperties;
|
|
10
|
+
export declare function getResponsiveMaxWidth(theme: MedosTheme, breakpoint: Breakpoint, customMaxWidths?: Partial<Record<Breakpoint, string>>): string;
|
|
11
|
+
export declare function getResponsivePadding(theme: MedosTheme, breakpoint: Breakpoint): string;
|
|
12
|
+
export declare function getResponsiveFontSize(theme: MedosTheme, breakpoint: Breakpoint, size?: keyof MedosTheme["typography"]): string;
|
|
13
|
+
export declare function isTouchDevice(): boolean;
|
|
14
|
+
export declare const MIN_TOUCH_TARGET_SIZE = "44px";
|
|
15
|
+
export declare function getResponsiveInputHeight(breakpoint: Breakpoint): string;
|
|
@@ -82,6 +82,12 @@ export interface ThemeTransitions {
|
|
|
82
82
|
normal: string;
|
|
83
83
|
slow: string;
|
|
84
84
|
}
|
|
85
|
+
export interface ThemeBreakpoints {
|
|
86
|
+
mobile: string;
|
|
87
|
+
tablet: string;
|
|
88
|
+
desktop: string;
|
|
89
|
+
wide: string;
|
|
90
|
+
}
|
|
85
91
|
export interface MedosTheme {
|
|
86
92
|
name: string;
|
|
87
93
|
colors: ThemeColors;
|
|
@@ -90,6 +96,7 @@ export interface MedosTheme {
|
|
|
90
96
|
shadows: ThemeShadows;
|
|
91
97
|
radii: ThemeRadii;
|
|
92
98
|
transitions: ThemeTransitions;
|
|
99
|
+
breakpoints: ThemeBreakpoints;
|
|
93
100
|
}
|
|
94
101
|
export type PartialTheme = {
|
|
95
102
|
name?: string;
|
|
@@ -99,6 +106,7 @@ export type PartialTheme = {
|
|
|
99
106
|
shadows?: Partial<ThemeShadows>;
|
|
100
107
|
radii?: Partial<ThemeRadii>;
|
|
101
108
|
transitions?: Partial<ThemeTransitions>;
|
|
109
|
+
breakpoints?: Partial<ThemeBreakpoints>;
|
|
102
110
|
};
|
|
103
111
|
export interface ThemeConfig {
|
|
104
112
|
theme?: MedosTheme | PartialTheme;
|