@abcagency/hc-ui-components 1.3.15 → 1.3.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/apis/hcApi.js +1 -1
- package/dist/apis/hcApi.js.map +1 -1
- package/dist/components/HireControlMap.js +15 -5
- package/dist/components/HireControlMap.js.map +1 -1
- package/dist/components/modules/accordions/MapAccordionItem.js +11 -1
- package/dist/components/modules/accordions/MapAccordionItem.js.map +1 -1
- package/dist/components/modules/accordions/filterItem.js.map +1 -1
- package/dist/components/modules/accordions/filters.js.map +1 -1
- package/dist/components/modules/buttons/button-group-apply.js +36 -15
- package/dist/components/modules/buttons/button-group-apply.js.map +1 -1
- package/dist/components/modules/filter/commute.js +22 -6
- package/dist/components/modules/filter/commute.js.map +1 -1
- package/dist/components/modules/filter/index.js +7 -0
- package/dist/components/modules/filter/index.js.map +1 -1
- package/dist/components/modules/filter/item.js +10 -0
- package/dist/components/modules/filter/item.js.map +1 -1
- package/dist/components/modules/filter/location.js +2 -4
- package/dist/components/modules/filter/location.js.map +1 -1
- package/dist/components/modules/filter/radio-item.js +7 -0
- package/dist/components/modules/filter/radio-item.js.map +1 -1
- package/dist/components/modules/jobListing/listing-details.js +6 -0
- package/dist/components/modules/jobListing/listing-details.js.map +1 -1
- package/dist/components/modules/maps/info-window-content.js +20 -0
- package/dist/components/modules/maps/info-window-content.js.map +1 -1
- package/dist/components/modules/maps/list/index.js +10 -2
- package/dist/components/modules/maps/list/index.js.map +1 -1
- package/dist/components/modules/maps/list/list-item/index.js +12 -2
- package/dist/components/modules/maps/list/list-item/index.js.map +1 -1
- package/dist/components/modules/maps/map-marker.js +10 -0
- package/dist/components/modules/maps/map-marker.js.map +1 -1
- package/dist/constants/eventTypes.js +16 -0
- package/dist/constants/eventTypes.js.map +1 -0
- package/dist/contexts/mapContext.js.map +1 -1
- package/dist/contexts/mapListContext.js +4 -2
- package/dist/contexts/mapListContext.js.map +1 -1
- package/dist/contexts/trackEventContext.js +20 -0
- package/dist/contexts/trackEventContext.js.map +1 -0
- package/dist/hooks/useList.js.map +1 -1
- package/dist/services/apis/hcApi.js +1 -1
- package/dist/services/apis/hcApi.js.map +1 -1
- package/dist/services/listingAggregatorService.js.map +1 -1
- package/dist/util/mapIconUtil.js.map +1 -1
- package/package.json +1 -1
- package/src/components/HireControlMap.js +60 -55
- package/src/components/modules/accordions/MapAccordionItem.js +3 -1
- package/src/components/modules/accordions/filterItem.js +55 -55
- package/src/components/modules/accordions/filters.js +47 -47
- package/src/components/modules/buttons/button-group-apply.js +73 -66
- package/src/components/modules/filter/commute.js +7 -2
- package/src/components/modules/filter/index.js +89 -87
- package/src/components/modules/filter/item.js +87 -81
- package/src/components/modules/filter/location.js +71 -73
- package/src/components/modules/filter/radio-item.js +4 -0
- package/src/components/modules/jobListing/listing-details.js +4 -0
- package/src/components/modules/maps/info-window-content.js +8 -1
- package/src/components/modules/maps/list/index.js +112 -107
- package/src/components/modules/maps/list/list-item/index.js +3 -1
- package/src/components/modules/maps/map-marker.js +3 -1
- package/src/constants/eventTypes.js +13 -0
- package/src/contexts/mapContext.js +101 -101
- package/src/contexts/mapListContext.js +242 -240
- package/src/contexts/trackEventContext.js +14 -0
- package/src/hooks/useList.js +89 -89
- package/src/services/listingAggregatorService.js +50 -50
- package/src/util/mapIconUtil.js +18 -18
- package/src/util/urlFilterUtil.js +90 -90
|
@@ -6,10 +6,14 @@ import FilterLocation from './location.js';
|
|
|
6
6
|
import Button from '../buttons/default.js';
|
|
7
7
|
import { useMap } from '../../../contexts/mapContext.js';
|
|
8
8
|
import { useMapList } from '../../../contexts/mapListContext.js';
|
|
9
|
+
import { useTrackEvent } from '../../../contexts/trackEventContext.js';
|
|
9
10
|
|
|
10
11
|
var Filter = function Filter(_ref) {
|
|
11
12
|
var className = _ref.className,
|
|
12
13
|
showMap = _ref.showMap;
|
|
14
|
+
var _useTrackEvent = useTrackEvent(),
|
|
15
|
+
trackEvent = _useTrackEvent.trackEvent,
|
|
16
|
+
eventTypes = _useTrackEvent.eventTypes;
|
|
13
17
|
var _useState = useState(false),
|
|
14
18
|
_useState2 = _slicedToArray(_useState, 2),
|
|
15
19
|
hasActiveFilters = _useState2[0],
|
|
@@ -55,6 +59,9 @@ var Filter = function Filter(_ref) {
|
|
|
55
59
|
className: "hc-sticky hc-bottom-0 hc-inset-x-0 hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-px-4 hc-mt-2 hc-bg-white md:hc-bg-gray-100"
|
|
56
60
|
}, /*#__PURE__*/React.createElement(Button.Btn, {
|
|
57
61
|
onClick: function onClick() {
|
|
62
|
+
trackEvent(eventTypes.FILTERS_RESET, {
|
|
63
|
+
filtersRemoved: selectedFilters
|
|
64
|
+
});
|
|
58
65
|
filterReset();
|
|
59
66
|
setSelectedFilters({});
|
|
60
67
|
setQuery(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/modules/filter/index.js"],"sourcesContent":["import React, { useState } from 'react';\n\nimport FilterSearch from '~/components/modules/filter/search';\nimport FiltersAccordion from '~/components/modules/accordions/filters';\nimport FilterLocations from '~/components/modules/filter/location';\nimport Button from '~/components/modules/buttons/default';\n\nimport { useMap } from '~/contexts/mapContext';\nimport { useMapList } from '~/contexts/mapListContext';\n\nconst Filter = ({\n\tclassName,\n\tshowMap\n}) => {\n\tconst [hasActiveFilters, setHasActiveFilters] = useState(false);\n\tconst [defaultValue, setDefaultValue] = useState(null);\n\tconst { setSelectedListItem, setLocation, filterReset } = useMap();\n\tconst {\n\t\tfilteredListings,\n\t\tselectedFilters,\n\t\tsetSelectedFilters,\n\t\tsetMobileTab,\n\t\thandleSettingFavorites,\n\t\tsetQuery,\n\t\tsiteConfig\n\t} = useMapList();\n\n\treturn (\n\t\t<div\n\t\t\tclassName={`\n\t\t\thc-relative hc-max-h-[95vh] md:hc-max-h-screen hc-overflow-y-auto hc-overflow-x-auto\n\t\t\t\t${className ?? \"\"}\n\t\t\t`}\n\t\t>\n\t\t\t<div className=\"hc-px-4 md:hc-pt-4 hc-space-y-4\">\n\t\t\t\t<FiltersAccordion\n\t\t\t\t\tsetHasActiveFilters={setHasActiveFilters}\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\tsetDefaultValue={value => { setDefaultValue(value == defaultValue ? \"\" : value); }}\n\t\t\t\t\tsetLocation={setLocation}\n\t\t\t\t\tsetSelectedListItem={setSelectedListItem}\n\t\t\t\t/>\n\t\t\t\t<FilterSearch />\n\t\t\t\t{siteConfig.hideLocations !== true &&\n\t\t\t\t\t<FilterLocations\n\t\t\t\t\t\tsetHasActiveFilters={setHasActiveFilters}\n\t\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\t\tshowMap={showMap}\n\t\t\t\t\t\tsetDefaultValue={value => { setDefaultValue(value == defaultValue ? \"\" : value); }}\n\t\t\t\t\t\tsetLocation={setLocation}\n\t\t\t\t\t\tsetSelectedListItem={setSelectedListItem}\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t</div>\n\t\t\t<div className=\"hc-sticky hc-bottom-0 hc-inset-x-0 hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-px-4 hc-mt-2 hc-bg-white md:hc-bg-gray-100\">\n\t\t\t\t<Button.Btn\n\t\t\t\t\tonClick={() => { filterReset(); setSelectedFilters({}); setQuery(null); handleSettingFavorites(null); }}\n\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t>\n\t\t\t\t\tReset\n\t\t\t\t</Button.Btn>\n\t\t\t\t{selectedFilters && Object.keys(selectedFilters).length > 0 &&\n\t\t\t\t\t<Button.Btn\n\t\t\t\t\t\tonClick={() => setMobileTab(\"listTab\")}\n\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\tclassName={`\n\t\t\t\t\t\tmd:hc-hidden\n\t\t\t\t\t\t${hasActiveFilters ? \"hc-opacity-0 hc-pointer-events-none\" : \"hc-opacity-100\"}\n\t\t\t\t\t`}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Button.Body>\n\t\t\t\t\t\t\t<Button.Icon\n\t\t\t\t\t\t\t\ticon=\"fluent:search-12-filled\"\n\t\t\t\t\t\t\t\tsize=\"hc-size-3.5\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\tShow {filteredListings.length} Jobs\n\t\t\t\t\t\t</Button.Body>\n\t\t\t\t\t</Button.Btn>\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default Filter;\n"],"names":["Filter","_ref","className","showMap","_useState","useState","_useState2","_slicedToArray","hasActiveFilters","setHasActiveFilters","_useState3","_useState4","defaultValue","setDefaultValue","_useMap","useMap","setSelectedListItem","setLocation","filterReset","_useMapList","useMapList","filteredListings","selectedFilters","setSelectedFilters","setMobileTab","handleSettingFavorites","setQuery","siteConfig","React","createElement","concat","FiltersAccordion","value","FilterSearch","hideLocations","FilterLocations","Button","Btn","onClick","variant","size","Object","keys","length","Body","Icon","icon"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/modules/filter/index.js"],"sourcesContent":["import React, { useState } from 'react';\r\n\r\nimport FilterSearch from '~/components/modules/filter/search';\r\nimport FiltersAccordion from '~/components/modules/accordions/filters';\r\nimport FilterLocations from '~/components/modules/filter/location';\r\nimport Button from '~/components/modules/buttons/default';\r\n\r\nimport { useMap } from '~/contexts/mapContext';\r\nimport { useMapList } from '~/contexts/mapListContext';\r\nimport { useTrackEvent } from '~/contexts/trackEventContext';\r\n\r\nconst Filter = ({\r\n\tclassName,\r\n\tshowMap\r\n}) => {\r\n\tconst { trackEvent, eventTypes } = useTrackEvent();\r\n\tconst [hasActiveFilters, setHasActiveFilters] = useState(false);\r\n\tconst [defaultValue, setDefaultValue] = useState(null);\r\n\tconst { setSelectedListItem, setLocation, filterReset } = useMap();\r\n\tconst {\r\n\t\tfilteredListings,\r\n\t\tselectedFilters,\r\n\t\tsetSelectedFilters,\r\n\t\tsetMobileTab,\r\n\t\thandleSettingFavorites,\r\n\t\tsetQuery,\r\n\t\tsiteConfig\r\n\t} = useMapList();\r\n\r\n\treturn (\r\n\t\t<div\r\n\t\t\tclassName={`\r\n\t\t\thc-relative hc-max-h-[95vh] md:hc-max-h-screen hc-overflow-y-auto hc-overflow-x-auto\r\n\t\t\t\t${className ?? \"\"}\r\n\t\t\t`}\r\n\t\t>\r\n\t\t\t<div className=\"hc-px-4 md:hc-pt-4 hc-space-y-4\">\r\n\t\t\t\t<FiltersAccordion\r\n\t\t\t\t\tsetHasActiveFilters={setHasActiveFilters}\r\n\t\t\t\t\tdefaultValue={defaultValue}\r\n\t\t\t\t\tsetDefaultValue={value => { setDefaultValue(value == defaultValue ? \"\" : value); }}\r\n\t\t\t\t\tsetLocation={setLocation}\r\n\t\t\t\t\tsetSelectedListItem={setSelectedListItem}\r\n\t\t\t\t/>\r\n\t\t\t\t<FilterSearch />\r\n\t\t\t\t{siteConfig.hideLocations !== true &&\r\n\t\t\t\t\t<FilterLocations\r\n\t\t\t\t\t\tsetHasActiveFilters={setHasActiveFilters}\r\n\t\t\t\t\t\tdefaultValue={defaultValue}\r\n\t\t\t\t\t\tshowMap={showMap}\r\n\t\t\t\t\t\tsetDefaultValue={value => { setDefaultValue(value == defaultValue ? \"\" : value); }}\r\n\t\t\t\t\t\tsetLocation={setLocation}\r\n\t\t\t\t\t\tsetSelectedListItem={setSelectedListItem}\r\n\t\t\t\t\t/>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t\t<div className=\"hc-sticky hc-bottom-0 hc-inset-x-0 hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-px-4 hc-mt-2 hc-bg-white md:hc-bg-gray-100\">\r\n\t\t\t\t<Button.Btn\r\n\t\t\t\t\tonClick={() => {trackEvent(eventTypes.FILTERS_RESET, { filtersRemoved: selectedFilters }); filterReset(); setSelectedFilters({}); setQuery(null); handleSettingFavorites(null); }}\r\n\t\t\t\t\tvariant=\"outline\"\r\n\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t>\r\n\t\t\t\t\tReset\r\n\t\t\t\t</Button.Btn>\r\n\t\t\t\t{selectedFilters && Object.keys(selectedFilters).length > 0 &&\r\n\t\t\t\t\t<Button.Btn\r\n\t\t\t\t\t\tonClick={() => setMobileTab(\"listTab\")}\r\n\t\t\t\t\t\tvariant=\"primary\"\r\n\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\tclassName={`\r\n\t\t\t\t\t\tmd:hc-hidden\r\n\t\t\t\t\t\t${hasActiveFilters ? \"hc-opacity-0 hc-pointer-events-none\" : \"hc-opacity-100\"}\r\n\t\t\t\t\t`}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t<Button.Body>\r\n\t\t\t\t\t\t\t<Button.Icon\r\n\t\t\t\t\t\t\t\ticon=\"fluent:search-12-filled\"\r\n\t\t\t\t\t\t\t\tsize=\"hc-size-3.5\"\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\tShow {filteredListings.length} Jobs\r\n\t\t\t\t\t\t</Button.Body>\r\n\t\t\t\t\t</Button.Btn>\r\n\t\t\t\t}\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default Filter;\r\n"],"names":["Filter","_ref","className","showMap","_useTrackEvent","useTrackEvent","trackEvent","eventTypes","_useState","useState","_useState2","_slicedToArray","hasActiveFilters","setHasActiveFilters","_useState3","_useState4","defaultValue","setDefaultValue","_useMap","useMap","setSelectedListItem","setLocation","filterReset","_useMapList","useMapList","filteredListings","selectedFilters","setSelectedFilters","setMobileTab","handleSettingFavorites","setQuery","siteConfig","React","createElement","concat","FiltersAccordion","value","FilterSearch","hideLocations","FilterLocations","Button","Btn","onClick","FILTERS_RESET","filtersRemoved","variant","size","Object","keys","length","Body","Icon","icon"],"mappings":";;;;;;;;;;AAWA,IAAMA,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAGN;AAAA,EAAA,IAFLC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,OAAO,GAAAF,IAAA,CAAPE,OAAO,CAAA;AAEP,EAAA,IAAAC,cAAA,GAAmCC,aAAa,EAAE;IAA1CC,UAAU,GAAAF,cAAA,CAAVE,UAAU;IAAEC,UAAU,GAAAH,cAAA,CAAVG,UAAU,CAAA;AAC9B,EAAA,IAAAC,SAAA,GAAgDC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAxDI,IAAAA,gBAAgB,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,mBAAmB,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAC5C,EAAA,IAAAI,UAAA,GAAwCL,QAAQ,CAAC,IAAI,CAAC;IAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAA/CE,IAAAA,YAAY,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,gBAAe,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AACpC,EAAA,IAAAG,OAAA,GAA0DC,MAAM,EAAE;IAA1DC,mBAAmB,GAAAF,OAAA,CAAnBE,mBAAmB;IAAEC,WAAW,GAAAH,OAAA,CAAXG,WAAW;IAAEC,WAAW,GAAAJ,OAAA,CAAXI,WAAW,CAAA;AACrD,EAAA,IAAAC,WAAA,GAQIC,UAAU,EAAE;IAPfC,gBAAgB,GAAAF,WAAA,CAAhBE,gBAAgB;IAChBC,eAAe,GAAAH,WAAA,CAAfG,eAAe;IACfC,kBAAkB,GAAAJ,WAAA,CAAlBI,kBAAkB;IAClBC,YAAY,GAAAL,WAAA,CAAZK,YAAY;IACZC,sBAAsB,GAAAN,WAAA,CAAtBM,sBAAsB;IACtBC,QAAQ,GAAAP,WAAA,CAARO,QAAQ;IACRC,UAAU,GAAAR,WAAA,CAAVQ,UAAU,CAAA;EAGX,oBACCC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACC/B,SAAS,EAAA,wGAAA,CAAAgC,MAAA,CAENhC,SAAS,aAATA,SAAS,KAAA,KAAA,CAAA,GAATA,SAAS,GAAI,EAAE,EAAA,UAAA,CAAA;GAGlB8B,eAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK/B,IAAAA,SAAS,EAAC,iCAAA;AAAiC,GAAA,eAC/C8B,KAAA,CAAAC,aAAA,CAACE,gBAAgB,EAAA;AAChBtB,IAAAA,mBAAmB,EAAEA,mBAAoB;AACzCG,IAAAA,YAAY,EAAEA,YAAa;AAC3BC,IAAAA,eAAe,EAAE,SAAAA,eAAAmB,CAAAA,KAAK,EAAI;MAAEnB,gBAAe,CAACmB,KAAK,IAAIpB,YAAY,GAAG,EAAE,GAAGoB,KAAK,CAAC,CAAA;KAAI;AACnFf,IAAAA,WAAW,EAAEA,WAAY;AACzBD,IAAAA,mBAAmB,EAAEA,mBAAAA;GACrB,CAAC,eACFY,KAAA,CAAAC,aAAA,CAACI,MAAY,MAAE,CAAC,EACfN,UAAU,CAACO,aAAa,KAAK,IAAI,iBACjCN,KAAA,CAAAC,aAAA,CAACM,cAAe,EAAA;AACf1B,IAAAA,mBAAmB,EAAEA,mBAAoB;AACzCG,IAAAA,YAAY,EAAEA,YAAa;AAC3Bb,IAAAA,OAAO,EAAEA,OAAQ;AACjBc,IAAAA,eAAe,EAAE,SAAAA,eAAAmB,CAAAA,KAAK,EAAI;MAAEnB,gBAAe,CAACmB,KAAK,IAAIpB,YAAY,GAAG,EAAE,GAAGoB,KAAK,CAAC,CAAA;KAAI;AACnFf,IAAAA,WAAW,EAAEA,WAAY;AACzBD,IAAAA,mBAAmB,EAAEA,mBAAAA;AAAoB,GACzC,CAEE,CAAC,eACNY,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAK/B,IAAAA,SAAS,EAAC,8IAAA;AAA8I,GAAA,eAC5J8B,KAAA,CAAAC,aAAA,CAACO,MAAM,CAACC,GAAG,EAAA;IACVC,OAAO,EAAE,SAAAA,OAAAA,GAAM;AAACpC,MAAAA,UAAU,CAACC,UAAU,CAACoC,aAAa,EAAE;AAAEC,QAAAA,cAAc,EAAElB,eAAAA;AAAgB,OAAC,CAAC,CAAA;AAAEJ,MAAAA,WAAW,EAAE,CAAA;MAAEK,kBAAkB,CAAC,EAAE,CAAC,CAAA;MAAEG,QAAQ,CAAC,IAAI,CAAC,CAAA;MAAED,sBAAsB,CAAC,IAAI,CAAC,CAAA;KAAI;AAClLgB,IAAAA,OAAO,EAAC,SAAS;AACjBC,IAAAA,IAAI,EAAC,IAAA;GACL,EAAA,OAEW,CAAC,EACZpB,eAAe,IAAIqB,MAAM,CAACC,IAAI,CAACtB,eAAe,CAAC,CAACuB,MAAM,GAAG,CAAC,iBAC1DjB,KAAA,CAAAC,aAAA,CAACO,MAAM,CAACC,GAAG,EAAA;IACVC,OAAO,EAAE,SAAAA,OAAA,GAAA;MAAA,OAAMd,YAAY,CAAC,SAAS,CAAC,CAAA;KAAC;AACvCiB,IAAAA,OAAO,EAAC,SAAS;AACjBC,IAAAA,IAAI,EAAC,IAAI;AACT5C,IAAAA,SAAS,6CAAAgC,MAAA,CAEPtB,gBAAgB,GAAG,qCAAqC,GAAG,gBAAgB,EAAA,cAAA,CAAA;AAC5E,GAAA,eAEDoB,KAAA,CAAAC,aAAA,CAACO,MAAM,CAACU,IAAI,EACXlB,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAACO,MAAM,CAACW,IAAI,EAAA;AACXC,IAAAA,IAAI,EAAC,yBAAyB;AAC9BN,IAAAA,IAAI,EAAC,aAAA;GACL,CAAC,EACG,OAAA,EAACrB,gBAAgB,CAACwB,MAAM,EAAC,OAClB,CACF,CAET,CACD,CAAC,CAAA;AAER;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, extends as _extends, objectSpread2 as _objectSpread2 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import React, { useEffect, useState } from 'react';
|
|
3
|
+
import { useTrackEvent } from '../../../contexts/trackEventContext.js';
|
|
3
4
|
|
|
4
5
|
var _excluded = ["className", "item", "type", "itemKey", "hasCount", "field", "selectedFilters", "setSelectedFilters"];
|
|
5
6
|
var FilterItem = function FilterItem(_ref) {
|
|
@@ -16,6 +17,9 @@ var FilterItem = function FilterItem(_ref) {
|
|
|
16
17
|
selectedFilters = _ref.selectedFilters,
|
|
17
18
|
setSelectedFilters = _ref.setSelectedFilters,
|
|
18
19
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
20
|
+
var _useTrackEvent = useTrackEvent(),
|
|
21
|
+
trackEvent = _useTrackEvent.trackEvent,
|
|
22
|
+
eventTypes = _useTrackEvent.eventTypes;
|
|
19
23
|
var itemName = item.name ? item.name : item;
|
|
20
24
|
itemKey = itemKey === null ? itemName : itemKey;
|
|
21
25
|
var isActive = selectedFilters != undefined && !!((_selectedFilters$fiel = selectedFilters[field]) !== null && _selectedFilters$fiel !== void 0 && _selectedFilters$fiel[itemKey]);
|
|
@@ -25,6 +29,12 @@ var FilterItem = function FilterItem(_ref) {
|
|
|
25
29
|
setActiveItem(!!((_selectedFilters$fiel2 = selectedFilters[field]) !== null && _selectedFilters$fiel2 !== void 0 && _selectedFilters$fiel2[itemKey]));
|
|
26
30
|
}, [selectedFilters, field, itemKey]);
|
|
27
31
|
var changeHandler = function changeHandler() {
|
|
32
|
+
if (!isActive) {
|
|
33
|
+
trackEvent(eventTypes.FILTER_APPLIED, {
|
|
34
|
+
filterType: field,
|
|
35
|
+
filterChecked: itemKey
|
|
36
|
+
});
|
|
37
|
+
}
|
|
28
38
|
setSelectedFilters(function (prevFilters) {
|
|
29
39
|
var updatedFilters = _objectSpread2({}, prevFilters);
|
|
30
40
|
if (!isActive) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.js","sources":["../../../../src/components/modules/filter/item.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\n\nconst FilterItem = ({\n\tclassName,\n\titem,\n\ttype = 'checkbox',\n\titemKey = null,\n\thasCount = true,\n\tfield,\n\tselectedFilters,\n\tsetSelectedFilters,\n\t...rest\n}) => {\n\tconst itemName = item.name ? item.name : item;\n\titemKey = itemKey === null ? itemName : itemKey;\n\tvar isActive =\n\t\tselectedFilters != undefined && !!selectedFilters[field]?.[itemKey];\n\n\tuseEffect(() => {\n\t\tif(!selectedFilters)\n\t\t\treturn;\n\t\t setActiveItem(!!selectedFilters[field]?.[itemKey]);\n\t},[selectedFilters, field, itemKey]);\n\tconst changeHandler = () => {\n\t\tsetSelectedFilters(prevFilters => {\n\t\t\tconst updatedFilters = { ...prevFilters };\n\t\t\tif (!isActive) {\n\t\t\t\tif (!updatedFilters[field]) {\n\t\t\t\t\tupdatedFilters[field] = {};\n\t\t\t\t}\n\t\t\t\tupdatedFilters[field][itemKey] = true;\n\t\t\t\treturn updatedFilters;\n\t\t\t}\n\t\t\tdelete updatedFilters[field][itemKey];\n\t\t\tif (Object.keys(updatedFilters[field]).length === 0) {\n\t\t\t\tdelete updatedFilters[field];\n\t\t\t}\n\t\t\treturn updatedFilters;\n\t\t});\n\t};\n\tconst [activeItem, setActiveItem] = useState(isActive);\n\n\tuseEffect(() => {\n\t\tif (selectedFilters && selectedFilters[field] && Object.keys(selectedFilters[field])?.length > 0) return;\n\t\telse if (activeItem === true) {\n\t\t\tsetActiveItem(false);\n\t\t}\n\t}, [selectedFilters]);\n\n\treturn (\n\t\t<label\n\t\t\tclassName={`\n\t\t\t\thc-flex hc-items-start hc-gap-2 hc-px-2 hc-py-1.5 hc-rounded-sm hc-text-sm hc-cursor-pointer hc-transition hover:hc-bg-uiAccent/5\n\t\t\t\t${className ?? \"\"}\n\t\t\t`}\n\t\t\t{...rest}\n\t\t>\n\t\t\t<input\n\t\t\t\tid={itemKey}\n\t\t\t\tname={field}\n\t\t\t\tdisabled={item.count == 0}\n\t\t\t\tvalue={itemName}\n\t\t\t\ttype={type}\n\t\t\t\tclassName={`hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30 hc-transition-colors hc-rounded-sm`}\n\t\t\t\tchecked={activeItem}\n\t\t\t\tonChange={() => {\n\t\t\t\t\tsetActiveItem(!activeItem);\n\t\t\t\t\tchangeHandler();\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<span className=\"font-medium\">{itemName}</span>\n\t\t\t{hasCount && (\n\t\t\t\t<span className=\"hc-inline-block hc-mt-1 hc-ml-auto hc-text-xs hc-leading-none hc-text-primary\">\n\t\t\t\t\t({item.count})\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</label>\n\t);\n};\n\nexport default FilterItem;\n"],"names":["FilterItem","_ref","_selectedFilters$fiel","className","item","_ref$type","type","_ref$itemKey","itemKey","_ref$hasCount","hasCount","field","selectedFilters","setSelectedFilters","rest","_objectWithoutProperties","_excluded","itemName","name","isActive","undefined","useEffect","_selectedFilters$fiel2","setActiveItem","changeHandler","prevFilters","updatedFilters","_objectSpread","Object","keys","length","_useState","useState","_useState2","_slicedToArray","activeItem","_Object$keys","React","createElement","_extends","concat","id","disabled","count","value","checked","onChange"],"mappings":"
|
|
1
|
+
{"version":3,"file":"item.js","sources":["../../../../src/components/modules/filter/item.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\r\n\r\nimport { useTrackEvent } from '~/contexts/trackEventContext';\r\n\r\nconst FilterItem = ({\r\n\tclassName,\r\n\titem,\r\n\ttype = 'checkbox',\r\n\titemKey = null,\r\n\thasCount = true,\r\n\tfield,\r\n\tselectedFilters,\r\n\tsetSelectedFilters,\r\n\t...rest\r\n}) => {\r\n\tconst { trackEvent, eventTypes } = useTrackEvent();\r\n\tconst itemName = item.name ? item.name : item;\r\n\titemKey = itemKey === null ? itemName : itemKey;\r\n\tvar isActive =\r\n\t\tselectedFilters != undefined && !!selectedFilters[field]?.[itemKey];\r\n\r\n\tuseEffect(() => {\r\n\t\tif(!selectedFilters)\r\n\t\t\treturn;\r\n\t\t setActiveItem(!!selectedFilters[field]?.[itemKey]);\r\n\t},[selectedFilters, field, itemKey]);\r\n\tconst changeHandler = () => {\r\n\t\tif (!isActive) {\r\n\t\t\ttrackEvent(eventTypes.FILTER_APPLIED, { filterType: field, filterChecked: itemKey });\r\n\t\t}\r\n\t\tsetSelectedFilters(prevFilters => {\r\n\t\t\tconst updatedFilters = { ...prevFilters };\r\n\t\t\tif (!isActive) {\r\n\t\t\t\tif (!updatedFilters[field]) {\r\n\t\t\t\t\tupdatedFilters[field] = {};\r\n\t\t\t\t}\r\n\t\t\t\tupdatedFilters[field][itemKey] = true;\r\n\t\t\t\treturn updatedFilters;\r\n\t\t\t}\r\n\t\t\tdelete updatedFilters[field][itemKey];\r\n\t\t\tif (Object.keys(updatedFilters[field]).length === 0) {\r\n\t\t\t\tdelete updatedFilters[field];\r\n\t\t\t}\r\n\t\t\treturn updatedFilters;\r\n\t\t});\r\n\t};\r\n\tconst [activeItem, setActiveItem] = useState(isActive);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (selectedFilters && selectedFilters[field] && Object.keys(selectedFilters[field])?.length > 0) return;\r\n\t\telse if (activeItem === true) {\r\n\t\t\tsetActiveItem(false);\r\n\t\t}\r\n\t}, [selectedFilters]);\r\n\r\n\treturn (\r\n\t\t<label\r\n\t\t\tclassName={`\r\n\t\t\t\thc-flex hc-items-start hc-gap-2 hc-px-2 hc-py-1.5 hc-rounded-sm hc-text-sm hc-cursor-pointer hc-transition hover:hc-bg-uiAccent/5\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<input\r\n\t\t\t\tid={itemKey}\r\n\t\t\t\tname={field}\r\n\t\t\t\tdisabled={item.count == 0}\r\n\t\t\t\tvalue={itemName}\r\n\t\t\t\ttype={type}\r\n\t\t\t\tclassName={`hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30 hc-transition-colors hc-rounded-sm`}\r\n\t\t\t\tchecked={activeItem}\r\n\t\t\t\tonChange={() => {\r\n\t\t\t\t\tsetActiveItem(!activeItem);\r\n\t\t\t\t\tchangeHandler();\r\n\t\t\t\t}}\r\n\t\t\t/>\r\n\t\t\t<span className=\"font-medium\">{itemName}</span>\r\n\t\t\t{hasCount && (\r\n\t\t\t\t<span className=\"hc-inline-block hc-mt-1 hc-ml-auto hc-text-xs hc-leading-none hc-text-primary\">\r\n\t\t\t\t\t({item.count})\r\n\t\t\t\t</span>\r\n\t\t\t)}\r\n\t\t</label>\r\n\t);\r\n};\r\n\r\nexport default FilterItem;\r\n"],"names":["FilterItem","_ref","_selectedFilters$fiel","className","item","_ref$type","type","_ref$itemKey","itemKey","_ref$hasCount","hasCount","field","selectedFilters","setSelectedFilters","rest","_objectWithoutProperties","_excluded","_useTrackEvent","useTrackEvent","trackEvent","eventTypes","itemName","name","isActive","undefined","useEffect","_selectedFilters$fiel2","setActiveItem","changeHandler","FILTER_APPLIED","filterType","filterChecked","prevFilters","updatedFilters","_objectSpread","Object","keys","length","_useState","useState","_useState2","_slicedToArray","activeItem","_Object$keys","React","createElement","_extends","concat","id","disabled","count","value","checked","onChange"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import Accordion from '../accordions/default.js';
|
|
3
3
|
import FilterCommute from './commute.js';
|
|
4
4
|
import FilterPointsOfInterest from './points-of-interest.js';
|
|
@@ -30,9 +30,7 @@ var FilterLocation = function FilterLocation(_ref) {
|
|
|
30
30
|
// return updatedFilters;
|
|
31
31
|
// });
|
|
32
32
|
// };
|
|
33
|
-
|
|
34
|
-
console.log(selectedFilters);
|
|
35
|
-
}, [selectedFilters]);
|
|
33
|
+
|
|
36
34
|
var locations = filterOptions === null || filterOptions === void 0 ? void 0 : filterOptions.locations;
|
|
37
35
|
var pointsOfInterest = filterOptions === null || filterOptions === void 0 ? void 0 : filterOptions.pointsOfInterest;
|
|
38
36
|
return /*#__PURE__*/React.createElement(CardFilter, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"location.js","sources":["../../../../src/components/modules/filter/location.js"],"sourcesContent":["import React, { useEffect } from 'react';\n\nimport Accordion from '~/components/modules/accordions/default';\nimport FilterCommute from '~/components/modules/filter/commute';\nimport FilterPointsOfInterest from '~/components/modules/filter/points-of-interest';\nimport FilterCard from '~/components/modules/cards/filter';\nimport AccordionFilterItem from '~/components/modules/accordions/filterItem';\n\nimport Loading from '~/util/loading';\n\nimport { useMapList } from '~/contexts/mapListContext';\n\nconst FilterLocation = ({\n\tclassName,\n\tdefaultValue,\n\tsetDefaultValue,\n\tshowMap = false,\n\tsetLocation,\n\tsetSelectedListItem\n}) => {\n\tconst { setSelectedFilters, selectedFilters, filterOptions } = useMapList();\n\t// const activeItemsCount = selectedFilters != null && selectedFilters[\"cityState\"]\n\t// \t? Object.keys(selectedFilters[\"cityState\"]).length\n\t// \t: 0;\n\n\t// const handleClearFilters = () => {\n\t// \tsetSelectedFilters(prevFilters => {\n\t// \t\tconst updatedFilters = { ...prevFilters };\n\t// \t\tdelete updatedFilters[\"cityState\"];\n\t// \t\treturn updatedFilters;\n\t// \t});\n\t// };\
|
|
1
|
+
{"version":3,"file":"location.js","sources":["../../../../src/components/modules/filter/location.js"],"sourcesContent":["import React, { useEffect } from 'react';\r\n\r\nimport Accordion from '~/components/modules/accordions/default';\r\nimport FilterCommute from '~/components/modules/filter/commute';\r\nimport FilterPointsOfInterest from '~/components/modules/filter/points-of-interest';\r\nimport FilterCard from '~/components/modules/cards/filter';\r\nimport AccordionFilterItem from '~/components/modules/accordions/filterItem';\r\n\r\nimport Loading from '~/util/loading';\r\n\r\nimport { useMapList } from '~/contexts/mapListContext';\r\n\r\nconst FilterLocation = ({\r\n\tclassName,\r\n\tdefaultValue,\r\n\tsetDefaultValue,\r\n\tshowMap = false,\r\n\tsetLocation,\r\n\tsetSelectedListItem\r\n}) => {\r\n\tconst { setSelectedFilters, selectedFilters, filterOptions } = useMapList();\r\n\t// const activeItemsCount = selectedFilters != null && selectedFilters[\"cityState\"]\r\n\t// \t? Object.keys(selectedFilters[\"cityState\"]).length\r\n\t// \t: 0;\r\n\r\n\t// const handleClearFilters = () => {\r\n\t// \tsetSelectedFilters(prevFilters => {\r\n\t// \t\tconst updatedFilters = { ...prevFilters };\r\n\t// \t\tdelete updatedFilters[\"cityState\"];\r\n\t// \t\treturn updatedFilters;\r\n\t// \t});\r\n\t// };\r\n\r\n\tvar locations = filterOptions?.locations;\r\n\tvar pointsOfInterest = filterOptions?.pointsOfInterest;\r\n\treturn (\r\n\t\t<FilterCard className={className ?? \"\"}>\r\n\t\t\t<FilterCard.Title icon=\"fluent:location-16-filled\">\r\n\t\t\t\t<span>\r\n\t\t\t\t\t<span className=\"hc-hidden lg:hc-inline\">Job</span> location\r\n\t\t\t\t</span>\r\n\t\t\t</FilterCard.Title>\r\n\t\t\t{!locations && (\r\n\t\t\t\t<Loading />\r\n\t\t\t)}\r\n\t\t\t{locations && <Accordion defaultValue={defaultValue} className=\"hc-space-y-4\">\r\n\t\t\t\t{locations?.map(filter => (\r\n\t\t\t\t\t<AccordionFilterItem\r\n\t\t\t\t\t\tkey={filter.id}\r\n\t\t\t\t\t\tfilter={filter}\r\n\t\t\t\t\t\tsetDefaultValue={setDefaultValue}\r\n\t\t\t\t\t\tselectedFilters={selectedFilters}\r\n\t\t\t\t\t\tsetSelectedFilters={prevFilters => { setSelectedFilters(prevFilters); setLocation(null); setSelectedListItem(null); }}\r\n\t\t\t\t\t/>\r\n\t\t\t\t))}\r\n\t\t\t\t{showMap && <FilterCommute className=\"hc-mt-6\" />}\r\n\t\t\t\t{showMap && (\r\n\t\t\t\t\t<FilterPointsOfInterest\r\n\t\t\t\t\t\tclassName=\"hc-mt-4\"\r\n\t\t\t\t\t\tpointsOfInterest={pointsOfInterest}\r\n\t\t\t\t\t\tsetDefaultValue={setDefaultValue}\r\n\t\t\t\t\t\tdefaultValue={defaultValue}\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t</Accordion>\r\n\t\t\t}\r\n\t\t</FilterCard>\r\n\t);\r\n};\r\n\r\nexport default FilterLocation;\r\n"],"names":["FilterLocation","_ref","className","defaultValue","setDefaultValue","_ref$showMap","showMap","setLocation","setSelectedListItem","_useMapList","useMapList","setSelectedFilters","selectedFilters","filterOptions","locations","pointsOfInterest","React","createElement","FilterCard","Title","icon","Loading","Accordion","map","filter","AccordionFilterItem","key","id","prevFilters","FilterCommute","FilterPointsOfInterest"],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { objectWithoutProperties as _objectWithoutProperties, extends as _extend
|
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import IconContained from '../icon.js';
|
|
4
4
|
import { useMap } from '../../../contexts/mapContext.js';
|
|
5
|
+
import { useTrackEvent } from '../../../contexts/trackEventContext.js';
|
|
5
6
|
|
|
6
7
|
var _excluded = ["className", "item", "field"];
|
|
7
8
|
var RadioItem = function RadioItem(_ref) {
|
|
@@ -9,12 +10,18 @@ var RadioItem = function RadioItem(_ref) {
|
|
|
9
10
|
item = _ref.item,
|
|
10
11
|
field = _ref.field,
|
|
11
12
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
13
|
+
var _useTrackEvent = useTrackEvent(),
|
|
14
|
+
trackEvent = _useTrackEvent.trackEvent,
|
|
15
|
+
eventTypes = _useTrackEvent.eventTypes;
|
|
12
16
|
var _useMap = useMap(),
|
|
13
17
|
selectedPlaces = _useMap.selectedPlaces,
|
|
14
18
|
setSelectedPlaces = _useMap.setSelectedPlaces;
|
|
15
19
|
var chosenPlace = item.key.toLowerCase();
|
|
16
20
|
var isActive = selectedPlaces.includes(chosenPlace);
|
|
17
21
|
var changeHandler = function changeHandler() {
|
|
22
|
+
if (!isActive) trackEvent(eventTypes.POI_APPLIED, {
|
|
23
|
+
chosenPlace: chosenPlace
|
|
24
|
+
});
|
|
18
25
|
setSelectedPlaces([isActive ? '' : chosenPlace]);
|
|
19
26
|
};
|
|
20
27
|
return /*#__PURE__*/React.createElement("label", _extends({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio-item.js","sources":["../../../../src/components/modules/filter/radio-item.js"],"sourcesContent":["import React from 'react';\r\n\r\nimport Icon from '~/components/modules/icon';\r\n\r\nimport { useMap } from \"~/contexts/mapContext\";\r\n\r\nconst RadioItem = ({\r\n\tclassName,\r\n\titem,\r\n\tfield,\r\n\t...rest\r\n}) => {\r\n\tconst { selectedPlaces, setSelectedPlaces } = useMap();\r\n\tconst chosenPlace = item.key.toLowerCase();\r\n\tlet isActive = selectedPlaces.includes(chosenPlace);\r\n\r\n\tconst changeHandler = () => {\r\n\t\tsetSelectedPlaces([isActive ? '' : chosenPlace]);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<label key={item.key}\r\n\t\t\tclassName={`\r\n\t\t\thc-flex hc-items-start hc-gap-2 hc-px-2 hc-py-1.5 hc-rounded-sm hc-text-sm hc-cursor-pointer hc-transition hover:hc-bg-uiAccent/5\r\n\t\t\t\t${item.count === 0 ? 'hc-text-uiDisabled hc-cursor-not-allowed' : 'hover:hc-bg-uiAccent/5'}\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<input\r\n\t\t\t\tkey={item.key}\r\n\t\t\t\tid={item.Key}\r\n\t\t\t\tname={field}\r\n\t\t\t\tvalue={item.key}\r\n\t\t\t\ttype={\"radio\"}\r\n\t\t\t\tclassName={`hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30 hc-transition-colors hc-rounded-full`}\r\n\t\t\t\tchecked={isActive}\r\n\t\t\t\tonClick={() => {\r\n\t\t\t\t\tchangeHandler();\r\n\t\t\t\t}}\r\n\t\t\t\tonChange={() => { }}\r\n\t\t\t/>\r\n\t\t\t<span className=\"hc-font-medium\">{item.key}</span>\r\n\t\t\t{isActive &&\r\n\t\t\t\t<div className=\"hc-w-full hc-unselect-div\">\r\n\t\t\t\t\t<Icon className=\"hc-float-right\" icon=\"mdi:times\"></Icon>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</label>\r\n\t);\r\n};\r\n\r\nexport default RadioItem;\r\n"],"names":["RadioItem","_ref","className","item","field","rest","_objectWithoutProperties","_excluded","_useMap","useMap","selectedPlaces","setSelectedPlaces","chosenPlace","key","toLowerCase","isActive","includes","changeHandler","React","createElement","_extends","concat","count","id","Key","name","value","type","checked","onClick","onChange","Icon","icon"],"mappings":"
|
|
1
|
+
{"version":3,"file":"radio-item.js","sources":["../../../../src/components/modules/filter/radio-item.js"],"sourcesContent":["import React from 'react';\r\n\r\nimport Icon from '~/components/modules/icon';\r\n\r\nimport { useMap } from \"~/contexts/mapContext\";\r\nimport { useTrackEvent } from '~/contexts/trackEventContext';\r\n\r\nconst RadioItem = ({\r\n\tclassName,\r\n\titem,\r\n\tfield,\r\n\t...rest\r\n}) => {\r\n\tconst { trackEvent, eventTypes } = useTrackEvent();\r\n\tconst { selectedPlaces, setSelectedPlaces } = useMap();\r\n\tconst chosenPlace = item.key.toLowerCase();\r\n\tlet isActive = selectedPlaces.includes(chosenPlace);\r\n\r\n\tconst changeHandler = () => {\r\n\t\tif(!isActive)\r\n\t\t\ttrackEvent(eventTypes.POI_APPLIED, { chosenPlace });\r\n\t\tsetSelectedPlaces([isActive ? '' : chosenPlace]);\r\n\t};\r\n\r\n\treturn (\r\n\t\t<label key={item.key}\r\n\t\t\tclassName={`\r\n\t\t\thc-flex hc-items-start hc-gap-2 hc-px-2 hc-py-1.5 hc-rounded-sm hc-text-sm hc-cursor-pointer hc-transition hover:hc-bg-uiAccent/5\r\n\t\t\t\t${item.count === 0 ? 'hc-text-uiDisabled hc-cursor-not-allowed' : 'hover:hc-bg-uiAccent/5'}\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<input\r\n\t\t\t\tkey={item.key}\r\n\t\t\t\tid={item.Key}\r\n\t\t\t\tname={field}\r\n\t\t\t\tvalue={item.key}\r\n\t\t\t\ttype={\"radio\"}\r\n\t\t\t\tclassName={`hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30 hc-transition-colors hc-rounded-full`}\r\n\t\t\t\tchecked={isActive}\r\n\t\t\t\tonClick={() => {\r\n\t\t\t\t\tchangeHandler();\r\n\t\t\t\t}}\r\n\t\t\t\tonChange={() => { }}\r\n\t\t\t/>\r\n\t\t\t<span className=\"hc-font-medium\">{item.key}</span>\r\n\t\t\t{isActive &&\r\n\t\t\t\t<div className=\"hc-w-full hc-unselect-div\">\r\n\t\t\t\t\t<Icon className=\"hc-float-right\" icon=\"mdi:times\"></Icon>\r\n\t\t\t\t</div>\r\n\t\t\t}\r\n\t\t</label>\r\n\t);\r\n};\r\n\r\nexport default RadioItem;\r\n"],"names":["RadioItem","_ref","className","item","field","rest","_objectWithoutProperties","_excluded","_useTrackEvent","useTrackEvent","trackEvent","eventTypes","_useMap","useMap","selectedPlaces","setSelectedPlaces","chosenPlace","key","toLowerCase","isActive","includes","changeHandler","POI_APPLIED","React","createElement","_extends","concat","count","id","Key","name","value","type","checked","onClick","onChange","Icon","icon"],"mappings":";;;;;;;AAOA,IAAMA,SAAS,GAAG,SAAZA,SAASA,CAAAC,IAAA,EAKT;AAAA,EAAA,IAJLC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IACJC,KAAK,GAAAH,IAAA,CAALG,KAAK;AACFC,IAAAA,IAAI,GAAAC,wBAAA,CAAAL,IAAA,EAAAM,SAAA,CAAA,CAAA;AAEP,EAAA,IAAAC,cAAA,GAAmCC,aAAa,EAAE;IAA1CC,UAAU,GAAAF,cAAA,CAAVE,UAAU;IAAEC,UAAU,GAAAH,cAAA,CAAVG,UAAU,CAAA;AAC9B,EAAA,IAAAC,OAAA,GAA8CC,MAAM,EAAE;IAA9CC,cAAc,GAAAF,OAAA,CAAdE,cAAc;IAAEC,iBAAiB,GAAAH,OAAA,CAAjBG,iBAAiB,CAAA;EACzC,IAAMC,WAAW,GAAGb,IAAI,CAACc,GAAG,CAACC,WAAW,EAAE,CAAA;AAC1C,EAAA,IAAIC,QAAQ,GAAGL,cAAc,CAACM,QAAQ,CAACJ,WAAW,CAAC,CAAA;AAEnD,EAAA,IAAMK,aAAa,GAAG,SAAhBA,aAAaA,GAAS;IAC3B,IAAG,CAACF,QAAQ,EACXT,UAAU,CAACC,UAAU,CAACW,WAAW,EAAE;AAAEN,MAAAA,WAAW,EAAXA,WAAAA;AAAY,KAAC,CAAC,CAAA;IACpDD,iBAAiB,CAAC,CAACI,QAAQ,GAAG,EAAE,GAAGH,WAAW,CAAC,CAAC,CAAA;GAChD,CAAA;AAED,EAAA,oBACCO,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAAC,QAAA,CAAA;IAAOR,GAAG,EAAEd,IAAI,CAACc,GAAI;IACpBf,SAAS,EAAA,qJAAA,CAAAwB,MAAA,CAENvB,IAAI,CAACwB,KAAK,KAAK,CAAC,GAAG,0CAA0C,GAAG,wBAAwB,EAAA,YAAA,CAAA,CAAAD,MAAA,CACxFxB,SAAS,aAATA,SAAS,KAAA,KAAA,CAAA,GAATA,SAAS,GAAI,EAAE,EAAA,UAAA,CAAA;AAChB,GAAA,EACEG,IAAI,CAAA,eAERkB,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;IACCP,GAAG,EAAEd,IAAI,CAACc,GAAI;IACdW,EAAE,EAAEzB,IAAI,CAAC0B,GAAI;AACbC,IAAAA,IAAI,EAAE1B,KAAM;IACZ2B,KAAK,EAAE5B,IAAI,CAACc,GAAI;AAChBe,IAAAA,IAAI,EAAE,OAAQ;AACd9B,IAAAA,SAAS,EAAkG,+FAAA;AAC3G+B,IAAAA,OAAO,EAAEd,QAAS;IAClBe,OAAO,EAAE,SAAAA,OAAAA,GAAM;AACdb,MAAAA,aAAa,EAAE,CAAA;KACd;AACFc,IAAAA,QAAQ,EAAE,SAAAA,QAAA,GAAM,EAAE;AAAE,GACpB,CAAC,eACFZ,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMtB,IAAAA,SAAS,EAAC,gBAAA;GAAkBC,EAAAA,IAAI,CAACc,GAAU,CAAC,EACjDE,QAAQ,iBACRI,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKtB,IAAAA,SAAS,EAAC,2BAAA;AAA2B,GAAA,eACzCqB,KAAA,CAAAC,aAAA,CAACY,aAAI,EAAA;AAAClC,IAAAA,SAAS,EAAC,gBAAgB;AAACmC,IAAAA,IAAI,EAAC,WAAA;GAAkB,CACpD,CAEA,CAAC,CAAA;AAEV;;;;"}
|
|
@@ -6,11 +6,15 @@ import ButtonGroupApply from '../buttons/button-group-apply.js';
|
|
|
6
6
|
import CommutePill from '../buttons/commute-pill.js';
|
|
7
7
|
import { useMap } from '../../../contexts/mapContext.js';
|
|
8
8
|
import { useMapList } from '../../../contexts/mapListContext.js';
|
|
9
|
+
import { useTrackEvent } from '../../../contexts/trackEventContext.js';
|
|
9
10
|
|
|
10
11
|
var ListingDetails = function ListingDetails(_ref) {
|
|
11
12
|
var _item$details;
|
|
12
13
|
var item = _ref.item,
|
|
13
14
|
recruiters = _ref.recruiters;
|
|
15
|
+
var _useTrackEvent = useTrackEvent(),
|
|
16
|
+
trackEvent = _useTrackEvent.trackEvent,
|
|
17
|
+
eventTypes = _useTrackEvent.eventTypes;
|
|
14
18
|
var _useMap = useMap(),
|
|
15
19
|
travelTime = _useMap.travelTime;
|
|
16
20
|
var _useMapList = useMapList(),
|
|
@@ -57,6 +61,8 @@ var ListingDetails = function ListingDetails(_ref) {
|
|
|
57
61
|
applyUrl: item === null || item === void 0 ? void 0 : item.applyUrl,
|
|
58
62
|
itemId: item.id,
|
|
59
63
|
item: item,
|
|
64
|
+
trackEvent: trackEvent,
|
|
65
|
+
eventTypes: eventTypes,
|
|
60
66
|
detailsUrl: item.useClientJobUrl ? item === null || item === void 0 ? void 0 : item.detailsUrl : "".concat(siteConfig.jobsDomain).concat(item.id),
|
|
61
67
|
className: "\n\t\t\t\t\t\tlg:hc-w-auto hc-order-first lg:hc-order-last md:hc-self-center hc-py-2 lg:hc-p-0 lg:hc-mb-0 hc-border-b lg:hc-border-none hc-border-uiAccent/20\n\t\t\t\t\t\t".concat(matchingRecruiter ? "lg:hc-flex-col lg:hc-w-auto" : "lg:hc-flex-row", "\n\t\t\t\t\t")
|
|
62
68
|
})), /*#__PURE__*/React.createElement("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listing-details.js","sources":["../../../../src/components/modules/jobListing/listing-details.js"],"sourcesContent":["import React from 'react';\r\n\r\nimport RecruiterHeadshot from '~/components/modules/maps/list/item-expand-card/recruiter-headshot';\r\nimport RecruiterDetails from '~/components/modules/maps/list/item-expand-card/recruiter-details';\r\nimport RecruiterContactNav from '~/components/modules/maps/list/item-expand-card/recruiter-contact-nav';\r\nimport ApplyButtonGroup from '~/components/modules/buttons/button-group-apply';\r\nimport CommutePill from '~/components/modules/buttons/commute-pill';\r\n\r\nimport { useMap } from '~/contexts/mapContext';\r\nimport { useMapList } from '~/contexts/mapListContext';\r\n\r\nconst ListingDetails = ({ item, recruiters }) => {\r\n\tconst { travelTime } = useMap();\r\n\tconst { siteConfig, navigateToDetails, navigateToEasyApply, Link, linkFormat } = useMapList();\r\n\tif (!item) {\r\n\t\treturn null;\r\n\t}\r\n\tlet matchingRecruiter = !recruiters ? null : recruiters[item?.recruiterId];\r\n\treturn (\r\n\t\t<div className=\"hc-w-full\">\r\n\t\t\t<div className=\"hc-grow hc-flex hc-flex-wrap hc-items-center hc-gap-4\">\r\n\t\t\t\t{matchingRecruiter?.headshot && (\r\n\t\t\t\t\t<RecruiterHeadshot\r\n\t\t\t\t\t\timage={`https:${matchingRecruiter.headshot}`}\r\n\t\t\t\t\t\talt={matchingRecruiter?.firstName}\r\n\t\t\t\t\t\tclassName=\"hc-bg-gray-300\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t\t{matchingRecruiter && (\r\n\t\t\t\t\t<RecruiterDetails\r\n\t\t\t\t\t\tcontactNav={\r\n\t\t\t\t\t\t\t<RecruiterContactNav>\r\n\t\t\t\t\t\t\t\t{matchingRecruiter?.mobilePhone && (\r\n\t\t\t\t\t\t\t\t\t<RecruiterContactNav.Button\r\n\t\t\t\t\t\t\t\t\t\thref={`tel:${matchingRecruiter.mobilePhone}`}\r\n\t\t\t\t\t\t\t\t\t\ttitle={`Call ${matchingRecruiter.mobilePhone}`}\r\n\t\t\t\t\t\t\t\t\t\ticon=\"fluent:phone-32-regular\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t{matchingRecruiter?.email && (\r\n\t\t\t\t\t\t\t\t\t<RecruiterContactNav.Button\r\n\t\t\t\t\t\t\t\t\t\thref={`mailto:${matchingRecruiter.email}`}\r\n\t\t\t\t\t\t\t\t\t\ttitle={`email ${matchingRecruiter.email}`}\r\n\t\t\t\t\t\t\t\t\t\ticon=\"bi:envelope-at\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t{matchingRecruiter?.linkedIn && (\r\n\t\t\t\t\t\t\t\t\t<RecruiterContactNav.Button\r\n\t\t\t\t\t\t\t\t\t\thref={matchingRecruiter.linkedIn}\r\n\t\t\t\t\t\t\t\t\t\ttitle=\"LinkedIn\"\r\n\t\t\t\t\t\t\t\t\t\ticon=\"ant-design:linkedin-outlined\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</RecruiterContactNav>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{matchingRecruiter?.firstName && matchingRecruiter?.lastName && (\r\n\t\t\t\t\t\t\t<RecruiterDetails.Title>\r\n\t\t\t\t\t\t\t\t{`${matchingRecruiter?.firstName} ${matchingRecruiter?.lastName}`}\r\n\t\t\t\t\t\t\t</RecruiterDetails.Title>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{item.details?.recruiter?.title && (\r\n\t\t\t\t\t\t\t<RecruiterDetails.Text>\r\n\t\t\t\t\t\t\t\t{item.details.recruiter.title}\r\n\t\t\t\t\t\t\t</RecruiterDetails.Text>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</RecruiterDetails>\r\n\t\t\t\t)}\r\n\t\t\t\t<ApplyButtonGroup\r\n\t\t\t\t\tuseDetailsPostMessage={siteConfig.useDetailsPostMessage}\r\n\t\t\t\t\tnavigateToDetails={navigateToDetails}\r\n\t\t\t\t\tnavigateToEasyApply={navigateToEasyApply}\r\n\t\t\t\t\tLink={Link}\r\n\t\t\t\t\tlinkFormat={linkFormat}\r\n\t\t\t\t\tincludeDialog={siteConfig.useApplyDialog}\r\n\t\t\t\t\tinternalApplyLink={siteConfig.internalApplyLink}\r\n\t\t\t\t\tcompanyName={siteConfig.companyName}\r\n\t\t\t\t\tapplyUrl={item?.applyUrl}\r\n\t\t\t\t\titemId={item.id}\r\n\t\t\t\t\titem={item}\r\n\t\t\t\t\tdetailsUrl={item.useClientJobUrl ? item?.detailsUrl : `${siteConfig.jobsDomain}${item.id}`}\r\n\t\t\t\t\tclassName={`\r\n\t\t\t\t\t\tlg:hc-w-auto hc-order-first lg:hc-order-last md:hc-self-center hc-py-2 lg:hc-p-0 lg:hc-mb-0 hc-border-b lg:hc-border-none hc-border-uiAccent/20\r\n\t\t\t\t\t\t${matchingRecruiter ? \"lg:hc-flex-col lg:hc-w-auto\" : \"lg:hc-flex-row\"}\r\n\t\t\t\t\t`}\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<div className=\"hc-w-full\">\r\n\t\t\t\t<CommutePill travelTime={travelTime} className=\"hc-ml-0\" />\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default ListingDetails;\r\n"],"names":["ListingDetails","_ref","_item$details","item","recruiters","_useMap","useMap","travelTime","_useMapList","useMapList","siteConfig","navigateToDetails","navigateToEasyApply","Link","linkFormat","matchingRecruiter","recruiterId","React","createElement","className","headshot","RecruiterHeadshot","image","concat","alt","firstName","RecruiterDetails","contactNav","RecruiterContactNav","mobilePhone","Button","href","title","icon","email","linkedIn","lastName","Title","details","recruiter","Text","ApplyButtonGroup","useDetailsPostMessage","includeDialog","useApplyDialog","internalApplyLink","companyName","applyUrl","itemId","id","detailsUrl","useClientJobUrl","jobsDomain","CommutePill"],"mappings":"
|
|
1
|
+
{"version":3,"file":"listing-details.js","sources":["../../../../src/components/modules/jobListing/listing-details.js"],"sourcesContent":["import React from 'react';\r\n\r\nimport RecruiterHeadshot from '~/components/modules/maps/list/item-expand-card/recruiter-headshot';\r\nimport RecruiterDetails from '~/components/modules/maps/list/item-expand-card/recruiter-details';\r\nimport RecruiterContactNav from '~/components/modules/maps/list/item-expand-card/recruiter-contact-nav';\r\nimport ApplyButtonGroup from '~/components/modules/buttons/button-group-apply';\r\nimport CommutePill from '~/components/modules/buttons/commute-pill';\r\n\r\nimport { useMap } from '~/contexts/mapContext';\r\nimport { useMapList } from '~/contexts/mapListContext';\r\nimport { useTrackEvent } from '~/contexts/trackEventContext';\r\n\r\nconst ListingDetails = ({ item, recruiters }) => {\r\n\tconst { trackEvent, eventTypes } = useTrackEvent();\r\n\tconst { travelTime } = useMap();\r\n\tconst { siteConfig, navigateToDetails, navigateToEasyApply, Link, linkFormat } = useMapList();\r\n\tif (!item) {\r\n\t\treturn null;\r\n\t}\r\n\tlet matchingRecruiter = !recruiters ? null : recruiters[item?.recruiterId];\r\n\treturn (\r\n\t\t<div className=\"hc-w-full\">\r\n\t\t\t<div className=\"hc-grow hc-flex hc-flex-wrap hc-items-center hc-gap-4\">\r\n\t\t\t\t{matchingRecruiter?.headshot && (\r\n\t\t\t\t\t<RecruiterHeadshot\r\n\t\t\t\t\t\timage={`https:${matchingRecruiter.headshot}`}\r\n\t\t\t\t\t\talt={matchingRecruiter?.firstName}\r\n\t\t\t\t\t\tclassName=\"hc-bg-gray-300\"\r\n\t\t\t\t\t/>\r\n\t\t\t\t)}\r\n\t\t\t\t{matchingRecruiter && (\r\n\t\t\t\t\t<RecruiterDetails\r\n\t\t\t\t\t\tcontactNav={\r\n\t\t\t\t\t\t\t<RecruiterContactNav>\r\n\t\t\t\t\t\t\t\t{matchingRecruiter?.mobilePhone && (\r\n\t\t\t\t\t\t\t\t\t<RecruiterContactNav.Button\r\n\t\t\t\t\t\t\t\t\t\thref={`tel:${matchingRecruiter.mobilePhone}`}\r\n\t\t\t\t\t\t\t\t\t\ttitle={`Call ${matchingRecruiter.mobilePhone}`}\r\n\t\t\t\t\t\t\t\t\t\ticon=\"fluent:phone-32-regular\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t{matchingRecruiter?.email && (\r\n\t\t\t\t\t\t\t\t\t<RecruiterContactNav.Button\r\n\t\t\t\t\t\t\t\t\t\thref={`mailto:${matchingRecruiter.email}`}\r\n\t\t\t\t\t\t\t\t\t\ttitle={`email ${matchingRecruiter.email}`}\r\n\t\t\t\t\t\t\t\t\t\ticon=\"bi:envelope-at\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t{matchingRecruiter?.linkedIn && (\r\n\t\t\t\t\t\t\t\t\t<RecruiterContactNav.Button\r\n\t\t\t\t\t\t\t\t\t\thref={matchingRecruiter.linkedIn}\r\n\t\t\t\t\t\t\t\t\t\ttitle=\"LinkedIn\"\r\n\t\t\t\t\t\t\t\t\t\ticon=\"ant-design:linkedin-outlined\"\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t</RecruiterContactNav>\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{matchingRecruiter?.firstName && matchingRecruiter?.lastName && (\r\n\t\t\t\t\t\t\t<RecruiterDetails.Title>\r\n\t\t\t\t\t\t\t\t{`${matchingRecruiter?.firstName} ${matchingRecruiter?.lastName}`}\r\n\t\t\t\t\t\t\t</RecruiterDetails.Title>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t{item.details?.recruiter?.title && (\r\n\t\t\t\t\t\t\t<RecruiterDetails.Text>\r\n\t\t\t\t\t\t\t\t{item.details.recruiter.title}\r\n\t\t\t\t\t\t\t</RecruiterDetails.Text>\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t</RecruiterDetails>\r\n\t\t\t\t)}\r\n\t\t\t\t<ApplyButtonGroup\r\n\t\t\t\t\tuseDetailsPostMessage={siteConfig.useDetailsPostMessage}\r\n\t\t\t\t\tnavigateToDetails={navigateToDetails}\r\n\t\t\t\t\tnavigateToEasyApply={navigateToEasyApply}\r\n\t\t\t\t\tLink={Link}\r\n\t\t\t\t\tlinkFormat={linkFormat}\r\n\t\t\t\t\tincludeDialog={siteConfig.useApplyDialog}\r\n\t\t\t\t\tinternalApplyLink={siteConfig.internalApplyLink}\r\n\t\t\t\t\tcompanyName={siteConfig.companyName}\r\n\t\t\t\t\tapplyUrl={item?.applyUrl}\r\n\t\t\t\t\titemId={item.id}\r\n\t\t\t\t\titem={item}\r\n\t\t\t\t\ttrackEvent={trackEvent}\r\n\t\t\t\t\teventTypes={eventTypes}\r\n\t\t\t\t\tdetailsUrl={item.useClientJobUrl ? item?.detailsUrl : `${siteConfig.jobsDomain}${item.id}`}\r\n\t\t\t\t\tclassName={`\r\n\t\t\t\t\t\tlg:hc-w-auto hc-order-first lg:hc-order-last md:hc-self-center hc-py-2 lg:hc-p-0 lg:hc-mb-0 hc-border-b lg:hc-border-none hc-border-uiAccent/20\r\n\t\t\t\t\t\t${matchingRecruiter ? \"lg:hc-flex-col lg:hc-w-auto\" : \"lg:hc-flex-row\"}\r\n\t\t\t\t\t`}\r\n\t\t\t\t/>\r\n\t\t\t</div>\r\n\t\t\t<div className=\"hc-w-full\">\r\n\t\t\t\t<CommutePill travelTime={travelTime} className=\"hc-ml-0\" />\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t);\r\n};\r\n\r\nexport default ListingDetails;\r\n"],"names":["ListingDetails","_ref","_item$details","item","recruiters","_useTrackEvent","useTrackEvent","trackEvent","eventTypes","_useMap","useMap","travelTime","_useMapList","useMapList","siteConfig","navigateToDetails","navigateToEasyApply","Link","linkFormat","matchingRecruiter","recruiterId","React","createElement","className","headshot","RecruiterHeadshot","image","concat","alt","firstName","RecruiterDetails","contactNav","RecruiterContactNav","mobilePhone","Button","href","title","icon","email","linkedIn","lastName","Title","details","recruiter","Text","ApplyButtonGroup","useDetailsPostMessage","includeDialog","useApplyDialog","internalApplyLink","companyName","applyUrl","itemId","id","detailsUrl","useClientJobUrl","jobsDomain","CommutePill"],"mappings":"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"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { objectSpread2 as _objectSpread2, defineProperty as _defineProperty } from '../../../_virtual/_rollupPluginBabelHelpers.js';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { useMapList } from '../../../contexts/mapListContext.js';
|
|
4
|
+
import { useTrackEvent } from '../../../contexts/trackEventContext.js';
|
|
4
5
|
|
|
5
6
|
var InfoWindowContent = function InfoWindowContent(_ref) {
|
|
6
7
|
var _items$0$mapDetails, _items$0$mapDetails2, _items$0$mapDetails3, _items$0$mapDetails4, _items$0$mapDetails5;
|
|
7
8
|
var item = _ref.item,
|
|
8
9
|
filterListingsByLocation = _ref.filterListingsByLocation;
|
|
10
|
+
var _useTrackEvent = useTrackEvent(),
|
|
11
|
+
trackEvent = _useTrackEvent.trackEvent,
|
|
12
|
+
eventTypes = _useTrackEvent.eventTypes;
|
|
9
13
|
var _useMapList = useMapList(),
|
|
10
14
|
setSelectedFilters = _useMapList.setSelectedFilters,
|
|
11
15
|
setMobileTab = _useMapList.setMobileTab,
|
|
@@ -29,15 +33,31 @@ var InfoWindowContent = function InfoWindowContent(_ref) {
|
|
|
29
33
|
onClick: function onClick() {
|
|
30
34
|
setMobileTab("listTab");
|
|
31
35
|
var newFilters = _objectSpread2({}, selectedFilters);
|
|
36
|
+
var filters = [];
|
|
32
37
|
if (fieldsShown.includes('cityState')) {
|
|
33
38
|
newFilters.cityState = _defineProperty({}, items[0].fields.cityState, true);
|
|
39
|
+
filters.push({
|
|
40
|
+
filterType: 'cityState',
|
|
41
|
+
filterChecked: items[0].fields.cityState
|
|
42
|
+
});
|
|
34
43
|
}
|
|
35
44
|
if (fieldsShown.includes('city')) {
|
|
36
45
|
newFilters.city = _defineProperty({}, items[0].fields.city, true);
|
|
46
|
+
filters.push({
|
|
47
|
+
filterType: 'city',
|
|
48
|
+
filterChecked: items[0].fields.city
|
|
49
|
+
});
|
|
37
50
|
}
|
|
38
51
|
if (fieldsShown.includes('state')) {
|
|
39
52
|
newFilters.state = _defineProperty({}, items[0].fields.state, true);
|
|
53
|
+
filters.push({
|
|
54
|
+
filterType: 'state',
|
|
55
|
+
filterChecked: items[0].fields.state
|
|
56
|
+
});
|
|
40
57
|
}
|
|
58
|
+
trackEvent(eventTypes.VIEW_JOBS_AT_Location, {
|
|
59
|
+
filtersApplied: filters
|
|
60
|
+
});
|
|
41
61
|
setSelectedFilters(newFilters);
|
|
42
62
|
filterListingsByLocation();
|
|
43
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"info-window-content.js","sources":["../../../../src/components/modules/maps/info-window-content.js"],"sourcesContent":["import React from 'react';\r\n\r\nimport { useMapList } from '~/contexts/mapListContext';\r\n\r\nconst InfoWindowContent = ({\r\n\titem,\r\n\tfilterListingsByLocation\r\n}) => {\r\n\tconst { setSelectedFilters, setMobileTab, selectedFilters, siteConfig } = useMapList();\r\n\tconst fieldsShown = siteConfig.fieldsShown;\r\n\tlet items = item && item.items ? Object.values(item.items) : null;\r\n\r\n\tif (!items || items.length < 0) {\r\n\t\treturn;\r\n\t}\r\n\tconst addressParts = [\r\n\t\titems[0].mapDetails?.address?.street,\r\n\t\titems[0].mapDetails?.address?.city,\r\n\t\titems[0].mapDetails?.address?.state,\r\n\t\titems[0].mapDetails?.address?.zip\r\n\t];\r\n\tconst fullAddress = addressParts.filter(Boolean).join(', ');\r\n\r\n\treturn (\r\n\t\t<div className=\"hc-flex-auto hc-p-2\">\r\n\t\t\t<div>\r\n\t\t\t\t<div>\r\n\t\t\t\t\t<h4 className=\"hc-text-lg hc-font-bold hc-leading-tight hc-mb-3\">\r\n\t\t\t\t\t\t{items[0].mapDetails?.entityDisplayName}\r\n\t\t\t\t\t</h4>\r\n\t\t\t\t\t<p>\r\n\t\t\t\t\t\t{fullAddress}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t<div className=\"hc-pt-2\">\r\n\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\tclassName=\"hc-cursor-pointer hover:hc-opacity-70 hc-text-primary\"\r\n\t\t\t\t\t\t\tonClick={() => {\r\n\t\t\t\t\t\t\t\tsetMobileTab(\"listTab\");\r\n\t\t\t\t\t\t\t\tconst newFilters = { ...selectedFilters };\r\n\r\n\t\t\t\t\t\t\t\tif (fieldsShown.includes('cityState')) {\r\n\t\t\t\t\t\t\t\t\tnewFilters.cityState = {\r\n\t\t\t\t\t\t\t\t\t\t[items[0].fields.cityState]: true\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (fieldsShown.includes('city')) {\r\n\t\t\t\t\t\t\t\t\tnewFilters.city = {\r\n\t\t\t\t\t\t\t\t\t\t[items[0].fields.city]: true\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (fieldsShown.includes('state')) {\r\n\t\t\t\t\t\t\t\t\tnewFilters.state = {\r\n\t\t\t\t\t\t\t\t\t\t[items[0].fields.state]: true\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tsetSelectedFilters(newFilters);\r\n\t\t\t\t\t\t\t\tfilterListingsByLocation();\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\t{items.length > 1\r\n\t\t\t\t\t\t\t\t? `View All ${items.length} jobs at this location`\r\n\t\t\t\t\t\t\t\t: `View job at this location`}\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\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 InfoWindowContent;\r\n"],"names":["InfoWindowContent","_ref","_items$0$mapDetails","_items$0$mapDetails2","_items$0$mapDetails3","_items$0$mapDetails4","_items$0$mapDetails5","item","filterListingsByLocation","_useMapList","useMapList","setSelectedFilters","setMobileTab","selectedFilters","siteConfig","fieldsShown","items","Object","values","length","addressParts","mapDetails","address","street","city","state","zip","fullAddress","filter","Boolean","join","React","createElement","className","entityDisplayName","onClick","newFilters","_objectSpread","includes","cityState","_defineProperty","fields","concat"],"mappings":"
|
|
1
|
+
{"version":3,"file":"info-window-content.js","sources":["../../../../src/components/modules/maps/info-window-content.js"],"sourcesContent":["import React from 'react';\r\n\r\nimport { useMapList } from '~/contexts/mapListContext';\r\nimport { useTrackEvent } from '~/contexts/trackEventContext';\r\n\r\nconst InfoWindowContent = ({\r\n\titem,\r\n\tfilterListingsByLocation\r\n}) => {\r\n\tconst { trackEvent, eventTypes } = useTrackEvent();\r\n\tconst { setSelectedFilters, setMobileTab, selectedFilters, siteConfig } = useMapList();\r\n\tconst fieldsShown = siteConfig.fieldsShown;\r\n\tlet items = item && item.items ? Object.values(item.items) : null;\r\n\r\n\tif (!items || items.length < 0) {\r\n\t\treturn;\r\n\t}\r\n\tconst addressParts = [\r\n\t\titems[0].mapDetails?.address?.street,\r\n\t\titems[0].mapDetails?.address?.city,\r\n\t\titems[0].mapDetails?.address?.state,\r\n\t\titems[0].mapDetails?.address?.zip\r\n\t];\r\n\tconst fullAddress = addressParts.filter(Boolean).join(', ');\r\n\r\n\treturn (\r\n\t\t<div className=\"hc-flex-auto hc-p-2\">\r\n\t\t\t<div>\r\n\t\t\t\t<div>\r\n\t\t\t\t\t<h4 className=\"hc-text-lg hc-font-bold hc-leading-tight hc-mb-3\">\r\n\t\t\t\t\t\t{items[0].mapDetails?.entityDisplayName}\r\n\t\t\t\t\t</h4>\r\n\t\t\t\t\t<p>\r\n\t\t\t\t\t\t{fullAddress}\r\n\t\t\t\t\t</p>\r\n\t\t\t\t\t<div className=\"hc-pt-2\">\r\n\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\tclassName=\"hc-cursor-pointer hover:hc-opacity-70 hc-text-primary\"\r\n\t\t\t\t\t\t\tonClick={() => {\r\n\r\n\t\t\t\t\t\t\t\tsetMobileTab(\"listTab\");\r\n\t\t\t\t\t\t\t\tconst newFilters = { ...selectedFilters };\r\n\t\t\t\t\t\t\t\tlet filters = [];\r\n\r\n\t\t\t\t\t\t\t\tif (fieldsShown.includes('cityState')) {\r\n\t\t\t\t\t\t\t\t\tnewFilters.cityState = {\r\n\t\t\t\t\t\t\t\t\t\t[items[0].fields.cityState]: true\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\tfilters.push({ filterType: 'cityState', filterChecked: items[0].fields.cityState });\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (fieldsShown.includes('city')) {\r\n\t\t\t\t\t\t\t\t\tnewFilters.city = {\r\n\t\t\t\t\t\t\t\t\t\t[items[0].fields.city]: true\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\tfilters.push({ filterType: 'city', filterChecked: items[0].fields.city });\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (fieldsShown.includes('state')) {\r\n\t\t\t\t\t\t\t\t\tnewFilters.state = {\r\n\t\t\t\t\t\t\t\t\t\t[items[0].fields.state]: true\r\n\t\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\t\tfilters.push({ filterType: 'state', filterChecked: items[0].fields.state });\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\ttrackEvent(eventTypes.VIEW_JOBS_AT_Location, { filtersApplied: filters });\r\n\t\t\t\t\t\t\t\tsetSelectedFilters(newFilters);\r\n\t\t\t\t\t\t\t\tfilterListingsByLocation();\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\t{items.length > 1\r\n\t\t\t\t\t\t\t\t? `View All ${items.length} jobs at this location`\r\n\t\t\t\t\t\t\t\t: `View job at this location`}\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\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 InfoWindowContent;\r\n"],"names":["InfoWindowContent","_ref","_items$0$mapDetails","_items$0$mapDetails2","_items$0$mapDetails3","_items$0$mapDetails4","_items$0$mapDetails5","item","filterListingsByLocation","_useTrackEvent","useTrackEvent","trackEvent","eventTypes","_useMapList","useMapList","setSelectedFilters","setMobileTab","selectedFilters","siteConfig","fieldsShown","items","Object","values","length","addressParts","mapDetails","address","street","city","state","zip","fullAddress","filter","Boolean","join","React","createElement","className","entityDisplayName","onClick","newFilters","_objectSpread","filters","includes","cityState","_defineProperty","fields","push","filterType","filterChecked","VIEW_JOBS_AT_Location","filtersApplied","concat"],"mappings":";;;;;AAKA,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,IAAA,EAGjB;EAAA,IAAAC,mBAAA,EAAAC,oBAAA,EAAAC,oBAAA,EAAAC,oBAAA,EAAAC,oBAAA,CAAA;AAAA,EAAA,IAFLC,IAAI,GAAAN,IAAA,CAAJM,IAAI;IACJC,wBAAwB,GAAAP,IAAA,CAAxBO,wBAAwB,CAAA;AAExB,EAAA,IAAAC,cAAA,GAAmCC,aAAa,EAAE;IAA1CC,UAAU,GAAAF,cAAA,CAAVE,UAAU;IAAEC,UAAU,GAAAH,cAAA,CAAVG,UAAU,CAAA;AAC9B,EAAA,IAAAC,WAAA,GAA0EC,UAAU,EAAE;IAA9EC,kBAAkB,GAAAF,WAAA,CAAlBE,kBAAkB;IAAEC,YAAY,GAAAH,WAAA,CAAZG,YAAY;IAAEC,eAAe,GAAAJ,WAAA,CAAfI,eAAe;IAAEC,UAAU,GAAAL,WAAA,CAAVK,UAAU,CAAA;AACrE,EAAA,IAAMC,WAAW,GAAGD,UAAU,CAACC,WAAW,CAAA;AAC1C,EAAA,IAAIC,KAAK,GAAGb,IAAI,IAAIA,IAAI,CAACa,KAAK,GAAGC,MAAM,CAACC,MAAM,CAACf,IAAI,CAACa,KAAK,CAAC,GAAG,IAAI,CAAA;EAEjE,IAAI,CAACA,KAAK,IAAIA,KAAK,CAACG,MAAM,GAAG,CAAC,EAAE;AAC/B,IAAA,OAAA;AACD,GAAA;EACA,IAAMC,YAAY,GAAG,CAAAtB,CAAAA,mBAAA,GACpBkB,KAAK,CAAC,CAAC,CAAC,CAACK,UAAU,MAAAvB,IAAAA,IAAAA,mBAAA,gBAAAA,mBAAA,GAAnBA,mBAAA,CAAqBwB,OAAO,cAAAxB,mBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA5BA,mBAAA,CAA8ByB,MAAM,GAAAxB,oBAAA,GACpCiB,KAAK,CAAC,CAAC,CAAC,CAACK,UAAU,cAAAtB,oBAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,oBAAA,GAAnBA,oBAAA,CAAqBuB,OAAO,MAAA,IAAA,IAAAvB,oBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA5BA,oBAAA,CAA8ByB,IAAI,EAAAxB,CAAAA,oBAAA,GAClCgB,KAAK,CAAC,CAAC,CAAC,CAACK,UAAU,MAAArB,IAAAA,IAAAA,oBAAA,gBAAAA,oBAAA,GAAnBA,oBAAA,CAAqBsB,OAAO,cAAAtB,oBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAA5BA,oBAAA,CAA8ByB,KAAK,GAAAxB,oBAAA,GACnCe,KAAK,CAAC,CAAC,CAAC,CAACK,UAAU,cAAApB,oBAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,oBAAA,GAAnBA,oBAAA,CAAqBqB,OAAO,MAAA,IAAA,IAAArB,oBAAA,KAA5BA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAA8ByB,GAAG,CACjC,CAAA;AACD,EAAA,IAAMC,WAAW,GAAGP,YAAY,CAACQ,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC,CAAA;EAE3D,oBACCC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,qBAAA;GACdF,eAAAA,KAAA,CAAAC,aAAA,CACCD,KAAAA,EAAAA,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA,IAAA,eACCD,KAAA,CAAAC,aAAA,CAAA,IAAA,EAAA;AAAIC,IAAAA,SAAS,EAAC,kDAAA;GAAkD/B,EAAAA,CAAAA,oBAAA,GAC9Dc,KAAK,CAAC,CAAC,CAAC,CAACK,UAAU,MAAAnB,IAAAA,IAAAA,oBAAA,KAAnBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAA,CAAqBgC,iBACnB,CAAC,eACLH,KAAA,CAAAC,aAAA,CACEL,GAAAA,EAAAA,IAAAA,EAAAA,WACC,CAAC,eACJI,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,SAAA;GACdF,eAAAA,KAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACCC,IAAAA,SAAS,EAAC,uDAAuD;IACjEE,OAAO,EAAE,SAAAA,OAAAA,GAAM;MAEdvB,YAAY,CAAC,SAAS,CAAC,CAAA;AACvB,MAAA,IAAMwB,UAAU,GAAAC,cAAA,CAAA,EAAA,EAAQxB,eAAe,CAAE,CAAA;MACzC,IAAIyB,OAAO,GAAG,EAAE,CAAA;AAEhB,MAAA,IAAIvB,WAAW,CAACwB,QAAQ,CAAC,WAAW,CAAC,EAAE;AACtCH,QAAAA,UAAU,CAACI,SAAS,GAAAC,eAAA,KAClBzB,KAAK,CAAC,CAAC,CAAC,CAAC0B,MAAM,CAACF,SAAS,EAAG,IAAI,CACjC,CAAA;QACDF,OAAO,CAACK,IAAI,CAAC;AAAEC,UAAAA,UAAU,EAAE,WAAW;AAAEC,UAAAA,aAAa,EAAE7B,KAAK,CAAC,CAAC,CAAC,CAAC0B,MAAM,CAACF,SAAAA;AAAU,SAAC,CAAC,CAAA;AACpF,OAAA;AAEA,MAAA,IAAIzB,WAAW,CAACwB,QAAQ,CAAC,MAAM,CAAC,EAAE;AACjCH,QAAAA,UAAU,CAACZ,IAAI,GAAAiB,eAAA,KACbzB,KAAK,CAAC,CAAC,CAAC,CAAC0B,MAAM,CAAClB,IAAI,EAAG,IAAI,CAC5B,CAAA;QACDc,OAAO,CAACK,IAAI,CAAC;AAAEC,UAAAA,UAAU,EAAE,MAAM;AAAEC,UAAAA,aAAa,EAAE7B,KAAK,CAAC,CAAC,CAAC,CAAC0B,MAAM,CAAClB,IAAAA;AAAK,SAAC,CAAC,CAAA;AAC1E,OAAA;AAEA,MAAA,IAAIT,WAAW,CAACwB,QAAQ,CAAC,OAAO,CAAC,EAAE;AAClCH,QAAAA,UAAU,CAACX,KAAK,GAAAgB,eAAA,KACdzB,KAAK,CAAC,CAAC,CAAC,CAAC0B,MAAM,CAACjB,KAAK,EAAG,IAAI,CAC7B,CAAA;QACDa,OAAO,CAACK,IAAI,CAAC;AAAEC,UAAAA,UAAU,EAAE,OAAO;AAAEC,UAAAA,aAAa,EAAE7B,KAAK,CAAC,CAAC,CAAC,CAAC0B,MAAM,CAACjB,KAAAA;AAAM,SAAC,CAAC,CAAA;AAC5E,OAAA;AACAlB,MAAAA,UAAU,CAACC,UAAU,CAACsC,qBAAqB,EAAE;AAAEC,QAAAA,cAAc,EAAET,OAAAA;AAAQ,OAAC,CAAC,CAAA;MACzE3B,kBAAkB,CAACyB,UAAU,CAAC,CAAA;AAC9BhC,MAAAA,wBAAwB,EAAE,CAAA;AAC3B,KAAA;AAAE,GAAA,EAEDY,KAAK,CAACG,MAAM,GAAG,CAAC,eAAA6B,MAAA,CACFhC,KAAK,CAACG,MAAM,EAEpB,wBAAA,CAAA,GAAA,2BAAA,CACJ,CACD,CACD,CACD,CAAC,CAAA;AAER;;;;"}
|
|
@@ -8,6 +8,7 @@ import useListLogic from '../../../../hooks/useList.js';
|
|
|
8
8
|
import Loading from '../../../../util/loading.js';
|
|
9
9
|
import { useMap } from '../../../../contexts/mapContext.js';
|
|
10
10
|
import { useMapList } from '../../../../contexts/mapListContext.js';
|
|
11
|
+
import { useTrackEvent } from '../../../../contexts/trackEventContext.js';
|
|
11
12
|
import { dynamicSort } from '../../../../util/sortUtil.js';
|
|
12
13
|
|
|
13
14
|
var ItemsList = function ItemsList(_ref) {
|
|
@@ -29,6 +30,9 @@ var ItemsList = function ItemsList(_ref) {
|
|
|
29
30
|
itemRefs = _useListLogic.itemRefs;
|
|
30
31
|
var _useMap = useMap(),
|
|
31
32
|
selectedListItem = _useMap.selectedListItem;
|
|
33
|
+
var _useTrackEvent = useTrackEvent(),
|
|
34
|
+
trackEvent = _useTrackEvent.trackEvent,
|
|
35
|
+
eventTypes = _useTrackEvent.eventTypes;
|
|
32
36
|
var itemExpandedContent = function itemExpandedContent(item, recruiters) {
|
|
33
37
|
return item ? /*#__PURE__*/React.createElement(ListingDetails, {
|
|
34
38
|
item: item,
|
|
@@ -43,6 +47,10 @@ var ItemsList = function ItemsList(_ref) {
|
|
|
43
47
|
return x !== 'travelTime';
|
|
44
48
|
});
|
|
45
49
|
}
|
|
50
|
+
var setTrackedSortSetting = function setTrackedSortSetting(sortSetting) {
|
|
51
|
+
trackEvent(eventTypes.LIST_SORTED, sortSetting);
|
|
52
|
+
setSortSetting(sortSetting);
|
|
53
|
+
};
|
|
46
54
|
return /*#__PURE__*/React.createElement("div", {
|
|
47
55
|
className: "hc-relative hc-bg-white md:hc-px-4 hc-flex hc-flex-col"
|
|
48
56
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -53,10 +61,10 @@ var ItemsList = function ItemsList(_ref) {
|
|
|
53
61
|
className: "hc-block md:hc-hidden"
|
|
54
62
|
}, /*#__PURE__*/React.createElement(FilterSort, {
|
|
55
63
|
fields: fieldsShown,
|
|
56
|
-
setSortSetting:
|
|
64
|
+
setSortSetting: setTrackedSortSetting,
|
|
57
65
|
fieldNames: fieldNames
|
|
58
66
|
}))), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(ListHeader, {
|
|
59
|
-
setSortSetting:
|
|
67
|
+
setSortSetting: setTrackedSortSetting,
|
|
60
68
|
sortSetting: sortSetting,
|
|
61
69
|
fieldsShown: fieldsShown,
|
|
62
70
|
fieldNames: fieldNames
|
|
@@ -1 +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\nimport { dynamicSort } from '~/util/sortUtil';\n\nconst ItemsList = ({\n\tfieldNames,\n\tshowMap,\n\tfieldsShown,\n\tspecialFeatures\n}) => {\n\tconst { mapItems, filteredListings, loading, commuteLocation, sortSetting, setSortSetting } = useMapList();\n\tconst {\n\t\titemLimit,\n\t\tloader,\n\t\tscrollContainerRef,\n\t\titemRefs\n\t} = useListLogic(filteredListings);\n\tconst { selectedListItem } = useMap();\n\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={
|
|
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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"}
|
|
@@ -4,10 +4,11 @@ import Grid from '../../../grid.js';
|
|
|
4
4
|
import IconContained from '../../../icon.js';
|
|
5
5
|
import FieldMapper from '../field-mapper.js';
|
|
6
6
|
import { useMapList } from '../../../../../contexts/mapListContext.js';
|
|
7
|
+
import { useTrackEvent } from '../../../../../contexts/trackEventContext.js';
|
|
7
8
|
|
|
8
9
|
var _excluded = ["isActive", "bodyClassName", "className", "item", "fieldsShown", "specialFeatures", "onItemSelected", "showMap", "setMobileTab", "favorites", "setFavorites"];
|
|
9
10
|
var ListItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
10
|
-
var _item$
|
|
11
|
+
var _item$mapDetails2, _item$mapDetails3, _item$mapDetails4, _item$mapDetails5;
|
|
11
12
|
var isActive = _ref.isActive,
|
|
12
13
|
bodyClassName = _ref.bodyClassName,
|
|
13
14
|
className = _ref.className,
|
|
@@ -22,6 +23,9 @@ var ListItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
22
23
|
props = _objectWithoutProperties(_ref, _excluded);
|
|
23
24
|
var _useMapList = useMapList(),
|
|
24
25
|
siteConfig = _useMapList.siteConfig;
|
|
26
|
+
var _useTrackEvent = useTrackEvent(),
|
|
27
|
+
trackEvent = _useTrackEvent.trackEvent,
|
|
28
|
+
eventTypes = _useTrackEvent.eventTypes;
|
|
25
29
|
var mapPinColor = siteConfig.colors.primary.replace("#", "");
|
|
26
30
|
var handleClick = function handleClick() {
|
|
27
31
|
if (onItemSelected) {
|
|
@@ -37,6 +41,12 @@ var ListItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
37
41
|
return fav !== item.id;
|
|
38
42
|
});
|
|
39
43
|
} else {
|
|
44
|
+
var _item$mapDetails;
|
|
45
|
+
trackEvent(eventTypes.FAVORITE_SELECTED, {
|
|
46
|
+
jobTitle: item.fields.position,
|
|
47
|
+
jobCategory: item.fields.category,
|
|
48
|
+
entityDisplayName: item === null || item === void 0 || (_item$mapDetails = item.mapDetails) === null || _item$mapDetails === void 0 ? void 0 : _item$mapDetails.entityDisplayName
|
|
49
|
+
});
|
|
40
50
|
updatedFavorites = [].concat(_toConsumableArray(favorites), [item.id]);
|
|
41
51
|
}
|
|
42
52
|
isFavorite = !isFavorite;
|
|
@@ -84,7 +94,7 @@ var ListItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
|
84
94
|
},
|
|
85
95
|
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
96
|
}, /*#__PURE__*/React.createElement("img", {
|
|
87
|
-
src: "https://maps.googleapis.com/maps/api/staticmap?scale=2¢er=".concat((_item$
|
|
97
|
+
src: "https://maps.googleapis.com/maps/api/staticmap?scale=2¢er=".concat((_item$mapDetails2 = item.mapDetails) === null || _item$mapDetails2 === void 0 ? void 0 : _item$mapDetails2.latitude, ",").concat((_item$mapDetails3 = item.mapDetails) === null || _item$mapDetails3 === void 0 ? void 0 : _item$mapDetails3.longitude, "&zoom=10&size=240x180&maptype=roadmap&markers=color:0x").concat(mapPinColor, "%7Clabel:\u2022%7C").concat((_item$mapDetails4 = item.mapDetails) === null || _item$mapDetails4 === void 0 ? void 0 : _item$mapDetails4.latitude, ",").concat((_item$mapDetails5 = item.mapDetails) === null || _item$mapDetails5 === void 0 ? void 0 : _item$mapDetails5.longitude, "&key=", "AIzaSyAXPlfaoMCrmjNV1u-vFYdLBi7GkGeh4S4"),
|
|
88
98
|
alt: "Map of location for ".concat(item.fields.position),
|
|
89
99
|
className: "hc-w-full hc-h-full hc-object-cover"
|
|
90
100
|
})));
|