@abcagency/hc-ui-components 1.9.26 → 1.9.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -124,7 +124,7 @@ var ListItem = /*#__PURE__*/forwardRef(function (_ref, _ref2) {
124
124
  onClick: function onClick() {
125
125
  handleClick();
126
126
  },
127
- className: "\n\t\t\t\thc-group hc-relative hc-flex md:hc-flex-col hc-w-full hc-text-left hc-bg-clip-border hc-border-0 md:hc-border md: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".concat(isActive ? "hc-bg-uiAccent/5 hc-border-secondary hc-border" : "hc-text-uiText ".concat(index % 2 === 0 ? 'hc-bg-white' : 'hc-bg-[#f3f5f5]', " md:hc-bg-white"), "\n\t\t\t\t").concat(className !== null && className !== void 0 ? className : "", "\n\t\t\t\t")
127
+ className: "\n\t\t\t\thc-group hc-relative hc-flex md:hc-flex-col hc-w-full hc-text-left hc-border-0 md:hc-border hc-bg-clip-border md:hc-border-t 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".concat(isActive ? "hc-bg-uiAccent/5 hc-border-secondary hc-border" : " hc-text-uiText ".concat(index % 2 === 0 ? 'hc-bg-white' : 'hc-bg-[#f3f5f5]', " md:hc-bg-white"), "\n\t\t\t\t").concat(className !== null && className !== void 0 ? className : "", "\n\t\t\t\t")
128
128
  }, props), /*#__PURE__*/React.createElement(Grid, {
129
129
  columns: "hc-pl-2 hc-md-pl-0 hc-grid-flow-col hc-auto-cols-fr",
130
130
  gap: "hc-gap-0",
@@ -1 +1 @@
1
- {"version":3,"file":"list-item.js","sources":["../../../../../src/components/modules/list/list-item/list-item.jsx"],"sourcesContent":["import React, { forwardRef, useState, useEffect, useRef } from 'react';\nimport Grid from '~/components/modules/grid';\nimport Icon from '~/components/modules/icon';\nimport FieldMapper from '~/components/modules/list/field-mapper-desktop';\nimport FieldMapperMobile from '~/components/modules/list/field-mapper-mobile';\nconst ListItem = forwardRef(\n\t(\n\t\t{\n\t\t\tisActive,\n\t\t\tbodyClassName,\n\t\t\tclassName,\n\t\t\titem,\n\t\t\tfieldsShown,\n\t\t\tspecialFeatures,\n\t\t\tonItemSelected,\n\t\t\tshowMap,\n\t\t\tsetMobileTab,\n\t\t\thandleSettingFavorites,\n\t\t\tfavorites,\n\t\t\tincludeFavorite = true,\n\t\t\tsiteConfig,\n\t\t\tgoogleMapsApiKey,\n\t\t\tindex,\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst mapPinColor = !showMap ? null : siteConfig.colors.primary.replace(\"#\", \"\");\n\n\t\t// Generate static map URL for mobile\n\t\tconst staticMapUrl = showMap && item.mapDetails?.latitude && item.mapDetails?.longitude\n\t\t\t? `https://maps.googleapis.com/maps/api/staticmap?scale=2&center=${item.mapDetails.latitude},${item.mapDetails.longitude}&zoom=10&size=240x180&maptype=roadmap&markers=color:0x${mapPinColor}%7Clabel:•%7C${item.mapDetails.latitude},${item.mapDetails.longitude}&key=${googleMapsApiKey}`\n\t\t\t: null;\n\n\t\t// Mobile detection for bandwidth optimization\n\t\tconst [isMobile, setIsMobile] = useState(false);\n\n\t\t// Individual item loading based on scroll position\n\t\tconst [isMapLoaded, setIsMapLoaded] = useState(false);\n\t\tconst itemRef = useRef(null);\n\n\t\tuseEffect(() => {\n\t\tif (typeof window === 'undefined') return;\n\n\t\tconst checkIsMobile = () => {\n\t\t\tsetIsMobile(window.innerWidth < 768); // md breakpoint in Tailwind\n\t\t};\n\n\t\tcheckIsMobile();\n\t\twindow.addEventListener('resize', checkIsMobile);\n\n\t\treturn () => window.removeEventListener('resize', checkIsMobile);\n\t}, []);\n\n\t// Load individual map when item comes into view\n\tuseEffect(() => {\n\t\tif (typeof window === 'undefined') return;\n\t\tif (!isMobile || !showMap || !itemRef.current || isMapLoaded) return;\n\n\t\tconst checkIfInView = () => {\n\t\t\tif (!itemRef.current || isMapLoaded) return;\n\n\t\t\tconst rect = itemRef.current.getBoundingClientRect();\n\t\t\tconst windowHeight = window.innerHeight;\n\n\t\t\t// Load only when item is actually visible or very close to viewport\n\t\t\t// Much more conservative - only load what's immediately needed\n\t\t\tconst isInView = rect.top < windowHeight && rect.bottom > 0;\n\n\t\t\tif (isInView) {\n\t\t\t\tsetIsMapLoaded(true);\n\t\t\t}\n\t\t};\n\n\t\t// Check immediately\n\t\tcheckIfInView();\n\n\t\t// Only check on scroll, not continuously\n\t\tlet scrollTimeout;\n\t\tconst handleScroll = () => {\n\t\t\tclearTimeout(scrollTimeout);\n\t\t\tscrollTimeout = setTimeout(checkIfInView, 300); // Much less frequent\n\t\t};\n\n\t\twindow.addEventListener('scroll', handleScroll, { passive: true });\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('scroll', handleScroll);\n\t\t\tclearTimeout(scrollTimeout);\n\t\t};\n\t}, [isMobile, showMap, isMapLoaded]);\n\n\tconst handleClick = () => {\n\t\tif (onItemSelected) {\n\t\t\tonItemSelected(item);\n\t\t}\n\t};\n\tlet isFavorite = favorites.includes(item.id);\n\n\tconst handleFavouriteClick = (event, item) => {\n\t\tif(!includeFavorite)return;\n\t\tevent.stopPropagation();\n\t\tlet updatedFavorites;\n\t\tif (isFavorite) {\n\t\t\tupdatedFavorites = favorites.filter(fav => fav !== item.id);\n\t\t} else {\n\t\t\tupdatedFavorites = [...favorites, item.id];\n\t\t}\n\t\tisFavorite = !isFavorite;\n\t\thandleSettingFavorites(updatedFavorites);\n\t};\n\t\treturn (\n\t\t\t<button\n\t\t\t\tref={(el) => {\n\t\t\t\t\t// Forward the ref to the parent component\n\t\t\t\t\tif (ref) {\n\t\t\t\t\t\tif (typeof ref === 'function') {\n\t\t\t\t\t\t\tref(el);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tref.current = el;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Also store our own ref for scroll detection\n\t\t\t\t\titemRef.current = el;\n\t\t\t\t}}\n\t\t\t\tonClick={() => { handleClick(); }}\n\t\t\t\tclassName={`\n\t\t\t\thc-group hc-relative hc-flex md:hc-flex-col hc-w-full hc-text-left hc-bg-clip-border hc-border-0 md:hc-border md: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${isActive ? \"hc-bg-uiAccent/5 hc-border-secondary hc-border\" : `hc-text-uiText ${index % 2 === 0 ? 'hc-bg-white' : 'hc-bg-[#f3f5f5]'} md:hc-bg-white`}\n\t\t\t\t${className ?? \"\"}\n\t\t\t\t`}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{/* This Grid is displayed as block on mobile and grid on desktop */}\n\t\t\t\t<Grid\n\t\t\t\t\tcolumns=\"hc-pl-2 hc-md-pl-0 hc-grid-flow-col hc-auto-cols-fr\"\n\t\t\t\t\tgap=\"hc-gap-0\"\n\t\t\t\t\tclassName={`\n hc-block md:hc-grid hc-py-2 hc-w-full hc-grow hc-leading-tight hc-text-sm md:hc-text-xs lg:hc-text-sm\n ${bodyClassName ?? \"\"}\n `}\n\t\t\t\t>\n\t\t\t\t\t{/* DESKTOP ONLY: This expand icon is hidden on mobile (hc-hidden) and visible on desktop (md:hc-block) */}\n\t\t\t\t\t<Grid.Item className=\"hc-hidden md:hc-block md:hc-absolute md:hc-left-1.5 hc-top-1.5\">\n\t\t\t\t\t\t<span className=\"hc-sr-only\">Expand row</span>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\ticon=\"fluent-emoji-high-contrast:plus\"\n\t\t\t\t\t\t\tsize=\"hc-size-2.5\"\n\t\t\t\t\t\t\tclassName={`\n hc-opacity-0 hc-text-uiText/60 hc-transition group-hover:hc-opacity-100 group-active:hc-opacity-100\n ${isActive ? \"hc-opacity-100 hc-rotate-45\" : \"\"}\n `}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Grid.Item>\n\t\t\t\t\t<FieldMapper\n\t\t\t\t\t\titem={item}\n\t\t\t\t\t\tfieldsShown={fieldsShown}\n\t\t\t\t\t\tspecialFeatures={specialFeatures}\t\t\t\t\tspecialFeaturePills={siteConfig?.specialFeaturePills}\t\t\t\t\t\tisFavorite={isFavorite}\n\t\t\t\t\t\tincludeFavorite={includeFavorite}\n\t\t\t\t\t\thandleFavouriteClick={handleFavouriteClick}\n\t\t\t\t\t/>\n\t\t\t\t\t<FieldMapperMobile\n\t\t\t\t\t\titem={item}\n\t\t\t\t\t\tfieldsShown={fieldsShown}\n\t\t\t\t\t\tspecialFeatures={specialFeatures}\t\t\t\t\tspecialFeaturePills={siteConfig?.specialFeaturePills}\t\t\t\t\t\tisFavorite={isFavorite}\n\t\t\t\t\t\tincludeFavorite={includeFavorite}\n\t\t\t\t\t\thandleFavouriteClick={handleFavouriteClick}\n\t\t\t\t\t/>\n\t\t\t\t\t{includeFavorite &&\n\t\t\t\t\t/* DESKTOP ONLY: This favorites icon is hidden on mobile (hc-hidden) and visible on desktop (md:hc-block) */\n\t\t\t\t\t<Grid.Item\n\t\t\t\t\t\tkey={\"favorites\"}\n\t\t\t\t\t\tclassName=\"hc-hidden md:hc-block hc-col-span-1 hc-px-2\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\ticon={isFavorite ? \"mdi:heart\" : \"mdi:heart-outline\"}\n\t\t\t\t\t\t\tsize=\"hc-size-3.5\"\n\t\t\t\t\t\t\ticonClasses={isFavorite ? \"hc-text-primary\" : \"\"}\n\t\t\t\t\t\t\ttitle={!isFavorite ? 'Add job to favorites' : 'Remove job from favorites'}\n\t\t\t\t\t\t\tclassName=\"hc-pr-2 hc-transition-opacity hc-duration-300 hc-cursor-pointer hc-opacity-100\"\n\t\t\t\t\t\t\tonClick={e => {handleFavouriteClick(e, item);}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Grid.Item>\n\t\t\t\t\t}\n\t\t\t\t</Grid>\n\t\t\t</button>\n\t\t);\n\t}\n);\n\nListItem.displayName = \"ListItem\";\n\nexport default React.memo(ListItem, (prevProps, nextProps) => {\n\treturn (\n\t\tprevProps.isActive === nextProps.isActive &&\n\t\tprevProps.favorites === nextProps.favorites &&\n prevProps.item.id === nextProps.item.id &&\n\tprevProps.item.fields.travelTime === nextProps.item.fields.travelTime &&\n prevProps.fieldsShown === nextProps.fieldsShown &&\n prevProps.bodyClassName === nextProps.bodyClassName &&\n prevProps.className === nextProps.className\n\t);\n});\n"],"names":["ListItem","forwardRef","_ref","ref","_item$mapDetails","_item$mapDetails2","isActive","bodyClassName","className","item","fieldsShown","specialFeatures","onItemSelected","showMap","setMobileTab","handleSettingFavorites","favorites","_ref$includeFavorite","includeFavorite","siteConfig","googleMapsApiKey","index","props","_objectWithoutProperties","_excluded","mapPinColor","colors","primary","replace","mapDetails","latitude","longitude","concat","_useState","useState","_useState2","_slicedToArray","isMobile","setIsMobile","_useState3","_useState4","isMapLoaded","setIsMapLoaded","itemRef","useRef","useEffect","window","checkIsMobile","innerWidth","addEventListener","removeEventListener","current","checkIfInView","rect","getBoundingClientRect","windowHeight","innerHeight","isInView","top","bottom","scrollTimeout","handleScroll","clearTimeout","setTimeout","passive","handleClick","isFavorite","includes","id","handleFavouriteClick","event","stopPropagation","updatedFavorites","filter","fav","_toConsumableArray","React","createElement","_extends","el","onClick","Grid","columns","gap","Item","Icon","icon","size","FieldMapper","specialFeaturePills","FieldMapperMobile","key","iconClasses","title","e","displayName","memo","prevProps","nextProps","fields","travelTime"],"mappings":"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"}
1
+ {"version":3,"file":"list-item.js","sources":["../../../../../src/components/modules/list/list-item/list-item.jsx"],"sourcesContent":["import React, { forwardRef, useState, useEffect, useRef } from 'react';\nimport Grid from '~/components/modules/grid';\nimport Icon from '~/components/modules/icon';\nimport FieldMapper from '~/components/modules/list/field-mapper-desktop';\nimport FieldMapperMobile from '~/components/modules/list/field-mapper-mobile';\nconst ListItem = forwardRef(\n\t(\n\t\t{\n\t\t\tisActive,\n\t\t\tbodyClassName,\n\t\t\tclassName,\n\t\t\titem,\n\t\t\tfieldsShown,\n\t\t\tspecialFeatures,\n\t\t\tonItemSelected,\n\t\t\tshowMap,\n\t\t\tsetMobileTab,\n\t\t\thandleSettingFavorites,\n\t\t\tfavorites,\n\t\t\tincludeFavorite = true,\n\t\t\tsiteConfig,\n\t\t\tgoogleMapsApiKey,\n\t\t\tindex,\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst mapPinColor = !showMap ? null : siteConfig.colors.primary.replace(\"#\", \"\");\n\n\t\t// Generate static map URL for mobile\n\t\tconst staticMapUrl = showMap && item.mapDetails?.latitude && item.mapDetails?.longitude\n\t\t\t? `https://maps.googleapis.com/maps/api/staticmap?scale=2&center=${item.mapDetails.latitude},${item.mapDetails.longitude}&zoom=10&size=240x180&maptype=roadmap&markers=color:0x${mapPinColor}%7Clabel:•%7C${item.mapDetails.latitude},${item.mapDetails.longitude}&key=${googleMapsApiKey}`\n\t\t\t: null;\n\n\t\t// Mobile detection for bandwidth optimization\n\t\tconst [isMobile, setIsMobile] = useState(false);\n\n\t\t// Individual item loading based on scroll position\n\t\tconst [isMapLoaded, setIsMapLoaded] = useState(false);\n\t\tconst itemRef = useRef(null);\n\n\t\tuseEffect(() => {\n\t\t\tif (typeof window === 'undefined') return;\n\n\t\t\tconst checkIsMobile = () => {\n\t\t\t\tsetIsMobile(window.innerWidth < 768); // md breakpoint in Tailwind\n\t\t\t};\n\n\t\t\tcheckIsMobile();\n\t\t\twindow.addEventListener('resize', checkIsMobile);\n\n\t\t\treturn () => window.removeEventListener('resize', checkIsMobile);\n\t\t}, []);\n\n\t\t// Load individual map when item comes into view\n\t\tuseEffect(() => {\n\t\t\tif (typeof window === 'undefined') return;\n\t\t\tif (!isMobile || !showMap || !itemRef.current || isMapLoaded) return;\n\n\t\t\tconst checkIfInView = () => {\n\t\t\t\tif (!itemRef.current || isMapLoaded) return;\n\n\t\t\t\tconst rect = itemRef.current.getBoundingClientRect();\n\t\t\t\tconst windowHeight = window.innerHeight;\n\n\t\t\t\t// Load only when item is actually visible or very close to viewport\n\t\t\t\t// Much more conservative - only load what's immediately needed\n\t\t\t\tconst isInView = rect.top < windowHeight && rect.bottom > 0;\n\n\t\t\t\tif (isInView) {\n\t\t\t\t\tsetIsMapLoaded(true);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Check immediately\n\t\t\tcheckIfInView();\n\n\t\t\t// Only check on scroll, not continuously\n\t\t\tlet scrollTimeout;\n\t\t\tconst handleScroll = () => {\n\t\t\t\tclearTimeout(scrollTimeout);\n\t\t\t\tscrollTimeout = setTimeout(checkIfInView, 300); // Much less frequent\n\t\t\t};\n\n\t\t\twindow.addEventListener('scroll', handleScroll, { passive: true });\n\n\t\t\treturn () => {\n\t\t\t\twindow.removeEventListener('scroll', handleScroll);\n\t\t\t\tclearTimeout(scrollTimeout);\n\t\t\t};\n\t\t}, [isMobile, showMap, isMapLoaded]);\n\n\t\tconst handleClick = () => {\n\t\t\tif (onItemSelected) {\n\t\t\t\tonItemSelected(item);\n\t\t\t}\n\t\t};\n\t\tlet isFavorite = favorites.includes(item.id);\n\n\t\tconst handleFavouriteClick = (event, item) => {\n\t\t\tif(!includeFavorite)return;\n\t\t\tevent.stopPropagation();\n\t\t\tlet updatedFavorites;\n\t\t\tif (isFavorite) {\n\t\t\t\tupdatedFavorites = favorites.filter(fav => fav !== item.id);\n\t\t\t} else {\n\t\t\t\tupdatedFavorites = [...favorites, item.id];\n\t\t\t}\n\t\t\tisFavorite = !isFavorite;\n\t\t\thandleSettingFavorites(updatedFavorites);\n\t\t};\n\t\treturn (\n\t\t\t<button\n\t\t\t\tref={el => {\n\t\t\t\t\t// Forward the ref to the parent component\n\t\t\t\t\tif (ref) {\n\t\t\t\t\t\tif (typeof ref === 'function') {\n\t\t\t\t\t\t\tref(el);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tref.current = el;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Also store our own ref for scroll detection\n\t\t\t\t\titemRef.current = el;\n\t\t\t\t}}\n\t\t\t\tonClick={() => { handleClick(); }}\n\t\t\t\tclassName={`\n\t\t\t\thc-group hc-relative hc-flex md:hc-flex-col hc-w-full hc-text-left hc-border-0 md:hc-border hc-bg-clip-border md:hc-border-t 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${isActive ? \"hc-bg-uiAccent/5 hc-border-secondary hc-border\" : ` hc-text-uiText ${index % 2 === 0 ? 'hc-bg-white' : 'hc-bg-[#f3f5f5]'} md:hc-bg-white`}\n\t\t\t\t${className ?? \"\"}\n\t\t\t\t`}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{/* This Grid is displayed as block on mobile and grid on desktop */}\n\t\t\t\t<Grid\n\t\t\t\t\tcolumns=\"hc-pl-2 hc-md-pl-0 hc-grid-flow-col hc-auto-cols-fr\"\n\t\t\t\t\tgap=\"hc-gap-0\"\n\t\t\t\t\tclassName={`\n hc-block md:hc-grid hc-py-2 hc-w-full hc-grow hc-leading-tight hc-text-sm md:hc-text-xs lg:hc-text-sm\n ${bodyClassName ?? \"\"}\n `}\n\t\t\t\t>\n\t\t\t\t\t{/* DESKTOP ONLY: This expand icon is hidden on mobile (hc-hidden) and visible on desktop (md:hc-block) */}\n\t\t\t\t\t<Grid.Item className=\"hc-hidden md:hc-block md:hc-absolute md:hc-left-1.5 hc-top-1.5\">\n\t\t\t\t\t\t<span className=\"hc-sr-only\">Expand row</span>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\ticon=\"fluent-emoji-high-contrast:plus\"\n\t\t\t\t\t\t\tsize=\"hc-size-2.5\"\n\t\t\t\t\t\t\tclassName={`\n hc-opacity-0 hc-text-uiText/60 hc-transition group-hover:hc-opacity-100 group-active:hc-opacity-100\n ${isActive ? \"hc-opacity-100 hc-rotate-45\" : \"\"}\n `}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Grid.Item>\n\t\t\t\t\t<FieldMapper\n\t\t\t\t\t\titem={item}\n\t\t\t\t\t\tfieldsShown={fieldsShown}\n\t\t\t\t\t\tspecialFeatures={specialFeatures}\t\t\t\t\tspecialFeaturePills={siteConfig?.specialFeaturePills}\t\t\t\t\t\tisFavorite={isFavorite}\n\t\t\t\t\t\tincludeFavorite={includeFavorite}\n\t\t\t\t\t\thandleFavouriteClick={handleFavouriteClick}\n\t\t\t\t\t/>\n\t\t\t\t\t<FieldMapperMobile\n\t\t\t\t\t\titem={item}\n\t\t\t\t\t\tfieldsShown={fieldsShown}\n\t\t\t\t\t\tspecialFeatures={specialFeatures}\t\t\t\t\tspecialFeaturePills={siteConfig?.specialFeaturePills}\t\t\t\t\t\tisFavorite={isFavorite}\n\t\t\t\t\t\tincludeFavorite={includeFavorite}\n\t\t\t\t\t\thandleFavouriteClick={handleFavouriteClick}\n\t\t\t\t\t/>\n\t\t\t\t\t{includeFavorite &&\n\t\t\t\t\t/* DESKTOP ONLY: This favorites icon is hidden on mobile (hc-hidden) and visible on desktop (md:hc-block) */\n\t\t\t\t\t<Grid.Item\n\t\t\t\t\t\tkey={\"favorites\"}\n\t\t\t\t\t\tclassName=\"hc-hidden md:hc-block hc-col-span-1 hc-px-2\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\ticon={isFavorite ? \"mdi:heart\" : \"mdi:heart-outline\"}\n\t\t\t\t\t\t\tsize=\"hc-size-3.5\"\n\t\t\t\t\t\t\ticonClasses={isFavorite ? \"hc-text-primary\" : \"\"}\n\t\t\t\t\t\t\ttitle={!isFavorite ? 'Add job to favorites' : 'Remove job from favorites'}\n\t\t\t\t\t\t\tclassName=\"hc-pr-2 hc-transition-opacity hc-duration-300 hc-cursor-pointer hc-opacity-100\"\n\t\t\t\t\t\t\tonClick={e => {handleFavouriteClick(e, item);}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Grid.Item>\n\t\t\t\t\t}\n\t\t\t\t</Grid>\n\t\t\t</button>\n\t\t);\n\t}\n);\n\nListItem.displayName = \"ListItem\";\n\nexport default React.memo(ListItem, (prevProps, nextProps) => {\n\treturn (\n\t\tprevProps.isActive === nextProps.isActive &&\n\t\tprevProps.favorites === nextProps.favorites &&\n prevProps.item.id === nextProps.item.id &&\n\tprevProps.item.fields.travelTime === nextProps.item.fields.travelTime &&\n prevProps.fieldsShown === nextProps.fieldsShown &&\n prevProps.bodyClassName === nextProps.bodyClassName &&\n prevProps.className === nextProps.className\n\t);\n});\n"],"names":["ListItem","forwardRef","_ref","ref","_item$mapDetails","_item$mapDetails2","isActive","bodyClassName","className","item","fieldsShown","specialFeatures","onItemSelected","showMap","setMobileTab","handleSettingFavorites","favorites","_ref$includeFavorite","includeFavorite","siteConfig","googleMapsApiKey","index","props","_objectWithoutProperties","_excluded","mapPinColor","colors","primary","replace","mapDetails","latitude","longitude","concat","_useState","useState","_useState2","_slicedToArray","isMobile","setIsMobile","_useState3","_useState4","isMapLoaded","setIsMapLoaded","itemRef","useRef","useEffect","window","checkIsMobile","innerWidth","addEventListener","removeEventListener","current","checkIfInView","rect","getBoundingClientRect","windowHeight","innerHeight","isInView","top","bottom","scrollTimeout","handleScroll","clearTimeout","setTimeout","passive","handleClick","isFavorite","includes","id","handleFavouriteClick","event","stopPropagation","updatedFavorites","filter","fav","_toConsumableArray","React","createElement","_extends","el","onClick","Grid","columns","gap","Item","Icon","icon","size","FieldMapper","specialFeaturePills","FieldMapperMobile","key","iconClasses","title","e","displayName","memo","prevProps","nextProps","fields","travelTime"],"mappings":"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"}