@abcagency/hc-ui-components 1.3.17 → 1.3.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.
Files changed (196) hide show
  1. package/dist/apis/hcApi.js +85 -183
  2. package/dist/apis/hcApi.js.map +1 -1
  3. package/dist/components/HireControlMap.js +10 -5
  4. package/dist/components/HireControlMap.js.map +1 -1
  5. package/dist/components/modules/accordions/MapAccordionItem.js +10 -67
  6. package/dist/components/modules/accordions/MapAccordionItem.js.map +1 -1
  7. package/dist/components/modules/filter/index.js.map +1 -1
  8. package/dist/components/modules/filter/radio-item.js +1 -2
  9. package/dist/components/modules/filter/radio-item.js.map +1 -1
  10. package/dist/components/modules/filter/search.js +4 -4
  11. package/dist/components/modules/filter/search.js.map +1 -1
  12. package/dist/components/modules/jobListing/listing-details-container.js +45 -0
  13. package/dist/components/modules/jobListing/listing-details-container.js.map +1 -0
  14. package/dist/components/modules/jobListing/listing-details.js +24 -24
  15. package/dist/components/modules/jobListing/listing-details.js.map +1 -1
  16. package/dist/components/modules/{maps/list → list}/field-mapper.js +8 -7
  17. package/dist/components/modules/list/field-mapper.js.map +1 -0
  18. package/dist/components/modules/{maps/list → list}/header-item.js +2 -2
  19. package/dist/components/modules/list/header-item.js.map +1 -0
  20. package/dist/components/modules/{maps/list → list}/header.js +6 -4
  21. package/dist/components/modules/list/header.js.map +1 -0
  22. package/dist/components/modules/list/index.js +36 -0
  23. package/dist/components/modules/list/index.js.map +1 -0
  24. package/dist/components/modules/{maps/list → list}/item-expand-card/index.js +3 -1
  25. package/dist/components/modules/list/item-expand-card/index.js.map +1 -0
  26. package/dist/components/modules/{maps/list → list}/item-expand-card/recruiter-contact-nav.js +2 -2
  27. package/dist/components/modules/list/item-expand-card/recruiter-contact-nav.js.map +1 -0
  28. package/dist/components/modules/{maps/list → list}/item-expand-card/recruiter-details.js +1 -1
  29. package/dist/components/modules/list/item-expand-card/recruiter-details.js.map +1 -0
  30. package/dist/components/modules/list/item-expand-card/recruiter-headshot.js.map +1 -0
  31. package/dist/components/modules/list/item-list.js +28 -0
  32. package/dist/components/modules/list/item-list.js.map +1 -0
  33. package/dist/components/modules/list/list-item/index.js +75 -0
  34. package/dist/components/modules/list/list-item/index.js.map +1 -0
  35. package/dist/components/modules/list/list-item/list-item-container.js +47 -0
  36. package/dist/components/modules/list/list-item/list-item-container.js.map +1 -0
  37. package/dist/components/modules/{maps/list/list-item/index.js → list/list-item/list-item.js} +29 -33
  38. package/dist/components/modules/list/list-item/list-item.js.map +1 -0
  39. package/dist/components/modules/maps/map-list.js +3 -3
  40. package/dist/components/modules/maps/map-list.js.map +1 -1
  41. package/dist/constants/eventTypes.js +1 -1
  42. package/dist/constants/eventTypes.js.map +1 -1
  43. package/dist/contexts/mapContext.js +84 -113
  44. package/dist/contexts/mapContext.js.map +1 -1
  45. package/dist/contexts/mapListContext.js +181 -290
  46. package/dist/contexts/mapListContext.js.map +1 -1
  47. package/dist/contexts/trackEventContext.js +1 -1
  48. package/dist/services/configService.js +10 -28
  49. package/dist/services/configService.js.map +1 -1
  50. package/dist/services/googlePlacesNearbyService.js +33 -58
  51. package/dist/services/googlePlacesNearbyService.js.map +1 -1
  52. package/dist/services/listingAggregatorService.js +35 -75
  53. package/dist/services/listingAggregatorService.js.map +1 -1
  54. package/dist/services/listingEntityService.js +10 -31
  55. package/dist/services/listingEntityService.js.map +1 -1
  56. package/dist/services/listingService.js +26 -60
  57. package/dist/services/listingService.js.map +1 -1
  58. package/dist/services/recruiterService.js +11 -31
  59. package/dist/services/recruiterService.js.map +1 -1
  60. package/dist/types/apis/hcApi.d.ts +5 -0
  61. package/dist/types/clientToken.d.ts +2 -0
  62. package/dist/types/components/modules/accordions/MapAccordionItem.d.ts +9 -0
  63. package/dist/types/components/modules/accordions/default.d.ts +19 -0
  64. package/dist/types/components/modules/buttons/button-group-apply.d.ts +24 -0
  65. package/dist/types/components/modules/buttons/commute-pill.d.ts +5 -0
  66. package/dist/types/components/modules/buttons/default.d.ts +48 -0
  67. package/dist/types/components/modules/buttons/pill-wrapper.d.ts +3 -0
  68. package/dist/types/components/modules/dialogs/apply-dialog.d.ts +8 -0
  69. package/dist/types/components/modules/filter/sort.d.ts +8 -0
  70. package/dist/types/components/modules/grid.d.ts +8 -0
  71. package/dist/types/components/modules/icon.d.ts +10 -0
  72. package/dist/types/components/modules/jobListing/listing-details-container.d.ts +6 -0
  73. package/dist/types/components/modules/jobListing/listing-details.d.ts +18 -0
  74. package/dist/types/components/modules/list/field-mapper.d.ts +10 -0
  75. package/dist/types/components/modules/list/header-item.d.ts +11 -0
  76. package/dist/types/components/modules/list/header.d.ts +11 -0
  77. package/dist/types/components/modules/list/index.d.ts +9 -0
  78. package/dist/types/components/modules/list/item-expand-card/index.d.ts +7 -0
  79. package/dist/types/components/modules/list/item-expand-card/recruiter-contact-nav.d.ts +17 -0
  80. package/dist/types/components/modules/list/item-expand-card/recruiter-details.d.ts +21 -0
  81. package/dist/types/components/modules/list/item-expand-card/recruiter-headshot.d.ts +8 -0
  82. package/dist/types/components/modules/list/item-list.d.ts +21 -0
  83. package/dist/types/components/modules/list/list-item/index.d.ts +12 -0
  84. package/dist/types/components/modules/list/list-item/list-item-container.d.ts +14 -0
  85. package/dist/types/components/modules/list/list-item/list-item.d.ts +3 -0
  86. package/dist/types/constants/eventTypes.d.ts +13 -0
  87. package/dist/types/contexts/mapContext.d.ts +29 -0
  88. package/dist/types/contexts/mapListContext.d.ts +58 -0
  89. package/dist/types/contexts/trackEventContext.d.ts +6 -0
  90. package/dist/types/enums/SectionType.d.ts +9 -0
  91. package/dist/types/hooks/useList.d.ts +13 -0
  92. package/dist/types/services/configService.d.ts +6 -0
  93. package/dist/types/services/googlePlacesNearbyService.d.ts +5 -0
  94. package/dist/types/services/listingAggregatorService.d.ts +12 -0
  95. package/dist/types/services/listingEntityService.d.ts +6 -0
  96. package/dist/types/services/listingService.d.ts +9 -0
  97. package/dist/types/services/recruiterService.d.ts +6 -0
  98. package/dist/types/types/Address.d.ts +7 -0
  99. package/dist/types/types/ContentSection.d.ts +8 -0
  100. package/dist/types/types/GetListingParams.d.ts +8 -0
  101. package/dist/types/types/LatLng.d.ts +4 -0
  102. package/dist/types/types/ListingEntity.d.ts +10 -0
  103. package/dist/types/types/ListingFields.d.ts +20 -0
  104. package/dist/types/types/Listings.d.ts +31 -0
  105. package/dist/types/types/Recruiter.d.ts +9 -0
  106. package/dist/types/types/SimilarListing.d.ts +24 -0
  107. package/dist/types/types/config/Colors.d.ts +8 -0
  108. package/dist/types/types/config/MapConfig.d.ts +29 -0
  109. package/dist/types/types/config/PointsOfInterestConfig.d.ts +13 -0
  110. package/dist/types/types/config/SearchConfig.d.ts +4 -0
  111. package/dist/types/util/filterUtil.d.ts +28 -0
  112. package/dist/types/util/loading.d.ts +3 -0
  113. package/dist/types/util/localStorageUtil.d.ts +3 -0
  114. package/dist/types/util/mapUtil.d.ts +15 -0
  115. package/dist/types/util/sortUtil.d.ts +1 -0
  116. package/dist/types/util/stringUtils.d.ts +1 -0
  117. package/dist/util/filterUtil.js +34 -10
  118. package/dist/util/filterUtil.js.map +1 -1
  119. package/dist/util/localStorageUtil.js +37 -28
  120. package/dist/util/localStorageUtil.js.map +1 -1
  121. package/dist/util/mapUtil.js.map +1 -1
  122. package/package.json +22 -14
  123. package/rollup.config.mjs +23 -19
  124. package/src/apis/{hcApi.js → hcApi.ts} +27 -11
  125. package/src/components/HireControlMap.js +132 -129
  126. package/src/components/modules/accordions/MapAccordionItem.js +32 -74
  127. package/src/components/modules/filter/index.js +89 -89
  128. package/src/components/modules/filter/radio-item.js +0 -1
  129. package/src/components/modules/filter/search.js +93 -92
  130. package/src/components/modules/jobListing/listing-details-container.js +40 -0
  131. package/src/components/modules/jobListing/listing-details.js +209 -99
  132. package/src/components/modules/{maps/list → list}/field-mapper.js +114 -112
  133. package/src/components/modules/{maps/list → list}/header.js +49 -47
  134. package/src/components/modules/list/index.tsx +83 -0
  135. package/src/components/modules/{maps/list → list}/item-expand-card/index.js +24 -22
  136. package/src/components/modules/list/item-list.tsx +198 -0
  137. package/src/components/modules/list/list-item/index.js +70 -0
  138. package/src/components/modules/list/list-item/list-item-container.js +43 -0
  139. package/src/components/modules/{maps/list/list-item/index.js → list/list-item/list-item.js} +129 -135
  140. package/src/components/modules/maps/map-list.js +74 -74
  141. package/src/constants/eventTypes.js +13 -13
  142. package/src/contexts/mapContext.tsx +129 -0
  143. package/src/contexts/mapListContext.tsx +297 -0
  144. package/src/enums/SectionType.ts +9 -0
  145. package/src/services/{configService.js → configService.ts} +16 -16
  146. package/src/services/{googlePlacesNearbyService.js → googlePlacesNearbyService.ts} +11 -2
  147. package/src/services/listingAggregatorService.ts +76 -0
  148. package/src/services/listingEntityService.ts +16 -0
  149. package/src/services/listingService.ts +40 -0
  150. package/src/services/{recruiterService.js → recruiterService.ts} +18 -17
  151. package/src/types/Address.ts +7 -0
  152. package/src/types/ContentSection.ts +9 -0
  153. package/src/types/GetListingParams.ts +8 -0
  154. package/src/types/LatLng.ts +4 -0
  155. package/src/types/ListingEntity.ts +11 -0
  156. package/src/types/ListingFields.ts +20 -0
  157. package/src/types/Listings.ts +32 -0
  158. package/src/types/Recruiter.ts +9 -0
  159. package/src/types/SimilarListing.ts +24 -0
  160. package/src/types/config/Colors.ts +8 -0
  161. package/src/types/config/MapConfig.ts +30 -0
  162. package/src/types/config/PointsOfInterestConfig.ts +13 -0
  163. package/src/types/config/SearchConfig.ts +4 -0
  164. package/src/util/filterUtil.js +50 -6
  165. package/src/util/localStorageUtil.ts +34 -0
  166. package/src/util/mapUtil.js +91 -91
  167. package/tsconfig.json +23 -0
  168. package/dist/components/modules/maps/list/field-mapper.js.map +0 -1
  169. package/dist/components/modules/maps/list/header-item.js.map +0 -1
  170. package/dist/components/modules/maps/list/header.js.map +0 -1
  171. package/dist/components/modules/maps/list/index.js +0 -102
  172. package/dist/components/modules/maps/list/index.js.map +0 -1
  173. package/dist/components/modules/maps/list/item-expand-card/index.js.map +0 -1
  174. package/dist/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js.map +0 -1
  175. package/dist/components/modules/maps/list/item-expand-card/recruiter-details.js.map +0 -1
  176. package/dist/components/modules/maps/list/item-expand-card/recruiter-headshot.js.map +0 -1
  177. package/dist/components/modules/maps/list/list-item/index.js.map +0 -1
  178. package/dist/services/_virtual/_rollupPluginBabelHelpers.js +0 -372
  179. package/dist/services/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  180. package/dist/services/apis/hcApi.js +0 -189
  181. package/dist/services/apis/hcApi.js.map +0 -1
  182. package/dist/services/clientToken.js +0 -7
  183. package/dist/services/clientToken.js.map +0 -1
  184. package/dist/services/styles/index.css +0 -3
  185. package/src/components/modules/maps/list/index.js +0 -112
  186. package/src/contexts/mapContext.js +0 -101
  187. package/src/contexts/mapListContext.js +0 -242
  188. package/src/services/listingAggregatorService.js +0 -50
  189. package/src/services/listingEntityService.js +0 -15
  190. package/src/services/listingService.js +0 -26
  191. package/src/util/localStorageUtil.js +0 -27
  192. /package/dist/components/modules/{maps/list → list}/item-expand-card/recruiter-headshot.js +0 -0
  193. /package/src/components/modules/{maps/list → list}/header-item.js +0 -0
  194. /package/src/components/modules/{maps/list → list}/item-expand-card/recruiter-contact-nav.js +0 -0
  195. /package/src/components/modules/{maps/list → list}/item-expand-card/recruiter-details.js +0 -0
  196. /package/src/components/modules/{maps/list → list}/item-expand-card/recruiter-headshot.js +0 -0
@@ -0,0 +1,30 @@
1
+ import { Colors } from "./Colors";
2
+ import { PointsOfInterestConfig } from "./PointsOfInterestConfig";
3
+ import { SearchConfig } from "./SearchConfig";
4
+
5
+ export type MapConfig = {
6
+ title: string;
7
+ titleShort: string;
8
+ description: string;
9
+ jobsDomain: string;
10
+ useDetailsPostMessage: boolean;
11
+ author: string;
12
+ url: string;
13
+ logo: string;
14
+ companyName: string;
15
+ shareImage: string;
16
+ clientAuthKey: string;
17
+ colors: Colors;
18
+ hideLocations: boolean;
19
+ fieldsShown: string[];
20
+ fieldFiltersShown: string[];
21
+ locationFiltersShown: string[];
22
+ fieldNames: Record<string, string>;
23
+ specialFeatures: Record<string, string>;
24
+ searchConfig: SearchConfig;
25
+ internalApplyLink: string;
26
+ useApplyDialog: boolean;
27
+ pointsOfInterestConfig: PointsOfInterestConfig;
28
+ showMap: boolean;
29
+ companyId: string;
30
+ }
@@ -0,0 +1,13 @@
1
+ export type PointsOfInterestConfig = {
2
+ title: string;
3
+ pointsOfInterestNames: Record<string, string>;
4
+ pointsOfInterestIcons: Record<string, string>;
5
+ placeMarkerColors: {
6
+ innerFillColor: string;
7
+ innerStrokeColor: string;
8
+ outerFillColor: string;
9
+ outerStrokeColor: string;
10
+ };
11
+ placeMarkerSize: number;
12
+ placeMappings: Record<string, string[]>;
13
+ }
@@ -0,0 +1,4 @@
1
+ export type SearchConfig = {
2
+ label: string;
3
+ placeholder: string;
4
+ }
@@ -1,5 +1,7 @@
1
1
  import { getDistinctItemsByProximity } from '~/util/mapUtil';
2
2
 
3
+ import Fuse from 'fuse.js';
4
+
3
5
  export const getFilterOptions = (listings, filteredListings, field, excludeZeroCount = null) => {
4
6
  const options = new Set();
5
7
  listings.forEach(listing => {
@@ -70,7 +72,7 @@ export const generateFilterOptions = (
70
72
  allListings,
71
73
  siteConfig,
72
74
  filterOptions,
73
- parentField = null,
75
+ parentField,
74
76
  favorites
75
77
  ) => {
76
78
  if (allListings.length > 0) {
@@ -166,11 +168,7 @@ export const applyFilters = (
166
168
  }
167
169
  }
168
170
  if (query) {
169
- results = results.filter(listing =>
170
- Object.values(listing.fields)?.some(value =>
171
- value?.toString().toLowerCase().includes(query.toLowerCase())
172
- )
173
- );
171
+ results = searchResults(results, query);
174
172
  }
175
173
  const distinctItems = getDistinctItemsByProximity(results, listingEntities);
176
174
  if (hasFavorite) {
@@ -179,6 +177,52 @@ export const applyFilters = (
179
177
  return { filteredListings: results, mapItems: distinctItems };
180
178
  };
181
179
 
180
+ function searchResults(results, query) {
181
+ const fields = [
182
+ 'id',
183
+ 'fields.posted',
184
+ 'fields.subtitle',
185
+ 'fields.education',
186
+ 'fields.position',
187
+ 'fields.category',
188
+ 'fields.categoryclass',
189
+ 'fields.shift',
190
+ 'fields.citystate',
191
+ 'fields.city',
192
+ 'fields.state',
193
+ 'fields.schedule',
194
+ 'fields.customflag1',
195
+ 'fields.bonus',
196
+ 'fields.remote',
197
+ 'fields.useclientjoburl',
198
+ 'fields.datecreated',
199
+ 'fields.datelastedited'
200
+ ];
201
+
202
+ const options = {
203
+ includeScore: true,
204
+ threshold: 0.3,
205
+ keys: fields
206
+ };
207
+
208
+ const fuse = new Fuse(results, options);
209
+ const lowerCaseQuery = query.toLowerCase();
210
+ const queryTerms = lowerCaseQuery.split(' ');
211
+
212
+ const exactIdMatch = results.find(result => result.id.toString() === query);
213
+ if (exactIdMatch) {
214
+ return [exactIdMatch];
215
+ }
216
+
217
+ const fuseQuery = queryTerms.map(term => ({
218
+ $or: fields.map(field => ({ [field]: term }))
219
+ }));
220
+
221
+ const fuseResults = fuse.search({ $and: fuseQuery });
222
+
223
+ return fuseResults.map(result => result.item);
224
+ }
225
+
182
226
  export const filterListingsByLocation = (
183
227
  allListings,
184
228
  selectedLocation,
@@ -0,0 +1,34 @@
1
+ export const getStorageObject = <T>(item: string, defaultItem: T | null = null): T | null => {
2
+ if (typeof window === 'undefined') return defaultItem;
3
+ const storageItem = localStorage.getItem(item);
4
+ if (storageItem === null || storageItem === 'undefined') {
5
+ localStorage.removeItem(item);
6
+ return defaultItem;
7
+ }
8
+ try {
9
+ return JSON.parse(storageItem) ?? defaultItem;
10
+ } catch (error) {
11
+ console.error(`Error parsing JSON for ${item}:`, error);
12
+ return defaultItem;
13
+ }
14
+ };
15
+
16
+ export const getStorageItem = (item: string, defaultItem: string | null = null): string | null => {
17
+ if (typeof window === 'undefined') return defaultItem;
18
+ const storageItem = localStorage.getItem(item);
19
+ if (storageItem === null || storageItem === 'undefined') {
20
+ localStorage.removeItem(item);
21
+ return defaultItem;
22
+ }
23
+ return storageItem ?? defaultItem;
24
+ };
25
+
26
+ export const setStorageObject = (key: string, item: any): void => {
27
+ if (typeof window === 'undefined') return;
28
+ if (item === undefined) return;
29
+ try {
30
+ localStorage.setItem(key, JSON.stringify(item));
31
+ } catch (err) {
32
+ console.error(`Error setting item ${key} in localStorage:`, err);
33
+ }
34
+ };
@@ -1,91 +1,91 @@
1
- export const getDistinctItemsByProximity = (items, listingEntitiesDetails) => {
2
- const clusters = {};
3
-
4
- if (!listingEntitiesDetails) return [];
5
-
6
- const closeItemPairs = findCloseItems(listingEntitiesDetails);
7
- if (closeItemPairs.length > 0) {
8
- listingEntitiesDetails = adjustItemPositions(
9
- listingEntitiesDetails,
10
- closeItemPairs
11
- );
12
- }
13
-
14
- items?.forEach(item => {
15
- if(item.entityId !== -1){
16
-
17
- const entityDetails = listingEntitiesDetails[item.entityId];
18
-
19
- if (!entityDetails) {
20
- console.error(`Details not found for entityId: ${item.entityId}`);
21
- return;
22
- }
23
-
24
- item.mapDetails = entityDetails;
25
-
26
- if (!clusters[item.entityId]) {
27
- clusters[item.entityId] = {
28
- ...item.mapDetails,
29
- items: { [item.id]: item }
30
- };
31
- } else {
32
- clusters[item.entityId].items[item.id] = item;
33
- }}
34
- });
35
-
36
- return Object.values(clusters);
37
- };
38
-
39
- export const findCloseItems = itemsObj => {
40
- const closeItems = [];
41
- const items = Object.values(itemsObj); // Convert object to array for iteration
42
- const proximityThreshold = 0.0001;
43
-
44
- for (let i = 0; i < items.length; i++) {
45
- for (let j = i + 1; j < items.length; j++) {
46
- const distanceLat = Math.abs(items[i].latitude - items[j].latitude);
47
- const distanceLng = Math.abs(items[i].longitude - items[j].longitude);
48
- if (
49
- distanceLat < proximityThreshold &&
50
- distanceLng < proximityThreshold
51
- ) {
52
- closeItems.push({ item1: items[i], item2: items[j] });
53
- }
54
- }
55
- }
56
-
57
- return closeItems;
58
- };
59
-
60
- export const adjustItemPositions = (itemsObj, closeItemPairs) => {
61
- const adjustmentValue = 0.0001;
62
- const adjustedItems = { ...itemsObj }; // Create a shallow copy of the object
63
-
64
- closeItemPairs.forEach(pair => {
65
- if (adjustedItems[pair.item1.id] && adjustedItems[pair.item2.id]) {
66
- adjustedItems[pair.item2.id].latitude += adjustmentValue;
67
- adjustedItems[pair.item2.id].longitude += adjustmentValue;
68
- }
69
- });
70
-
71
- return adjustedItems;
72
- };
73
-
74
- export const clusterOptions = (clusterGridSize, fillColor) => {
75
- return {
76
- gridSize: clusterGridSize,
77
- styles:[{
78
- url: createSvgDataUri(fillColor),
79
- textColor:'white',
80
- height: 40,
81
- width: 40
82
- }]
83
- };
84
- };
85
-
86
- function createSvgDataUri(fillColor) {
87
- const svg = `<svg width="50" height="50" xmlns="http://www.w3.org/2000/svg">
88
- <circle cx="25" cy="25" r="20" fill="${fillColor}" />
89
- </svg>`;
90
- return `data:image/svg+xml;base64,${btoa(svg)}`;
91
- }
1
+ export const getDistinctItemsByProximity = (items, listingEntitiesDetails) => {
2
+ const clusters = {};
3
+
4
+ if (!listingEntitiesDetails) return [];
5
+
6
+ const closeItemPairs = findCloseItems(listingEntitiesDetails);
7
+ if (closeItemPairs.length > 0) {
8
+ listingEntitiesDetails = adjustItemPositions(
9
+ listingEntitiesDetails,
10
+ closeItemPairs
11
+ );
12
+ }
13
+
14
+ items?.forEach(item => {
15
+ if(item.entityId !== -1){
16
+
17
+ const entityDetails = listingEntitiesDetails[item.entityId];
18
+
19
+ if (!entityDetails) {
20
+ console.error(`Details not found for entityId: ${item.entityId}`);
21
+ return;
22
+ }
23
+
24
+ item.mapDetails = entityDetails;
25
+
26
+ if (!clusters[item.entityId]) {
27
+ clusters[item.entityId] = {
28
+ ...item.mapDetails,
29
+ items: { [item.id]: item }
30
+ };
31
+ } else {
32
+ clusters[item.entityId].items[item.id] = item;
33
+ }}
34
+ });
35
+
36
+ return Object.values(clusters);
37
+ };
38
+
39
+ export const findCloseItems = itemsObj => {
40
+ const closeItems = [];
41
+ const items = Object.values(itemsObj); // Convert object to array for iteration
42
+ const proximityThreshold = 0.0001;
43
+
44
+ for (let i = 0; i < items.length; i++) {
45
+ for (let j = i + 1; j < items.length; j++) {
46
+ const distanceLat = Math.abs(items[i].latitude - items[j].latitude);
47
+ const distanceLng = Math.abs(items[i].longitude - items[j].longitude);
48
+ if (
49
+ distanceLat < proximityThreshold &&
50
+ distanceLng < proximityThreshold
51
+ ) {
52
+ closeItems.push({ item1: items[i], item2: items[j] });
53
+ }
54
+ }
55
+ }
56
+
57
+ return closeItems;
58
+ };
59
+
60
+ export const adjustItemPositions = (itemsObj, closeItemPairs) => {
61
+ const adjustmentValue = 0.0001;
62
+ const adjustedItems = { ...itemsObj }; // Create a shallow copy of the object
63
+
64
+ closeItemPairs.forEach(pair => {
65
+ if (adjustedItems[pair.item1.id] && adjustedItems[pair.item2.id]) {
66
+ adjustedItems[pair.item2.id].latitude += adjustmentValue;
67
+ adjustedItems[pair.item2.id].longitude += adjustmentValue;
68
+ }
69
+ });
70
+
71
+ return adjustedItems;
72
+ };
73
+
74
+ export const clusterOptions = (clusterGridSize, fillColor) => {
75
+ return {
76
+ gridSize: clusterGridSize,
77
+ styles:[{
78
+ url: createSvgDataUri(fillColor),
79
+ textColor:'white',
80
+ height: 40,
81
+ width: 40
82
+ }]
83
+ };
84
+ };
85
+
86
+ function createSvgDataUri(fillColor) {
87
+ const svg = `<svg width="50" height="50" xmlns="http://www.w3.org/2000/svg">
88
+ <circle cx="25" cy="25" r="20" fill="${fillColor}" />
89
+ </svg>`;
90
+ return `data:image/svg+xml;base64,${btoa(svg)}`;
91
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,23 @@
1
+ {
2
+ "compilerOptions": {
3
+ "outDir": "./dist",
4
+ "rootDir": "./src",
5
+ "declaration": true,
6
+ "declarationDir": "./dist/types",
7
+ "strict": true,
8
+ "esModuleInterop": true,
9
+ "skipLibCheck": true,
10
+ "forceConsistentCasingInFileNames": true,
11
+ "target": "ESNext",
12
+ "module": "ESNext",
13
+ "moduleResolution": "node",
14
+ "allowJs": true,
15
+ "baseUrl": "./",
16
+ "jsx": "react",
17
+ "paths": {
18
+ "~/*": ["./src/*"]
19
+ }
20
+ },
21
+ "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.js", "src/**/*.jsx"],
22
+ "exclude": ["node_modules", "dist"]
23
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-mapper.js","sources":["../../../../../src/components/modules/maps/list/field-mapper.js"],"sourcesContent":["import React from 'react';\r\n\r\nimport Grid from '~/components/modules/grid';\r\nimport Icon from '~/components/modules/icon';\r\nimport PillWrapper from '~/components/modules/buttons/pill-wrapper';\r\n\r\nimport { capitalize } from '~/util/stringUtils';\r\n\r\nconst FieldMapper = ({\r\n\titem,\r\n\tfieldsShown,\r\n\tspecialFeatures,\r\n\thandleFavouriteClick,\r\n\tisFavorite\r\n}) => {\r\n\tconst orderedFields = fieldsShown.filter(field => field in item.fields);\r\n\r\n\tconst specialFeaturePills = field => {\r\n\t\treturn field === 'position' && specialFeatures &&\r\n\t\t\tObject.entries(specialFeatures).map(([featureKey, featureLabel]) => {\r\n\t\t\t\treturn item.fields[featureKey] === 1 && (\r\n\t\t\t\t\t<PillWrapper key={featureKey}>{featureLabel}</PillWrapper>\r\n\t\t\t\t);\r\n\t\t\t});\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{orderedFields.map(field => {\r\n\t\t\t\tlet value = item.fields[field];\r\n\t\t\t\treturn (\r\n\t\t\t\t\t<Grid.Item\r\n\t\t\t\t\t\tkey={field}\r\n\t\t\t\t\t\tclassName={`\r\n\t\t\t\t\t\t\thc-hidden md:hc-block\r\n\t\t\t\t\t\t\t${field.toLowerCase() === \"position\" ? \"hc-col-span-2 hc-text-balance hc-pr-2 hc-font-semibold\" : \"hc-col-span-1\"}\r\n\t\t\t\t\t\t`}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<span className=\"hc-sr-only\">{capitalize(field)}</span>\r\n\t\t\t\t\t\t{value}\r\n\t\t\t\t\t\t<br />\r\n\t\t\t\t\t\t{specialFeaturePills(field)}\r\n\t\t\t\t\t</Grid.Item>\r\n\t\t\t\t);\r\n\t\t\t})}\r\n\t\t\t<Grid.Item className=\"md:hc-hidden\">\r\n\t\t\t\t{fieldsShown.includes(\"position\") &&\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t<div className=\"hc-flex hc-items-start\">\r\n\t\t\t\t\t\t\t<div className=\"hc-flex hc-justify-between hc-items-center hc-min-w-[100%]\"> {/* Use percentage for minimum width */}\r\n\t\t\t\t\t\t\t\t<h3 className=\"hc-font-bold hc-mb-3 hc-flex-1\">{item.fields.position}</h3>\r\n\t\t\t\t\t\t\t\t<div className=\"hc-flex hc-justify-end hc-pb-2\">\r\n\t\t\t\t\t\t\t\t\t<Icon\r\n\t\t\t\t\t\t\t\t\t\ticon={isFavorite ? \"mdi:heart\" : \"mdi:heart-outline\"}\r\n\t\t\t\t\t\t\t\t\t\tsize=\"hc-size-3.5\"\r\n\t\t\t\t\t\t\t\t\t\ticonClasses={isFavorite ? \"hc-text-primary\" : \"\"}\r\n\t\t\t\t\t\t\t\t\t\tclassName={`hc-transition-opacity hc-duration-300 hc-cursor-pointer\r\n\t\t\t\t\t\t\t\t\t${isFavorite ? \"hc-opacity-100\" : \"hc-text-uiText/60 group-hover:hc-opacity-100\"}\r\n\t\t\t\t\t\t\t\t\t`}\r\n\t\t\t\t\t\t\t\t\t\tonClick={e => handleFavouriteClick(e)}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t{specialFeatures && <div className='hc-pb-4'>{specialFeaturePills(\"position\", true)} </div>}\r\n\t\t\t\t\t</>\r\n\t\t\t\t}\r\n\r\n\t\t\t\t<ul className=\"hc-space-y-2 hc-text-xs\">\r\n\t\t\t\t\t{[\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tfield: \"category\",\r\n\t\t\t\t\t\t\tname: \"Category\",\r\n\t\t\t\t\t\t\ticon: \"icon-park-solid:tree-list\"\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tfield: \"schedule\",\r\n\t\t\t\t\t\t\tname: \"Schedule\",\r\n\t\t\t\t\t\t\ticon: \"gravity-ui:clock-fill\"\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tfield: \"cityState\",\r\n\t\t\t\t\t\t\tname: \"Location\",\r\n\t\t\t\t\t\t\ticon: \"fluent:location-16-filled\"\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tfield: \"travelTime\",\r\n\t\t\t\t\t\t\tname: \"Commute\",\r\n\t\t\t\t\t\t\ticon: \"ri:pin-distance-fill\"\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t].map(listItem => (\r\n\t\t\t\t\t\t(fieldsShown.includes(listItem.field) && item.fields[listItem.field]) &&\r\n\t\t\t\t\t\t<li\r\n\t\t\t\t\t\t\tkey={listItem.field}\r\n\t\t\t\t\t\t\tclassName=\"hc-flex hc-gap-2\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<Icon\r\n\t\t\t\t\t\t\t\ticon={listItem.icon}\r\n\t\t\t\t\t\t\t\tsize=\"hc-size-3.5\"\r\n\t\t\t\t\t\t\t\tclassName=\"hc-text-uiAccent/30\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t<span className=\"hc-sr-only\">{listItem.name}</span>\r\n\t\t\t\t\t\t\t{item.fields[listItem.field]}\r\n\t\t\t\t\t\t</li>\r\n\t\t\t\t\t))}\r\n\t\t\t\t</ul>\r\n\t\t\t</Grid.Item>\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nexport default FieldMapper;\r\n"],"names":["FieldMapper","_ref","item","fieldsShown","specialFeatures","handleFavouriteClick","isFavorite","orderedFields","filter","field","fields","specialFeaturePills","Object","entries","map","_ref2","_ref3","_slicedToArray","featureKey","featureLabel","React","createElement","PillWrapper","key","Fragment","value","Grid","Item","className","concat","toLowerCase","capitalize","includes","position","Icon","icon","size","iconClasses","onClick","e","name","listItem"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"header-item.js","sources":["../../../../../src/components/modules/maps/list/header-item.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\r\n\r\nimport Button from '~/components/modules/buttons/default';\r\n\r\nconst SORT_STATE = {\r\n\tnotSorted: \"not-sorted\",\r\n\tsortedAsc: \"sorted-asc\",\r\n\tsortedDesc: \"sorted-desc\"\r\n};\r\n\r\nconst HeaderItem = ({\r\n\tclassName,\r\n\tchildren,\r\n\tfield,\r\n\tsetSortSetting,\r\n\tsortSetting,\r\n\tisSortable,\r\n\t...rest\r\n}) => {\r\n\tconst [isSorted, setIsSorted] = useState(SORT_STATE.notSorted);\r\n\r\n\tconst handleChange = field => {\r\n\t\tif (isSortable === false)\r\n\t\t\treturn;\r\n\t\tlet setting = {\r\n\t\t\tfield: field,\r\n\t\t\ttype: isSorted === SORT_STATE.sortedAsc ? \"desc\" : \"asc\"\r\n\t\t};\r\n\t\tsetSortSetting(setting);\r\n\t\tisSorted === SORT_STATE.notSorted\r\n\t\t\t? setIsSorted(SORT_STATE.sortedAsc)\r\n\t\t\t: isSorted === SORT_STATE.sortedAsc\r\n\t\t\t\t? setIsSorted(SORT_STATE.sortedDesc)\r\n\t\t\t\t: setIsSorted(SORT_STATE.sortedAsc);\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (sortSetting?.field != null && sortSetting.field != field) {\r\n\t\t\tsetIsSorted(SORT_STATE.notSorted);\r\n\t\t} else if (\r\n\t\t\tsortSetting?.field != null &&\r\n\t\t\tisSorted == SORT_STATE.notSorted &&\r\n\t\t\tsortSetting.field == field\r\n\t\t) {\r\n\t\t\tsetIsSorted(\r\n\t\t\t\tsortSetting.type == \"asc\"\r\n\t\t\t\t\t? SORT_STATE.sortedAsc\r\n\t\t\t\t\t: SORT_STATE.sortedDesc\r\n\t\t\t);\r\n\t\t}\r\n\t}, [sortSetting, isSorted, field]);\r\n\r\n\treturn (\r\n\t\t<Button.Btn\r\n\t\t\tonClick={() => handleChange(field)}\r\n\t\t\tvariant=\"none\"\r\n\t\t\tclassName={`\r\n\t\t\t\thc-p-2 hc-rounded-none hc-text-left hc-normal-case hover:hc-bg-uiAccent/5 focus:hc-bg-uiAccent/5\r\n\t\t\t\t${field.toLowerCase() === \"position\" ? \"hc-col-span-2\" : \"hc-col-span-1\"}\r\n\t\t\t\t${className ?? \"\"}\r\n\t\t\t`}\r\n\t\t\t{...rest}\r\n\t\t>\r\n\t\t\t<Button.Body>\r\n\t\t\t\t<span className=\"hc-font-semibold\">{children}</span>\r\n\t\t\t\t{isSortable && (\r\n\t\t\t\t\t<div className=\"hc-flex hc-flex-col hc-pr-2\">\r\n\t\t\t\t\t\t<Button.Icon\r\n\t\t\t\t\t\t\ticon=\"bi:caret-up-fill\"\r\n\t\t\t\t\t\t\tsize=\"hc-size-2.5\"\r\n\t\t\t\t\t\t\tclassName={`\r\n\t\t\t\t\t\t\thc-transition-opacity\r\n\t\t\t\t\t\t\t\t${isSorted === \"sorted-asc\" ? \"hc-opacity-100 hc-text-primary\" : \"hc-opacity-30\"}\r\n\t\t\t\t\t\t\t`}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t<Button.Icon\r\n\t\t\t\t\t\t\ticon=\"bi:caret-down-fill\"\r\n\t\t\t\t\t\t\tsize=\"hc-size-2.5\"\r\n\t\t\t\t\t\t\tclassName={`\r\n\t\t\t\t\t\t\t\ttransition-opacity\r\n\t\t\t\t\t\t\t\t${isSorted === \"sorted-desc\" ? \"hc-opacity-100\" : \"hc-opacity-30\"}\r\n\t\t\t\t\t\t\t`}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\t\t\t</Button.Body>\r\n\t\t</Button.Btn>\r\n\t);\r\n};\r\n\r\nexport default HeaderItem;\r\n"],"names":["SORT_STATE","notSorted","sortedAsc","sortedDesc","HeaderItem","_ref","className","children","field","setSortSetting","sortSetting","isSortable","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","isSorted","setIsSorted","handleChange","setting","type","useEffect","React","createElement","Button","Btn","_extends","onClick","variant","concat","toLowerCase","Body","Icon","icon","size"],"mappings":";;;;;AAIA,IAAMA,UAAU,GAAG;AAClBC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,SAAS,EAAE,YAAY;AACvBC,EAAAA,UAAU,EAAE,aAAA;AACb,CAAC,CAAA;AAED,IAAMC,UAAU,GAAG,SAAbA,UAAUA,CAAAC,IAAA,EAQV;AAAA,EAAA,IAPLC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,KAAK,GAAAH,IAAA,CAALG,KAAK;IACLC,cAAc,GAAAJ,IAAA,CAAdI,cAAc;IACdC,WAAW,GAAAL,IAAA,CAAXK,WAAW;IACXC,UAAU,GAAAN,IAAA,CAAVM,UAAU;AACPC,IAAAA,IAAI,GAAAC,wBAAA,CAAAR,IAAA,EAAAS,SAAA,CAAA,CAAA;AAEP,EAAA,IAAAC,SAAA,GAAgCC,QAAQ,CAAChB,UAAU,CAACC,SAAS,CAAC;IAAAgB,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAvDI,IAAAA,QAAQ,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,WAAW,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAE5B,EAAA,IAAMI,YAAY,GAAG,SAAfA,YAAYA,CAAGb,KAAK,EAAI;IAC7B,IAAIG,UAAU,KAAK,KAAK,EACvB,OAAA;AACD,IAAA,IAAIW,OAAO,GAAG;AACbd,MAAAA,KAAK,EAAEA,KAAK;MACZe,IAAI,EAAEJ,QAAQ,KAAKnB,UAAU,CAACE,SAAS,GAAG,MAAM,GAAG,KAAA;KACnD,CAAA;IACDO,cAAc,CAACa,OAAO,CAAC,CAAA;AACvBH,IAAAA,QAAQ,KAAKnB,UAAU,CAACC,SAAS,GAC9BmB,WAAW,CAACpB,UAAU,CAACE,SAAS,CAAC,GACjCiB,QAAQ,KAAKnB,UAAU,CAACE,SAAS,GAChCkB,WAAW,CAACpB,UAAU,CAACG,UAAU,CAAC,GAClCiB,WAAW,CAACpB,UAAU,CAACE,SAAS,CAAC,CAAA;GACrC,CAAA;AAEDsB,EAAAA,SAAS,CAAC,YAAM;AACf,IAAA,IAAI,CAAAd,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAXA,WAAW,CAAEF,KAAK,KAAI,IAAI,IAAIE,WAAW,CAACF,KAAK,IAAIA,KAAK,EAAE;AAC7DY,MAAAA,WAAW,CAACpB,UAAU,CAACC,SAAS,CAAC,CAAA;KACjC,MAAM,IACN,CAAAS,WAAW,KAAA,IAAA,IAAXA,WAAW,KAAXA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAW,CAAEF,KAAK,KAAI,IAAI,IAC1BW,QAAQ,IAAInB,UAAU,CAACC,SAAS,IAChCS,WAAW,CAACF,KAAK,IAAIA,KAAK,EACzB;AACDY,MAAAA,WAAW,CACVV,WAAW,CAACa,IAAI,IAAI,KAAK,GACtBvB,UAAU,CAACE,SAAS,GACpBF,UAAU,CAACG,UACf,CAAC,CAAA;AACF,KAAA;GACA,EAAE,CAACO,WAAW,EAAES,QAAQ,EAAEX,KAAK,CAAC,CAAC,CAAA;EAElC,oBACCiB,KAAA,CAAAC,aAAA,CAACC,MAAM,CAACC,GAAG,EAAAC,QAAA,CAAA;IACVC,OAAO,EAAE,SAAAA,OAAA,GAAA;MAAA,OAAMT,YAAY,CAACb,KAAK,CAAC,CAAA;KAAC;AACnCuB,IAAAA,OAAO,EAAC,MAAM;IACdzB,SAAS,EAAA,sHAAA,CAAA0B,MAAA,CAENxB,KAAK,CAACyB,WAAW,EAAE,KAAK,UAAU,GAAG,eAAe,GAAG,eAAe,EAAAD,YAAAA,CAAAA,CAAAA,MAAA,CACtE1B,SAAS,aAATA,SAAS,KAAA,KAAA,CAAA,GAATA,SAAS,GAAI,EAAE,EAAA,UAAA,CAAA;AAChB,GAAA,EACEM,IAAI,CAAA,eAERa,KAAA,CAAAC,aAAA,CAACC,MAAM,CAACO,IAAI,EAAA,IAAA,eACXT,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMpB,IAAAA,SAAS,EAAC,kBAAA;AAAkB,GAAA,EAAEC,QAAe,CAAC,EACnDI,UAAU,iBACVc,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKpB,IAAAA,SAAS,EAAC,6BAAA;AAA6B,GAAA,eAC3CmB,KAAA,CAAAC,aAAA,CAACC,MAAM,CAACQ,IAAI,EAAA;AACXC,IAAAA,IAAI,EAAC,kBAAkB;AACvBC,IAAAA,IAAI,EAAC,aAAa;IAClB/B,SAAS,EAAA,yDAAA,CAAA0B,MAAA,CAENb,QAAQ,KAAK,YAAY,GAAG,gCAAgC,GAAG,eAAe,EAAA,kBAAA,CAAA;GAEjF,CAAC,eACFM,KAAA,CAAAC,aAAA,CAACC,MAAM,CAACQ,IAAI,EAAA;AACXC,IAAAA,IAAI,EAAC,oBAAoB;AACzBC,IAAAA,IAAI,EAAC,aAAa;IAClB/B,SAAS,EAAA,wDAAA,CAAA0B,MAAA,CAENb,QAAQ,KAAK,aAAa,GAAG,gBAAgB,GAAG,eAAe,EAAA,kBAAA,CAAA;GAElE,CACG,CAEM,CACF,CAAC,CAAA;AAEf;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"header.js","sources":["../../../../../src/components/modules/maps/list/header.js"],"sourcesContent":["import React from 'react';\r\nimport { twMerge } from 'tailwind-merge';\r\n\r\nimport Grid from '~/components/modules/grid';\r\nimport HeaderItem from '~/components/modules/maps/list/header-item';\r\n\r\nconst ListHeader = ({\r\n\tclassName,\r\n\tfieldsShown,\r\n\tfieldNames,\r\n\tfieldIsSortable = true,\r\n\tsetSortSetting,\r\n\tsortSetting\r\n}) => {\r\n\treturn (\r\n\t\t<Grid\r\n\t\t\tcolumns=\"hc-grid-flow-col hc-auto-cols-fr\"\r\n\t\t\tgap=\"hc-gap-0\"\r\n\t\t\tisAnimated={false}\r\n\t\t\tclassName={twMerge`\r\n\t\t\t\thc-hidden md:hc-grid hc-bg-uiAccent/10 hc-border-b hc-border-uiAccent/10 hc-sticky hc-top-0 hc-z-10\r\n\t\t\t\t${className ?? \"\"}\r\n\t\t\t`}\r\n\t\t>\r\n\t\t\t{fieldsShown.map(field => (\r\n\t\t\t\t<HeaderItem\r\n\t\t\t\t\tkey={field}\r\n\t\t\t\t\tisSortable={fieldIsSortable}\r\n\t\t\t\t\tsortSetting={sortSetting}\r\n\t\t\t\t\tfield={field}\r\n\t\t\t\t\tsetSortSetting={setSortSetting}\r\n\t\t\t\t>\r\n\t\t\t\t\t{fieldNames[field]}\r\n\t\t\t\t</HeaderItem>\r\n\t\t\t))}\r\n\t\t\t<HeaderItem key={\"favorite\"}\r\n\t\t\t\tisSortable={false}\r\n\t\t\t\tfield={\"favorite\"}\r\n\t\t\t>\r\n\t\t\t\tFavorite\r\n\t\t\t</HeaderItem>\r\n\r\n\t\t</Grid>\r\n\t);\r\n};\r\n\r\nexport default ListHeader;\r\n"],"names":["ListHeader","_ref","className","fieldsShown","fieldNames","_ref$fieldIsSortable","fieldIsSortable","setSortSetting","sortSetting","React","createElement","Grid","columns","gap","isAnimated","twMerge","_templateObject","_taggedTemplateLiteral","map","field","HeaderItem","key","isSortable"],"mappings":";;;;;;;AAMA,IAAMA,UAAU,GAAG,SAAbA,UAAUA,CAAAC,IAAA,EAOV;AAAA,EAAA,IANLC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,WAAW,GAAAF,IAAA,CAAXE,WAAW;IACXC,UAAU,GAAAH,IAAA,CAAVG,UAAU;IAAAC,oBAAA,GAAAJ,IAAA,CACVK,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,oBAAA;IACtBE,cAAc,GAAAN,IAAA,CAAdM,cAAc;IACdC,WAAW,GAAAP,IAAA,CAAXO,WAAW,CAAA;AAEX,EAAA,oBACCC,KAAA,CAAAC,aAAA,CAACC,IAAI,EAAA;AACJC,IAAAA,OAAO,EAAC,kCAAkC;AAC1CC,IAAAA,GAAG,EAAC,UAAU;AACdC,IAAAA,UAAU,EAAE,KAAM;AAClBZ,IAAAA,SAAS,EAAEa,OAAO,CAAAC,eAAA,KAAAA,eAAA,GAAAC,sBAAA,CAAA,CAAA,yHAAA,EAAA,UAAA,CAAA,CAAA,CAAA,EAEff,SAAS,KAATA,IAAAA,IAAAA,SAAS,KAATA,KAAAA,CAAAA,GAAAA,SAAS,GAAI,EAAE,CAAA;AAChB,GAAA,EAEDC,WAAW,CAACe,GAAG,CAAC,UAAAC,KAAK,EAAA;AAAA,IAAA,oBACrBV,KAAA,CAAAC,aAAA,CAACU,UAAU,EAAA;AACVC,MAAAA,GAAG,EAAEF,KAAM;AACXG,MAAAA,UAAU,EAAEhB,eAAgB;AAC5BE,MAAAA,WAAW,EAAEA,WAAY;AACzBW,MAAAA,KAAK,EAAEA,KAAM;AACbZ,MAAAA,cAAc,EAAEA,cAAAA;AAAe,KAAA,EAE9BH,UAAU,CAACe,KAAK,CACN,CAAC,CAAA;AAAA,GACb,CAAC,eACFV,KAAA,CAAAC,aAAA,CAACU,UAAU,EAAA;AAACC,IAAAA,GAAG,EAAE,UAAW;AAC3BC,IAAAA,UAAU,EAAE,KAAM;AAClBH,IAAAA,KAAK,EAAE,UAAA;GACP,EAAA,UAEW,CAEP,CAAC,CAAA;AAET;;;;"}
@@ -1,102 +0,0 @@
1
- import React from 'react';
2
- import Accordion from '../../accordions/default.js';
3
- import ListHeader from './header.js';
4
- import MapAccordionItem from '../../accordions/MapAccordionItem.js';
5
- import FilterSort from '../../filter/sort.js';
6
- import ListingDetails from '../../jobListing/listing-details.js';
7
- import useListLogic from '../../../../hooks/useList.js';
8
- import Loading from '../../../../util/loading.js';
9
- import { useMap } from '../../../../contexts/mapContext.js';
10
- import { useMapList } from '../../../../contexts/mapListContext.js';
11
- import { useTrackEvent } from '../../../../contexts/trackEventContext.js';
12
- import { dynamicSort } from '../../../../util/sortUtil.js';
13
-
14
- var ItemsList = function ItemsList(_ref) {
15
- var fieldNames = _ref.fieldNames,
16
- showMap = _ref.showMap,
17
- fieldsShown = _ref.fieldsShown,
18
- specialFeatures = _ref.specialFeatures;
19
- var _useMapList = useMapList(),
20
- mapItems = _useMapList.mapItems,
21
- filteredListings = _useMapList.filteredListings,
22
- loading = _useMapList.loading,
23
- commuteLocation = _useMapList.commuteLocation,
24
- sortSetting = _useMapList.sortSetting,
25
- setSortSetting = _useMapList.setSortSetting;
26
- var _useListLogic = useListLogic(filteredListings),
27
- itemLimit = _useListLogic.itemLimit,
28
- loader = _useListLogic.loader,
29
- scrollContainerRef = _useListLogic.scrollContainerRef,
30
- itemRefs = _useListLogic.itemRefs;
31
- var _useMap = useMap(),
32
- selectedListItem = _useMap.selectedListItem;
33
- var _useTrackEvent = useTrackEvent(),
34
- trackEvent = _useTrackEvent.trackEvent,
35
- eventTypes = _useTrackEvent.eventTypes;
36
- var itemExpandedContent = function itemExpandedContent(item, recruiters) {
37
- return item ? /*#__PURE__*/React.createElement(ListingDetails, {
38
- item: item,
39
- recruiters: recruiters
40
- }) : null;
41
- };
42
- if (!fieldsShown.includes('travelTime') && commuteLocation != null && Object.entries(commuteLocation).length > 0) {
43
- fieldsShown.push('travelTime');
44
- fieldNames['travelTime'] = 'Commute';
45
- } else if (fieldsShown.includes('travelTime') && !commuteLocation) {
46
- fieldsShown = fieldsShown.filter(function (x) {
47
- return x !== 'travelTime';
48
- });
49
- }
50
- var setTrackedSortSetting = function setTrackedSortSetting(sortSetting) {
51
- trackEvent(eventTypes.LIST_SORTED, sortSetting);
52
- setSortSetting(sortSetting);
53
- };
54
- return /*#__PURE__*/React.createElement("div", {
55
- className: "hc-relative hc-bg-white md:hc-px-4 hc-flex hc-flex-col"
56
- }, /*#__PURE__*/React.createElement("div", {
57
- className: "hc-flex hc-flex-wrap hc-items-center hc-justify-between hc-gap-4 md:hc-mb-2 hc-p-3 md:hc-p-0 hc-bg-uiAccent/10 md:hc-bg-transparent hc-border-b md:hc-border-none hc-border-uiAccent/20"
58
- }, /*#__PURE__*/React.createElement("h2", {
59
- className: "hc-text-gray-500 hc-font-semibold hc-text-xs md:hc-text-sm"
60
- }, loading && /*#__PURE__*/React.createElement("span", null, "Loading..."), !loading && /*#__PURE__*/React.createElement("span", null, filteredListings.length, " results")), /*#__PURE__*/React.createElement("div", {
61
- className: "hc-block md:hc-hidden"
62
- }, /*#__PURE__*/React.createElement(FilterSort, {
63
- fields: fieldsShown,
64
- setSortSetting: setTrackedSortSetting,
65
- fieldNames: fieldNames
66
- }))), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(ListHeader, {
67
- setSortSetting: setTrackedSortSetting,
68
- sortSetting: sortSetting,
69
- fieldsShown: fieldsShown,
70
- fieldNames: fieldNames
71
- })), /*#__PURE__*/React.createElement("div", {
72
- ref: scrollContainerRef,
73
- className: "\n\t\t\t\t\thc-flex-grow hc-overflow-y-auto\n\t\t\t\t\t".concat(showMap ? "md:hc-max-h-45vh hc-max-h-[100vh]" : "md:hc-max-h-95vh hc-max-h-[95vh]", "\n\t\t\t\t")
74
- }, loading ? /*#__PURE__*/React.createElement("div", {
75
- className: "hc-flex hc-justify-center hc-items-center hc-pt-20"
76
- }, /*#__PURE__*/React.createElement(Loading, null)) : /*#__PURE__*/React.createElement(Accordion, {
77
- className: "hc-divide-y hc-divide-uiAccent/10 hc-z-[1000]",
78
- defaultValue: selectedListItem === null || selectedListItem === void 0 ? void 0 : selectedListItem.id
79
- }, (sortSetting ? dynamicSort(filteredListings, sortSetting.field, sortSetting.type) : filteredListings).slice(0, itemLimit).map(function (item) {
80
- return /*#__PURE__*/React.createElement(MapAccordionItem, {
81
- key: item.id,
82
- showMap: showMap,
83
- item: item,
84
- itemRefs: itemRefs,
85
- fieldsShown: fieldsShown,
86
- itemExpandedContent: itemExpandedContent,
87
- specialFeatures: specialFeatures,
88
- mapItems: mapItems,
89
- isActive: (selectedListItem === null || selectedListItem === void 0 ? void 0 : selectedListItem.id) == item.id,
90
- hasListItemSelected: selectedListItem != null
91
- });
92
- })), /*#__PURE__*/React.createElement("div", {
93
- ref: loader,
94
- style: {
95
- height: "100px",
96
- textAlign: "center"
97
- }
98
- }, filteredListings.length >= itemLimit && /*#__PURE__*/React.createElement(Loading, null))));
99
- };
100
-
101
- export { ItemsList as default };
102
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/components/modules/maps/list/index.js"],"sourcesContent":["import React from 'react';\r\n\r\nimport Accordion from '~/components/modules/accordions/default';\r\nimport Header from '~/components/modules/maps/list/header';\r\nimport MapAccordionItem from '~/components/modules/accordions/MapAccordionItem';\r\nimport Sort from '~/components/modules/filter/sort';\r\nimport ListingDetails from '~/components/modules/jobListing/listing-details';\r\n\r\nimport useListLogic from '~/hooks/useList';\r\n\r\nimport Loading from \"~/util/loading\";\r\n\r\nimport { useMap } from '~/contexts/mapContext';\r\nimport { useMapList } from '~/contexts/mapListContext';\r\nimport { useTrackEvent } from '~/contexts/trackEventContext';\r\n\r\nimport { dynamicSort } from '~/util/sortUtil';\r\n\r\nconst ItemsList = ({\r\n\tfieldNames,\r\n\tshowMap,\r\n\tfieldsShown,\r\n\tspecialFeatures\r\n}) => {\r\n\tconst { mapItems, filteredListings, loading, commuteLocation, sortSetting, setSortSetting } = useMapList();\r\n\tconst {\r\n\t\titemLimit,\r\n\t\tloader,\r\n\t\tscrollContainerRef,\r\n\t\titemRefs\r\n\t} = useListLogic(filteredListings);\r\n\tconst { selectedListItem } = useMap();\r\n\tconst { trackEvent, eventTypes } = useTrackEvent();\r\n\tconst itemExpandedContent = (item, recruiters) =>\r\n\t\titem ? <ListingDetails item={item} recruiters={recruiters} /> : null;\r\n\tif (!fieldsShown.includes('travelTime') && commuteLocation != null && Object.entries(commuteLocation).length > 0) {\r\n\t\tfieldsShown.push('travelTime');\r\n\t\tfieldNames['travelTime'] = 'Commute';\r\n\t} else if (fieldsShown.includes('travelTime') && !commuteLocation) {\r\n\t\tfieldsShown = fieldsShown.filter(x => x !== 'travelTime');\r\n\t}\r\n\r\n\tconst setTrackedSortSetting = sortSetting => {\r\n\t\ttrackEvent(eventTypes.LIST_SORTED, sortSetting);\r\n\t\tsetSortSetting(sortSetting);\r\n\t};\r\n\treturn (\r\n\t\t<div className=\"hc-relative hc-bg-white md:hc-px-4 hc-flex hc-flex-col\">\r\n\t\t\t<div className=\"hc-flex hc-flex-wrap hc-items-center hc-justify-between hc-gap-4 md:hc-mb-2 hc-p-3 md:hc-p-0 hc-bg-uiAccent/10 md:hc-bg-transparent hc-border-b md:hc-border-none hc-border-uiAccent/20\">\r\n\t\t\t\t<h2 className=\"hc-text-gray-500 hc-font-semibold hc-text-xs md:hc-text-sm\">\r\n\t\t\t\t\t{loading &&\r\n\t\t\t\t\t\t<span>Loading...</span>\r\n\t\t\t\t\t}\r\n\t\t\t\t\t{!loading &&\r\n\t\t\t\t\t\t<span>{filteredListings.length} results</span>\r\n\t\t\t\t\t}\r\n\t\t\t\t</h2>\r\n\t\t\t\t<div className=\"hc-block md:hc-hidden\">\r\n\t\t\t\t\t<Sort\r\n\t\t\t\t\t\tfields={fieldsShown}\r\n\t\t\t\t\t\tsetSortSetting={setTrackedSortSetting}\r\n\t\t\t\t\t\tfieldNames={fieldNames}\r\n\t\t\t\t\t/>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div>\r\n\t\t\t\t<Header\r\n\t\t\t\t\tsetSortSetting={setTrackedSortSetting}\r\n\t\t\t\t\tsortSetting={sortSetting}\r\n\t\t\t\t\tfieldsShown={fieldsShown}\r\n\t\t\t\t\tfieldNames={fieldNames}\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<div\r\n\t\t\t\tref={scrollContainerRef}\r\n\t\t\t\tclassName={`\r\n\t\t\t\t\thc-flex-grow hc-overflow-y-auto\r\n\t\t\t\t\t${showMap ? \"md:hc-max-h-45vh hc-max-h-[100vh]\" : \"md:hc-max-h-95vh hc-max-h-[95vh]\"}\r\n\t\t\t\t`}\r\n\t\t\t>\r\n\t\t\t\t{loading ? (\r\n\t\t\t\t\t<div className=\"hc-flex hc-justify-center hc-items-center hc-pt-20\">\r\n\t\t\t\t\t\t<Loading />\r\n\t\t\t\t\t</div>\r\n\t\t\t\t) : (\r\n\t\t\t\t\t<Accordion className=\"hc-divide-y hc-divide-uiAccent/10 hc-z-[1000]\" defaultValue={selectedListItem?.id}>\r\n\t\t\t\t\t\t{(sortSetting ? dynamicSort(filteredListings, sortSetting.field, sortSetting.type) : filteredListings).slice(0, itemLimit).map(item => {\r\n\t\t\t\t\t\t\treturn (<MapAccordionItem\r\n\t\t\t\t\t\t\t\tkey={item.id}\r\n\t\t\t\t\t\t\t\tshowMap={showMap}\r\n\t\t\t\t\t\t\t\titem={item}\r\n\t\t\t\t\t\t\t\titemRefs={itemRefs}\r\n\t\t\t\t\t\t\t\tfieldsShown={fieldsShown}\r\n\t\t\t\t\t\t\t\titemExpandedContent={itemExpandedContent}\r\n\t\t\t\t\t\t\t\tspecialFeatures={specialFeatures}\r\n\t\t\t\t\t\t\t\tmapItems={mapItems}\r\n\t\t\t\t\t\t\t\tisActive={selectedListItem?.id == item.id}\r\n\t\t\t\t\t\t\t\thasListItemSelected={selectedListItem != null}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t</Accordion>\r\n\t\t\t\t)}\r\n\t\t\t\t<div ref={loader} style={{ height: \"100px\", textAlign: \"center\" }}>\r\n\t\t\t\t\t{filteredListings.length >= itemLimit && <Loading />}\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default ItemsList;\r\n"],"names":["ItemsList","_ref","fieldNames","showMap","fieldsShown","specialFeatures","_useMapList","useMapList","mapItems","filteredListings","loading","commuteLocation","sortSetting","setSortSetting","_useListLogic","useListLogic","itemLimit","loader","scrollContainerRef","itemRefs","_useMap","useMap","selectedListItem","_useTrackEvent","useTrackEvent","trackEvent","eventTypes","itemExpandedContent","item","recruiters","React","createElement","ListingDetails","includes","Object","entries","length","push","filter","x","setTrackedSortSetting","LIST_SORTED","className","Sort","fields","Header","ref","concat","Loading","Accordion","defaultValue","id","dynamicSort","field","type","slice","map","MapAccordionItem","key","isActive","hasListItemSelected","style","height","textAlign"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/components/modules/maps/list/item-expand-card/index.js"],"sourcesContent":["import React from 'react';\r\nimport { twMerge } from 'tailwind-merge';\r\n\r\nconst CardItemExpand = ({\r\n\tclassName,\r\n\tcontent,\r\n\t...props\r\n}) => {\r\n\treturn (\r\n\t\t<div\r\n\t\t\tclassName={twMerge(\r\n\t\t\t\t'hc-flex hc-flex-col lg:hc-flex-row hc-flex-wrap hc-items-stretch hc-gap-x-4 hc-w-full lg:hc-pt-2 hc-border-t hc-border-uiAccent/20',\r\n\t\t\t\tclassName ?? ''\r\n\t\t\t)}\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t{content}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default CardItemExpand;\r\n"],"names":["CardItemExpand","_ref","className","content","props","_objectWithoutProperties","_excluded","React","createElement","_extends","twMerge"],"mappings":";;;;;AAGA,IAAMA,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAId;AAAA,EAAA,IAHLC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,OAAO,GAAAF,IAAA,CAAPE,OAAO;AACJC,IAAAA,KAAK,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA,CAAA,CAAA;AAER,EAAA,oBACCC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAAC,QAAA,CAAA;IACCP,SAAS,EAAEQ,OAAO,CACjB,oIAAoI,EACpIR,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,KAAA,CAAA,GAATA,SAAS,GAAI,EACd,CAAA;GACIE,EAAAA,KAAK,CAERD,EAAAA,OACG,CAAC,CAAA;AAER;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"recruiter-contact-nav.js","sources":["../../../../../../src/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js"],"sourcesContent":["import React from 'react';\r\n\r\nimport Button from '~/components/modules/buttons/default';\r\n\r\nconst RecruiterContactNav = ({\r\n\tchildren,\r\n\tclassName\r\n}) => {\r\n\treturn (\r\n\t\t<nav\r\n\t\t\tclassName={`\r\n\t\t\thc-inline-flex hc-items-center hc-justify-between hc-gap-2 hc-mt-2\r\n\t\t\t\t${className ?? ''}\r\n\t\t\t`}\r\n\t\t>\r\n\t\t\t{children}\r\n\t\t</nav>\r\n\t);\r\n};\r\n\r\nexport const NavButton = ({\r\n\tclassName,\r\n\thref,\r\n\ttarget = '_self',\r\n\ttitle,\r\n\ticon,\r\n\t...props\r\n}) => {\r\n\treturn (\r\n\t\t<Button.Anchor\r\n\t\t\thref={href}\r\n\t\t\tvariant=\"icon\"\r\n\t\t\tsize=\"sq\"\r\n\t\t\ttarget={target}\r\n\t\t\ttitle={title}\r\n\t\t\tclassName={className ?? ''}\r\n\t\t\t{...props}\r\n\t\t>\r\n\t\t\t<span className=\"hc-sr-only\">{title}</span>\r\n\t\t\t<Button.Icon\r\n\t\t\t\ticon={icon}\r\n\t\t\t\tsize=\"hc-size-8\"\r\n\t\t\t/>\r\n\t\t</Button.Anchor>\r\n\t);\r\n};\r\n\r\nRecruiterContactNav.Button = NavButton;\r\n\r\nexport default RecruiterContactNav;\r\n"],"names":["RecruiterContactNav","_ref","children","className","React","createElement","concat","NavButton","_ref2","href","_ref2$target","target","title","icon","props","_objectWithoutProperties","_excluded","Button","Anchor","_extends","variant","size","Icon"],"mappings":";;;;;AAIA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,IAAA,EAGnB;AAAA,EAAA,IAFLC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,SAAS,GAAAF,IAAA,CAATE,SAAS,CAAA;EAET,oBACCC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACCF,SAAS,EAAA,sFAAA,CAAAG,MAAA,CAENH,SAAS,aAATA,SAAS,KAAA,KAAA,CAAA,GAATA,SAAS,GAAI,EAAE,EAAA,UAAA,CAAA;AAChB,GAAA,EAEDD,QACG,CAAC,CAAA;AAER,EAAC;IAEYK,SAAS,GAAG,SAAZA,SAASA,CAAAC,KAAA,EAOhB;AAAA,EAAA,IANLL,SAAS,GAAAK,KAAA,CAATL,SAAS;IACTM,IAAI,GAAAD,KAAA,CAAJC,IAAI;IAAAC,YAAA,GAAAF,KAAA,CACJG,MAAM;AAANA,IAAAA,MAAM,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,OAAO,GAAAA,YAAA;IAChBE,KAAK,GAAAJ,KAAA,CAALI,KAAK;IACLC,IAAI,GAAAL,KAAA,CAAJK,IAAI;AACDC,IAAAA,KAAK,GAAAC,wBAAA,CAAAP,KAAA,EAAAQ,SAAA,CAAA,CAAA;EAER,oBACCZ,KAAA,CAAAC,aAAA,CAACY,MAAM,CAACC,MAAM,EAAAC,QAAA,CAAA;AACbV,IAAAA,IAAI,EAAEA,IAAK;AACXW,IAAAA,OAAO,EAAC,MAAM;AACdC,IAAAA,IAAI,EAAC,IAAI;AACTV,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,KAAK,EAAEA,KAAM;AACbT,IAAAA,SAAS,EAAEA,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,KAAA,CAAA,GAATA,SAAS,GAAI,EAAA;AAAG,GAAA,EACvBW,KAAK,CAAA,eAETV,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMF,IAAAA,SAAS,EAAC,YAAA;GAAcS,EAAAA,KAAY,CAAC,eAC3CR,KAAA,CAAAC,aAAA,CAACY,MAAM,CAACK,IAAI,EAAA;AACXT,IAAAA,IAAI,EAAEA,IAAK;AACXQ,IAAAA,IAAI,EAAC,WAAA;AAAW,GAChB,CACa,CAAC,CAAA;AAElB,EAAC;AAEDrB,mBAAmB,CAACiB,MAAM,GAAGV,SAAS;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"recruiter-details.js","sources":["../../../../../../src/components/modules/maps/list/item-expand-card/recruiter-details.js"],"sourcesContent":["import React from 'react';\r\nimport { twMerge } from 'tailwind-merge';\r\n\r\nconst RecruiterDetails = ({\r\n\tcontactNav,\r\n\tclassName,\r\n\tchildren\r\n}) => {\r\n\treturn (\r\n\t\t<div\r\n\t\t\tclassName={twMerge`\r\n\t\t\t\thc-grow\r\n\t\t\t\t${className ?? ''}\r\n\t\t\t`}\r\n\t\t>\r\n\t\t\t{children}\r\n\r\n\t\t\t{contactNav &&\r\n\t\t\t\t<div className=\"hc-inline-flex\">\r\n\t\t\t\t\t{contactNav}\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport const Title = ({\r\n\tas = 'h4',\r\n\tclassName,\r\n\tchildren\r\n}) => {\r\n\tconst Container = as;\r\n\r\n\treturn (\r\n\t\t<Container\r\n\t\t\tclassName={twMerge`\r\n\t\t\t\thc-text-base hc-font-medium\r\n\t\t\t\t${className ?? ''}\r\n\t\t\t`}\r\n\t\t>\r\n\t\t\t{children}\r\n\t\t</Container>\r\n\t);\r\n};\r\n\r\nexport const Text = ({\r\n\tas = 'p',\r\n\tclassName,\r\n\tchildren\r\n}) => {\r\n\tconst Container = as;\r\n\r\n\treturn (\r\n\t\t<Container\r\n\t\t\tclassName={twMerge`\r\n\t\t\t\thc-text-sm hc-text-uiText/60\r\n\t\t\t\t${className ?? ''}\r\n\t\t\t`}\r\n\t\t>\r\n\t\t\t{children}\r\n\t\t</Container>\r\n\t);\r\n};\r\n\r\nRecruiterDetails.Title = Title;\r\nRecruiterDetails.Text = Text;\r\n\r\nexport default RecruiterDetails;\r\n"],"names":["RecruiterDetails","_ref","contactNav","className","children","React","createElement","twMerge","_templateObject","_taggedTemplateLiteral","Title","_ref2","_ref2$as","as","Container","_templateObject2","Text","_ref3","_ref3$as","_templateObject3"],"mappings":";;;;;AAGA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAIhB;AAAA,EAAA,IAHLC,UAAU,GAAAD,IAAA,CAAVC,UAAU;IACVC,SAAS,GAAAF,IAAA,CAATE,SAAS;IACTC,QAAQ,GAAAH,IAAA,CAARG,QAAQ,CAAA;EAER,oBACCC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACCH,IAAAA,SAAS,EAAEI,OAAO,CAAAC,eAAA,KAAAA,eAAA,GAAAC,sBAAA,CAAA,CAAA,6BAAA,EAAA,UAAA,CAAA,CAAA,CAAA,EAEfN,SAAS,KAATA,IAAAA,IAAAA,SAAS,KAATA,KAAAA,CAAAA,GAAAA,SAAS,GAAI,EAAE,CAAA;AAChB,GAAA,EAEDC,QAAQ,EAERF,UAAU,iBACVG,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKH,IAAAA,SAAS,EAAC,gBAAA;GACbD,EAAAA,UACG,CAEF,CAAC,CAAA;AAER,EAAC;IAEYQ,KAAK,GAAG,SAARA,KAAKA,CAAAC,KAAA,EAIZ;AAAA,EAAA,IAAAC,QAAA,GAAAD,KAAA,CAHLE,EAAE;AAAFA,IAAAA,EAAE,GAAAD,QAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,QAAA;IACTT,SAAS,GAAAQ,KAAA,CAATR,SAAS;IACTC,QAAQ,GAAAO,KAAA,CAARP,QAAQ,CAAA;EAER,IAAMU,SAAS,GAAGD,EAAE,CAAA;AAEpB,EAAA,oBACCR,KAAA,CAAAC,aAAA,CAACQ,SAAS,EAAA;AACTX,IAAAA,SAAS,EAAEI,OAAO,CAAAQ,gBAAA,KAAAA,gBAAA,GAAAN,sBAAA,CAAA,CAAA,iDAAA,EAAA,UAAA,CAAA,CAAA,CAAA,EAEfN,SAAS,KAATA,IAAAA,IAAAA,SAAS,KAATA,KAAAA,CAAAA,GAAAA,SAAS,GAAI,EAAE,CAAA;AAChB,GAAA,EAEDC,QACS,CAAC,CAAA;AAEd,EAAC;IAEYY,IAAI,GAAG,SAAPA,IAAIA,CAAAC,KAAA,EAIX;AAAA,EAAA,IAAAC,QAAA,GAAAD,KAAA,CAHLJ,EAAE;AAAFA,IAAAA,EAAE,GAAAK,QAAA,KAAG,KAAA,CAAA,GAAA,GAAG,GAAAA,QAAA;IACRf,SAAS,GAAAc,KAAA,CAATd,SAAS;IACTC,QAAQ,GAAAa,KAAA,CAARb,QAAQ,CAAA;EAER,IAAMU,SAAS,GAAGD,EAAE,CAAA;AAEpB,EAAA,oBACCR,KAAA,CAAAC,aAAA,CAACQ,SAAS,EAAA;AACTX,IAAAA,SAAS,EAAEI,OAAO,CAAAY,gBAAA,KAAAA,gBAAA,GAAAV,sBAAA,CAAA,CAAA,kDAAA,EAAA,UAAA,CAAA,CAAA,CAAA,EAEfN,SAAS,KAATA,IAAAA,IAAAA,SAAS,KAATA,KAAAA,CAAAA,GAAAA,SAAS,GAAI,EAAE,CAAA;AAChB,GAAA,EAEDC,QACS,CAAC,CAAA;AAEd,EAAC;AAEDJ,gBAAgB,CAACU,KAAK,GAAGA,KAAK,CAAA;AAC9BV,gBAAgB,CAACgB,IAAI,GAAGA,IAAI;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"recruiter-headshot.js","sources":["../../../../../../src/components/modules/maps/list/item-expand-card/recruiter-headshot.js"],"sourcesContent":["import React from 'react';\r\n\r\nconst RecruiterHeadshot = ({\r\n\timage,\r\n\talt,\r\n\tclassName,\r\n\timageClassName\r\n}) => {\r\n\treturn (\r\n\t\t<div className={className ?? ''}>\r\n\t\t\t<img\r\n\t\t\t\tsrc={image}\r\n\t\t\t\twidth=\"96\"\r\n\t\t\t\theight=\"96\"\r\n\t\t\t\talt={alt}\r\n\t\t\t\tclassName={imageClassName ?? ''}\r\n\t\t\t/>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default RecruiterHeadshot;\r\n"],"names":["RecruiterHeadshot","_ref","image","alt","className","imageClassName","React","createElement","src","width","height"],"mappings":";;AAEA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA,EAKjB;AAAA,EAAA,IAJLC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,GAAG,GAAAF,IAAA,CAAHE,GAAG;IACHC,SAAS,GAAAH,IAAA,CAATG,SAAS;IACTC,cAAc,GAAAJ,IAAA,CAAdI,cAAc,CAAA;EAEd,oBACCC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKH,IAAAA,SAAS,EAAEA,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,KAAA,CAAA,GAATA,SAAS,GAAI,EAAA;GAC5BE,eAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACCC,IAAAA,GAAG,EAAEN,KAAM;AACXO,IAAAA,KAAK,EAAC,IAAI;AACVC,IAAAA,MAAM,EAAC,IAAI;AACXP,IAAAA,GAAG,EAAEA,GAAI;AACTC,IAAAA,SAAS,EAAEC,cAAc,KAAA,IAAA,IAAdA,cAAc,KAAA,KAAA,CAAA,GAAdA,cAAc,GAAI,EAAA;AAAG,GAChC,CACG,CAAC,CAAA;AAER;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../src/components/modules/maps/list/list-item/index.js"],"sourcesContent":["import React, { forwardRef } from 'react';\r\n\r\nimport Grid from '~/components/modules/grid';\r\nimport Icon from '~/components/modules/icon';\r\nimport FieldMapper from '~/components/modules/maps/list/field-mapper';\r\n\r\nimport { useMapList } from '~/contexts/mapListContext';\r\nimport { useTrackEvent } from '~/contexts/trackEventContext';\r\n\r\nconst ListItem = forwardRef(\r\n\t(\r\n\t\t{\r\n\t\t\tisActive,\r\n\t\t\tbodyClassName,\r\n\t\t\tclassName,\r\n\t\t\titem,\r\n\t\t\tfieldsShown,\r\n\t\t\tspecialFeatures,\r\n\t\t\tonItemSelected,\r\n\t\t\tshowMap,\r\n\t\t\tsetMobileTab,\r\n\t\t\tfavorites,\r\n\t\t\tsetFavorites,\r\n\t\t\t...props\r\n\t\t},\r\n\t\tref\r\n\t) => {\r\n\t\tconst { siteConfig } = useMapList();\r\n\t\tconst { trackEvent, eventTypes } = useTrackEvent();\r\n\t\tconst mapPinColor = siteConfig.colors.primary.replace(\"#\", \"\");\r\n\r\n\t\tconst handleClick = () => {\r\n\t\t\tif (onItemSelected) {\r\n\t\t\t\tonItemSelected(item);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tlet isFavorite = favorites.includes(item.id);\r\n\r\n\t\tconst handleFavouriteClick = event => {\r\n\t\t\tevent.stopPropagation();\r\n\t\t\tlet updatedFavorites;\r\n\t\t\tif (isFavorite) {\r\n\t\t\t\tupdatedFavorites = favorites.filter(fav => fav !== item.id);\r\n\t\t\t} else {\r\n\t\t\t\ttrackEvent(eventTypes.FAVORITE_SELECTED, { jobTitle: item.fields.position, jobCategory: item.fields.category, entityDisplayName: item?.mapDetails?.entityDisplayName });\r\n\t\t\t\tupdatedFavorites = [...favorites, item.id];\r\n\t\t\t}\r\n\t\t\tisFavorite = !isFavorite;\r\n\t\t\tsetFavorites(updatedFavorites);\r\n\t\t};\r\n\r\n\t\treturn (\r\n\t\t\t<button\r\n\t\t\t\tref={ref}\r\n\t\t\t\tonClick={handleClick}\r\n\t\t\t\tclassName={`\r\n\t\t\t\t\thc-group hc-relative hc-flex md:hc-flex-col hc-w-full md:hc-pl-4 hc-text-left hc-bg-clip-border hc-border hc-border-transparent hc-break-words hc-overflow-hidden hc-cursor-pointer hc-transition-colors hover:hc-bg-uiAccent/5 focus:hover:hc-bg-uiAccent/5\r\n\t\t\t\t\t${isActive ? \"hc-bg-uiAccent/5 hc-border-secondary hc-border\" : \"hc-text-uiText hc-bg-white\"}\r\n\t\t\t\t\t${className ?? \"\"}\r\n `}\r\n\t\t\t\t{...props}\r\n\t\t\t>\r\n\t\t\t\t<Grid\r\n\t\t\t\t\tcolumns=\"hc-grid-flow-col hc-auto-cols-fr\"\r\n\t\t\t\t\tgap=\"hc-gap-2\"\r\n\t\t\t\t\tisAnimated={false}\r\n\t\t\t\t\tclassName={`\r\n\t\t\t\t\t\thc-block md:hc-grid hc-p-2 hc-ps-4 hc-w-full hc-grow hc-leading-tight hc-text-sm md:hc-text-xs lg:hc-text-sm\r\n\t\t\t\t\t\t${bodyClassName ?? \"\"}\r\n\t\t\t\t\t`}\r\n\t\t\t\t>\r\n\t\t\t\t\t<Grid.Item className=\"hc-hidden md:hc-block md:hc-absolute md:hc-left-1.5 hc-top-1.5\">\r\n\t\t\t\t\t\t<span className=\"hc-sr-only\">Expand row</span>\r\n\t\t\t\t\t\t<Icon\r\n\t\t\t\t\t\t\ticon=\"fluent-emoji-high-contrast:plus\"\r\n\t\t\t\t\t\t\tsize=\"hc-size-2.5\"\r\n\t\t\t\t\t\t\tclassName={`\r\n\t\t\t\t\t\t\t\thc-opacity-0 hc-text-uiText/60 hc-transition group-hover:hc-opacity-100 group-active:hc-opacity-100\r\n\t\t\t\t\t\t\t\t${isActive ? \"hc-opacity-100 hc-rotate-45\" : \"\"}\r\n\t\t\t\t\t\t\t`}\r\n\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t</Grid.Item>\r\n\r\n\t\t\t\t\t<FieldMapper\r\n\t\t\t\t\t\titem={item}\r\n\t\t\t\t\t\tfieldsShown={fieldsShown}\r\n\t\t\t\t\t\tspecialFeatures={specialFeatures}\r\n\t\t\t\t\t\tisFavorite={isFavorite}\r\n\t\t\t\t\t\thandleFavouriteClick={handleFavouriteClick}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t<Grid.Item\r\n\t\t\t\t\t\tkey={\"favorites\"}\r\n\t\t\t\t\t\tclassName=\"hc-hidden md:hc-block hc-col-span-1\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Icon\r\n\t\t\t\t\t\t\ticon={isFavorite ? \"mdi:heart\" : \"mdi:heart-outline\"}\r\n\t\t\t\t\t\t\tsize=\"hc-size-3.5\"\r\n\t\t\t\t\t\t\ticonClasses={isFavorite ? \"hc-text-primary\" : \"\"}\r\n\t\t\t\t\t\t\ttitle={!isFavorite ? 'Add job to favorites' : 'Remove job from favorites'}\r\n\t\t\t\t\t\t\tclassName={`\r\n\t\t\t\t\t\t\thc-pr-2 hc-transition-opacity hc-duration-300 hc-cursor-pointer hc-opacity-100\"\r\n\t\t\t\t\t\t`}\r\n\t\t\t\t\t\t\tonClick={e => handleFavouriteClick(e)}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</Grid.Item>\r\n\t\t\t\t</Grid>\r\n\r\n\t\t\t\t{showMap && (\r\n\t\t\t\t\t<div onClick={() => { setMobileTab(\"mapTab\"); handleClick(); }} className=\"md:hc-hidden hc-w-2/5 sm:hc-w-1/3 hc-p-1.5 hc-my-1 hc-bg-uiAccent/5 hc-border hc-border-uiAccent/10 hc-rounded-sm\">\r\n\t\t\t\t\t\t<img\r\n\t\t\t\t\t\t\tsrc={`https://maps.googleapis.com/maps/api/staticmap?scale=2&center=${item.mapDetails?.latitude},${item.mapDetails?.longitude}&zoom=10&size=240x180&maptype=roadmap&markers=color:0x${mapPinColor}%7Clabel:•%7C${item.mapDetails?.latitude},${item.mapDetails?.longitude}&key=${process.env.GOOGLE_MAPS_API_KEY}`}\r\n\t\t\t\t\t\t\talt={`Map of location for ${item.fields.position}`}\r\n\t\t\t\t\t\t\tclassName=\"hc-w-full hc-h-full hc-object-cover\"\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t)}\r\n\t\t\t</button>\r\n\t\t);\r\n\t}\r\n);\r\n\r\nListItem.displayName = \"ListItem\";\r\n\r\nexport default React.memo(ListItem, (prevProps, nextProps) => {\r\n\treturn (\r\n\t\t(prevProps.isActive === nextProps.isActive ||\r\n\t\t\tprevProps.isActive !== nextProps.isActive) &&\r\n\t\tprevProps.bodyClassName === nextProps.bodyClassName &&\r\n\t\tprevProps.className === nextProps.className &&\r\n\t\tprevProps.fieldsShown === nextProps.fieldsShown &&\r\n\t\tprevProps.item.id === nextProps.item.id\r\n\t);\r\n});\r\n"],"names":["ListItem","forwardRef","_ref","ref","_item$mapDetails2","_item$mapDetails3","_item$mapDetails4","_item$mapDetails5","isActive","bodyClassName","className","item","fieldsShown","specialFeatures","onItemSelected","showMap","setMobileTab","favorites","setFavorites","props","_objectWithoutProperties","_excluded","_useMapList","useMapList","siteConfig","_useTrackEvent","useTrackEvent","trackEvent","eventTypes","mapPinColor","colors","primary","replace","handleClick","isFavorite","includes","id","handleFavouriteClick","event","stopPropagation","updatedFavorites","filter","fav","_item$mapDetails","FAVORITE_SELECTED","jobTitle","fields","position","jobCategory","category","entityDisplayName","mapDetails","concat","_toConsumableArray","React","createElement","_extends","onClick","Grid","columns","gap","isAnimated","Item","Icon","icon","size","FieldMapper","key","iconClasses","title","e","src","latitude","longitude","alt","displayName","memo","prevProps","nextProps"],"mappings":"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"}