@ews-admin/global-design-system 1.1.17 → 1.1.19
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/components/SearchAutocomplete/SearchAutocomplete.d.ts +1 -1
- package/dist/components/SearchAutocomplete/SearchAutocomplete.d.ts.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.esm.js +15 -33
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +15 -33
- package/dist/index.js.map +1 -1
- package/dist/molecules/SpecialtySearchAutocomplete/SpecialtySearchAutocomplete.d.ts +4 -0
- package/dist/molecules/SpecialtySearchAutocomplete/SpecialtySearchAutocomplete.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/SearchAutocomplete/SearchAutocomplete.tsx +2 -4
- package/src/molecules/SpecialtySearchAutocomplete/SpecialtySearchAutocomplete.tsx +46 -52
- package/dist/assets/doctor.png +0 -0
- package/dist/assets/favicon.ico +0 -0
- package/dist/assets/logo.png +0 -0
- package/dist/assets/logoAssets.d.ts +0 -11
- package/dist/assets/logoAssets.d.ts.map +0 -1
- package/dist/assets/logoWhite.png +0 -0
- package/dist/assets/patient.png +0 -0
- package/dist/components/DoctorForm/DoctorForm.d.ts +0 -11
- package/dist/components/DoctorForm/DoctorForm.d.ts.map +0 -1
- package/dist/components/DoctorForm/index.d.ts +0 -3
- package/dist/components/DoctorForm/index.d.ts.map +0 -1
- package/dist/components/Logo/logoAssets.d.ts +0 -1
- package/dist/components/Logo/logoAssets.d.ts.map +0 -1
- package/dist/icons/ArrowRightIcon.d.ts +0 -4
- package/dist/icons/ArrowRightIcon.d.ts.map +0 -1
- package/dist/icons/CheckIcon.d.ts +0 -4
- package/dist/icons/CheckIcon.d.ts.map +0 -1
- package/dist/icons/EyeIcon.d.ts +0 -4
- package/dist/icons/EyeIcon.d.ts.map +0 -1
- package/dist/icons/EyeOffIcon.d.ts +0 -4
- package/dist/icons/EyeOffIcon.d.ts.map +0 -1
- package/dist/icons/SearchIcon.d.ts +0 -4
- package/dist/icons/SearchIcon.d.ts.map +0 -1
- package/dist/public/doctor.png +0 -0
- package/dist/public/favicon.ico +0 -0
- package/dist/public/image/doctor.png +0 -0
- package/dist/public/image/logo.png +0 -0
- package/dist/public/image/logoWhite.png +0 -0
- package/dist/public/image/patient.png +0 -0
- package/dist/public/logo.png +0 -0
- package/dist/public/logoWhite.png +0 -0
- package/dist/public/patient.png +0 -0
- package/dist/styles/theme-variables.css +0 -62
- package/dist/types/doctor.d.ts +0 -144
- package/dist/types/doctor.d.ts.map +0 -1
|
@@ -8,11 +8,15 @@ export interface Specialty {
|
|
|
8
8
|
export interface SpecialtySearchAutocompleteProps {
|
|
9
9
|
selectedSpecialties: Specialty[];
|
|
10
10
|
onSpecialtiesChange: (specialties: Specialty[]) => void;
|
|
11
|
+
specialties: Specialty[];
|
|
11
12
|
placeholder?: string;
|
|
12
13
|
className?: string;
|
|
13
14
|
disabled?: boolean;
|
|
14
15
|
maxSelections?: number;
|
|
15
16
|
showSelectedCount?: boolean;
|
|
17
|
+
title?: string;
|
|
18
|
+
label?: string;
|
|
19
|
+
getSelectedCountText?: (count: number) => React.ReactNode;
|
|
16
20
|
}
|
|
17
21
|
export declare const SpecialtySearchAutocomplete: React.FC<SpecialtySearchAutocompleteProps>;
|
|
18
22
|
//# sourceMappingURL=SpecialtySearchAutocomplete.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpecialtySearchAutocomplete.d.ts","sourceRoot":"","sources":["../../../src/molecules/SpecialtySearchAutocomplete/SpecialtySearchAutocomplete.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAIhE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,gCAAgC;IAC/C,mBAAmB,EAAE,SAAS,EAAE,CAAC;IACjC,mBAAmB,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"SpecialtySearchAutocomplete.d.ts","sourceRoot":"","sources":["../../../src/molecules/SpecialtySearchAutocomplete/SpecialtySearchAutocomplete.tsx"],"names":[],"mappings":"AACA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAIhE,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACtD;AAED,MAAM,WAAW,gCAAgC;IAC/C,mBAAmB,EAAE,SAAS,EAAE,CAAC;IACjC,mBAAmB,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,KAAK,IAAI,CAAC;IACxD,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;CAC3D;AAED,eAAO,MAAM,2BAA2B,EAAE,KAAK,CAAC,EAAE,CAChD,gCAAgC,CAyKjC,CAAC"}
|
package/package.json
CHANGED
|
@@ -10,7 +10,7 @@ export interface SearchableEntity {
|
|
|
10
10
|
}
|
|
11
11
|
|
|
12
12
|
interface SearchAutocompleteProps<T extends SearchableEntity> {
|
|
13
|
-
onSelect: (id: string) => void;
|
|
13
|
+
onSelect: (id: string, entity?: T) => void;
|
|
14
14
|
selectedId: string;
|
|
15
15
|
searchFunction: (keyword: string) => Promise<T[]>;
|
|
16
16
|
getEntityById?: (id: string) => Promise<T | undefined>;
|
|
@@ -138,7 +138,6 @@ export function SearchAutocomplete<T extends SearchableEntity>({
|
|
|
138
138
|
|
|
139
139
|
const handleSearchChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
|
140
140
|
const value = e.target.value;
|
|
141
|
-
|
|
142
141
|
// Mark this as a user-initiated search
|
|
143
142
|
isUserSearch.current = true;
|
|
144
143
|
|
|
@@ -157,10 +156,9 @@ export function SearchAutocomplete<T extends SearchableEntity>({
|
|
|
157
156
|
isUserSearch.current = false;
|
|
158
157
|
|
|
159
158
|
console.log(`Selected entity with ID: ${entity.id}`);
|
|
160
|
-
|
|
161
159
|
setSelectedEntity(entity);
|
|
162
160
|
setSearchTerm(getDisplayValue(entity));
|
|
163
|
-
onSelect(entity.id);
|
|
161
|
+
onSelect(entity.id, entity);
|
|
164
162
|
setShowDropdown(false);
|
|
165
163
|
};
|
|
166
164
|
|
|
@@ -13,11 +13,15 @@ export interface Specialty {
|
|
|
13
13
|
export interface SpecialtySearchAutocompleteProps {
|
|
14
14
|
selectedSpecialties: Specialty[];
|
|
15
15
|
onSpecialtiesChange: (specialties: Specialty[]) => void;
|
|
16
|
+
specialties: Specialty[];
|
|
16
17
|
placeholder?: string;
|
|
17
18
|
className?: string;
|
|
18
19
|
disabled?: boolean;
|
|
19
20
|
maxSelections?: number;
|
|
20
21
|
showSelectedCount?: boolean;
|
|
22
|
+
title?: string;
|
|
23
|
+
label?: string;
|
|
24
|
+
getSelectedCountText?: (count: number) => React.ReactNode;
|
|
21
25
|
}
|
|
22
26
|
|
|
23
27
|
export const SpecialtySearchAutocomplete: React.FC<
|
|
@@ -25,56 +29,43 @@ export const SpecialtySearchAutocomplete: React.FC<
|
|
|
25
29
|
> = ({
|
|
26
30
|
selectedSpecialties = [],
|
|
27
31
|
onSpecialtiesChange,
|
|
32
|
+
specialties: availableSpecialties,
|
|
28
33
|
placeholder = "Search and select medical specialties...",
|
|
29
34
|
className = "",
|
|
30
35
|
disabled = false,
|
|
31
36
|
maxSelections,
|
|
32
37
|
showSelectedCount = true,
|
|
38
|
+
title = "Medical Specialties",
|
|
39
|
+
label = "Select Specialties",
|
|
40
|
+
getSelectedCountText,
|
|
33
41
|
}) => {
|
|
34
|
-
const [
|
|
42
|
+
const [filteredSpecialties, setFilteredSpecialties] = useState<Specialty[]>(
|
|
43
|
+
[]
|
|
44
|
+
);
|
|
35
45
|
const [isLoading, setIsLoading] = useState(false);
|
|
36
46
|
|
|
37
|
-
//
|
|
38
|
-
const fetchSpecialties = useCallback(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
{ id: "3", code: "ENDO", label: "Endocrinology" },
|
|
49
|
-
{ id: "4", code: "GAST", label: "Gastroenterology" },
|
|
50
|
-
{ id: "5", code: "HEMA", label: "Hematology" },
|
|
51
|
-
{ id: "6", code: "NEUR", label: "Neurology" },
|
|
52
|
-
{ id: "7", code: "ONCO", label: "Oncology" },
|
|
53
|
-
{ id: "8", code: "ORTH", label: "Orthopedics" },
|
|
54
|
-
{ id: "9", code: "PED", label: "Pediatrics" },
|
|
55
|
-
{ id: "10", code: "PSYC", label: "Psychiatry" },
|
|
56
|
-
{ id: "11", code: "RAD", label: "Radiology" },
|
|
57
|
-
{ id: "12", code: "SURG", label: "Surgery" },
|
|
58
|
-
{ id: "13", code: "UROL", label: "Urology" },
|
|
59
|
-
{ id: "14", code: "GYN", label: "Gynecology" },
|
|
60
|
-
{ id: "15", code: "OPHT", label: "Ophthalmology" },
|
|
61
|
-
];
|
|
62
|
-
|
|
63
|
-
// Filter based on search term
|
|
64
|
-
const filtered = mockSpecialties.filter(
|
|
65
|
-
(specialty) =>
|
|
66
|
-
specialty.label.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
|
67
|
-
specialty.code.toLowerCase().includes(searchTerm.toLowerCase())
|
|
68
|
-
);
|
|
47
|
+
// Filter specialties based on search term
|
|
48
|
+
const fetchSpecialties = useCallback(
|
|
49
|
+
async (searchTerm: string) => {
|
|
50
|
+
setIsLoading(true);
|
|
51
|
+
try {
|
|
52
|
+
// Filter based on search term
|
|
53
|
+
const filtered = availableSpecialties.filter(
|
|
54
|
+
(specialty) =>
|
|
55
|
+
specialty.label.toLowerCase().includes(searchTerm.toLowerCase()) ||
|
|
56
|
+
specialty.code.toLowerCase().includes(searchTerm.toLowerCase())
|
|
57
|
+
);
|
|
69
58
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
59
|
+
setFilteredSpecialties(filtered);
|
|
60
|
+
} catch (error) {
|
|
61
|
+
console.error("Error filtering specialties:", error);
|
|
62
|
+
setFilteredSpecialties([]);
|
|
63
|
+
} finally {
|
|
64
|
+
setIsLoading(false);
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
[availableSpecialties]
|
|
68
|
+
);
|
|
78
69
|
|
|
79
70
|
// Initial load
|
|
80
71
|
useEffect(() => {
|
|
@@ -94,9 +85,9 @@ export const SpecialtySearchAutocomplete: React.FC<
|
|
|
94
85
|
|
|
95
86
|
const getEntityById = useCallback(
|
|
96
87
|
async (id: string): Promise<Specialty | undefined> => {
|
|
97
|
-
return
|
|
88
|
+
return availableSpecialties.find((specialty) => specialty.id === id);
|
|
98
89
|
},
|
|
99
|
-
[
|
|
90
|
+
[availableSpecialties]
|
|
100
91
|
);
|
|
101
92
|
|
|
102
93
|
return (
|
|
@@ -107,20 +98,20 @@ export const SpecialtySearchAutocomplete: React.FC<
|
|
|
107
98
|
<Stethoscope className="w-4 h-4 text-secondary-600" />
|
|
108
99
|
</div>
|
|
109
100
|
<h3 className="text-lg font-semibold text-gray-900">
|
|
110
|
-
Medical Specialties
|
|
101
|
+
{title || "Medical Specialties"}
|
|
111
102
|
</h3>
|
|
112
103
|
</div>
|
|
113
104
|
|
|
114
105
|
{/* Label */}
|
|
115
106
|
<div>
|
|
116
|
-
<label className="block text-sm font-medium text-gray-700
|
|
117
|
-
Select Specialties
|
|
107
|
+
<label className="block mb-2 text-sm font-medium text-gray-700">
|
|
108
|
+
{label || "Select Specialties"}
|
|
118
109
|
</label>
|
|
119
110
|
</div>
|
|
120
111
|
|
|
121
112
|
{/* MultiSearchAutocomplete component */}
|
|
122
113
|
<MultiSearchAutocomplete<Specialty>
|
|
123
|
-
items={
|
|
114
|
+
items={filteredSpecialties}
|
|
124
115
|
selectedItems={selectedSpecialties}
|
|
125
116
|
onSelectionChange={handleSelectionChange}
|
|
126
117
|
onSearch={fetchSpecialties}
|
|
@@ -134,7 +125,7 @@ export const SpecialtySearchAutocomplete: React.FC<
|
|
|
134
125
|
keepOpenOnSelect={true}
|
|
135
126
|
className="w-full"
|
|
136
127
|
renderSelectedItem={(specialty) => (
|
|
137
|
-
<span className="inline-flex items-center px-3 py-1 text-sm font-medium rounded-full bg-ews-primary/10 text-ews-primary border
|
|
128
|
+
<span className="inline-flex items-center px-3 py-1 text-sm font-medium rounded-full border bg-ews-primary/10 text-ews-primary border-ews-primary/20">
|
|
138
129
|
{specialty.label}
|
|
139
130
|
</span>
|
|
140
131
|
)}
|
|
@@ -142,7 +133,7 @@ export const SpecialtySearchAutocomplete: React.FC<
|
|
|
142
133
|
<div className="flex items-center space-x-3">
|
|
143
134
|
<div
|
|
144
135
|
className={cn(
|
|
145
|
-
"w-5 h-5 border-2
|
|
136
|
+
"flex justify-center items-center w-5 h-5 rounded border-2",
|
|
146
137
|
isSelected
|
|
147
138
|
? "bg-ews-primary border-ews-primary"
|
|
148
139
|
: "border-ews-gray-300"
|
|
@@ -186,10 +177,13 @@ export const SpecialtySearchAutocomplete: React.FC<
|
|
|
186
177
|
|
|
187
178
|
{/* Selected count display */}
|
|
188
179
|
{showSelectedCount && selectedSpecialties.length > 0 && (
|
|
189
|
-
<div className="flex items-center
|
|
180
|
+
<div className="flex justify-between items-center text-sm text-gray-600">
|
|
190
181
|
<span>
|
|
191
|
-
{
|
|
192
|
-
|
|
182
|
+
{getSelectedCountText
|
|
183
|
+
? getSelectedCountText(selectedSpecialties.length)
|
|
184
|
+
: `${selectedSpecialties.length} specialty${
|
|
185
|
+
selectedSpecialties.length !== 1 ? "ies" : ""
|
|
186
|
+
} selected`}
|
|
193
187
|
</span>
|
|
194
188
|
{maxSelections && (
|
|
195
189
|
<span className="text-gray-400">
|
package/dist/assets/doctor.png
DELETED
|
Binary file
|
package/dist/assets/favicon.ico
DELETED
|
Binary file
|
package/dist/assets/logo.png
DELETED
|
Binary file
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export declare const LOGO_ASSETS: {
|
|
2
|
-
readonly normal: "/image/logo.png";
|
|
3
|
-
readonly white: "/image/logoWhite.png";
|
|
4
|
-
readonly favicon: "/favicon.ico";
|
|
5
|
-
};
|
|
6
|
-
export declare const FALLBACK_LOGO_ASSETS: {
|
|
7
|
-
readonly normal: "https://via.placeholder.com/200x60/21596C/FFFFFF?text=MEDECINE+360";
|
|
8
|
-
readonly white: "https://via.placeholder.com/200x60/FFFFFF/21596C?text=MEDECINE+360";
|
|
9
|
-
readonly favicon: "https://via.placeholder.com/32x32/21596C/FFFFFF?text=M360";
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=logoAssets.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logoAssets.d.ts","sourceRoot":"","sources":["../../src/assets/logoAssets.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,WAAW;;;;CAId,CAAC;AAGX,eAAO,MAAM,oBAAoB;;;;CAIvB,CAAC"}
|
|
Binary file
|
package/dist/assets/patient.png
DELETED
|
Binary file
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { DoctorFormData } from "../../types/doctor";
|
|
3
|
-
export interface DoctorFormProps {
|
|
4
|
-
onSubmit: (data: DoctorFormData) => void;
|
|
5
|
-
initialData?: Partial<DoctorFormData>;
|
|
6
|
-
isLoading?: boolean;
|
|
7
|
-
className?: string;
|
|
8
|
-
}
|
|
9
|
-
declare const DoctorForm: React.FC<DoctorFormProps>;
|
|
10
|
-
export { DoctorForm };
|
|
11
|
-
//# sourceMappingURL=DoctorForm.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DoctorForm.d.ts","sourceRoot":"","sources":["../../../src/components/DoctorForm/DoctorForm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AAKxC,OAAO,EACL,cAAc,EASf,MAAM,oBAAoB,CAAC;AAE5B,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA6qBzC,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/DoctorForm/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=logoAssets.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logoAssets.d.ts","sourceRoot":"","sources":["../../../src/components/Logo/logoAssets.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ArrowRightIcon.d.ts","sourceRoot":"","sources":["../../src/icons/ArrowRightIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqCpD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CheckIcon.d.ts","sourceRoot":"","sources":["../../src/icons/CheckIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAoC/C,CAAC"}
|
package/dist/icons/EyeIcon.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EyeIcon.d.ts","sourceRoot":"","sources":["../../src/icons/EyeIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqC7C,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EyeOffIcon.d.ts","sourceRoot":"","sources":["../../src/icons/EyeOffIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAuChD,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SearchIcon.d.ts","sourceRoot":"","sources":["../../src/icons/SearchIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAC;AAEzC,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqChD,CAAC"}
|
package/dist/public/doctor.png
DELETED
|
Binary file
|
package/dist/public/favicon.ico
DELETED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/public/logo.png
DELETED
|
Binary file
|
|
Binary file
|
package/dist/public/patient.png
DELETED
|
Binary file
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/* EWS Design System - Theme CSS Variables */
|
|
2
|
-
/* This file should be imported in consuming applications */
|
|
3
|
-
|
|
4
|
-
:root {
|
|
5
|
-
/* PROMED Theme (Default) - Professional theme for doctors/managers */
|
|
6
|
-
--ews-primary: #21596c;
|
|
7
|
-
--ews-primary-hover: #1a4756;
|
|
8
|
-
--ews-primary-light: #c0d0d4;
|
|
9
|
-
--ews-secondary: #3ba1a1;
|
|
10
|
-
--ews-secondary-hover: #308181;
|
|
11
|
-
--ews-success: #059669;
|
|
12
|
-
--ews-success-hover: #047857;
|
|
13
|
-
--ews-warning: #d97706;
|
|
14
|
-
--ews-warning-hover: #b45309;
|
|
15
|
-
--ews-error: #dc2626;
|
|
16
|
-
--ews-error-hover: #b91c1c;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/* Default theme when no data-theme is set */
|
|
20
|
-
html:not([data-theme]) {
|
|
21
|
-
--ews-primary: #21596c;
|
|
22
|
-
--ews-primary-hover: #1a4756;
|
|
23
|
-
--ews-primary-light: #c0d0d4;
|
|
24
|
-
--ews-secondary: #3ba1a1;
|
|
25
|
-
--ews-secondary-hover: #308181;
|
|
26
|
-
--ews-success: #059669;
|
|
27
|
-
--ews-success-hover: #047857;
|
|
28
|
-
--ews-warning: #d97706;
|
|
29
|
-
--ews-warning-hover: #b45309;
|
|
30
|
-
--ews-error: #dc2626;
|
|
31
|
-
--ews-error-hover: #b91c1c;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/* MED Theme - Patient-friendly theme */
|
|
35
|
-
[data-theme="MED"] {
|
|
36
|
-
--ews-primary: #3ba1a1;
|
|
37
|
-
--ews-primary-hover: #308181;
|
|
38
|
-
--ews-primary-light: #a8d5d5;
|
|
39
|
-
--ews-secondary: #6b73ff;
|
|
40
|
-
--ews-secondary-hover: #5a61e6;
|
|
41
|
-
--ews-success: #059669;
|
|
42
|
-
--ews-success-hover: #047857;
|
|
43
|
-
--ews-warning: #d97706;
|
|
44
|
-
--ews-warning-hover: #b45309;
|
|
45
|
-
--ews-error: #dc2626;
|
|
46
|
-
--ews-error-hover: #b91c1c;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/* PROMED Theme - Professional theme */
|
|
50
|
-
[data-theme="PROMED"] {
|
|
51
|
-
--ews-primary: #21596c;
|
|
52
|
-
--ews-primary-hover: #1a4756;
|
|
53
|
-
--ews-primary-light: #c0d0d4;
|
|
54
|
-
--ews-secondary: #3ba1a1;
|
|
55
|
-
--ews-secondary-hover: #308181;
|
|
56
|
-
--ews-success: #059669;
|
|
57
|
-
--ews-success-hover: #047857;
|
|
58
|
-
--ews-warning: #d97706;
|
|
59
|
-
--ews-warning-hover: #b45309;
|
|
60
|
-
--ews-error: #dc2626;
|
|
61
|
-
--ews-error-hover: #b91c1c;
|
|
62
|
-
}
|
package/dist/types/doctor.d.ts
DELETED
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
export interface Coordinates {
|
|
2
|
-
lng: number;
|
|
3
|
-
lat: number;
|
|
4
|
-
}
|
|
5
|
-
export interface Location {
|
|
6
|
-
country: string;
|
|
7
|
-
address: string;
|
|
8
|
-
city: string;
|
|
9
|
-
state: string;
|
|
10
|
-
zip: string;
|
|
11
|
-
isPrimary: boolean;
|
|
12
|
-
residency: "HOME" | "OFFICE" | "CLINIC" | "HOSPITAL";
|
|
13
|
-
coordinates: Coordinates;
|
|
14
|
-
}
|
|
15
|
-
export interface Specialty {
|
|
16
|
-
code: string;
|
|
17
|
-
label: string;
|
|
18
|
-
}
|
|
19
|
-
export interface ProvidedService {
|
|
20
|
-
code: "CLINIC" | "ONLINE" | "HOME_VISIT" | "EMERGENCY";
|
|
21
|
-
price: number;
|
|
22
|
-
}
|
|
23
|
-
export interface CreateDoctorPayload {
|
|
24
|
-
firstName: string;
|
|
25
|
-
lastName: string;
|
|
26
|
-
refNumber: string;
|
|
27
|
-
civility: "MAN" | "WOMAN" | "OTHER";
|
|
28
|
-
email: string;
|
|
29
|
-
password: string;
|
|
30
|
-
roleName: "DOCTOR";
|
|
31
|
-
photoUrl?: string;
|
|
32
|
-
phoneNumber: string;
|
|
33
|
-
paymentPhoneNumber?: string;
|
|
34
|
-
healthcareFacilityIds: number[];
|
|
35
|
-
preferredNotificationMethods: ("EMAIL" | "SMS" | "PUSH")[];
|
|
36
|
-
dateOfBirth: string;
|
|
37
|
-
careerStartYear: string;
|
|
38
|
-
hospitalName?: string;
|
|
39
|
-
diplomas?: string;
|
|
40
|
-
activated: boolean;
|
|
41
|
-
providedServices: ProvidedService[];
|
|
42
|
-
specialties: Specialty[];
|
|
43
|
-
locations: Location[];
|
|
44
|
-
}
|
|
45
|
-
export interface DoctorFormData {
|
|
46
|
-
firstName: string;
|
|
47
|
-
lastName: string;
|
|
48
|
-
refNumber: string;
|
|
49
|
-
civility: "MAN" | "WOMAN" | "OTHER";
|
|
50
|
-
email: string;
|
|
51
|
-
password: string;
|
|
52
|
-
confirmPassword: string;
|
|
53
|
-
phoneNumber: string;
|
|
54
|
-
paymentPhoneNumber: string;
|
|
55
|
-
dateOfBirth: string;
|
|
56
|
-
photoUrl: string;
|
|
57
|
-
careerStartYear: string;
|
|
58
|
-
hospitalName: string;
|
|
59
|
-
diplomas: string;
|
|
60
|
-
activated: boolean;
|
|
61
|
-
healthcareFacilityIds: number[];
|
|
62
|
-
preferredNotificationMethods: ("EMAIL" | "SMS" | "PUSH")[];
|
|
63
|
-
providedServices: ProvidedService[];
|
|
64
|
-
specialties: Specialty[];
|
|
65
|
-
locations: Location[];
|
|
66
|
-
}
|
|
67
|
-
export declare const CIVILITY_OPTIONS: readonly [{
|
|
68
|
-
readonly value: "MAN";
|
|
69
|
-
readonly label: "Mr.";
|
|
70
|
-
}, {
|
|
71
|
-
readonly value: "WOMAN";
|
|
72
|
-
readonly label: "Ms.";
|
|
73
|
-
}, {
|
|
74
|
-
readonly value: "OTHER";
|
|
75
|
-
readonly label: "Other";
|
|
76
|
-
}];
|
|
77
|
-
export declare const NOTIFICATION_METHOD_OPTIONS: readonly [{
|
|
78
|
-
readonly value: "EMAIL";
|
|
79
|
-
readonly label: "Email";
|
|
80
|
-
}, {
|
|
81
|
-
readonly value: "SMS";
|
|
82
|
-
readonly label: "SMS";
|
|
83
|
-
}, {
|
|
84
|
-
readonly value: "PUSH";
|
|
85
|
-
readonly label: "Push Notification";
|
|
86
|
-
}];
|
|
87
|
-
export declare const RESIDENCY_OPTIONS: readonly [{
|
|
88
|
-
readonly value: "HOME";
|
|
89
|
-
readonly label: "Home";
|
|
90
|
-
}, {
|
|
91
|
-
readonly value: "OFFICE";
|
|
92
|
-
readonly label: "Office";
|
|
93
|
-
}, {
|
|
94
|
-
readonly value: "CLINIC";
|
|
95
|
-
readonly label: "Clinic";
|
|
96
|
-
}, {
|
|
97
|
-
readonly value: "HOSPITAL";
|
|
98
|
-
readonly label: "Hospital";
|
|
99
|
-
}];
|
|
100
|
-
export declare const SERVICE_TYPE_OPTIONS: readonly [{
|
|
101
|
-
readonly value: "CLINIC";
|
|
102
|
-
readonly label: "Clinic Visit";
|
|
103
|
-
}, {
|
|
104
|
-
readonly value: "ONLINE";
|
|
105
|
-
readonly label: "Online Consultation";
|
|
106
|
-
}, {
|
|
107
|
-
readonly value: "HOME_VISIT";
|
|
108
|
-
readonly label: "Home Visit";
|
|
109
|
-
}, {
|
|
110
|
-
readonly value: "EMERGENCY";
|
|
111
|
-
readonly label: "Emergency";
|
|
112
|
-
}];
|
|
113
|
-
export declare const SPECIALTY_OPTIONS: readonly [{
|
|
114
|
-
readonly value: "STOMATOLOGY";
|
|
115
|
-
readonly label: "Stomatology";
|
|
116
|
-
}, {
|
|
117
|
-
readonly value: "NEPHROLOGY";
|
|
118
|
-
readonly label: "Nephrology";
|
|
119
|
-
}, {
|
|
120
|
-
readonly value: "CARDIOLOGY";
|
|
121
|
-
readonly label: "Cardiology";
|
|
122
|
-
}, {
|
|
123
|
-
readonly value: "DERMATOLOGY";
|
|
124
|
-
readonly label: "Dermatology";
|
|
125
|
-
}, {
|
|
126
|
-
readonly value: "NEUROLOGY";
|
|
127
|
-
readonly label: "Neurology";
|
|
128
|
-
}, {
|
|
129
|
-
readonly value: "PEDIATRICS";
|
|
130
|
-
readonly label: "Pediatrics";
|
|
131
|
-
}, {
|
|
132
|
-
readonly value: "GYNECOLOGY";
|
|
133
|
-
readonly label: "Gynecology";
|
|
134
|
-
}, {
|
|
135
|
-
readonly value: "ORTHOPEDICS";
|
|
136
|
-
readonly label: "Orthopedics";
|
|
137
|
-
}, {
|
|
138
|
-
readonly value: "OPHTHALMOLOGY";
|
|
139
|
-
readonly label: "Ophthalmology";
|
|
140
|
-
}, {
|
|
141
|
-
readonly value: "PSYCHIATRY";
|
|
142
|
-
readonly label: "Psychiatry";
|
|
143
|
-
}];
|
|
144
|
-
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/types/doctor.ts"],"names":[],"mappings":"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"}
|