@abcagency/hc-ui-components 1.1.1 → 1.2.0

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 (234) hide show
  1. package/.editorconfig +12 -0
  2. package/.eslintrc +144 -0
  3. package/.prettierignore +3 -0
  4. package/dist/_virtual/_rollupPluginBabelHelpers.js +516 -0
  5. package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  6. package/dist/apis/hcApi.js +189 -0
  7. package/dist/apis/hcApi.js.map +1 -0
  8. package/dist/clientToken.js +10 -0
  9. package/dist/clientToken.js.map +1 -0
  10. package/dist/components/HireControlMap.js +129 -0
  11. package/dist/components/HireControlMap.js.map +1 -0
  12. package/dist/components/modules/accordions/MapAccordionItem.js +76 -0
  13. package/dist/components/modules/accordions/MapAccordionItem.js.map +1 -0
  14. package/dist/components/modules/accordions/default.js +108 -0
  15. package/dist/components/modules/accordions/default.js.map +1 -0
  16. package/dist/components/modules/accordions/filterItem.js +50 -0
  17. package/dist/components/modules/accordions/filterItem.js.map +1 -0
  18. package/dist/components/modules/accordions/filters.js +46 -0
  19. package/dist/components/modules/accordions/filters.js.map +1 -0
  20. package/dist/components/modules/buttons/button-group-apply.js +84 -0
  21. package/dist/components/modules/buttons/button-group-apply.js.map +1 -0
  22. package/dist/components/modules/buttons/commute-pill.js +18 -0
  23. package/dist/components/modules/buttons/commute-pill.js.map +1 -0
  24. package/dist/components/modules/buttons/default.js +145 -0
  25. package/dist/components/modules/buttons/default.js.map +1 -0
  26. package/dist/components/modules/buttons/items-pill.js +23 -0
  27. package/dist/components/modules/buttons/items-pill.js.map +1 -0
  28. package/dist/components/modules/buttons/pill-wrapper.js +20 -0
  29. package/dist/components/modules/buttons/pill-wrapper.js.map +1 -0
  30. package/dist/components/modules/buttons/show-all-button.js +39 -0
  31. package/dist/components/modules/buttons/show-all-button.js.map +1 -0
  32. package/dist/components/modules/cards/default.js +102 -0
  33. package/dist/components/modules/cards/default.js.map +1 -0
  34. package/dist/components/modules/cards/filter.js +38 -0
  35. package/dist/components/modules/cards/filter.js.map +1 -0
  36. package/dist/components/modules/dialogs/apply-dialog.js +46 -0
  37. package/dist/components/modules/dialogs/apply-dialog.js.map +1 -0
  38. package/dist/components/modules/filter/commute.js +184 -0
  39. package/dist/components/modules/filter/commute.js.map +1 -0
  40. package/dist/components/modules/filter/index.js +79 -0
  41. package/dist/components/modules/filter/index.js.map +1 -0
  42. package/dist/components/modules/filter/item.js +71 -0
  43. package/dist/components/modules/filter/item.js.map +1 -0
  44. package/dist/components/modules/filter/location.js +68 -0
  45. package/dist/components/modules/filter/location.js.map +1 -0
  46. package/dist/components/modules/filter/points-of-interest.js +38 -0
  47. package/dist/components/modules/filter/points-of-interest.js.map +1 -0
  48. package/dist/components/modules/filter/radio-item.js +46 -0
  49. package/dist/components/modules/filter/radio-item.js.map +1 -0
  50. package/dist/components/modules/filter/search.js +83 -0
  51. package/dist/components/modules/filter/search.js.map +1 -0
  52. package/dist/components/modules/filter/sort.js +93 -0
  53. package/dist/components/modules/filter/sort.js.map +1 -0
  54. package/dist/components/modules/grid.js +39 -0
  55. package/dist/components/modules/grid.js.map +1 -0
  56. package/dist/components/modules/icon.js +23 -0
  57. package/dist/components/modules/icon.js.map +1 -0
  58. package/dist/components/modules/jobListing/listing-details.js +69 -0
  59. package/dist/components/modules/jobListing/listing-details.js.map +1 -0
  60. package/dist/components/modules/maps/info-window-card.js +14 -0
  61. package/dist/components/modules/maps/info-window-card.js.map +1 -0
  62. package/dist/components/modules/maps/info-window-content.js +39 -0
  63. package/dist/components/modules/maps/info-window-content.js.map +1 -0
  64. package/dist/components/modules/maps/list/field-mapper.js +88 -0
  65. package/dist/components/modules/maps/list/field-mapper.js.map +1 -0
  66. package/dist/components/modules/maps/list/header-item.js +59 -0
  67. package/dist/components/modules/maps/list/header-item.js.map +1 -0
  68. package/dist/components/modules/maps/list/header.js +37 -0
  69. package/dist/components/modules/maps/list/header.js.map +1 -0
  70. package/dist/components/modules/maps/list/index.js +93 -0
  71. package/dist/components/modules/maps/list/index.js.map +1 -0
  72. package/dist/components/modules/maps/list/item-expand-card/index.js +16 -0
  73. package/dist/components/modules/maps/list/item-expand-card/index.js.map +1 -0
  74. package/dist/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js +38 -0
  75. package/dist/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js.map +1 -0
  76. package/dist/components/modules/maps/list/item-expand-card/recruiter-details.js +40 -0
  77. package/dist/components/modules/maps/list/item-expand-card/recruiter-details.js.map +1 -0
  78. package/dist/components/modules/maps/list/item-expand-card/recruiter-headshot.js +20 -0
  79. package/dist/components/modules/maps/list/item-expand-card/recruiter-headshot.js.map +1 -0
  80. package/dist/components/modules/maps/list/list-item/index.js +98 -0
  81. package/dist/components/modules/maps/list/list-item/index.js.map +1 -0
  82. package/dist/components/modules/maps/map-list.js +57 -0
  83. package/dist/components/modules/maps/map-list.js.map +1 -0
  84. package/dist/components/modules/maps/map-marker.js +85 -0
  85. package/dist/components/modules/maps/map-marker.js.map +1 -0
  86. package/dist/components/modules/maps/map.js +201 -0
  87. package/dist/components/modules/maps/map.js.map +1 -0
  88. package/dist/components/modules/maps/place-marker.js +37 -0
  89. package/dist/components/modules/maps/place-marker.js.map +1 -0
  90. package/dist/components/modules/maps/tabs.js +84 -0
  91. package/dist/components/modules/maps/tabs.js.map +1 -0
  92. package/dist/constants/placeTypes.js +11 -0
  93. package/dist/constants/placeTypes.js.map +1 -0
  94. package/dist/contexts/mapContext.js +133 -0
  95. package/dist/contexts/mapContext.js.map +1 -0
  96. package/dist/contexts/mapListContext.js +278 -0
  97. package/dist/contexts/mapListContext.js.map +1 -0
  98. package/dist/contexts/placesContext.js +152 -0
  99. package/dist/contexts/placesContext.js.map +1 -0
  100. package/dist/hooks/useList.js +119 -0
  101. package/dist/hooks/useList.js.map +1 -0
  102. package/dist/index.js +2 -4536
  103. package/dist/index.js.map +1 -0
  104. package/dist/services/_virtual/_rollupPluginBabelHelpers.js +372 -0
  105. package/dist/services/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
  106. package/dist/services/apis/hcApi.js +189 -0
  107. package/dist/services/apis/hcApi.js.map +1 -0
  108. package/dist/services/clientToken.js +7 -0
  109. package/dist/services/clientToken.js.map +1 -0
  110. package/dist/services/configService.js +33 -0
  111. package/dist/services/configService.js.map +1 -0
  112. package/dist/services/googlePlacesNearbyService.js +61 -0
  113. package/dist/services/googlePlacesNearbyService.js.map +1 -0
  114. package/dist/services/listingAggregatorService.js +56 -0
  115. package/dist/services/listingAggregatorService.js.map +1 -0
  116. package/dist/services/listingEntityService.js +36 -0
  117. package/dist/services/listingEntityService.js.map +1 -0
  118. package/dist/services/listingService.js +60 -112
  119. package/dist/services/listingService.js.map +1 -0
  120. package/dist/services/recruiterService.js +36 -0
  121. package/dist/services/recruiterService.js.map +1 -0
  122. package/dist/services/styles/index.css +3 -0
  123. package/dist/styles/index.css +3 -0
  124. package/dist/util/filterUtil.js +213 -0
  125. package/dist/util/filterUtil.js.map +1 -0
  126. package/dist/util/loading.js +16 -0
  127. package/dist/util/loading.js.map +1 -0
  128. package/dist/util/localStorageUtil.js +32 -0
  129. package/dist/util/localStorageUtil.js.map +1 -0
  130. package/dist/util/mapIconUtil.js +73 -0
  131. package/dist/util/mapIconUtil.js.map +1 -0
  132. package/dist/util/mapUtil.js +76 -0
  133. package/dist/util/mapUtil.js.map +1 -0
  134. package/dist/util/sortUtil.js +33 -0
  135. package/dist/util/sortUtil.js.map +1 -0
  136. package/dist/util/stringUtils.js +9 -0
  137. package/dist/util/stringUtils.js.map +1 -0
  138. package/jsconfig.json +7 -0
  139. package/package.json +51 -38
  140. package/postcss.config.js +13 -15
  141. package/{src/tailwind/preset.default.js → preset.default.js} +15 -15
  142. package/rollup.config.mjs +87 -0
  143. package/src/apis/hcApi.js +93 -87
  144. package/src/clientToken.js +9 -9
  145. package/src/components/HireControlMap.js +120 -0
  146. package/src/components/modules/accordions/MapAccordionItem.js +72 -69
  147. package/src/components/modules/accordions/default.js +171 -173
  148. package/src/components/modules/accordions/filterItem.js +53 -53
  149. package/src/components/modules/accordions/filters.js +47 -44
  150. package/src/components/modules/buttons/button-group-apply.js +113 -85
  151. package/src/components/modules/buttons/commute-pill.js +22 -21
  152. package/src/components/modules/buttons/default.js +196 -196
  153. package/src/components/modules/buttons/items-pill.js +32 -31
  154. package/src/components/modules/buttons/pill-wrapper.js +27 -26
  155. package/src/components/modules/buttons/show-all-button.js +20 -20
  156. package/src/components/modules/cards/default.js +167 -168
  157. package/src/components/modules/cards/filter.js +56 -55
  158. package/src/components/modules/dialogs/apply-dialog.js +48 -47
  159. package/src/components/modules/filter/commute.js +148 -151
  160. package/src/components/modules/filter/index.js +87 -86
  161. package/src/components/modules/filter/item.js +76 -77
  162. package/src/components/modules/filter/location.js +71 -69
  163. package/src/components/modules/filter/points-of-interest.js +44 -43
  164. package/src/components/modules/filter/radio-item.js +53 -51
  165. package/src/components/modules/filter/search.js +92 -91
  166. package/src/components/modules/filter/sort.js +83 -83
  167. package/src/components/modules/grid.js +55 -56
  168. package/src/components/modules/icon.js +33 -33
  169. package/src/components/modules/jobListing/listing-details.js +94 -88
  170. package/src/components/modules/maps/info-window-card.js +17 -17
  171. package/src/components/modules/maps/info-window-content.js +58 -60
  172. package/src/components/modules/maps/list/field-mapper.js +112 -111
  173. package/src/components/modules/maps/list/header-item.js +91 -90
  174. package/src/components/modules/maps/list/header.js +47 -46
  175. package/src/components/modules/maps/list/index.js +107 -104
  176. package/src/components/modules/maps/list/item-expand-card/index.js +22 -21
  177. package/src/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js +50 -48
  178. package/src/components/modules/maps/list/item-expand-card/recruiter-details.js +68 -67
  179. package/src/components/modules/maps/list/item-expand-card/recruiter-headshot.js +22 -22
  180. package/src/components/modules/maps/list/list-item/index.js +134 -133
  181. package/src/components/modules/maps/map-list.js +74 -73
  182. package/src/components/modules/maps/map-marker.js +86 -84
  183. package/src/components/modules/maps/map.js +229 -226
  184. package/src/components/modules/maps/place-marker.js +1 -1
  185. package/src/components/modules/maps/tabs.js +81 -79
  186. package/src/constants/placeTypes.js +8 -8
  187. package/src/contexts/mapContext.js +20 -19
  188. package/src/contexts/mapListContext.js +20 -15
  189. package/src/contexts/placesContext.js +4 -0
  190. package/src/hooks/useList.js +12 -10
  191. package/src/index.js +3 -103
  192. package/src/services/configService.js +16 -16
  193. package/src/services/googlePlacesNearbyService.js +33 -33
  194. package/src/services/listingAggregatorService.js +5 -4
  195. package/src/services/listingEntityService.js +2 -1
  196. package/src/services/listingService.js +27 -28
  197. package/src/services/recruiterService.js +17 -17
  198. package/src/styles/{globals.css → index.css} +23 -23
  199. package/src/util/arrayUtil.js +3 -3
  200. package/src/util/fieldMapper.js +22 -19
  201. package/src/util/filterUtil.js +19 -19
  202. package/src/util/loading.js +17 -17
  203. package/src/util/localStorageUtil.js +26 -26
  204. package/src/util/mapIconUtil.js +3 -3
  205. package/src/util/sortUtil.js +32 -32
  206. package/src/util/stringUtils.js +6 -6
  207. package/{src/tailwind/tailwind.config.js → tailwind.config.js} +126 -127
  208. package/dist/globals.css +0 -3
  209. package/dist/output.css +0 -784
  210. package/dist/services/globals.css +0 -3
  211. package/rollup.config.js +0 -68
  212. package/src/components/layout/footer.js +0 -34
  213. package/src/components/layout/header.js +0 -23
  214. package/src/components/layout/layout.js +0 -36
  215. package/src/components/modules/animations/slidein.js +0 -41
  216. package/src/components/modules/navigation/nav-link.js +0 -65
  217. package/src/components/modules/navigation/navbar.js +0 -106
  218. package/src/components/modules/navigation/skip-link.js +0 -21
  219. package/src/components/modules/navigation/social.js +0 -29
  220. package/src/components/modules/sections/default.js +0 -59
  221. package/src/components/modules/sections/sectionContext.js +0 -4
  222. package/src/hooks/useClickOutside.js +0 -16
  223. package/src/hooks/useEventListener.js +0 -25
  224. package/src/hooks/useEventTracker.js +0 -19
  225. package/src/hooks/useRefScrollProgress.js +0 -24
  226. package/src/hooks/useScript.js +0 -63
  227. package/src/hooks/useScrollDirection.js +0 -39
  228. package/src/hooks/useSectionTracker.js +0 -95
  229. package/src/hooks/useUserAgent.js +0 -43
  230. package/src/hooks/useWindowSize.js +0 -28
  231. package/src/index.css +0 -25
  232. package/src/styles/fonts.js +0 -0
  233. package/src/util/page-head.js +0 -62
  234. package/src/util/provider.js +0 -12
@@ -0,0 +1,88 @@
1
+ import { slicedToArray as _slicedToArray } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React from 'react';
3
+ import Grid from '../../grid.js';
4
+ import IconContained from '../../icon.js';
5
+ import { PillWrapper } from '../../buttons/pill-wrapper.js';
6
+ import { capitalize } from '../../../../util/stringUtils.js';
7
+
8
+ var FieldMapper = function FieldMapper(_ref) {
9
+ var item = _ref.item,
10
+ fieldsShown = _ref.fieldsShown,
11
+ specialFeatures = _ref.specialFeatures,
12
+ handleFavouriteClick = _ref.handleFavouriteClick,
13
+ isFavorite = _ref.isFavorite;
14
+ var orderedFields = fieldsShown.filter(function (field) {
15
+ return field in item.fields;
16
+ });
17
+ var specialFeaturePills = function specialFeaturePills(field) {
18
+ return field === 'position' && specialFeatures && Object.entries(specialFeatures).map(function (_ref2) {
19
+ var _ref3 = _slicedToArray(_ref2, 2),
20
+ featureKey = _ref3[0],
21
+ featureLabel = _ref3[1];
22
+ return item.fields[featureKey] === 1 && /*#__PURE__*/React.createElement(PillWrapper, {
23
+ key: featureKey
24
+ }, featureLabel);
25
+ });
26
+ };
27
+ return /*#__PURE__*/React.createElement(React.Fragment, null, orderedFields.map(function (field) {
28
+ var value = item.fields[field];
29
+ return /*#__PURE__*/React.createElement(Grid.Item, {
30
+ key: field,
31
+ className: "\n\t\t\t\t\t\t\thc-hidden md:hc-block\n\t\t\t\t\t\t\t".concat(field.toLowerCase() === "position" ? "hc-col-span-2" : "hc-col-span-1", "\n\t\t\t\t\t\t")
32
+ }, /*#__PURE__*/React.createElement("span", {
33
+ className: "hc-sr-only"
34
+ }, capitalize(field)), value, /*#__PURE__*/React.createElement("br", null), specialFeaturePills(field));
35
+ }), /*#__PURE__*/React.createElement(Grid.Item, {
36
+ className: "md:hc-hidden"
37
+ }, fieldsShown.includes("position") && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
38
+ className: "hc-flex hc-items-start"
39
+ }, /*#__PURE__*/React.createElement("div", {
40
+ className: "hc-flex hc-justify-between hc-items-center hc-min-w-[100%]"
41
+ }, " ", /*#__PURE__*/React.createElement("h3", {
42
+ className: "hc-font-bold hc-mb-3 hc-flex-1"
43
+ }, item.fields.position), /*#__PURE__*/React.createElement("div", {
44
+ className: "hc-flex hc-justify-end hc-pb-2"
45
+ }, /*#__PURE__*/React.createElement(IconContained, {
46
+ icon: isFavorite ? "mdi:heart" : "mdi:heart-outline",
47
+ size: "hc-size-3.5",
48
+ iconClasses: isFavorite ? "hc-text-primary" : "",
49
+ className: "hc-transition-opacity hc-duration-300 hc-cursor-pointer\n\t\t\t\t\t\t\t\t\t".concat(isFavorite ? "hc-opacity-100" : "hc-text-uiText/60 group-hover:hc-opacity-100", "\n\t\t\t\t\t\t\t\t\t"),
50
+ onClick: function onClick(e) {
51
+ return handleFavouriteClick(e);
52
+ }
53
+ })))), specialFeatures && /*#__PURE__*/React.createElement("div", {
54
+ className: "hc-pb-4"
55
+ }, specialFeaturePills("position"), " ")), /*#__PURE__*/React.createElement("ul", {
56
+ className: "hc-space-y-2 hc-text-xs"
57
+ }, [{
58
+ field: "category",
59
+ name: "Category",
60
+ icon: "icon-park-solid:tree-list"
61
+ }, {
62
+ field: "schedule",
63
+ name: "Schedule",
64
+ icon: "gravity-ui:clock-fill"
65
+ }, {
66
+ field: "cityState",
67
+ name: "Location",
68
+ icon: "fluent:location-16-filled"
69
+ }, {
70
+ field: "travelTime",
71
+ name: "Commute",
72
+ icon: "ri:pin-distance-fill"
73
+ }].map(function (listItem) {
74
+ return fieldsShown.includes(listItem.field) && item.fields[listItem.field] && /*#__PURE__*/React.createElement("li", {
75
+ key: listItem.field,
76
+ className: "hc-flex hc-gap-2"
77
+ }, /*#__PURE__*/React.createElement(IconContained, {
78
+ icon: listItem.icon,
79
+ size: "hc-size-3.5",
80
+ className: "hc-text-uiAccent/30"
81
+ }), /*#__PURE__*/React.createElement("span", {
82
+ className: "hc-sr-only"
83
+ }, listItem.name), item.fields[listItem.field]);
84
+ }))));
85
+ };
86
+
87
+ export { FieldMapper as default };
88
+ //# sourceMappingURL=field-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-mapper.js","sources":["../../../../../src/components/modules/maps/list/field-mapper.js"],"sourcesContent":["import React from 'react';\n\nimport Grid from '~/components/modules/grid';\nimport Icon from '~/components/modules/icon';\nimport PillWrapper from '~/components/modules/buttons/pill-wrapper';\n\nimport { capitalize } from '~/util/stringUtils';\n\nconst FieldMapper = ({\n\titem,\n\tfieldsShown,\n\tspecialFeatures,\n\thandleFavouriteClick,\n\tisFavorite\n}) => {\n\tconst orderedFields = fieldsShown.filter(field => field in item.fields);\n\n\tconst specialFeaturePills = (field, mobile = false) => {\n\t\treturn field === 'position' && specialFeatures &&\n\t\t\tObject.entries(specialFeatures).map(([featureKey, featureLabel]) => {\n\t\t\t\treturn item.fields[featureKey] === 1 && (\n\t\t\t\t\t<PillWrapper key={featureKey}>{featureLabel}</PillWrapper>\n\t\t\t\t);\n\t\t\t});\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t{orderedFields.map(field => {\n\t\t\t\tlet value = item.fields[field];\n\t\t\t\treturn (\n\t\t\t\t\t<Grid.Item\n\t\t\t\t\t\tkey={field}\n\t\t\t\t\t\tclassName={`\n\t\t\t\t\t\t\thc-hidden md:hc-block\n\t\t\t\t\t\t\t${field.toLowerCase() === \"position\" ? \"hc-col-span-2\" : \"hc-col-span-1\"}\n\t\t\t\t\t\t`}\n\t\t\t\t\t>\n\t\t\t\t\t\t<span className=\"hc-sr-only\">{capitalize(field)}</span>\n\t\t\t\t\t\t{value}\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t{specialFeaturePills(field)}\n\t\t\t\t\t</Grid.Item>\n\t\t\t\t);\n\t\t\t})}\n\t\t\t<Grid.Item className=\"md:hc-hidden\">\n\t\t\t\t{fieldsShown.includes(\"position\") &&\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div className=\"hc-flex hc-items-start\">\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 */}\n\t\t\t\t\t\t\t\t<h3 className=\"hc-font-bold hc-mb-3 hc-flex-1\">{item.fields.position}</h3>\n\t\t\t\t\t\t\t\t<div className=\"hc-flex hc-justify-end hc-pb-2\">\n\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\ticon={isFavorite ? \"mdi:heart\" : \"mdi:heart-outline\"}\n\t\t\t\t\t\t\t\t\t\tsize=\"hc-size-3.5\"\n\t\t\t\t\t\t\t\t\t\ticonClasses={isFavorite ? \"hc-text-primary\" : \"\"}\n\t\t\t\t\t\t\t\t\t\tclassName={`hc-transition-opacity hc-duration-300 hc-cursor-pointer\n\t\t\t\t\t\t\t\t\t${isFavorite ? \"hc-opacity-100\" : \"hc-text-uiText/60 group-hover:hc-opacity-100\"}\n\t\t\t\t\t\t\t\t\t`}\n\t\t\t\t\t\t\t\t\t\tonClick={e => handleFavouriteClick(e)}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{specialFeatures && <div className='hc-pb-4'>{specialFeaturePills(\"position\", true)} </div>}\n\t\t\t\t\t</>\n\t\t\t\t}\n\n\t\t\t\t<ul className=\"hc-space-y-2 hc-text-xs\">\n\t\t\t\t\t{[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfield: \"category\",\n\t\t\t\t\t\t\tname: \"Category\",\n\t\t\t\t\t\t\ticon: \"icon-park-solid:tree-list\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfield: \"schedule\",\n\t\t\t\t\t\t\tname: \"Schedule\",\n\t\t\t\t\t\t\ticon: \"gravity-ui:clock-fill\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfield: \"cityState\",\n\t\t\t\t\t\t\tname: \"Location\",\n\t\t\t\t\t\t\ticon: \"fluent:location-16-filled\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfield: \"travelTime\",\n\t\t\t\t\t\t\tname: \"Commute\",\n\t\t\t\t\t\t\ticon: \"ri:pin-distance-fill\"\n\t\t\t\t\t\t}\n\t\t\t\t\t].map(listItem => (\n\t\t\t\t\t\t(fieldsShown.includes(listItem.field) && item.fields[listItem.field]) &&\n\t\t\t\t\t\t<li\n\t\t\t\t\t\t\tkey={listItem.field}\n\t\t\t\t\t\t\tclassName=\"hc-flex hc-gap-2\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ticon={listItem.icon}\n\t\t\t\t\t\t\t\tsize=\"hc-size-3.5\"\n\t\t\t\t\t\t\t\tclassName=\"hc-text-uiAccent/30\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<span className=\"hc-sr-only\">{listItem.name}</span>\n\t\t\t\t\t\t\t{item.fields[listItem.field]}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t))}\n\t\t\t\t</ul>\n\t\t\t</Grid.Item>\n\t\t</>\n\t);\n};\n\nexport default FieldMapper;\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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"}
@@ -0,0 +1,59 @@
1
+ import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, extends as _extends } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React, { useState, useEffect } from 'react';
3
+ import Button from '../../buttons/default.js';
4
+
5
+ var _excluded = ["className", "children", "field", "setSortSetting", "sortSetting", "isSortable"];
6
+ var SORT_STATE = {
7
+ notSorted: "not-sorted",
8
+ sortedAsc: "sorted-asc",
9
+ sortedDesc: "sorted-desc"
10
+ };
11
+ var HeaderItem = function HeaderItem(_ref) {
12
+ var className = _ref.className,
13
+ children = _ref.children,
14
+ field = _ref.field,
15
+ setSortSetting = _ref.setSortSetting,
16
+ sortSetting = _ref.sortSetting,
17
+ isSortable = _ref.isSortable,
18
+ rest = _objectWithoutProperties(_ref, _excluded);
19
+ var _useState = useState(SORT_STATE.notSorted),
20
+ _useState2 = _slicedToArray(_useState, 2),
21
+ isSorted = _useState2[0],
22
+ setIsSorted = _useState2[1];
23
+ var handleChange = function handleChange(field) {
24
+ if (isSortable === false) return;
25
+ var setting = {
26
+ field: field,
27
+ type: isSorted === SORT_STATE.sortedAsc ? "desc" : "asc"
28
+ };
29
+ setSortSetting(setting);
30
+ isSorted === SORT_STATE.notSorted ? setIsSorted(SORT_STATE.sortedAsc) : isSorted === SORT_STATE.sortedAsc ? setIsSorted(SORT_STATE.sortedDesc) : setIsSorted(SORT_STATE.sortedAsc);
31
+ };
32
+ useEffect(function () {
33
+ if ((sortSetting === null || sortSetting === void 0 ? void 0 : sortSetting.field) != null && sortSetting.field != field) {
34
+ setIsSorted(SORT_STATE.notSorted);
35
+ } else if ((sortSetting === null || sortSetting === void 0 ? void 0 : sortSetting.field) != null && isSorted == SORT_STATE.notSorted && sortSetting.field == field) {
36
+ setIsSorted(sortSetting.type == "asc" ? SORT_STATE.sortedAsc : SORT_STATE.sortedDesc);
37
+ }
38
+ }, [sortSetting, isSorted, field]);
39
+ return /*#__PURE__*/React.createElement(Button.Btn, _extends({
40
+ onClick: function onClick() {
41
+ return handleChange(field);
42
+ },
43
+ variant: "none",
44
+ className: "\n\t\t\t\thc-p-2 hc-rounded-none hc-text-left hc-normal-case hc-font-bold hover:hc-bg-uiAccent/5 focus:hc-bg-uiAccent/5\n\t\t\t\t".concat(field.toLowerCase() === "position" ? "hc-col-span-2" : "hc-col-span-1", "\n\t\t\t\t").concat(className !== null && className !== void 0 ? className : "", "\n\t\t\t")
45
+ }, rest), /*#__PURE__*/React.createElement(Button.Body, null, children, isSortable && /*#__PURE__*/React.createElement("div", {
46
+ className: "hc-flex hc-flex-col hc-pr-2"
47
+ }, /*#__PURE__*/React.createElement(Button.Icon, {
48
+ icon: "bi:caret-up-fill",
49
+ size: "hc-size-2.5",
50
+ className: "\n\t\t\t\t\t\t\thc-transition-opacity\n\t\t\t\t\t\t\t\t".concat(isSorted === "sorted-asc" ? "hc-opacity-100 hc-text-primary" : "hc-opacity-30", "\n\t\t\t\t\t\t\t")
51
+ }), /*#__PURE__*/React.createElement(Button.Icon, {
52
+ icon: "bi:caret-down-fill",
53
+ size: "hc-size-2.5",
54
+ className: "\n\t\t\t\t\t\t\t\ttransition-opacity\n\t\t\t\t\t\t\t\t".concat(isSorted === "sorted-desc" ? "hc-opacity-100" : "hc-opacity-30", "\n\t\t\t\t\t\t\t")
55
+ }))));
56
+ };
57
+
58
+ export { HeaderItem as default };
59
+ //# sourceMappingURL=header-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header-item.js","sources":["../../../../../src/components/modules/maps/list/header-item.js"],"sourcesContent":["import React, { useState, useEffect } from \"react\";\n\nimport Button from '~/components/modules/buttons/default';\n\nconst SORT_STATE = {\n\tnotSorted: \"not-sorted\",\n\tsortedAsc: \"sorted-asc\",\n\tsortedDesc: \"sorted-desc\"\n};\n\nconst HeaderItem = ({\n\tclassName,\n\tchildren,\n\tfield,\n\tsetSortSetting,\n\tsortSetting,\n\tisSortable,\n\t...rest\n}) => {\n\tconst [isSorted, setIsSorted] = useState(SORT_STATE.notSorted);\n\n\tconst handleChange = field => {\n\t\tif (isSortable === false)\n\t\t\treturn;\n\t\tlet setting = {\n\t\t\tfield: field,\n\t\t\ttype: isSorted === SORT_STATE.sortedAsc ? \"desc\" : \"asc\"\n\t\t};\n\t\tsetSortSetting(setting);\n\t\tisSorted === SORT_STATE.notSorted\n\t\t\t? setIsSorted(SORT_STATE.sortedAsc)\n\t\t\t: isSorted === SORT_STATE.sortedAsc\n\t\t\t\t? setIsSorted(SORT_STATE.sortedDesc)\n\t\t\t\t: setIsSorted(SORT_STATE.sortedAsc);\n\t};\n\n\tuseEffect(() => {\n\t\tif (sortSetting?.field != null && sortSetting.field != field) {\n\t\t\tsetIsSorted(SORT_STATE.notSorted);\n\t\t} else if (\n\t\t\tsortSetting?.field != null &&\n\t\t\tisSorted == SORT_STATE.notSorted &&\n\t\t\tsortSetting.field == field\n\t\t) {\n\t\t\tsetIsSorted(\n\t\t\t\tsortSetting.type == \"asc\"\n\t\t\t\t\t? SORT_STATE.sortedAsc\n\t\t\t\t\t: SORT_STATE.sortedDesc,\n\t\t\t);\n\t\t}\n\t}, [sortSetting, isSorted, field]);\n\n\treturn (\n\t\t<Button.Btn\n\t\t\tonClick={() => handleChange(field)}\n\t\t\tvariant=\"none\"\n\t\t\tclassName={`\n\t\t\t\thc-p-2 hc-rounded-none hc-text-left hc-normal-case hc-font-bold hover:hc-bg-uiAccent/5 focus:hc-bg-uiAccent/5\n\t\t\t\t${field.toLowerCase() === \"position\" ? \"hc-col-span-2\" : \"hc-col-span-1\"}\n\t\t\t\t${className ?? \"\"}\n\t\t\t`}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<Button.Body>\n\t\t\t\t{children}\n\t\t\t\t{isSortable && (\n\t\t\t\t\t<div className=\"hc-flex hc-flex-col hc-pr-2\">\n\t\t\t\t\t\t<Button.Icon\n\t\t\t\t\t\t\ticon=\"bi:caret-up-fill\"\n\t\t\t\t\t\t\tsize=\"hc-size-2.5\"\n\t\t\t\t\t\t\tclassName={`\n\t\t\t\t\t\t\thc-transition-opacity\n\t\t\t\t\t\t\t\t${isSorted === \"sorted-asc\" ? \"hc-opacity-100 hc-text-primary\" : \"hc-opacity-30\"}\n\t\t\t\t\t\t\t`}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button.Icon\n\t\t\t\t\t\t\ticon=\"bi:caret-down-fill\"\n\t\t\t\t\t\t\tsize=\"hc-size-2.5\"\n\t\t\t\t\t\t\tclassName={`\n\t\t\t\t\t\t\t\ttransition-opacity\n\t\t\t\t\t\t\t\t${isSorted === \"sorted-desc\" ? \"hc-opacity-100\" : \"hc-opacity-30\"}\n\t\t\t\t\t\t\t`}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Button.Body>\n\t\t</Button.Btn>\n\t);\n};\n\nexport default HeaderItem;\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,mIAAA,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,CAERa,eAAAA,KAAA,CAAAC,aAAA,CAACC,MAAM,CAACO,IAAI,EAAA,IAAA,EACV3B,QAAQ,EACRI,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;;;;"}
@@ -0,0 +1,37 @@
1
+ import { taggedTemplateLiteral as _taggedTemplateLiteral } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React from 'react';
3
+ import { twMerge } from 'tailwind-merge';
4
+ import Grid from '../../grid.js';
5
+ import HeaderItem from './header-item.js';
6
+
7
+ var _templateObject;
8
+ var ListHeader = function ListHeader(_ref) {
9
+ var className = _ref.className,
10
+ fieldsShown = _ref.fieldsShown,
11
+ fieldNames = _ref.fieldNames,
12
+ _ref$fieldIsSortable = _ref.fieldIsSortable,
13
+ fieldIsSortable = _ref$fieldIsSortable === void 0 ? true : _ref$fieldIsSortable,
14
+ setSortSetting = _ref.setSortSetting,
15
+ sortSetting = _ref.sortSetting;
16
+ return /*#__PURE__*/React.createElement(Grid, {
17
+ columns: "hc-grid-flow-col hc-auto-cols-fr",
18
+ gap: "hc-gap-0",
19
+ isAnimated: false,
20
+ className: twMerge(_templateObject || (_templateObject = _taggedTemplateLiteral(["\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\n\t\t\t\t", "\n\t\t\t"])), className !== null && className !== void 0 ? className : "")
21
+ }, fieldsShown.map(function (field) {
22
+ return /*#__PURE__*/React.createElement(HeaderItem, {
23
+ key: field,
24
+ isSortable: fieldIsSortable,
25
+ sortSetting: sortSetting,
26
+ field: field,
27
+ setSortSetting: setSortSetting
28
+ }, fieldNames[field]);
29
+ }), /*#__PURE__*/React.createElement(HeaderItem, {
30
+ key: "favorite",
31
+ isSortable: false,
32
+ field: "favorite"
33
+ }, "Favorite"));
34
+ };
35
+
36
+ export { ListHeader as default };
37
+ //# sourceMappingURL=header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.js","sources":["../../../../../src/components/modules/maps/list/header.js"],"sourcesContent":["import React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nimport Grid from '~/components/modules/grid';\nimport HeaderItem from '~/components/modules/maps/list/header-item';\n\nconst ListHeader = ({\n\tclassName,\n\tfieldsShown,\n\tfieldNames,\n\tfieldIsSortable = true,\n\tsetSortSetting,\n\tsortSetting\n}) => {\n\treturn (\n\t\t<Grid\n\t\t\tcolumns=\"hc-grid-flow-col hc-auto-cols-fr\"\n\t\t\tgap=\"hc-gap-0\"\n\t\t\tisAnimated={false}\n\t\t\tclassName={twMerge`\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\n\t\t\t\t${className ?? \"\"}\n\t\t\t`}\n\t\t>\n\t\t\t{fieldsShown.map(field => (\n\t\t\t\t<HeaderItem\n\t\t\t\t\tkey={field}\n\t\t\t\t\tisSortable={fieldIsSortable}\n\t\t\t\t\tsortSetting={sortSetting}\n\t\t\t\t\tfield={field}\n\t\t\t\t\tsetSortSetting={setSortSetting}\n\t\t\t\t>\n\t\t\t\t\t{fieldNames[field]}\n\t\t\t\t</HeaderItem>\n\t\t\t))}\n\t\t\t<HeaderItem key={\"favorite\"}\n\t\t\t\tisSortable={false}\n\t\t\t\tfield={\"favorite\"}\n\t\t\t>\n\t\t\t\tFavorite\n\t\t\t</HeaderItem>\n\n\t\t</Grid>\n\t);\n};\n\nexport default ListHeader;\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;;;;"}
@@ -0,0 +1,93 @@
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
+
12
+ var ItemsList = function ItemsList(_ref) {
13
+ var fieldNames = _ref.fieldNames,
14
+ showMap = _ref.showMap,
15
+ fieldsShown = _ref.fieldsShown,
16
+ specialFeatures = _ref.specialFeatures;
17
+ var _useListLogic = useListLogic(),
18
+ itemLimit = _useListLogic.itemLimit,
19
+ sortSetting = _useListLogic.sortSetting,
20
+ loader = _useListLogic.loader,
21
+ scrollContainerRef = _useListLogic.scrollContainerRef,
22
+ itemRefs = _useListLogic.itemRefs,
23
+ setSortSetting = _useListLogic.setSortSetting;
24
+ var _useMap = useMap(),
25
+ selectedListItem = _useMap.selectedListItem;
26
+ var _useMapList = useMapList(),
27
+ mapItems = _useMapList.mapItems,
28
+ filteredListings = _useMapList.filteredListings,
29
+ loading = _useMapList.loading,
30
+ commuteLocation = _useMapList.commuteLocation;
31
+ var itemExpandedContent = function itemExpandedContent(item, recruiters) {
32
+ return item ? /*#__PURE__*/React.createElement(ListingDetails, {
33
+ item: item,
34
+ recruiters: recruiters
35
+ }) : null;
36
+ };
37
+ if (!fieldsShown.includes('travelTime') && commuteLocation != null && Object.entries(commuteLocation).length > 0) {
38
+ fieldsShown.push('travelTime');
39
+ fieldNames['travelTime'] = 'Commute';
40
+ } else if (fieldsShown.includes('travelTime') && !commuteLocation) {
41
+ fieldsShown = fieldsShown.filter(function (x) {
42
+ return x !== 'travelTime';
43
+ });
44
+ }
45
+ return /*#__PURE__*/React.createElement("div", {
46
+ className: "hc-relative hc-bg-white md:hc-px-4 hc-flex hc-flex-col"
47
+ }, /*#__PURE__*/React.createElement("div", {
48
+ 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"
49
+ }, /*#__PURE__*/React.createElement("h2", {
50
+ className: "hc-text-gray-500 hc-font-semibold hc-text-xs md:hc-text-sm"
51
+ }, loading && /*#__PURE__*/React.createElement("span", null, "Loading..."), !loading && /*#__PURE__*/React.createElement("span", null, filteredListings.length, " results")), /*#__PURE__*/React.createElement("div", {
52
+ className: "hc-block md:hc-hidden"
53
+ }, /*#__PURE__*/React.createElement(FilterSort, {
54
+ fields: fieldsShown,
55
+ setSortSetting: setSortSetting,
56
+ fieldNames: fieldNames
57
+ }))), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(ListHeader, {
58
+ setSortSetting: setSortSetting,
59
+ sortSetting: sortSetting,
60
+ fieldsShown: fieldsShown,
61
+ fieldNames: fieldNames
62
+ })), /*#__PURE__*/React.createElement("div", {
63
+ ref: scrollContainerRef,
64
+ 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")
65
+ }, loading ? /*#__PURE__*/React.createElement("div", {
66
+ className: "hc-flex hc-justify-center hc-items-center hc-pt-20"
67
+ }, /*#__PURE__*/React.createElement(Loading, null)) : /*#__PURE__*/React.createElement(Accordion, {
68
+ className: "hc-divide-y hc-divide-uiAccent/10 hc-z-[1000]",
69
+ defaultValue: selectedListItem === null || selectedListItem === void 0 ? void 0 : selectedListItem.id
70
+ }, filteredListings.slice(0, itemLimit).map(function (item) {
71
+ return /*#__PURE__*/React.createElement(MapAccordionItem, {
72
+ key: item.id,
73
+ showMap: showMap,
74
+ item: item,
75
+ itemRefs: itemRefs,
76
+ fieldsShown: fieldsShown,
77
+ itemExpandedContent: itemExpandedContent,
78
+ specialFeatures: specialFeatures,
79
+ mapItems: mapItems,
80
+ isActive: (selectedListItem === null || selectedListItem === void 0 ? void 0 : selectedListItem.id) == item.id,
81
+ hasListItemSelected: selectedListItem != null
82
+ });
83
+ })), /*#__PURE__*/React.createElement("div", {
84
+ ref: loader,
85
+ style: {
86
+ height: "100px",
87
+ textAlign: "center"
88
+ }
89
+ }, filteredListings.length >= itemLimit && /*#__PURE__*/React.createElement(Loading, null))));
90
+ };
91
+
92
+ export { ItemsList as default };
93
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/components/modules/maps/list/index.js"],"sourcesContent":["import React from 'react';\n\nimport Accordion from '~/components/modules/accordions/default';\nimport Header from '~/components/modules/maps/list/header';\nimport MapAccordionItem from '~/components/modules/accordions/MapAccordionItem';\nimport Sort from '~/components/modules/filter/sort';\nimport ListingDetails from '~/components/modules/jobListing/listing-details';\n\nimport useListLogic from '~/hooks/useList';\n\nimport Loading from \"~/util/loading\";\n\nimport { useMap } from '~/contexts/mapContext';\nimport { useMapList } from '~/contexts/mapListContext';\n\nconst ItemsList = ({\n\tfieldNames,\n\tshowMap,\n\tfieldsShown,\n\tspecialFeatures\n}) => {\n\n\tconst {\n\t\titemLimit,\n\t\tsortSetting,\n\t\tloader,\n\t\tscrollContainerRef,\n\t\titemRefs,\n\t\tsetSortSetting\n\t} = useListLogic();\n\tconst { selectedListItem } = useMap();\n\tconst { mapItems, filteredListings, loading, commuteLocation } = useMapList();\n\tconst itemExpandedContent = (item, recruiters) =>\n\t\titem ? <ListingDetails item={item} recruiters={recruiters} /> : null;\n\tif (!fieldsShown.includes('travelTime') && commuteLocation != null && Object.entries(commuteLocation).length > 0) {\n\t\tfieldsShown.push('travelTime');\n\t\tfieldNames['travelTime'] = 'Commute';\n\t} else if (fieldsShown.includes('travelTime') && !commuteLocation) {\n\t\tfieldsShown = fieldsShown.filter(x => x !== 'travelTime');\n\t}\n\n\treturn (\n\t\t<div className=\"hc-relative hc-bg-white md:hc-px-4 hc-flex hc-flex-col\">\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\">\n\t\t\t\t<h2 className=\"hc-text-gray-500 hc-font-semibold hc-text-xs md:hc-text-sm\">\n\t\t\t\t\t{loading &&\n\t\t\t\t\t\t<span>Loading...</span>\n\t\t\t\t\t}\n\t\t\t\t\t{!loading &&\n\t\t\t\t\t\t<span>{filteredListings.length} results</span>\n\t\t\t\t\t}\n\t\t\t\t</h2>\n\t\t\t\t<div className=\"hc-block md:hc-hidden\">\n\t\t\t\t\t<Sort\n\t\t\t\t\t\tfields={fieldsShown}\n\t\t\t\t\t\tsetSortSetting={setSortSetting}\n\t\t\t\t\t\tfieldNames={fieldNames}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<Header\n\t\t\t\t\tsetSortSetting={setSortSetting}\n\t\t\t\t\tsortSetting={sortSetting}\n\t\t\t\t\tfieldsShown={fieldsShown}\n\t\t\t\t\tfieldNames={fieldNames}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tref={scrollContainerRef}\n\t\t\t\tclassName={`\n\t\t\t\t\thc-flex-grow hc-overflow-y-auto\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]\"}\n\t\t\t\t`}\n\t\t\t>\n\t\t\t\t{loading ? (\n\t\t\t\t\t<div className=\"hc-flex hc-justify-center hc-items-center hc-pt-20\">\n\t\t\t\t\t\t<Loading />\n\t\t\t\t\t</div>\n\t\t\t\t) : (\n\t\t\t\t\t<Accordion className=\"hc-divide-y hc-divide-uiAccent/10 hc-z-[1000]\" defaultValue={selectedListItem?.id}>\n\t\t\t\t\t\t{filteredListings.slice(0, itemLimit).map(item => {\n\t\t\t\t\t\t\treturn (<MapAccordionItem\n\t\t\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\t\t\tshowMap={showMap}\n\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\titemRefs={itemRefs}\n\t\t\t\t\t\t\t\tfieldsShown={fieldsShown}\n\t\t\t\t\t\t\t\titemExpandedContent={itemExpandedContent}\n\t\t\t\t\t\t\t\tspecialFeatures={specialFeatures}\n\t\t\t\t\t\t\t\tmapItems={mapItems}\n\t\t\t\t\t\t\t\tisActive={selectedListItem?.id == item.id}\n\t\t\t\t\t\t\t\thasListItemSelected={selectedListItem != null}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</Accordion>\n\t\t\t\t)}\n\t\t\t\t<div ref={loader} style={{ height: \"100px\", textAlign: \"center\" }}>\n\t\t\t\t\t{filteredListings.length >= itemLimit && <Loading />}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default ItemsList;\n"],"names":["ItemsList","_ref","fieldNames","showMap","fieldsShown","specialFeatures","_useListLogic","useListLogic","itemLimit","sortSetting","loader","scrollContainerRef","itemRefs","setSortSetting","_useMap","useMap","selectedListItem","_useMapList","useMapList","mapItems","filteredListings","loading","commuteLocation","itemExpandedContent","item","recruiters","React","createElement","ListingDetails","includes","Object","entries","length","push","filter","x","className","Sort","fields","Header","ref","concat","Loading","Accordion","defaultValue","id","slice","map","MapAccordionItem","key","isActive","hasListItemSelected","style","height","textAlign"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React from 'react';
3
+ import { twMerge } from 'tailwind-merge';
4
+
5
+ var _excluded = ["className", "content"];
6
+ var CardItemExpand = function CardItemExpand(_ref) {
7
+ var className = _ref.className,
8
+ content = _ref.content,
9
+ props = _objectWithoutProperties(_ref, _excluded);
10
+ return /*#__PURE__*/React.createElement("div", _extends({
11
+ className: twMerge('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', className !== null && className !== void 0 ? className : '')
12
+ }, props), content);
13
+ };
14
+
15
+ export { CardItemExpand as default };
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../../src/components/modules/maps/list/item-expand-card/index.js"],"sourcesContent":["import React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nconst CardItemExpand = ({\n\tclassName,\n\tcontent,\n\t...props\n}) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={twMerge(\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',\n\t\t\t\tclassName ?? ''\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{content}\n\t\t</div>\n\t);\n};\n\nexport default CardItemExpand;\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;;;;"}
@@ -0,0 +1,38 @@
1
+ import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React from 'react';
3
+ import Button from '../../../buttons/default.js';
4
+
5
+ var _excluded = ["className", "href", "target", "title", "icon"];
6
+ var RecruiterContactNav = function RecruiterContactNav(_ref) {
7
+ var children = _ref.children,
8
+ className = _ref.className;
9
+ return /*#__PURE__*/React.createElement("nav", {
10
+ className: "\n\t\t\thc-inline-flex hc-items-center hc-justify-between hc-gap-2 hc-mt-2\n\t\t\t\t".concat(className !== null && className !== void 0 ? className : '', "\n\t\t\t")
11
+ }, children);
12
+ };
13
+ var NavButton = function NavButton(_ref2) {
14
+ var className = _ref2.className,
15
+ href = _ref2.href,
16
+ _ref2$target = _ref2.target,
17
+ target = _ref2$target === void 0 ? '_self' : _ref2$target,
18
+ title = _ref2.title,
19
+ icon = _ref2.icon,
20
+ props = _objectWithoutProperties(_ref2, _excluded);
21
+ return /*#__PURE__*/React.createElement(Button.Anchor, _extends({
22
+ href: href,
23
+ variant: "icon",
24
+ size: "sq",
25
+ target: target,
26
+ title: title,
27
+ className: className !== null && className !== void 0 ? className : ''
28
+ }, props), /*#__PURE__*/React.createElement("span", {
29
+ className: "hc-sr-only"
30
+ }, title), /*#__PURE__*/React.createElement(Button.Icon, {
31
+ icon: icon,
32
+ size: "hc-size-8"
33
+ }));
34
+ };
35
+ RecruiterContactNav.Button = NavButton;
36
+
37
+ export { NavButton, RecruiterContactNav as default };
38
+ //# sourceMappingURL=recruiter-contact-nav.js.map
@@ -0,0 +1 @@
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';\n\nimport Button from '~/components/modules/buttons/default';\n\nconst RecruiterContactNav = ({\n\tchildren,\n\tclassName\n}) => {\n\treturn (\n\t\t<nav\n\t\t\tclassName={`\n\t\t\thc-inline-flex hc-items-center hc-justify-between hc-gap-2 hc-mt-2\n\t\t\t\t${className ?? ''}\n\t\t\t`}\n\t\t>\n\t\t\t{children}\n\t\t</nav>\n\t);\n};\n\nexport const NavButton = ({\n\tclassName,\n\thref,\n\ttarget = '_self',\n\ttitle,\n\ticon,\n\t...props\n}) => {\n\treturn (\n\t\t<Button.Anchor\n\t\t\thref={href}\n\t\t\tvariant=\"icon\"\n\t\t\tsize=\"sq\"\n\t\t\ttarget={target}\n\t\t\ttitle={title}\n\t\t\tclassName={className ?? ''}\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"hc-sr-only\">{title}</span>\n\t\t\t<Button.Icon\n\t\t\t\ticon={icon}\n\t\t\t\tsize=\"hc-size-8\"\n\t\t\t/>\n\t\t</Button.Anchor>\n\t);\n};\n\nRecruiterContactNav.Button = NavButton;\n\nexport default RecruiterContactNav;\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;;;;"}
@@ -0,0 +1,40 @@
1
+ import { taggedTemplateLiteral as _taggedTemplateLiteral } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React from 'react';
3
+ import { twMerge } from 'tailwind-merge';
4
+
5
+ var _templateObject, _templateObject2, _templateObject3;
6
+ var RecruiterDetails = function RecruiterDetails(_ref) {
7
+ var contactNav = _ref.contactNav,
8
+ className = _ref.className,
9
+ children = _ref.children;
10
+ return /*#__PURE__*/React.createElement("div", {
11
+ className: twMerge(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n\t\t\t\thc-grow\n\t\t\t\t", "\n\t\t\t"])), className !== null && className !== void 0 ? className : '')
12
+ }, children, contactNav && /*#__PURE__*/React.createElement("div", {
13
+ className: "hc-inline-flex"
14
+ }, contactNav));
15
+ };
16
+ var Title = function Title(_ref2) {
17
+ var _ref2$as = _ref2.as,
18
+ as = _ref2$as === void 0 ? 'h4' : _ref2$as,
19
+ className = _ref2.className,
20
+ children = _ref2.children;
21
+ var Container = as;
22
+ return /*#__PURE__*/React.createElement(Container, {
23
+ className: twMerge(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n\t\t\t\thc-text-base hc-font-medium\n\t\t\t\t", "\n\t\t\t"])), className !== null && className !== void 0 ? className : '')
24
+ }, children);
25
+ };
26
+ var Text = function Text(_ref3) {
27
+ var _ref3$as = _ref3.as,
28
+ as = _ref3$as === void 0 ? 'p' : _ref3$as,
29
+ className = _ref3.className,
30
+ children = _ref3.children;
31
+ var Container = as;
32
+ return /*#__PURE__*/React.createElement(Container, {
33
+ className: twMerge(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n\t\t\t\thc-text-sm hc-text-uiText/60\n\t\t\t\t", "\n\t\t\t"])), className !== null && className !== void 0 ? className : '')
34
+ }, children);
35
+ };
36
+ RecruiterDetails.Title = Title;
37
+ RecruiterDetails.Text = Text;
38
+
39
+ export { Text, Title, RecruiterDetails as default };
40
+ //# sourceMappingURL=recruiter-details.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recruiter-details.js","sources":["../../../../../../src/components/modules/maps/list/item-expand-card/recruiter-details.js"],"sourcesContent":["import React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nconst RecruiterDetails = ({\n\tcontactNav,\n\tclassName,\n\tchildren\n}) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={twMerge`\n\t\t\t\thc-grow\n\t\t\t\t${className ?? ''}\n\t\t\t`}\n\t\t>\n\t\t\t{children}\n\n\t\t\t{contactNav &&\n\t\t\t\t<div className=\"hc-inline-flex\">\n\t\t\t\t\t{contactNav}\n\t\t\t\t</div>\n\t\t\t}\n\t\t</div>\n\t);\n};\n\nexport const Title = ({\n\tas = 'h4',\n\tclassName,\n\tchildren\n}) => {\n\tconst Container = as;\n\n\treturn (\n\t\t<Container\n\t\t\tclassName={twMerge`\n\t\t\t\thc-text-base hc-font-medium\n\t\t\t\t${className ?? ''}\n\t\t\t`}\n\t\t>\n\t\t\t{children}\n\t\t</Container>\n\t);\n};\n\nexport const Text = ({\n\tas = 'p',\n\tclassName,\n\tchildren\n}) => {\n\tconst Container = as;\n\n\treturn (\n\t\t<Container\n\t\t\tclassName={twMerge`\n\t\t\t\thc-text-sm hc-text-uiText/60\n\t\t\t\t${className ?? ''}\n\t\t\t`}\n\t\t>\n\t\t\t{children}\n\t\t</Container>\n\t);\n};\n\nRecruiterDetails.Title = Title;\nRecruiterDetails.Text = Text;\n\nexport default RecruiterDetails;\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;;;;"}
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+
3
+ var RecruiterHeadshot = function RecruiterHeadshot(_ref) {
4
+ var image = _ref.image,
5
+ alt = _ref.alt,
6
+ className = _ref.className,
7
+ imageClassName = _ref.imageClassName;
8
+ return /*#__PURE__*/React.createElement("div", {
9
+ className: className !== null && className !== void 0 ? className : ''
10
+ }, /*#__PURE__*/React.createElement("img", {
11
+ src: image,
12
+ width: "96",
13
+ height: "96",
14
+ alt: alt,
15
+ className: imageClassName !== null && imageClassName !== void 0 ? imageClassName : ''
16
+ }));
17
+ };
18
+
19
+ export { RecruiterHeadshot as default };
20
+ //# sourceMappingURL=recruiter-headshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recruiter-headshot.js","sources":["../../../../../../src/components/modules/maps/list/item-expand-card/recruiter-headshot.js"],"sourcesContent":["import React from 'react';\n\nconst RecruiterHeadshot = ({\n\timage,\n\talt,\n\tclassName,\n\timageClassName\n}) => {\n\treturn (\n\t\t<div className={className ?? ''}>\n\t\t\t<img\n\t\t\t\tsrc={image}\n\t\t\t\twidth=\"96\"\n\t\t\t\theight=\"96\"\n\t\t\t\talt={alt}\n\t\t\t\tclassName={imageClassName ?? ''}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default RecruiterHeadshot;\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;;;;"}
@@ -0,0 +1,98 @@
1
+ import { objectWithoutProperties as _objectWithoutProperties, extends as _extends, toConsumableArray as _toConsumableArray } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import React, { forwardRef } from 'react';
3
+ import Grid from '../../../grid.js';
4
+ import IconContained from '../../../icon.js';
5
+ import FieldMapper from '../field-mapper.js';
6
+ import { useMapList } from '../../../../../contexts/mapListContext.js';
7
+
8
+ var _excluded = ["isActive", "bodyClassName", "className", "item", "fieldsShown", "specialFeatures", "onItemSelected", "showMap", "setMobileTab", "favorites", "setFavorites"];
9
+ var ListItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
10
+ var _item$mapDetails, _item$mapDetails2, _item$mapDetails3, _item$mapDetails4;
11
+ var isActive = _ref.isActive,
12
+ bodyClassName = _ref.bodyClassName,
13
+ className = _ref.className,
14
+ item = _ref.item,
15
+ fieldsShown = _ref.fieldsShown,
16
+ specialFeatures = _ref.specialFeatures,
17
+ onItemSelected = _ref.onItemSelected,
18
+ showMap = _ref.showMap,
19
+ setMobileTab = _ref.setMobileTab,
20
+ favorites = _ref.favorites,
21
+ setFavorites = _ref.setFavorites,
22
+ props = _objectWithoutProperties(_ref, _excluded);
23
+ var _useMapList = useMapList(),
24
+ siteConfig = _useMapList.siteConfig;
25
+ var mapPinColor = siteConfig.colors.primary.replace("#", "");
26
+ var handleClick = function handleClick() {
27
+ if (onItemSelected) {
28
+ onItemSelected(item);
29
+ }
30
+ };
31
+ var isFavorite = favorites.includes(item.id);
32
+ var handleFavouriteClick = function handleFavouriteClick(event) {
33
+ event.stopPropagation();
34
+ var updatedFavorites;
35
+ if (isFavorite) {
36
+ updatedFavorites = favorites.filter(function (fav) {
37
+ return fav !== item.id;
38
+ });
39
+ } else {
40
+ updatedFavorites = [].concat(_toConsumableArray(favorites), [item.id]);
41
+ }
42
+ isFavorite = !isFavorite;
43
+ setFavorites(updatedFavorites);
44
+ };
45
+ return /*#__PURE__*/React.createElement("button", _extends({
46
+ ref: ref,
47
+ onClick: handleClick,
48
+ className: "\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\n\t\t\t\t\t".concat(isActive ? "hc-bg-uiAccent/5 hc-border-secondary hc-border" : "hc-text-uiText hc-bg-white", "\n\t\t\t\t\t").concat(className !== null && className !== void 0 ? className : "", "\n ")
49
+ }, props), /*#__PURE__*/React.createElement(Grid, {
50
+ columns: "hc-grid-flow-col hc-auto-cols-fr",
51
+ gap: "hc-gap-2",
52
+ isAnimated: false,
53
+ className: "\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\n\t\t\t\t\t\t".concat(bodyClassName !== null && bodyClassName !== void 0 ? bodyClassName : "", "\n\t\t\t\t\t")
54
+ }, /*#__PURE__*/React.createElement(Grid.Item, {
55
+ className: "hc-hidden md:hc-block md:hc-absolute md:hc-left-1.5 hc-top-1.5"
56
+ }, /*#__PURE__*/React.createElement("span", {
57
+ className: "hc-sr-only"
58
+ }, "Expand row"), /*#__PURE__*/React.createElement(IconContained, {
59
+ icon: "fluent-emoji-high-contrast:plus",
60
+ size: "hc-size-2.5",
61
+ className: "\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\n\t\t\t\t\t\t\t\t".concat(isActive ? "hc-opacity-100 hc-rotate-45" : "", "\n\t\t\t\t\t\t\t")
62
+ })), /*#__PURE__*/React.createElement(FieldMapper, {
63
+ item: item,
64
+ fieldsShown: fieldsShown,
65
+ specialFeatures: specialFeatures,
66
+ isFavorite: isFavorite,
67
+ handleFavouriteClick: handleFavouriteClick
68
+ }), /*#__PURE__*/React.createElement(Grid.Item, {
69
+ key: "favorites",
70
+ className: "hc-hidden md:hc-block hc-col-span-1"
71
+ }, /*#__PURE__*/React.createElement(IconContained, {
72
+ icon: isFavorite ? "mdi:heart" : "mdi:heart-outline",
73
+ size: "hc-size-3.5",
74
+ iconClasses: isFavorite ? "hc-text-primary" : "",
75
+ title: !isFavorite ? 'Add job to favorites' : 'Remove job from favorites',
76
+ className: "\n\t\t\t\t\t\t\thc-pr-2 hc-transition-opacity hc-duration-300 hc-cursor-pointer hc-opacity-100\"\n\t\t\t\t\t\t",
77
+ onClick: function onClick(e) {
78
+ return handleFavouriteClick(e);
79
+ }
80
+ }))), showMap && /*#__PURE__*/React.createElement("div", {
81
+ onClick: function onClick() {
82
+ setMobileTab("mapTab");
83
+ handleClick();
84
+ },
85
+ 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"
86
+ }, /*#__PURE__*/React.createElement("img", {
87
+ src: "https://maps.googleapis.com/maps/api/staticmap?scale=2&center=".concat((_item$mapDetails = item.mapDetails) === null || _item$mapDetails === void 0 ? void 0 : _item$mapDetails.latitude, ",").concat((_item$mapDetails2 = item.mapDetails) === null || _item$mapDetails2 === void 0 ? void 0 : _item$mapDetails2.longitude, "&zoom=10&size=240x180&maptype=roadmap&markers=color:0x").concat(mapPinColor, "%7Clabel:\u2022%7C").concat((_item$mapDetails3 = item.mapDetails) === null || _item$mapDetails3 === void 0 ? void 0 : _item$mapDetails3.latitude, ",").concat((_item$mapDetails4 = item.mapDetails) === null || _item$mapDetails4 === void 0 ? void 0 : _item$mapDetails4.longitude, "&key=", "AIzaSyAXPlfaoMCrmjNV1u-vFYdLBi7GkGeh4S4"),
88
+ alt: "Map of location for ".concat(item.fields.position),
89
+ className: "hc-w-full hc-h-full hc-object-cover"
90
+ })));
91
+ });
92
+ ListItem.displayName = "ListItem";
93
+ var ListItem$1 = /*#__PURE__*/React.memo(ListItem, function (prevProps, nextProps) {
94
+ return (prevProps.isActive === nextProps.isActive || prevProps.isActive !== nextProps.isActive) && prevProps.bodyClassName === nextProps.bodyClassName && prevProps.className === nextProps.className && prevProps.fieldsShown === nextProps.fieldsShown && prevProps.item.id === nextProps.item.id;
95
+ });
96
+
97
+ export { ListItem$1 as default };
98
+ //# sourceMappingURL=index.js.map