@admin-layout/tailwind-design-pro 10.0.9-alpha.25 → 10.0.9-alpha.27

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.
Files changed (46) hide show
  1. package/lib/components/UI/LazyLoadingGoogleMarker.js +107 -0
  2. package/lib/components/UI/LazyLoadingGoogleMarker.js.map +1 -0
  3. package/lib/components/UI/Pagination.d.ts +6 -0
  4. package/lib/components/UI/Pagination.d.ts.map +1 -0
  5. package/lib/components/UI/Pagination.js +59 -0
  6. package/lib/components/UI/Pagination.js.map +1 -0
  7. package/lib/components/UI/ParamSearchResultContainer.d.ts +90 -0
  8. package/lib/components/UI/ParamSearchResultContainer.d.ts.map +1 -0
  9. package/lib/components/UI/ParamSearchResultContainer.js +80 -0
  10. package/lib/components/UI/ParamSearchResultContainer.js.map +1 -0
  11. package/lib/components/UI/PropertyCard.d.ts +24 -0
  12. package/lib/components/UI/PropertyCard.d.ts.map +1 -0
  13. package/lib/components/UI/PropertyCard.js +377 -0
  14. package/lib/components/UI/PropertyCard.js.map +1 -0
  15. package/lib/components/UI/PropertyCardList.d.ts +93 -0
  16. package/lib/components/UI/PropertyCardList.d.ts.map +1 -0
  17. package/lib/components/UI/PropertyCardList.js +41 -0
  18. package/lib/components/UI/PropertyCardList.js.map +1 -0
  19. package/lib/components/UI/PropertyCardOnMap.js +108 -0
  20. package/lib/components/UI/PropertyCardOnMap.js.map +1 -0
  21. package/lib/components/UI/icons/LocationIcon.d.ts +7 -0
  22. package/lib/components/UI/icons/LocationIcon.d.ts.map +1 -0
  23. package/lib/components/UI/icons/LocationIcon.js +18 -0
  24. package/lib/components/UI/icons/LocationIcon.js.map +1 -0
  25. package/lib/components/UI/icons/index.d.ts +2 -0
  26. package/lib/components/UI/icons/index.d.ts.map +1 -0
  27. package/lib/components/UI/index.d.ts +6 -0
  28. package/lib/components/UI/index.d.ts.map +1 -1
  29. package/lib/components/index.js +1 -1
  30. package/lib/config/env-config.d.ts +1 -0
  31. package/lib/config/env-config.d.ts.map +1 -1
  32. package/lib/config/env-config.js +5 -1
  33. package/lib/config/env-config.js.map +1 -1
  34. package/lib/helpers/DynamicIcon.d.ts +7 -4
  35. package/lib/helpers/DynamicIcon.d.ts.map +1 -1
  36. package/lib/helpers/DynamicIcon.js +11 -15
  37. package/lib/helpers/DynamicIcon.js.map +1 -1
  38. package/lib/hooks/index.d.ts +2 -0
  39. package/lib/hooks/index.d.ts.map +1 -1
  40. package/lib/hooks/use-get-current-lat-long.d.ts +18 -0
  41. package/lib/hooks/use-get-current-lat-long.d.ts.map +1 -0
  42. package/lib/hooks/use-get-current-lat-long.js +29 -0
  43. package/lib/hooks/use-get-current-lat-long.js.map +1 -0
  44. package/lib/hooks/useTailwindTheme.js +82 -0
  45. package/lib/hooks/useTailwindTheme.js.map +1 -0
  46. package/package.json +2 -2
@@ -0,0 +1,377 @@
1
+ import {jsx,Fragment,jsxs}from'react/jsx-runtime';import {useMemo,useState,useEffect,useCallback}from'react';import {BsHeart}from'@react-icons/all-files/bs/BsHeart.js';import {BsStarFill}from'@react-icons/all-files/bs/BsStarFill.js';import {FaUserAlt}from'@react-icons/all-files/fa/FaUserAlt.js';import {useTranslation}from'react-i18next';import {WithAuthentication}from'@adminide-stack/user-auth0-browser-chakra/lib/index.component.js';import {Splide,SplideSlide}from'@cdmbase/react-splide';import {useLocation}from'@remix-run/react';import {format}from'date-fns';import {startCase}from'lodash-es';import {useTailwindTheme}from'../../hooks/useTailwindTheme.js';import {useGetCurrentLongLat}from'../../hooks/use-get-current-lat-long.js';import {LocationIcon}from'./icons/LocationIcon.js';import {renderDynamicIcon}from'../../helpers/DynamicIcon.js';import {config}from'../../config/env-config.js';const convertHotelName = name => {
2
+ return name.toLowerCase().replace(/[^a-z0-9\s-]/g, '').replace(/[\s-]+/g, '-').replace(/-+/g, '-');
3
+ };
4
+ const generateHref = (room, from, to, adults, children) => {
5
+ switch (room.__typename) {
6
+ case 'AirbnbProperty':
7
+ return `https://www.airbnb.com/rooms/${room.id}?check_in=${from}&check_out=${to}&guests=${adults + children || 1}`;
8
+ case 'BookingProperty':
9
+ return `https://www.booking.com/hotel/${room.address.city.state.country.id}/${convertHotelName(room.name)}.html`;
10
+ case 'PricelineProperty':
11
+ const propertyId = room.metadata?.id_t;
12
+ const cityId = room?.metadata?.city?.id || '';
13
+ const checkInDate = typeof from === 'string' ? from : format(new Date(from), 'yyyyMMdd');
14
+ const checkOutDate = typeof to === 'string' ? to : format(new Date(to), 'yyyyMMdd');
15
+ const roomCount = 1;
16
+ const adultCount = adults || 1;
17
+ return `https://www.priceline.com/relax/at/${propertyId}/from/${checkInDate}/to/${checkOutDate}/rooms/${roomCount}/adults/${adultCount}?cityId=${cityId}&cur=USD&psl=${propertyId}`;
18
+ default:
19
+ return `/property/${room.id}`;
20
+ }
21
+ };
22
+ const DealCard = ({
23
+ site,
24
+ price
25
+ }) => jsxs("div", {
26
+ className: "flex flex-col items-center p-2 rounded-md",
27
+ children: [jsx("span", {
28
+ className: "text-xs font-bold text-gray-700",
29
+ children: site
30
+ }), jsx("span", {
31
+ className: "text-base font-bold text-black",
32
+ children: typeof price === 'number' ? price.toLocaleString() : price
33
+ })]
34
+ });
35
+ function calculateDuration(checkIn, checkOut) {
36
+ const checkInDate = new Date(checkIn);
37
+ const checkOutDate = new Date(checkOut);
38
+ const duration = Math.ceil((checkOutDate.getTime() - checkInDate.getTime()) / (1000 * 60 * 60 * 24));
39
+ return duration;
40
+ }
41
+ function formatDuration(days) {
42
+ if (days < 7) {
43
+ return `${days} ${days === 1 ? 'day' : 'days'}`;
44
+ } else {
45
+ const weeks = Math.floor(days / 7);
46
+ const remainingDays = days % 7;
47
+ let result = `${weeks} ${weeks === 1 ? 'week' : 'weeks'}`;
48
+ if (remainingDays > 0) {
49
+ result += `, ${remainingDays} ${remainingDays === 1 ? 'day' : 'days'}`;
50
+ }
51
+ return result;
52
+ }
53
+ }
54
+ const PropertyCard = ({
55
+ room,
56
+ isSaved,
57
+ setFocus,
58
+ setBlur,
59
+ handleLike,
60
+ likeBtnLoading,
61
+ propertyTypes,
62
+ authenticated,
63
+ extraIcons = [],
64
+ ...props
65
+ }) => {
66
+ const images = useMemo(() => room?.images?.data.map(({
67
+ url
68
+ }) => ({
69
+ src: url
70
+ })), [room]);
71
+ const [didLike, setDidLike] = useState(false);
72
+ useMemo(() => room?.totalReview == 0 ? 0 : room?.totalStar / room?.totalReview || 0, [room]);
73
+ const {
74
+ isDark,
75
+ grayColor
76
+ } = useTailwindTheme();
77
+ const {
78
+ t
79
+ } = useTranslation(['common', 'property-types']);
80
+ const types = useMemo(() => propertyTypes.filter(item => room?.types?.includes(item.id)), [room, propertyTypes]);
81
+ const {
82
+ fetchCurrentLatLong,
83
+ location,
84
+ loading
85
+ } = useGetCurrentLongLat();
86
+ const locationUrl = useLocation();
87
+ const params = new URLSearchParams(locationUrl.search);
88
+ const checkIn = params.get('checkIn') || params.get('from') || '';
89
+ const checkOut = params.get('checkOut') || params.get('to') || '';
90
+ const duration = calculateDuration(checkIn, checkOut);
91
+ const formattedDuration = formatDuration(duration);
92
+ useEffect(() => {
93
+ fetchCurrentLatLong();
94
+ }, []);
95
+ const getPriceType = useCallback(room => {
96
+ const type = room.preferences?.property?.pricing?.option?.priceType;
97
+ if (type === 'HOUR') {
98
+ return t('property.hr');
99
+ }
100
+ return t('property.night');
101
+ }, [t]);
102
+ useCallback(address => {
103
+ if (!location || !address) return null;
104
+ if (typeof window !== 'undefined' && window.google && window.google.maps && window.google.maps.LatLng) {
105
+ const point1 = new window.google.maps.LatLng(location.latitude, location.longitude);
106
+ const point2 = new window.google.maps.LatLng(address.latitude_around, address.longitude_around);
107
+ if (window.google.maps.geometry && window.google.maps.geometry.spherical) {
108
+ const distance = window.google.maps.geometry.spherical.computeDistanceBetween(point1, point2);
109
+ const distanceInMiles = distance * 0.000621371;
110
+ return Math.floor(distanceInMiles);
111
+ } else {
112
+ console.error('Google Maps geometry library is not loaded.');
113
+ return null;
114
+ }
115
+ } else {
116
+ return null;
117
+ }
118
+ }, [location]);
119
+ const searchParams = new URLSearchParams(window.location.search);
120
+ const adults = parseInt(searchParams.get('adults') || '0', 10) || 1;
121
+ const children = parseInt(searchParams.get('children') || '0', 10);
122
+ const amenities = room?.preferences?.property?.amenities;
123
+ const displayedIcons = amenities ? Object.entries(amenities).flatMap(([key, value]) => {
124
+ const enabledAmenities = Object.entries(value ?? {}).filter(([key1, value1]) => value1?.enable && value1?.icon);
125
+ const displayedAmenities = enabledAmenities.slice(0, 8);
126
+ return displayedAmenities.length > 0 ? displayedAmenities.map(([key1, value1]) => renderDynamicIcon({
127
+ name: value1.icon,
128
+ style: {
129
+ iconColor: grayColor,
130
+ w: '20px',
131
+ h: '20px'
132
+ }
133
+ })) : [];
134
+ }) : [];
135
+ const LikeButton = () => jsx(Fragment, {
136
+ children: likeBtnLoading ? jsx("div", {
137
+ className: "w-12 h-12 border-4 border-t-blue-500 rounded-full animate-spin border-gray-200"
138
+ }) : jsx("button", {
139
+ className: `w-7 h-9.5 rounded-full flex items-center justify-center ${didLike ? 'bg-blue-400' : isDark ? 'bg-gray-800' : 'bg-white'}`,
140
+ onClick: () => handleLike(room.id),
141
+ "aria-label": "Select as your favourite",
142
+ children: jsx(BsHeart, {
143
+ className: isDark ? 'text-white' : 'text-gray-800'
144
+ })
145
+ })
146
+ });
147
+ WithAuthentication(LikeButton);
148
+ return jsx(Fragment, {
149
+ children: jsxs("div", {
150
+ className: "flex flex-row p-2 relative",
151
+ onMouseEnter: () => setFocus(room.id),
152
+ onMouseLeave: () => setBlur(room.id),
153
+ ...props,
154
+ children: [room.status === 'pending' && jsxs(Fragment, {
155
+ children: [jsx("div", {
156
+ className: "absolute w-full h-full bg-black bg-opacity-60 rounded-2xl z-10"
157
+ }), jsx("div", {
158
+ className: "absolute left-1/2 top-1/2 transform -translate-x-1/2 translate-y-1/2 text-white z-20",
159
+ children: jsx("p", {
160
+ className: "text-lg font-normal",
161
+ children: t('property.coming_soon')
162
+ })
163
+ })]
164
+ }), jsx("div", {
165
+ className: "w-full max-w-[350px] border border-solid border-gray-200 rounded-2xl overflow-hidden shadow-md transition-all duration-300 hover:transform hover:-translate-y-1 hover:shadow-lg",
166
+ children: jsxs("div", {
167
+ className: "w-full h-full flex flex-col justify-between space-y-4",
168
+ children: [jsxs("div", {
169
+ className: "relative w-full h-full rounded-xl",
170
+ children: [jsx("div", {
171
+ className: "absolute top-2 left-2 bg-green-600 text-white px-3 py-1 rounded-md text-sm font-bold shadow-md z-10",
172
+ children: "Breakfast included"
173
+ }), jsxs(Splide, {
174
+ "aria-label": "Property Images",
175
+ options: {
176
+ type: 'slide',
177
+ drag: 'free',
178
+ perPage: 1,
179
+ perMove: 1,
180
+ lazyLoad: 'sequential',
181
+ wheel: true,
182
+ releaseWheel: true,
183
+ pagination: false,
184
+ speed: 800
185
+ },
186
+ children: [jsx("div", {
187
+ className: "absolute top-2.5 right-2.5 z-10",
188
+ children: jsx(LikeButton, {})
189
+ }), images.map((image, i) => jsx(SplideSlide, {
190
+ children: jsx("a", {
191
+ href: generateHref(room, checkIn, checkOut, adults, children),
192
+ target: "_blank",
193
+ rel: "noopener noreferrer",
194
+ children: jsx("div", {
195
+ className: "w-full h-full rounded-xl",
196
+ children: jsx("img", {
197
+ src: image.src,
198
+ className: "rounded-xl h-[250px] w-full max-w-full object-cover cursor-pointer transition-all duration-500 hover:brightness-50",
199
+ loading: "lazy",
200
+ alt: `Property ${i + 1}`
201
+ }, 'image_' + i)
202
+ }, 'sliderImage_' + i)
203
+ })
204
+ }, 'sliderslide_' + i))]
205
+ })]
206
+ }), jsxs("div", {
207
+ className: "w-full px-4 flex flex-col pt-2",
208
+ children: [jsxs("div", {
209
+ className: "flex flex-wrap items-center space-x-2 mb-2",
210
+ children: [jsxs("span", {
211
+ className: "text-sm font-medium",
212
+ children: [t('property.property_type'), ":"]
213
+ }), types?.map((item, index) => jsx("span", {
214
+ className: "bg-gray-100 text-gray-800 text-xs px-2 py-1 rounded-full capitalize",
215
+ children: t(`property-types:${item.description}`)
216
+ }, index))]
217
+ }), jsx("h3", {
218
+ className: "text-lg font-medium mb-2 line-clamp-2",
219
+ children: room?.title
220
+ }), room?.address && room?.address.city && room?.address.city.state && jsxs("div", {
221
+ className: "flex items-center text-sm text-gray-500 mb-2",
222
+ children: [jsx(LocationIcon, {
223
+ w: "16px",
224
+ h: "20px"
225
+ }), jsxs("span", {
226
+ className: "truncate",
227
+ children: [room?.address.city.name + ', ' + room?.address.city.state.name, room?.address?.number ? ' · ' + room?.address?.number : '']
228
+ })]
229
+ }), displayedIcons.length > 0 && jsx("div", {
230
+ className: "flex space-x-3 mt-2 mb-3",
231
+ children: displayedIcons
232
+ }), jsxs("div", {
233
+ className: "flex flex-wrap space-x-2 mt-1 mb-3",
234
+ children: [room?.preferences?.property?.booking?.policy?.instantBookingEnabled && jsx("span", {
235
+ className: "bg-blue-100 text-blue-800 px-2 py-1 rounded-md text-xs capitalize",
236
+ children: t('property.instant_book')
237
+ }), room?.preferences?.property?.booking?.policy?.cancellation && jsx("span", {
238
+ className: "bg-green-100 text-green-800 px-2 py-1 rounded-md text-xs capitalize",
239
+ children: t('property.cancellation_policy')
240
+ })]
241
+ }), jsxs("div", {
242
+ className: "flex items-center mb-4",
243
+ children: [jsx(FaUserAlt, {
244
+ className: "text-gray-500"
245
+ }), jsxs("span", {
246
+ className: "text-sm text-gray-600 ml-2",
247
+ children: [room?.preferences?.property?.boarding?.maxPeople, " ", t('property.guests')]
248
+ })]
249
+ })]
250
+ }), config.ENABLE_PROPERTY_PRICE_COMPARISON && jsx("div", {
251
+ className: "px-4 w-full",
252
+ children: jsxs("div", {
253
+ className: "w-fit flex gap-4",
254
+ children: [jsx("hr", {
255
+ className: "w-full border-t border-gray-200"
256
+ }), jsxs("div", {
257
+ className: "flex flex-row",
258
+ children: [jsx(DealCard, {
259
+ site: "Vio.com",
260
+ price: 41387
261
+ }), jsx(DealCard, {
262
+ site: "Expedia.com",
263
+ price: 46369
264
+ }), jsx(DealCard, {
265
+ site: "More Deals",
266
+ price: 'View all'
267
+ })]
268
+ }), jsx("hr", {
269
+ className: "w-full border-t border-gray-200"
270
+ })]
271
+ })
272
+ }), jsxs("div", {
273
+ className: "flex flex-col sm:flex-row px-4 pb-4 w-full justify-between items-start sm:items-center",
274
+ children: [jsxs("div", {
275
+ className: "flex flex-col space-y-1 mb-3 sm:mb-0 w-full sm:w-auto",
276
+ children: [jsxs("div", {
277
+ className: "flex items-center",
278
+ children: [jsx(BsStarFill, {
279
+ className: "text-yellow-500 w-3 h-3 mr-1"
280
+ }), jsxs("span", {
281
+ className: "text-[0.832rem] font-bold text-gray-600",
282
+ children: [room?.reviewsOverview ? room.reviewsOverview.rating : 0, " (", room.reviewsOverview ? room.reviewsOverview.ratingCount : 0, ' ', t('property.reviews'), ")"]
283
+ })]
284
+ }), room?.__typename && jsxs("span", {
285
+ className: "text-[0.832rem] text-gray-500",
286
+ children: ["Booking through ", startCase(room.__typename.replace('Property', ''))]
287
+ })]
288
+ }), jsxs("div", {
289
+ className: "flex flex-col items-end space-y-2 w-full sm:w-auto",
290
+ children: [jsxs("div", {
291
+ className: "flex flex-col items-end space-y-1 w-full",
292
+ children: [jsxs("span", {
293
+ className: "text-[0.688rem] text-gray-500 text-right w-full",
294
+ children: [formattedDuration, ", ", adults + children, ' ', adults + children === 1 ? 'guest' : 'guests']
295
+ }), jsxs("div", {
296
+ className: "flex flex-col items-end space-y-0 w-full",
297
+ children: [room.preferences?.property?.pricing?.price?.price_breakdown?.details?.summary?.total !== room.preferences?.property?.pricing?.price?.price_breakdown?.details?.summary?.totalBeforeDiscount && jsxs("div", {
298
+ className: "flex items-center group relative",
299
+ children: [jsx("span", {
300
+ className: "text-xs text-gray-500",
301
+ children: "from"
302
+ }), jsx("span", {
303
+ className: "text-sm font-semibold text-gray-500 line-through ml-1 cursor-help hover:text-gray-600 group-hover:text-gray-600",
304
+ children: room.preferences?.property?.pricing?.price?.price_breakdown?.details?.summary?.totalBeforeDiscount
305
+ }), jsx("div", {
306
+ className: "hidden group-hover:block absolute top-0 right-0 transform -translate-y-full mt-2 w-[300px] shadow-lg bg-white rounded-md p-4 z-50",
307
+ children: jsxs("div", {
308
+ className: "flex flex-col space-y-2",
309
+ children: [room.preferences?.property?.pricing?.price?.price_breakdown?.details?.discounts?.items.map((charge, index) => jsxs("div", {
310
+ className: "flex flex-col",
311
+ children: [jsxs("div", {
312
+ className: "flex justify-between",
313
+ children: [jsx("span", {
314
+ className: "mr-4",
315
+ children: charge.name
316
+ }), jsx("span", {
317
+ className: "font-medium",
318
+ children: charge?.amount_rounded
319
+ })]
320
+ }), charge.details && jsx("span", {
321
+ className: "text-sm font-normal",
322
+ children: charge?.details
323
+ })]
324
+ }, index)), jsxs("div", {
325
+ className: "flex justify-between pt-2 border-t border-gray-200 font-bold",
326
+ children: [jsx("span", {
327
+ children: "Total discount"
328
+ }), jsx("span", {
329
+ children: room.preferences?.property?.pricing?.price?.price_breakdown?.details?.summary?.savings
330
+ })]
331
+ })]
332
+ })
333
+ })]
334
+ }), jsxs("div", {
335
+ className: "relative group",
336
+ children: [jsx("span", {
337
+ className: "text-2xl font-semibold text-right underline cursor-help",
338
+ children: room.preferences?.property?.pricing?.price?.price_breakdown?.details?.summary?.total
339
+ }), jsxs("div", {
340
+ className: "hidden group-hover:block absolute bottom-0 right-0 transform translate-y-full mt-2 w-[300px] shadow-lg bg-white rounded-md z-50",
341
+ children: [jsx("div", {
342
+ className: "font-bold border-b border-gray-200 p-3 text-center",
343
+ children: "Price breakdown"
344
+ }), jsx("div", {
345
+ className: "p-4",
346
+ children: jsx("div", {
347
+ className: "flex flex-col space-y-2",
348
+ children: room.preferences?.property?.pricing?.price?.price_breakdown?.details?.charges?.items?.map((item, index) => jsxs("div", {
349
+ className: "flex justify-between",
350
+ children: [jsx("span", {
351
+ children: item.name
352
+ }), jsx("span", {
353
+ children: item?.amount_rounded
354
+ })]
355
+ }, index))
356
+ })
357
+ })]
358
+ })]
359
+ })]
360
+ }), jsxs("span", {
361
+ className: "text-xs text-gray-500 text-right w-full",
362
+ children: [room?.preferences?.property?.pricing?.price?.price_breakdown?.details?.pricing?.basePrice?.perNight, ' ', "per ", getPriceType(room)]
363
+ })]
364
+ }), jsx("button", {
365
+ className: "bg-blue-500 hover:bg-blue-600 text-white font-semibold py-2 px-4 rounded w-full",
366
+ onClick: () => {
367
+ window.open(generateHref(room, checkIn, checkOut, adults, children), '_blank');
368
+ },
369
+ children: "View deal"
370
+ })]
371
+ })]
372
+ })]
373
+ })
374
+ })]
375
+ }, room.id)
376
+ });
377
+ };export{PropertyCard};//# sourceMappingURL=PropertyCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyCard.js","sources":["../../../src/components/UI/PropertyCard.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ import React from 'react';
2
+ interface IProperty {
3
+ id: string;
4
+ title: string;
5
+ types: string[];
6
+ name: string;
7
+ description?: string;
8
+ introduction?: string;
9
+ address: any;
10
+ location: string;
11
+ images: any;
12
+ thumbnailUrl?: string;
13
+ thumbnailAlt?: string;
14
+ verificationDocuments?: any;
15
+ info?: any;
16
+ user: any;
17
+ status?: any;
18
+ errors?: any;
19
+ preferences?: any;
20
+ orgName?: string;
21
+ serviceConfiguration?: any;
22
+ totalReview?: number;
23
+ totalStar?: number;
24
+ reviews?: any;
25
+ comments?: any;
26
+ userLikes?: any;
27
+ calendarEvents?: any[];
28
+ isUserLike?: boolean;
29
+ formattedPrice?: number;
30
+ timeZone: string;
31
+ createdAt: any;
32
+ updatedAt?: any;
33
+ stats?: any;
34
+ guideBookId?: string;
35
+ guestSharing?: any;
36
+ }
37
+ interface IAirbnbProperty {
38
+ id: string;
39
+ title: string;
40
+ types: string[];
41
+ name: string;
42
+ description?: string;
43
+ introduction?: string;
44
+ address: any;
45
+ location: string;
46
+ images: any;
47
+ thumbnailUrl?: string;
48
+ thumbnailAlt?: string;
49
+ verificationDocuments?: any;
50
+ info?: any;
51
+ user: any;
52
+ status?: any;
53
+ errors?: any;
54
+ preferences?: any;
55
+ orgName?: string;
56
+ serviceConfiguration?: any;
57
+ totalReview?: number;
58
+ totalStar?: number;
59
+ reviews?: any;
60
+ comments?: any;
61
+ userLikes?: any;
62
+ calendarEvents?: any[];
63
+ isUserLike?: boolean;
64
+ formattedPrice?: number;
65
+ timeZone: string;
66
+ createdAt: any;
67
+ updatedAt?: any;
68
+ stats?: any;
69
+ guideBookId?: string;
70
+ guestSharing?: any;
71
+ }
72
+ interface IPropertyType {
73
+ id: string;
74
+ icon: string;
75
+ description: string;
76
+ category: string;
77
+ name: string;
78
+ imageKey: string;
79
+ created_at: string;
80
+ }
81
+ type PropertyCardListProps = {
82
+ rooms?: IProperty[] | IAirbnbProperty[];
83
+ setFocus: (index: number) => void;
84
+ setBlur: (index: number) => void;
85
+ handleLike: (index: number) => void;
86
+ likeBtnLoading: boolean;
87
+ propertyTypes: IPropertyType[];
88
+ extraIcons?: any;
89
+ className?: string;
90
+ };
91
+ export declare const PropertyCardList: React.FC<PropertyCardListProps>;
92
+ export {};
93
+ //# sourceMappingURL=PropertyCardList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyCardList.d.ts","sourceRoot":"","sources":["../../../src/components/UI/PropertyCardList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,UAAU,SAAS;IACf,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAC5B,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,GAAG,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC;CACtB;AACD,UAAU,eAAe;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qBAAqB,CAAC,EAAE,GAAG,CAAC;IAC5B,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,GAAG,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,CAAC,EAAE,GAAG,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC;CACtB;AACD,UAAU,aAAa;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,KAAK,qBAAqB,GAAG;IACzB,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,CAAC;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CA6B5D,CAAC"}
@@ -0,0 +1,41 @@
1
+ import {jsx}from'react/jsx-runtime';import {useTranslation}from'react-i18next';import {isEmpty}from'lodash-es';import {PropertyCard}from'./PropertyCard.js';import {isUserAuthenticated}from'@adminide-stack/user-auth0-client';const PropertyCardList = props => {
2
+ // rooms = defaultRooms;
3
+ const {
4
+ setBlur,
5
+ setFocus,
6
+ rooms,
7
+ handleLike,
8
+ likeBtnLoading,
9
+ propertyTypes,
10
+ extraIcons,
11
+ className = ''
12
+ } = props;
13
+ const {
14
+ t
15
+ } = useTranslation();
16
+ const {
17
+ authenticated
18
+ } = isUserAuthenticated();
19
+ if (isEmpty(rooms)) {
20
+ return jsx("div", {
21
+ className: "text-base",
22
+ children: t('property.not_found_any_room')
23
+ });
24
+ }
25
+ return jsx("div", {
26
+ className: `flex flex-wrap justify-evenly ${className}`,
27
+ children: rooms?.map((r, index) => {
28
+ return jsx(PropertyCard, {
29
+ room: r,
30
+ isSaved: false,
31
+ setFocus: () => setFocus(index),
32
+ setBlur: setBlur,
33
+ handleLike: handleLike,
34
+ likeBtnLoading: likeBtnLoading,
35
+ propertyTypes: propertyTypes,
36
+ authenticated: authenticated,
37
+ extraIcons: extraIcons
38
+ }, index);
39
+ })
40
+ });
41
+ };export{PropertyCardList};//# sourceMappingURL=PropertyCardList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyCardList.js","sources":["../../../src/components/UI/PropertyCardList.tsx"],"sourcesContent":[null],"names":[],"mappings":"gOAiGa,MAAA,gBAAgB,GAAoC,KAAC,IAAS;;QAEjE;AACN,IAAA;AACA,IAAA,QAAQ;AAER,IAAA,KAAW;cACA;IACX,cAAC;AACD,IAAA,aACS;cAEU;aAeT,GACR;AACN,GAAE,GAAA,KAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,108 @@
1
+ import {jsxs,jsx}from'react/jsx-runtime';import {useMemo,useState,useEffect}from'react';import {useTranslation}from'react-i18next';import {Link}from'@remix-run/react';import {BsStarFill}from'@react-icons/all-files/bs/BsStarFill.js';import {Splide,SplideSlide}from'@cdmbase/react-splide';import {useLayoutSettings}from'@admin-layout/client';const PropertyCardOnMap = ({
2
+ room,
3
+ isSaved,
4
+ sliderOptions = {},
5
+ className = '',
6
+ ...props
7
+ }) => {
8
+ const images = useMemo(() => room?.images?.data.map(({
9
+ url
10
+ }) => ({
11
+ src: url
12
+ })), [room]);
13
+ const {
14
+ t
15
+ } = useTranslation();
16
+ const {
17
+ settings
18
+ } = useLayoutSettings();
19
+ const [star, setStar] = useState(0);
20
+ useEffect(() => {
21
+ let temp = room?.totalReview == 0 ? 0 : room?.totalStar / room?.totalReview;
22
+ setStar(temp);
23
+ }, [room?.totalReview, room?.totalStar]);
24
+ // const { color, grayColor } = useColorTheme();
25
+ return jsxs("div", {
26
+ className: `flex flex-col flex-wrap mt-4 ${className}`,
27
+ children: [jsx("div", {
28
+ className: "w-full",
29
+ children: jsxs(Splide, {
30
+ "aria-label": t('property.property_images'),
31
+ options: {
32
+ type: 'loop',
33
+ drag: 'free',
34
+ height: '230px',
35
+ perPage: 1,
36
+ perMove: 1,
37
+ wheel: true,
38
+ releaseWheel: true,
39
+ pagination: false,
40
+ speed: 500,
41
+ ...sliderOptions
42
+ },
43
+ children: [images && images.length == 0 && jsx(SplideSlide, {
44
+ children: jsx("div", {
45
+ className: "w-full h-full",
46
+ children: jsx("img", {
47
+ src: room.thumbnailUrl,
48
+ className: "w-full h-full object-cover cursor-pointer transition-all duration-500 hover:brightness-50",
49
+ loading: "lazy",
50
+ alt: room.title || 'Property'
51
+ })
52
+ })
53
+ }), images.map((image, i) => {
54
+ return jsx(SplideSlide, {
55
+ children: jsx(Link, {
56
+ to: '/property/' + room.id,
57
+ className: "w-full",
58
+ children: jsx("div", {
59
+ className: "w-full h-full",
60
+ children: jsx("img", {
61
+ src: image.src,
62
+ className: "w-full h-full object-cover cursor-pointer transition-all duration-500 hover:brightness-50",
63
+ loading: "lazy",
64
+ alt: room.title || 'Property'
65
+ })
66
+ })
67
+ })
68
+ }, 'sliderImage1_' + i);
69
+ })]
70
+ })
71
+ }), jsxs("div", {
72
+ className: "w-full flex flex-col mt-2",
73
+ children: [jsx("div", {
74
+ className: "font-semibold text-sm",
75
+ style: {
76
+ color: settings?.primaryColor
77
+ },
78
+ children: room?.title
79
+ }), jsxs("div", {
80
+ className: "flex flex-row justify-between",
81
+ children: [jsxs("div", {
82
+ className: "flex flex-col",
83
+ children: [jsx("div", {
84
+ className: "mt-1 flex text-[9px] font-semibold",
85
+ style: {
86
+ color: settings?.primaryColor
87
+ },
88
+ children: room?.address && room?.address.city && room?.address.city.state ? room?.address.city.name + ', ' + room?.address.city.state.name : ''
89
+ }), jsxs("div", {
90
+ className: "flex items-center",
91
+ children: [jsx(BsStarFill, {
92
+ className: "text-yellow-500 w-3 h-3 mr-1"
93
+ }), jsxs("span", {
94
+ className: "text-[0.832rem] font-bold",
95
+ style: {
96
+ color: settings?.secondaryColor
97
+ },
98
+ children: [room?.reviewsOverview ? room.reviewsOverview.rating : 0, " (", room.reviewsOverview ? room.reviewsOverview.ratingCount : 0, " ", t('property.reviews'), ")"]
99
+ })]
100
+ })]
101
+ }), jsx("div", {
102
+ className: "text-lg font-bold mt-auto mb-[-2px]",
103
+ children: room.preferences?.property?.pricing?.price?.price_breakdown?.details?.pricing?.finalPrice?.total
104
+ })]
105
+ })]
106
+ })]
107
+ });
108
+ };export{PropertyCardOnMap};//# sourceMappingURL=PropertyCardOnMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertyCardOnMap.js","sources":["../../../src/components/UI/PropertyCardOnMap.tsx"],"sourcesContent":[null],"names":["_jsxs","_jsx"],"mappings":"0VAkBa,iBAAiB,GAAG,CAAC;AAO9B,EAAA,IAAA;AACA,EAAA,OAAA;AACA,EAAA,aAAgB,GAAA,EAAA;WAET,GAAI,EAAA;KACF;;QAEL,MAAO,GAAK,OAAE,CAAA,MAAA,IAAA,EAAA,MAAA,EAAA,IAAA,CAAA,GAAA,CAAA,CAAA;IAClB;SAEgD;IAEhD,GAAO,EAAA;AAMa,GAAA,CAAA,CAAA,EAAA,CAAA,IAAA,CAAA,CAAA;AACA,EAAA,MAAA;AACA,IAAA;AACA,GAAA,GAAA,cAAA,EAAA;AACA,EAAA,MAAA;AACA,IAAA;AACA,GAAA,GAAA,iBAAA,EAAA;AACA,EAAA,MAAA,CAAA,IAAA,EAAA,OAAA,CAAA,GAAA,QAAU,EAAE,CAAK;AACjB,EAAA,SAAA,CAAA,MAAA;AACA,IAAA,IAAA,IAAA,GAAA,IAAA,EAAA,WAAgB,IAAA,CAAA,GAAA,CAAA,GAAA,IAAA,EAAA,SAAA,GAAA,IAAA,EAAA,WAAA;;6BAgBT,EAAA,SACF,CAAA,CAAA;AAaT;AAWY,EAAA,OAAAA,IAAA,CAAA,KAAA,EAAA;6CACC;AAaD,IAAA,QAAA,EAAA,CAAAC,GAAA,CAAA,KAAA,EAAA;AAOhC,MAAE,SAAA,EAAA,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,7 @@
1
+ export declare const LocationIcon: ({ className, w, h, ...props }: {
2
+ [x: string]: any;
3
+ className?: string;
4
+ w: any;
5
+ h: any;
6
+ }) => import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=LocationIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocationIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/UI/icons/LocationIcon.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY;;;;;6CAYxB,CAAC"}