@abcagency/hc-ui-components 1.7.5 → 1.7.6
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/HireControlMap.js +95 -165
- package/dist/components/HireControlMap.js.map +1 -1
- package/dist/components/modules/accordions/default.js +1 -1
- package/dist/components/modules/buttons/button-group-apply.js +1 -1
- package/dist/components/modules/buttons/default.js +1 -1
- package/dist/components/modules/cards/default.js +1 -1
- package/dist/components/modules/filter/sort.js +1 -1
- package/dist/components/modules/grid.js +1 -1
- package/dist/components/modules/list/header.js +1 -1
- package/dist/components/modules/list/item-expand-card/index.js +1 -1
- package/dist/contexts/mapListContext.js +33 -38
- package/dist/contexts/mapListContext.js.map +1 -1
- package/dist/styles/index.css +1 -1
- package/dist/util/algoliaSearchUtil.js +1 -1
- package/dist/util/filterUtil.js +1 -1
- package/dist/util/twMerge.js +1 -1
- package/package.json +1 -1
- package/src/apis/hcApi.ts +9 -2
- package/src/components/HireControlMap.js +19 -54
- package/src/contexts/mapListContext.tsx +34 -37
- package/src/index.js +1 -0
- package/dist/apis/hcApi.js +0 -91
- package/dist/apis/hcApi.js.map +0 -1
- package/dist/clientToken.js +0 -10
- package/dist/clientToken.js.map +0 -1
- package/dist/components/modules/skeleton/map-skeleton.js +0 -50
- package/dist/components/modules/skeleton/map-skeleton.js.map +0 -1
- package/dist/node_modules/@algolia/client-common/dist/common.js +0 -541
- package/dist/node_modules/@algolia/client-common/dist/common.js.map +0 -1
- package/dist/node_modules/@algolia/requester-browser-xhr/dist/requester.xhr.js +0 -4
- package/dist/node_modules/@algolia/requester-browser-xhr/dist/requester.xhr.js.map +0 -1
- package/dist/node_modules/@algolia/requester-node-http/dist/requester.http.js +0 -82
- package/dist/node_modules/@algolia/requester-node-http/dist/requester.http.js.map +0 -1
- package/dist/node_modules/algoliasearch/dist/lite/builds/browser.js +0 -272
- package/dist/node_modules/algoliasearch/dist/lite/builds/browser.js.map +0 -1
- package/dist/node_modules/algoliasearch/dist/lite/builds/node.js +0 -269
- package/dist/node_modules/algoliasearch/dist/lite/builds/node.js.map +0 -1
- package/dist/node_modules/fuse.js/dist/fuse.js +0 -1779
- package/dist/node_modules/fuse.js/dist/fuse.js.map +0 -1
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +0 -2580
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +0 -1
- package/dist/services/configService.js +0 -15
- package/dist/services/configService.js.map +0 -1
- package/dist/services/listingAggregatorService.js +0 -41
- package/dist/services/listingAggregatorService.js.map +0 -1
- package/dist/services/listingEntityService.js +0 -16
- package/dist/services/listingEntityService.js.map +0 -1
- package/dist/services/listingService.js +0 -15
- package/dist/services/listingService.js.map +0 -1
|
@@ -4,9 +4,6 @@ import { generateFilterOptions, applyFilters, filterListingsByLocation } from '~
|
|
|
4
4
|
import { getStorageObject, setStorageObject } from '~/util/localStorageUtil';
|
|
5
5
|
import { updateURLWithFilters, filtersFromURL } from '~/util/urlFilterUtil';
|
|
6
6
|
|
|
7
|
-
import { getListingEntities } from "~/services/listingEntityService";
|
|
8
|
-
import fetchListings from '~/services/listingAggregatorService';
|
|
9
|
-
|
|
10
7
|
import { Listing } from '~/types/Listings';
|
|
11
8
|
import { ListingEntity } from '~/types/ListingEntity';
|
|
12
9
|
import { Recruiter } from '~/types/Recruiter';
|
|
@@ -273,12 +270,12 @@ export const MapListProvider: React.FC<MapListProviderProps> = ({
|
|
|
273
270
|
|
|
274
271
|
async function fetchEntities() {
|
|
275
272
|
try {
|
|
276
|
-
|
|
277
|
-
if (getListingEntitiesCallback) {
|
|
278
|
-
|
|
279
|
-
} else {
|
|
280
|
-
fetchedEntities = await getListingEntities(`${commuteLocation.lat}, ${commuteLocation.lng}`);
|
|
273
|
+
// Only fetch if callback is provided
|
|
274
|
+
if (!getListingEntitiesCallback) {
|
|
275
|
+
return;
|
|
281
276
|
}
|
|
277
|
+
|
|
278
|
+
const fetchedEntities = await getListingEntitiesCallback(`${commuteLocation.lat}, ${commuteLocation.lng}`);
|
|
282
279
|
setListingEntities(fetchedEntities);
|
|
283
280
|
// Update travelTime on listings
|
|
284
281
|
const newFilteredListings: Listing[] = [...filteredListings];
|
|
@@ -306,42 +303,42 @@ export const MapListProvider: React.FC<MapListProviderProps> = ({
|
|
|
306
303
|
fetchEntities();
|
|
307
304
|
}, [commuteLocation, allListings, siteConfig.companyId, getListingEntitiesCallback, noEntities]);
|
|
308
305
|
|
|
306
|
+
// Set listings from passed-in data
|
|
309
307
|
useEffect(() => {
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
308
|
+
if (!listings || listings.length === 0) {
|
|
309
|
+
setLoading(false);
|
|
310
|
+
return;
|
|
313
311
|
}
|
|
314
312
|
|
|
313
|
+
setLoading(true);
|
|
314
|
+
|
|
315
315
|
try {
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
entitiesByKey,
|
|
319
|
-
distinctItems
|
|
320
|
-
} = await fetchListings(commuteLocation, entities, listings, getListingEntitiesCallback, noEntities);
|
|
316
|
+
// Apply default filters if provided
|
|
317
|
+
let processedListings = listings;
|
|
321
318
|
if (defaultFilters) {
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
319
|
+
processedListings = listings.filter(listing => {
|
|
320
|
+
if (!listing.fields) return false;
|
|
321
|
+
|
|
322
|
+
return Object.keys(defaultFilters).every(filterKey => {
|
|
323
|
+
const filterValues = defaultFilters[filterKey as keyof typeof defaultFilters];
|
|
324
|
+
const listingValue = listing.fields ? listing.fields[filterKey as keyof typeof listing.fields] : null;
|
|
325
|
+
return filterValues.includes(listingValue);
|
|
326
|
+
});
|
|
329
327
|
});
|
|
330
|
-
});
|
|
331
|
-
setAllListings(filteredListings);
|
|
332
|
-
} else {
|
|
333
|
-
setAllListings(listingsResult);
|
|
334
|
-
}
|
|
335
|
-
console.log('handleFetchListings: Set allListings to', listingsResult.length, 'items');
|
|
336
|
-
setListingEntities(entitiesByKey);
|
|
337
|
-
setMapItems(distinctItems);
|
|
338
|
-
} catch (error) {
|
|
339
|
-
console.log(error);
|
|
340
328
|
}
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
329
|
+
|
|
330
|
+
setAllListings(processedListings);
|
|
331
|
+
console.log('Set allListings to', processedListings.length, 'items');
|
|
332
|
+
|
|
333
|
+
// Map items will be set when entities are processed
|
|
334
|
+
// For now, just set empty object - will be populated when entities arrive
|
|
335
|
+
setMapItems({});
|
|
336
|
+
} catch (error) {
|
|
337
|
+
console.error('Error processing listings:', error);
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
setLoading(false);
|
|
341
|
+
}, [listings, defaultFilters]);
|
|
345
342
|
|
|
346
343
|
useEffect(() => {
|
|
347
344
|
const processListings = async () => {
|
package/src/index.js
CHANGED
package/dist/apis/hcApi.js
DELETED
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { getClientAuthKey } from '../clientToken.js';
|
|
2
|
-
|
|
3
|
-
const baseURL = "https://qat-api.myhirecontrol.com";
|
|
4
|
-
const memoryStorage = {
|
|
5
|
-
authToken: null,
|
|
6
|
-
tokenExpiration: null
|
|
7
|
-
};
|
|
8
|
-
function setStorage(key, value) {
|
|
9
|
-
try {
|
|
10
|
-
sessionStorage.setItem(key, value);
|
|
11
|
-
}
|
|
12
|
-
catch (error) {
|
|
13
|
-
memoryStorage[key] = value;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
function getStorage(key) {
|
|
17
|
-
try {
|
|
18
|
-
return sessionStorage.getItem(key) || memoryStorage[key];
|
|
19
|
-
}
|
|
20
|
-
catch (error) {
|
|
21
|
-
return memoryStorage[key];
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
const login = async () => {
|
|
25
|
-
const clientAuthKey = getClientAuthKey();
|
|
26
|
-
try {
|
|
27
|
-
const response = await fetch(`${baseURL}/auth/login`, {
|
|
28
|
-
method: 'POST',
|
|
29
|
-
headers: {
|
|
30
|
-
'Content-Type': 'application/json'
|
|
31
|
-
},
|
|
32
|
-
body: JSON.stringify({
|
|
33
|
-
clientAuthKey: clientAuthKey
|
|
34
|
-
})
|
|
35
|
-
});
|
|
36
|
-
if (!response.ok) {
|
|
37
|
-
throw new Error('Login failed');
|
|
38
|
-
}
|
|
39
|
-
const data = await response.json();
|
|
40
|
-
if (data.token && data.expiration) {
|
|
41
|
-
setStorage('authToken', data.token);
|
|
42
|
-
setStorage('tokenExpiration', data.expiration);
|
|
43
|
-
return { token: data.token, expiration: data.expiration };
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
throw new Error('Invalid login response');
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
console.error('Login failed:', error);
|
|
51
|
-
throw error;
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
const fetchWithAuth = async (url, options = {}) => {
|
|
55
|
-
let token = getStorage('authToken');
|
|
56
|
-
const expirationDateTime = getStorage('tokenExpiration');
|
|
57
|
-
const currentTime = new Date();
|
|
58
|
-
if (!token || !expirationDateTime || new Date(expirationDateTime) <= currentTime) {
|
|
59
|
-
const authResponse = await login();
|
|
60
|
-
token = authResponse.token;
|
|
61
|
-
}
|
|
62
|
-
const headers = new Headers(options.headers || {});
|
|
63
|
-
headers.append('Authorization', `Bearer ${token}`);
|
|
64
|
-
const finalOptions = {
|
|
65
|
-
...options,
|
|
66
|
-
headers
|
|
67
|
-
};
|
|
68
|
-
const response = await fetch(`${baseURL}${url}`, finalOptions);
|
|
69
|
-
if (!response.ok)
|
|
70
|
-
throw new Error('Network response was not ok.');
|
|
71
|
-
return response;
|
|
72
|
-
};
|
|
73
|
-
var api = {
|
|
74
|
-
get: async (url) => {
|
|
75
|
-
const response = await fetchWithAuth(url);
|
|
76
|
-
return await response.json();
|
|
77
|
-
},
|
|
78
|
-
post: async (url, data) => {
|
|
79
|
-
const response = await fetchWithAuth(url, {
|
|
80
|
-
method: 'POST',
|
|
81
|
-
headers: {
|
|
82
|
-
'Content-Type': 'application/json'
|
|
83
|
-
},
|
|
84
|
-
body: JSON.stringify(data)
|
|
85
|
-
});
|
|
86
|
-
return await response.json();
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
export { api as default };
|
|
91
|
-
//# sourceMappingURL=hcApi.js.map
|
package/dist/apis/hcApi.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hcApi.js","sources":["../../src/apis/hcApi.ts"],"sourcesContent":["import { getClientAuthKey } from '~/clientToken';\nconst baseURL = process.env.HC_API_BASE_URL as string;\n\ninterface MemoryStorage {\n\tauthToken: string | null;\n\ttokenExpiration: string | null;\n}\n\nconst memoryStorage: MemoryStorage = {\n\tauthToken: null,\n\ttokenExpiration: null\n};\n\nfunction setStorage(key: keyof MemoryStorage, value: string): void {\n\ttry {\n\t\tsessionStorage.setItem(key, value);\n\t} catch (error) {\n\t\tmemoryStorage[key] = value;\n\t}\n}\n\nfunction getStorage(key: keyof MemoryStorage): string | null {\n\ttry {\n\t\treturn sessionStorage.getItem(key) || memoryStorage[key];\n\t} catch (error) {\n\t\treturn memoryStorage[key];\n\t}\n}\n\ninterface AuthResponse {\n\ttoken: string;\n\texpiration: string;\n}\n\nconst login = async (): Promise<AuthResponse> => {\n\tconst clientAuthKey = getClientAuthKey();\n\n\ttry {\n\t\tconst response = await fetch(`${baseURL}/auth/login`, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json'\n\t\t\t},\n\t\t\tbody: JSON.stringify({\n\t\t\t\tclientAuthKey: clientAuthKey\n\t\t\t})\n\t\t});\n\n\t\tif (!response.ok) {\n\t\t\tthrow new Error('Login failed');\n\t\t}\n\n\t\tconst data = await response.json();\n\n\t\tif (data.token && data.expiration) {\n\t\t\tsetStorage('authToken', data.token);\n\t\t\tsetStorage('tokenExpiration', data.expiration);\n\t\t\treturn { token: data.token, expiration: data.expiration };\n\t\t} else {\n\t\t\tthrow new Error('Invalid login response');\n\t\t}\n\t} catch (error) {\n\t\tconsole.error('Login failed:', error);\n\t\tthrow error;\n\t}\n};\n\nconst fetchWithAuth = async (url: string, options: RequestInit = {}): Promise<Response> => {\n\tlet token = getStorage('authToken');\n\n\tconst expirationDateTime = getStorage('tokenExpiration');\n\tconst currentTime = new Date();\n\n\tif (!token || !expirationDateTime || new Date(expirationDateTime) <= currentTime) {\n\t\tconst authResponse = await login();\n\t\ttoken = authResponse.token;\n\t}\n\n\tconst headers = new Headers(options.headers || {});\n\theaders.append('Authorization', `Bearer ${token}`);\n\n\tconst finalOptions = {\n\t\t...options,\n\t\theaders\n\t};\n\n\tconst response = await fetch(`${baseURL}${url}`, finalOptions);\n\n\tif (!response.ok) throw new Error('Network response was not ok.');\n\n\treturn response;\n};\n\nexport default {\n\tget: async <T>(url: string): Promise<T> => {\n\t\tconst response = await fetchWithAuth(url);\n\t\treturn await response.json() as T;\n\t},\n\tpost: async <T>(url: string, data: any): Promise<T> => {\n\t\tconst response = await fetchWithAuth(url, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/json'\n\t\t\t},\n\t\t\tbody: JSON.stringify(data)\n\t\t});\n\t\treturn await response.json() as T;\n\t}\n};\n"],"names":[],"mappings":"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"}
|
package/dist/clientToken.js
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
var clientAuthKey = null;
|
|
2
|
-
var setClientAuthKey = function setClientAuthKey(key) {
|
|
3
|
-
clientAuthKey = key;
|
|
4
|
-
};
|
|
5
|
-
var getClientAuthKey = function getClientAuthKey() {
|
|
6
|
-
return clientAuthKey;
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
export { getClientAuthKey, setClientAuthKey };
|
|
10
|
-
//# sourceMappingURL=clientToken.js.map
|
package/dist/clientToken.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"clientToken.js","sources":["../src/clientToken.js"],"sourcesContent":["let clientAuthKey = null;\n\nexport const setClientAuthKey = key => {\n\tclientAuthKey = key;\n};\n\nexport const getClientAuthKey = () => {\n\treturn clientAuthKey;\n};\n"],"names":["clientAuthKey","setClientAuthKey","key","getClientAuthKey"],"mappings":"AAAA,IAAIA,aAAa,GAAG,IAAI,CAAA;IAEXC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGC,GAAG,EAAI;AACtCF,EAAAA,aAAa,GAAGE,GAAG,CAAA;AACpB,EAAC;IAEYC,gBAAgB,GAAG,SAAnBA,gBAAgBA,GAAS;AACrC,EAAA,OAAOH,aAAa,CAAA;AACrB;;;;"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import Grid from '../grid.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Simple skeleton component that renders the basic structure
|
|
6
|
-
* Shows placeholder boxes for filters, list, and map
|
|
7
|
-
*/
|
|
8
|
-
var MapSkeleton = function MapSkeleton(_ref) {
|
|
9
|
-
var _ref$hideFilters = _ref.hideFilters,
|
|
10
|
-
hideFilters = _ref$hideFilters === void 0 ? false : _ref$hideFilters,
|
|
11
|
-
_ref$showMap = _ref.showMap,
|
|
12
|
-
showMap = _ref$showMap === void 0 ? true : _ref$showMap,
|
|
13
|
-
_ref$containerStyle = _ref.containerStyle,
|
|
14
|
-
containerStyle = _ref$containerStyle === void 0 ? {
|
|
15
|
-
height: '100vh'
|
|
16
|
-
} : _ref$containerStyle,
|
|
17
|
-
_ref$mapPosition = _ref.mapPosition,
|
|
18
|
-
mapPosition = _ref$mapPosition === void 0 ? 'right' : _ref$mapPosition;
|
|
19
|
-
var isMapOnTop = mapPosition === 'top';
|
|
20
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
21
|
-
className: "hc-bundle",
|
|
22
|
-
style: containerStyle
|
|
23
|
-
}, /*#__PURE__*/React.createElement(Grid, {
|
|
24
|
-
as: "section",
|
|
25
|
-
id: "job-search-interface",
|
|
26
|
-
columns: hideFilters ? 'hc-grid-cols-1' : 'md:hc-grid-cols-[1fr_2.5fr] lg:hc-grid-cols-[1fr_3.5fr]',
|
|
27
|
-
gap: "hc-gap-0",
|
|
28
|
-
autoRows: false,
|
|
29
|
-
className: 'hc-items-stretch hc-divide-x hc-divide-uiAccent/20'
|
|
30
|
-
}, !hideFilters && /*#__PURE__*/React.createElement(Grid.Item, {
|
|
31
|
-
className: "hc-bg-gray-50 hc-animate-pulse hc-hidden md:hc-block"
|
|
32
|
-
}), /*#__PURE__*/React.createElement(Grid.Item, null, showMap ? /*#__PURE__*/React.createElement("div", {
|
|
33
|
-
className: "hc-h-full hc-flex ".concat(isMapOnTop ? 'hc-flex-col' : 'hc-flex-col md:hc-flex-row')
|
|
34
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
35
|
-
className: "hc-flex-1 hc-bg-white hc-animate-pulse ".concat(isMapOnTop ? 'hc-order-2' : 'hc-order-2 md:hc-order-1')
|
|
36
|
-
}), /*#__PURE__*/React.createElement("div", {
|
|
37
|
-
className: "hc-flex-1 hc-bg-gray-100 hc-animate-pulse ".concat(isMapOnTop ? 'hc-order-1' : 'hc-order-1 md:hc-order-2'),
|
|
38
|
-
style: {
|
|
39
|
-
minHeight: '300px'
|
|
40
|
-
}
|
|
41
|
-
})) :
|
|
42
|
-
/*#__PURE__*/
|
|
43
|
-
/* Just List Box */
|
|
44
|
-
React.createElement("div", {
|
|
45
|
-
className: "hc-h-full hc-bg-white hc-animate-pulse"
|
|
46
|
-
}))));
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
export { MapSkeleton as default };
|
|
50
|
-
//# sourceMappingURL=map-skeleton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"map-skeleton.js","sources":["../../../../src/components/modules/skeleton/map-skeleton.js"],"sourcesContent":["import React from 'react';\nimport Grid from '~/components/modules/grid';\n\n/**\n * Simple skeleton component that renders the basic structure\n * Shows placeholder boxes for filters, list, and map\n */\nconst MapSkeleton = ({ \n\thideFilters = false, \n\tshowMap = true, \n\tcontainerStyle = { height: '100vh' },\n\tmapPosition = 'right'\n}) => {\n\tconst isMapOnTop = mapPosition === 'top';\n\t\n\treturn (\n\t\t<div className=\"hc-bundle\" style={containerStyle}>\n\t\t\t<Grid\n\t\t\t\tas='section'\n\t\t\t\tid='job-search-interface'\n\t\t\t\tcolumns={hideFilters ? 'hc-grid-cols-1' : 'md:hc-grid-cols-[1fr_2.5fr] lg:hc-grid-cols-[1fr_3.5fr]'}\n\t\t\t\tgap='hc-gap-0'\n\t\t\t\tautoRows={false}\n\t\t\t\tclassName={'hc-items-stretch hc-divide-x hc-divide-uiAccent/20'}\n\t\t\t>\n\t\t\t\t{/* Filter Column */}\n\t\t\t\t{!hideFilters && (\n\t\t\t\t\t<Grid.Item className='hc-bg-gray-50 hc-animate-pulse hc-hidden md:hc-block' />\n\t\t\t\t)}\n\t\t\t\t\n\t\t\t\t{/* Main Content Area */}\n\t\t\t\t<Grid.Item>\n\t\t\t\t\t{showMap ? (\n\t\t\t\t\t\t<div className={`hc-h-full hc-flex ${isMapOnTop ? 'hc-flex-col' : 'hc-flex-col md:hc-flex-row'}`}>\n\t\t\t\t\t\t\t{/* List Box */}\n\t\t\t\t\t\t\t<div className={`hc-flex-1 hc-bg-white hc-animate-pulse ${isMapOnTop ? 'hc-order-2' : 'hc-order-2 md:hc-order-1'}`} />\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t{/* Map Box */}\n\t\t\t\t\t\t\t<div className={`hc-flex-1 hc-bg-gray-100 hc-animate-pulse ${isMapOnTop ? 'hc-order-1' : 'hc-order-1 md:hc-order-2'}`} style={{ minHeight: '300px' }} />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t/* Just List Box */\n\t\t\t\t\t\t<div className=\"hc-h-full hc-bg-white hc-animate-pulse\" />\n\t\t\t\t\t)}\n\t\t\t\t</Grid.Item>\n\t\t\t</Grid>\n\t\t</div>\n\t);\n};\n\nexport default MapSkeleton;\n"],"names":["MapSkeleton","_ref","_ref$hideFilters","hideFilters","_ref$showMap","showMap","_ref$containerStyle","containerStyle","height","_ref$mapPosition","mapPosition","isMapOnTop","React","createElement","className","style","Grid","as","id","columns","gap","autoRows","Item","concat","minHeight"],"mappings":";;;AAGA;AACA;AACA;AACA;AACA,IAAMA,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAKX;AAAA,EAAA,IAAAC,gBAAA,GAAAD,IAAA,CAJLE,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,gBAAA;IAAAE,YAAA,GAAAH,IAAA,CACnBI,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,YAAA;IAAAE,mBAAA,GAAAL,IAAA,CACdM,cAAc;IAAdA,cAAc,GAAAD,mBAAA,KAAG,KAAA,CAAA,GAAA;AAAEE,MAAAA,MAAM,EAAE,OAAA;AAAQ,KAAC,GAAAF,mBAAA;IAAAG,gBAAA,GAAAR,IAAA,CACpCS,WAAW;AAAXA,IAAAA,WAAW,GAAAD,gBAAA,KAAG,KAAA,CAAA,GAAA,OAAO,GAAAA,gBAAA,CAAA;AAErB,EAAA,IAAME,UAAU,GAAGD,WAAW,KAAK,KAAK,CAAA;EAExC,oBACCE,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,WAAW;AAACC,IAAAA,KAAK,EAAER,cAAAA;AAAe,GAAA,eAChDK,KAAA,CAAAC,aAAA,CAACG,IAAI,EAAA;AACJC,IAAAA,EAAE,EAAC,SAAS;AACZC,IAAAA,EAAE,EAAC,sBAAsB;AACzBC,IAAAA,OAAO,EAAEhB,WAAW,GAAG,gBAAgB,GAAG,yDAA0D;AACpGiB,IAAAA,GAAG,EAAC,UAAU;AACdC,IAAAA,QAAQ,EAAE,KAAM;AAChBP,IAAAA,SAAS,EAAE,oDAAA;GAGV,EAAA,CAACX,WAAW,iBACZS,KAAA,CAAAC,aAAA,CAACG,IAAI,CAACM,IAAI,EAAA;AAACR,IAAAA,SAAS,EAAC,sDAAA;AAAsD,GAAE,CAC7E,eAGDF,KAAA,CAAAC,aAAA,CAACG,IAAI,CAACM,IAAI,EACRjB,IAAAA,EAAAA,OAAO,gBACPO,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,uBAAAS,MAAA,CAAuBZ,UAAU,GAAG,aAAa,GAAG,4BAA4B,CAAA;GAE7FC,eAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,4CAAAS,MAAA,CAA4CZ,UAAU,GAAG,YAAY,GAAG,0BAA0B,CAAA;AAAG,GAAE,CAAC,eAGtHC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKC,SAAS,EAAA,4CAAA,CAAAS,MAAA,CAA+CZ,UAAU,GAAG,YAAY,GAAG,0BAA0B,CAAG;AAACI,IAAAA,KAAK,EAAE;AAAES,MAAAA,SAAS,EAAE,OAAA;AAAQ,KAAA;AAAE,GAAE,CACnJ,CAAC;AAAA;AAEN;AACAZ,EAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,wCAAA;GAA0C,CAEhD,CACN,CACF,CAAC,CAAA;AAER;;;;"}
|