@abcagency/hc-ui-components 1.6.5 → 1.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/components/HireControlMap.js +43 -2
  2. package/dist/components/HireControlMap.js.map +1 -1
  3. package/dist/components/containers/accordions/filter-item-container.js +3 -1
  4. package/dist/components/containers/accordions/filter-item-container.js.map +1 -1
  5. package/dist/components/containers/filter/filter-item-container.js +29 -15
  6. package/dist/components/containers/filter/filter-item-container.js.map +1 -1
  7. package/dist/components/containers/list/item-list-container.js +1 -1
  8. package/dist/components/containers/list/item-list-container.js.map +1 -1
  9. package/dist/components/modules/accordions/filterItem.js +8 -3
  10. package/dist/components/modules/accordions/filterItem.js.map +1 -1
  11. package/dist/components/modules/filter/index.js +123 -19
  12. package/dist/components/modules/filter/index.js.map +1 -1
  13. package/dist/components/modules/filter/item.js +8 -3
  14. package/dist/components/modules/filter/item.js.map +1 -1
  15. package/dist/components/modules/filter/search.js +6 -1
  16. package/dist/components/modules/filter/search.js.map +1 -1
  17. package/dist/components/modules/list/list-item/list-item.js.map +1 -1
  18. package/dist/components/modules/maps/tabs.js +1 -1
  19. package/dist/components/modules/maps/tabs.js.map +1 -1
  20. package/dist/contexts/mapListContext.js +48 -3
  21. package/dist/contexts/mapListContext.js.map +1 -1
  22. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +51 -1
  23. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -1
  24. package/dist/styles/index.css +1 -1
  25. package/dist/types/util/filterUtil.d.ts +9 -3
  26. package/dist/util/algoliaSearchUtil.js.map +1 -1
  27. package/dist/util/filterUtil.js +77 -14
  28. package/dist/util/filterUtil.js.map +1 -1
  29. package/dist/util/twMerge.js +9 -0
  30. package/dist/util/twMerge.js.map +1 -0
  31. package/package.json +1 -1
  32. package/src/components/HireControlMap.js +48 -2
  33. package/src/components/containers/accordions/filter-item-container.js +1 -1
  34. package/src/components/containers/filter/filter-item-container.js +27 -14
  35. package/src/components/containers/list/item-list-container.tsx +1 -1
  36. package/src/components/modules/accordions/filterItem.js +16 -3
  37. package/src/components/modules/filter/index.js +161 -43
  38. package/src/components/modules/filter/item.js +15 -3
  39. package/src/components/modules/filter/search.js +7 -1
  40. package/src/components/modules/list/list-item/list-item.jsx +1 -1
  41. package/src/components/modules/maps/tabs.js +10 -10
  42. package/src/contexts/mapListContext.tsx +103 -10
  43. package/src/util/algoliaSearchUtil.js +7 -7
  44. package/src/util/filterUtil.js +63 -17
  45. package/src/util/twMerge.js +6 -0
@@ -1,7 +1,11 @@
1
+ import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
1
2
  import Button from '../buttons/default.js';
2
- import React from 'react';
3
+ import React, { useRef, useState, useEffect } from 'react';
4
+ import { twMerge } from '../../../util/twMerge.js';
5
+ import { useMapList } from '../../../contexts/mapListContext.js';
3
6
 
4
7
  var Filter = function Filter(_ref) {
8
+ var _filterConfig$classNa3, _filterConfig$classNa4, _filterConfig$classNa5, _filterConfig$classNa6, _filterConfig$classNa7;
5
9
  var className = _ref.className,
6
10
  hasActiveFilters = _ref.hasActiveFilters,
7
11
  filteredListings = _ref.filteredListings,
@@ -12,36 +16,136 @@ var Filter = function Filter(_ref) {
12
16
  isDesktop = _ref$isDesktop === void 0 ? false : _ref$isDesktop,
13
17
  style = _ref.style,
14
18
  children = _ref.children;
19
+ var _useMapList = useMapList(),
20
+ filterConfig = _useMapList.filterConfig;
21
+ var contentRef = useRef(null);
22
+ var containerRef = useRef(null);
23
+ var _useState = useState(false),
24
+ _useState2 = _slicedToArray(_useState, 2),
25
+ hasOverflow = _useState2[0],
26
+ setHasOverflow = _useState2[1];
27
+ var _useState3 = useState(false),
28
+ _useState4 = _slicedToArray(_useState3, 2),
29
+ showFixedFooter = _useState4[0],
30
+ setShowFixedFooter = _useState4[1];
31
+ var transitionTimeoutRef = useRef(null);
32
+ useEffect(function () {
33
+ var checkOverflow = function checkOverflow() {
34
+ if (contentRef.current) {
35
+ // Add a small tolerance (5px) to avoid false positives from rounding/padding
36
+ var hasScroll = contentRef.current.scrollHeight > contentRef.current.clientHeight + 5;
37
+ if (hasScroll !== hasOverflow) {
38
+ setHasOverflow(hasScroll);
39
+
40
+ // Clear any pending transitions
41
+ if (transitionTimeoutRef.current) {
42
+ clearTimeout(transitionTimeoutRef.current);
43
+ }
44
+
45
+ // Add a delay when transitioning to fixed footer to smooth the transition
46
+ if (hasScroll) {
47
+ transitionTimeoutRef.current = setTimeout(function () {
48
+ return setShowFixedFooter(true);
49
+ }, 200);
50
+ } else {
51
+ // Delay hiding fixed footer to allow animation to complete and prevent flashing
52
+ transitionTimeoutRef.current = setTimeout(function () {
53
+ return setShowFixedFooter(false);
54
+ }, 200);
55
+ }
56
+ }
57
+ }
58
+ };
59
+
60
+ // Delay initial check to ensure layout is complete
61
+ setTimeout(checkOverflow, 100);
62
+
63
+ // Check on resize
64
+ window.addEventListener('resize', checkOverflow);
65
+
66
+ // Use ResizeObserver to detect container size changes
67
+ var resizeObserver = new ResizeObserver(function () {
68
+ setTimeout(checkOverflow, 50);
69
+ });
70
+ if (containerRef.current) {
71
+ resizeObserver.observe(containerRef.current);
72
+ }
73
+ if (contentRef.current) {
74
+ resizeObserver.observe(contentRef.current);
75
+ }
76
+
77
+ // Use MutationObserver to detect content changes
78
+ var mutationObserver = new MutationObserver(function () {
79
+ setTimeout(checkOverflow, 50);
80
+ });
81
+ if (contentRef.current) {
82
+ mutationObserver.observe(contentRef.current, {
83
+ childList: true,
84
+ subtree: true,
85
+ attributes: true
86
+ });
87
+ }
88
+ return function () {
89
+ window.removeEventListener('resize', checkOverflow);
90
+ resizeObserver.disconnect();
91
+ mutationObserver.disconnect();
92
+ // Clear timeout on unmount
93
+ if (transitionTimeoutRef.current) {
94
+ clearTimeout(transitionTimeoutRef.current);
95
+ }
96
+ };
97
+ }, [children, hasOverflow]);
98
+
99
+ // Reusable button component
100
+ var MobileButtons = function MobileButtons() {
101
+ var _filterConfig$classNa, _filterConfig$classNa2;
102
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button.Btn, {
103
+ onClick: handleReset,
104
+ variant: "outline",
105
+ size: "sm",
106
+ className: filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa = filterConfig.classNames) === null || _filterConfig$classNa === void 0 ? void 0 : _filterConfig$classNa.resetButton
107
+ }, "Reset All"), selectedFilters && Object.keys(selectedFilters).length > 0 && /*#__PURE__*/React.createElement(Button.Btn, {
108
+ onClick: function onClick() {
109
+ return setMobileTab("listTab");
110
+ },
111
+ variant: "primary",
112
+ size: "sm",
113
+ className: twMerge("".concat(hasActiveFilters ? "hc-opacity-0 hc-pointer-events-none" : "hc-opacity-100"), filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa2 = filterConfig.classNames) === null || _filterConfig$classNa2 === void 0 ? void 0 : _filterConfig$classNa2.showJobsButton)
114
+ }, /*#__PURE__*/React.createElement(Button.Body, null, /*#__PURE__*/React.createElement(Button.Icon, {
115
+ icon: "fluent:search-12-filled",
116
+ size: "hc-size-3.5"
117
+ }), "Show ", filteredListings.length, " Jobs")));
118
+ };
15
119
  return /*#__PURE__*/React.createElement("div", {
120
+ ref: containerRef,
16
121
  style: isDesktop ? style : undefined,
17
- className: "\n /* Mobile layout */\n hc-relative hc-w-full hc-h-full hc-flex hc-flex-col\n\n /* Desktop layout */\n md:hc-block md:hc-max-h-[100%] md:hc-overflow-y-auto md:hc-overflow-x-auto\n\n ".concat(className !== null && className !== void 0 ? className : "", "\n ")
122
+ className: twMerge("/* Mobile layout */\n hc-relative hc-w-full hc-h-full hc-flex hc-flex-col\n\n /* Desktop layout */\n md:hc-relative md:hc-flex md:hc-flex-col md:hc-max-h-[100%]\n\n ".concat(className !== null && className !== void 0 ? className : ""), filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa3 = filterConfig.classNames) === null || _filterConfig$classNa3 === void 0 ? void 0 : _filterConfig$classNa3.filterContainer)
18
123
  }, /*#__PURE__*/React.createElement("div", {
19
- className: "hc-w-full hc-flex-grow hc-overflow-auto hc-pb-16 md:hc-pb-0"
124
+ ref: contentRef,
125
+ className: twMerge("hc-w-full hc-flex-grow hc-max-h-full hc-overflow-auto ".concat(hasOverflow ? 'hc-pb-16' : '', " md:hc-overflow-y-auto ").concat(hasOverflow ? 'md:hc-pb-16' : 'md:hc-pb-0'), filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa4 = filterConfig.classNames) === null || _filterConfig$classNa4 === void 0 ? void 0 : _filterConfig$classNa4.filterContent)
20
126
  }, /*#__PURE__*/React.createElement("div", {
21
127
  className: "hc-px-4 md:hc-pt-4 hc-space-y-4"
22
- }, children)), /*#__PURE__*/React.createElement("div", {
23
- className: "hc-hidden md:hc-flex md:hc-justify-start hc-px-4 hc-py-4"
128
+ }, children, !hasOverflow && !showFixedFooter && /*#__PURE__*/React.createElement("div", {
129
+ className: twMerge("hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-border-t hc-border-gray-200 hc-animate-in hc-fade-in hc-duration-300", filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa5 = filterConfig.classNames) === null || _filterConfig$classNa5 === void 0 ? void 0 : _filterConfig$classNa5.filterFooter)
130
+ }, /*#__PURE__*/React.createElement("div", {
131
+ className: "hc-flex hc-items-center hc-justify-between hc-gap-2 hc-w-full md:hc-hidden"
132
+ }, /*#__PURE__*/React.createElement(MobileButtons, null)), /*#__PURE__*/React.createElement("div", {
133
+ className: "hc-hidden md:hc-flex"
24
134
  }, /*#__PURE__*/React.createElement(Button.Btn, {
25
135
  onClick: handleReset,
26
136
  variant: "outline",
27
- size: "sm"
28
- }, "Reset All")), /*#__PURE__*/React.createElement("div", {
29
- className: " hc-w-full hc-absolute hc-bottom-0 hc-left-0 hc-right-0 hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-px-4 hc-bg-white hc-border-t hc-border-gray-200 hc-z-10 /* Hide on desktop */ md:hc-hidden "
137
+ size: "sm",
138
+ className: filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa6 = filterConfig.classNames) === null || _filterConfig$classNa6 === void 0 ? void 0 : _filterConfig$classNa6.resetButton
139
+ }, "Reset All"))))), showFixedFooter && /*#__PURE__*/React.createElement("div", {
140
+ className: "hc-w-full hc-absolute hc-bottom-0 hc-left-0 hc-right-0 hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-px-4 hc-bg-gray-100 hc-border-t hc-border-gray-200 hc-z-50 md:hc-hidden hc-animate-in hc-fade-in hc-slide-in-from-bottom-2 hc-duration-200"
141
+ }, /*#__PURE__*/React.createElement(MobileButtons, null)), showFixedFooter && /*#__PURE__*/React.createElement("div", {
142
+ className: "hc-hidden md:hc-flex md:hc-justify-start hc-px-4 hc-py-4 hc-absolute hc-bottom-0 hc-left-0 hc-right-0 hc-bg-gray-100 hc-border-t hc-border-gray-200 hc-z-50 hc-animate-in hc-fade-in hc-slide-in-from-bottom-2 hc-duration-200"
30
143
  }, /*#__PURE__*/React.createElement(Button.Btn, {
31
144
  onClick: handleReset,
32
145
  variant: "outline",
33
- size: "sm"
34
- }, "Reset All"), selectedFilters && Object.keys(selectedFilters).length > 0 && /*#__PURE__*/React.createElement(Button.Btn, {
35
- onClick: function onClick() {
36
- return setMobileTab("listTab");
37
- },
38
- variant: "primary",
39
146
  size: "sm",
40
- className: "\n ".concat(hasActiveFilters ? "hc-opacity-0 hc-pointer-events-none" : "hc-opacity-100", "\n ")
41
- }, /*#__PURE__*/React.createElement(Button.Body, null, /*#__PURE__*/React.createElement(Button.Icon, {
42
- icon: "fluent:search-12-filled",
43
- size: "hc-size-3.5"
44
- }), "Show ", filteredListings.length, " Jobs"))));
147
+ className: filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa7 = filterConfig.classNames) === null || _filterConfig$classNa7 === void 0 ? void 0 : _filterConfig$classNa7.resetButton
148
+ }, "Reset All")));
45
149
  };
46
150
 
47
151
  export { Filter as default };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/modules/filter/index.js"],"sourcesContent":["\"use client\";\nimport Button from \"~/components/modules/buttons/default\";\nimport React from \"react\";\nconst Filter = ({\n\tclassName,\n\thasActiveFilters,\n\tfilteredListings,\n\tselectedFilters,\n\tsetMobileTab,\n\thandleReset,\n\tisDesktop = false,\n\tstyle,\n\tchildren\n}) => {\n\treturn (\n\t\t<div\n\t\t\tstyle={isDesktop ? style : undefined}\n\t\t\tclassName={`\n /* Mobile layout */\n hc-relative hc-w-full hc-h-full hc-flex hc-flex-col\n\n /* Desktop layout */\n md:hc-block md:hc-max-h-[100%] md:hc-overflow-y-auto md:hc-overflow-x-auto\n\n ${className ?? \"\"}\n `}\n\t\t>\n\t\t\t{/* Content area with scroll */}\n\t\t\t<div className=\"hc-w-full hc-flex-grow hc-overflow-auto hc-pb-16 md:hc-pb-0\">\n\t\t\t\t<div className=\"hc-px-4 md:hc-pt-4 hc-space-y-4\">{children}</div>\n\t\t\t</div>\n\n\t\t\t{/* Desktop Reset Button - left aligned */}\n\t\t\t<div className=\"hc-hidden md:hc-flex md:hc-justify-start hc-px-4 hc-py-4\">\n\t\t\t\t<Button.Btn onClick={handleReset} variant=\"outline\" size=\"sm\">\n\t\t\t\t\tReset All\n\t\t\t\t</Button.Btn>\n\t\t\t</div>\n\n\t\t\t{/* Mobile Footer - fixed at bottom */}\n\t\t\t<div\n\t\t\t\tclassName=\"\n hc-w-full\n hc-absolute hc-bottom-0 hc-left-0 hc-right-0\n hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-px-4\n hc-bg-white hc-border-t hc-border-gray-200\n hc-z-10\n\n /* Hide on desktop */\n md:hc-hidden\n \"\n\t\t\t>\n\t\t\t\t<Button.Btn onClick={handleReset} variant=\"outline\" size=\"sm\">\n\t\t\t\t\tReset All\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 ${hasActiveFilters ? \"hc-opacity-0 hc-pointer-events-none\" : \"hc-opacity-100\"}\n `}\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 icon=\"fluent:search-12-filled\" size=\"hc-size-3.5\" />\n Show {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;"],"names":["Filter","_ref","className","hasActiveFilters","filteredListings","selectedFilters","setMobileTab","handleReset","_ref$isDesktop","isDesktop","style","children","React","createElement","undefined","concat","Button","Btn","onClick","variant","size","Object","keys","length","Body","Icon","icon"],"mappings":";;;AAGA,IAAMA,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAUN;AAAA,EAAA,IATLC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,gBAAgB,GAAAF,IAAA,CAAhBE,gBAAgB;IAChBC,gBAAgB,GAAAH,IAAA,CAAhBG,gBAAgB;IAChBC,eAAe,GAAAJ,IAAA,CAAfI,eAAe;IACfC,YAAY,GAAAL,IAAA,CAAZK,YAAY;IACZC,WAAW,GAAAN,IAAA,CAAXM,WAAW;IAAAC,cAAA,GAAAP,IAAA,CACXQ,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,cAAA;IACjBE,KAAK,GAAAT,IAAA,CAALS,KAAK;IACLC,QAAQ,GAAAV,IAAA,CAARU,QAAQ,CAAA;EAER,oBACCC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACCH,IAAAA,KAAK,EAAED,SAAS,GAAGC,KAAK,GAAGI,SAAU;IACrCZ,SAAS,EAAA,4NAAA,CAAAa,MAAA,CAOFb,SAAS,aAATA,SAAS,KAAA,KAAA,CAAA,GAATA,SAAS,GAAI,EAAE,EAAA,UAAA,CAAA;GAItBU,eAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKX,IAAAA,SAAS,EAAC,6DAAA;GACdU,eAAAA,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKX,IAAAA,SAAS,EAAC,iCAAA;AAAiC,GAAA,EAAES,QAAc,CAC5D,CAAC,eAGNC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKX,IAAAA,SAAS,EAAC,0DAAA;AAA0D,GAAA,eACxEU,KAAA,CAAAC,aAAA,CAACG,MAAM,CAACC,GAAG,EAAA;AAACC,IAAAA,OAAO,EAAEX,WAAY;AAACY,IAAAA,OAAO,EAAC,SAAS;AAACC,IAAAA,IAAI,EAAC,IAAA;AAAI,GAAA,EAAC,WAElD,CACR,CAAC,eAGNR,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACCX,IAAAA,SAAS,EAAC,oNAAA;AASP,GAAA,eAEHU,KAAA,CAAAC,aAAA,CAACG,MAAM,CAACC,GAAG,EAAA;AAACC,IAAAA,OAAO,EAAEX,WAAY;AAACY,IAAAA,OAAO,EAAC,SAAS;AAACC,IAAAA,IAAI,EAAC,IAAA;GAAK,EAAA,WAElD,CAAC,EACZf,eAAe,IAAIgB,MAAM,CAACC,IAAI,CAACjB,eAAe,CAAC,CAACkB,MAAM,GAAG,CAAC,iBAC1DX,KAAA,CAAAC,aAAA,CAACG,MAAM,CAACC,GAAG,EAAA;IACVC,OAAO,EAAE,SAAAA,OAAA,GAAA;MAAA,OAAMZ,YAAY,CAAC,SAAS,CAAC,CAAA;KAAC;AACvCa,IAAAA,OAAO,EAAC,SAAS;AACjBC,IAAAA,IAAI,EAAC,IAAI;AACTlB,IAAAA,SAAS,qBAAAa,MAAA,CACCZ,gBAAgB,GAAG,qCAAqC,GAAG,gBAAgB,EAAA,gBAAA,CAAA;AAC7E,GAAA,eAERS,KAAA,CAAAC,aAAA,CAACG,MAAM,CAACQ,IAAI,EACXZ,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAACG,MAAM,CAACS,IAAI,EAAA;AAACC,IAAAA,IAAI,EAAC,yBAAyB;AAACN,IAAAA,IAAI,EAAC,aAAA;GAAe,CAAC,EACrD,OAAA,EAAChB,gBAAgB,CAACmB,MAAM,EAAC,OACzB,CACF,CAET,CACD,CAAC,CAAA;AAER;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/modules/filter/index.js"],"sourcesContent":["\"use client\";\nimport Button from \"~/components/modules/buttons/default\";\nimport React, { useEffect, useRef, useState } from \"react\";\nimport { twMerge } from '~/util/twMerge';\nimport { useMapList } from \"~/contexts/mapListContext\";\n\nconst Filter = ({\n\tclassName,\n\thasActiveFilters,\n\tfilteredListings,\n\tselectedFilters,\n\tsetMobileTab,\n\thandleReset,\n\tisDesktop = false,\n\tstyle,\n\tchildren\n}) => {\n\tconst { filterConfig } = useMapList();\n\tconst contentRef = useRef(null);\n\tconst containerRef = useRef(null);\n\tconst [hasOverflow, setHasOverflow] = useState(false);\n\tconst [showFixedFooter, setShowFixedFooter] = useState(false);\n\tconst transitionTimeoutRef = useRef(null);\n\n\tuseEffect(() => {\n\t\tconst checkOverflow = () => {\n\t\t\tif (contentRef.current) {\n\t\t\t\t// Add a small tolerance (5px) to avoid false positives from rounding/padding\n\t\t\t\tconst hasScroll = contentRef.current.scrollHeight > contentRef.current.clientHeight + 5;\n\n\t\t\t\tif (hasScroll !== hasOverflow) {\n\t\t\t\t\tsetHasOverflow(hasScroll);\n\n\t\t\t\t\t// Clear any pending transitions\n\t\t\t\t\tif (transitionTimeoutRef.current) {\n\t\t\t\t\t\tclearTimeout(transitionTimeoutRef.current);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Add a delay when transitioning to fixed footer to smooth the transition\n\t\t\t\t\tif (hasScroll) {\n\t\t\t\t\t\ttransitionTimeoutRef.current = setTimeout(() => setShowFixedFooter(true), 200);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Delay hiding fixed footer to allow animation to complete and prevent flashing\n\t\t\t\t\t\ttransitionTimeoutRef.current = setTimeout(() => setShowFixedFooter(false), 200);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// Delay initial check to ensure layout is complete\n\t\tsetTimeout(checkOverflow, 100);\n\n\t\t// Check on resize\n\t\twindow.addEventListener('resize', checkOverflow);\n\n\t\t// Use ResizeObserver to detect container size changes\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\tsetTimeout(checkOverflow, 50);\n\t\t});\n\t\tif (containerRef.current) {\n\t\t\tresizeObserver.observe(containerRef.current);\n\t\t}\n\t\tif (contentRef.current) {\n\t\t\tresizeObserver.observe(contentRef.current);\n\t\t}\n\n\t\t// Use MutationObserver to detect content changes\n\t\tconst mutationObserver = new MutationObserver(() => {\n\t\t\tsetTimeout(checkOverflow, 50);\n\t\t});\n\t\tif (contentRef.current) {\n\t\t\tmutationObserver.observe(contentRef.current, { childList: true, subtree: true, attributes: true });\n\t\t}\n\n\t\treturn () => {\n\t\t\twindow.removeEventListener('resize', checkOverflow);\n\t\t\tresizeObserver.disconnect();\n\t\t\tmutationObserver.disconnect();\n\t\t\t// Clear timeout on unmount\n\t\t\tif (transitionTimeoutRef.current) {\n\t\t\t\tclearTimeout(transitionTimeoutRef.current);\n\t\t\t}\n\t\t};\n\t}, [children, hasOverflow]);\n\n\t// Reusable button component\n\tconst MobileButtons = () => (\n\t\t<>\n\t\t\t<Button.Btn\n\t\t\t\tonClick={handleReset}\n\t\t\t\tvariant=\"outline\"\n\t\t\t\tsize=\"sm\"\n\t\t\t\tclassName={filterConfig?.classNames?.resetButton}\n\t\t\t>\n\t\t\t\tReset All\n\t\t\t</Button.Btn>\n\t\t\t{selectedFilters && Object.keys(selectedFilters).length > 0 && (\n\t\t\t\t<Button.Btn\n\t\t\t\t\tonClick={() => setMobileTab(\"listTab\")}\n\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t`${hasActiveFilters ? \"hc-opacity-0 hc-pointer-events-none\" : \"hc-opacity-100\"}`,\n\t\t\t\t\t\tfilterConfig?.classNames?.showJobsButton\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<Button.Body>\n\t\t\t\t\t\t<Button.Icon icon=\"fluent:search-12-filled\" size=\"hc-size-3.5\" />\n\t\t\t\t\t\tShow {filteredListings.length} Jobs\n\t\t\t\t\t</Button.Body>\n\t\t\t\t</Button.Btn>\n\t\t\t)}\n\t\t</>\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tref={containerRef}\n\t\t\tstyle={isDesktop ? style : undefined}\n\t\t\tclassName={twMerge(\n `/* Mobile layout */\n hc-relative hc-w-full hc-h-full hc-flex hc-flex-col\n\n /* Desktop layout */\n md:hc-relative md:hc-flex md:hc-flex-col md:hc-max-h-[100%]\n\n ${className ?? \"\"}`,\n filterConfig?.classNames?.filterContainer\n )}\n\t\t>\n\t\t\t{/* Content area with scroll */}\n\t\t\t<div\n\t\t\t\tref={contentRef}\n\t\t\t\tclassName={twMerge(\n\t\t\t\t\t`hc-w-full hc-flex-grow hc-max-h-full hc-overflow-auto ${hasOverflow ? 'hc-pb-16' : ''} md:hc-overflow-y-auto ${hasOverflow ? 'md:hc-pb-16' : 'md:hc-pb-0'}`,\n\t\t\t\t\tfilterConfig?.classNames?.filterContent\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<div className=\"hc-px-4 md:hc-pt-4 hc-space-y-4\">\n\t\t\t\t\t{children}\n\n\t\t\t\t\t{/* Inline buttons when no overflow - both mobile and desktop */}\n\t\t\t\t\t{!hasOverflow && !showFixedFooter && (\n\t\t\t\t\t\t<div className={twMerge(\n\t\t\t\t\t\t\t\"hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-border-t hc-border-gray-200 hc-animate-in hc-fade-in hc-duration-300\",\n\t\t\t\t\t\t\tfilterConfig?.classNames?.filterFooter\n\t\t\t\t\t\t)}>\n\t\t\t\t\t\t\t{/* Mobile buttons */}\n\t\t\t\t\t\t\t<div className=\"hc-flex hc-items-center hc-justify-between hc-gap-2 hc-w-full md:hc-hidden\">\n\t\t\t\t\t\t\t\t<MobileButtons />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{/* Desktop button */}\n\t\t\t\t\t\t\t<div className=\"hc-hidden md:hc-flex\">\n\t\t\t\t\t\t\t\t<Button.Btn\n\t\t\t\t\t\t\t\t\tonClick={handleReset}\n\t\t\t\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\tclassName={filterConfig?.classNames?.resetButton}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\tReset All\n\t\t\t\t\t\t\t\t</Button.Btn>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t{/* Mobile Footer - fixed at bottom (only when overflow) */}\n\t\t\t{showFixedFooter && (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"hc-w-full hc-absolute hc-bottom-0 hc-left-0 hc-right-0 hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-px-4 hc-bg-gray-100 hc-border-t hc-border-gray-200 hc-z-50 md:hc-hidden hc-animate-in hc-fade-in hc-slide-in-from-bottom-2 hc-duration-200\"\n\t\t\t\t>\n\t\t\t\t\t<MobileButtons />\n\t\t\t\t</div>\n\t\t\t)}\n\n\t\t\t{/* Desktop Footer - fixed at bottom (only when overflow) */}\n\t\t\t{showFixedFooter && (\n\t\t\t\t<div className=\"hc-hidden md:hc-flex md:hc-justify-start hc-px-4 hc-py-4 hc-absolute hc-bottom-0 hc-left-0 hc-right-0 hc-bg-gray-100 hc-border-t hc-border-gray-200 hc-z-50 hc-animate-in hc-fade-in hc-slide-in-from-bottom-2 hc-duration-200\">\n\t\t\t\t\t<Button.Btn\n\t\t\t\t\t\tonClick={handleReset}\n\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\tclassName={filterConfig?.classNames?.resetButton}\n\t\t\t\t\t>\n\t\t\t\t\t\tReset All\n\t\t\t\t\t</Button.Btn>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nexport default Filter;\n"],"names":["Filter","_ref","_filterConfig$classNa3","_filterConfig$classNa4","_filterConfig$classNa5","_filterConfig$classNa6","_filterConfig$classNa7","className","hasActiveFilters","filteredListings","selectedFilters","setMobileTab","handleReset","_ref$isDesktop","isDesktop","style","children","_useMapList","useMapList","filterConfig","contentRef","useRef","containerRef","_useState","useState","_useState2","_slicedToArray","hasOverflow","setHasOverflow","_useState3","_useState4","showFixedFooter","setShowFixedFooter","transitionTimeoutRef","useEffect","checkOverflow","current","hasScroll","scrollHeight","clientHeight","clearTimeout","setTimeout","window","addEventListener","resizeObserver","ResizeObserver","observe","mutationObserver","MutationObserver","childList","subtree","attributes","removeEventListener","disconnect","MobileButtons","_filterConfig$classNa","_filterConfig$classNa2","React","createElement","Fragment","Button","Btn","onClick","variant","size","classNames","resetButton","Object","keys","length","twMerge","concat","showJobsButton","Body","Icon","icon","ref","undefined","filterContainer","filterContent","filterFooter"],"mappings":"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"}
@@ -1,9 +1,12 @@
1
1
  import { objectWithoutProperties as _objectWithoutProperties, extends as _extends } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React from 'react';
3
3
  import IconContained from '../icon.js';
4
+ import { twMerge } from '../../../util/twMerge.js';
5
+ import { useMapList } from '../../../contexts/mapListContext.js';
4
6
 
5
7
  var _excluded = ["className", "item", "type", "itemKey", "hasCount", "field", "activeItem", "setActiveItem", "changeHandler", "isExternalLink", "externalLinkUrl", "trackEvent", "eventTypes"];
6
8
  var FilterItem = function FilterItem(_ref) {
9
+ var _filterConfig$classNa, _filterConfig$classNa2, _filterConfig$classNa3;
7
10
  var className = _ref.className,
8
11
  item = _ref.item,
9
12
  type = _ref.type,
@@ -19,6 +22,8 @@ var FilterItem = function FilterItem(_ref) {
19
22
  trackEvent = _ref.trackEvent,
20
23
  eventTypes = _ref.eventTypes,
21
24
  rest = _objectWithoutProperties(_ref, _excluded);
25
+ var _useMapList = useMapList(),
26
+ filterConfig = _useMapList.filterConfig;
22
27
  var itemName = item.name ? item.name : item;
23
28
  return (
24
29
  /*#__PURE__*/
@@ -42,16 +47,16 @@ var FilterItem = function FilterItem(_ref) {
42
47
  disabled: item.count === 0,
43
48
  value: itemName,
44
49
  type: type,
45
- className: "hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30 hc-transition-colors hc-rounded-sm",
50
+ className: twMerge("hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30 hc-transition-colors hc-rounded-sm", filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa = filterConfig.classNames) === null || _filterConfig$classNa === void 0 ? void 0 : _filterConfig$classNa.filterItemCheckbox),
46
51
  checked: activeItem,
47
52
  onChange: function onChange() {
48
53
  setActiveItem(!activeItem);
49
54
  changeHandler();
50
55
  }
51
56
  }), /*#__PURE__*/React.createElement("span", {
52
- className: "hc-text-left hc-font-medium"
57
+ className: twMerge("hc-text-left hc-font-medium", filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa2 = filterConfig.classNames) === null || _filterConfig$classNa2 === void 0 ? void 0 : _filterConfig$classNa2.filterItemLabel)
53
58
  }, itemName), hasCount && !isExternalLink && /*#__PURE__*/React.createElement("span", {
54
- className: "hc-inline-block hc-mt-1 hc-ml-auto hc-text-xs hc-leading-none hc-text-primary"
59
+ className: twMerge("hc-inline-block hc-mt-1 hc-ml-auto hc-text-xs hc-leading-none hc-text-primary", filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa3 = filterConfig.classNames) === null || _filterConfig$classNa3 === void 0 ? void 0 : _filterConfig$classNa3.filterItemCount)
55
60
  }, "(", item.count, ")"))
56
61
  );
57
62
  };
@@ -1 +1 @@
1
- {"version":3,"file":"item.js","sources":["../../../../src/components/modules/filter/item.js"],"sourcesContent":["import React from 'react';\nimport Icon from '~/components/modules/icon';\n\nconst FilterItem = ({\n\tclassName,\n\titem,\n\ttype,\n\titemKey,\n\thasCount,\n\tfield,\n\tactiveItem,\n\tsetActiveItem,\n\tchangeHandler,\n\tisExternalLink = false,\n\texternalLinkUrl,\n\ttrackEvent,\n\teventTypes,\n\t...rest\n}) => {\n\tconst itemName = item.name ? item.name : item;\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\n\t\t<label\n\t\t onClick={() =>\n\t\t\t{\n\t\t\t\tif(!isExternalLink) return;\n\t\t\t trackEvent(eventTypes.EXTERNAL_LINK_CLICKED, { link: externalLinkUrl });\n\t\t\t\twindow.location.href = externalLinkUrl;\n\t\t\t}}\n\t\t\tclassName={`\n hc-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 ${className ?? \"\"}\n `}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{isExternalLink ? (\n\t\t\t\t<Icon\n\t\t\t\t\ticon=\"tabler:external-link\"\n\t\t\t\t\tsize=\"hc-size-4\"\n\t\t\t\t\tclassName={'hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30'}\n\t\t\t\t></Icon>\n\t\t\t) : (\n\t\t\t\t<input\n\t\t\t\t\tid={itemKey}\n\t\t\t\t\tname={field}\n\t\t\t\t\tdisabled={item.count === 0}\n\t\t\t\t\tvalue={itemName}\n\t\t\t\t\ttype={type}\n\t\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\t\tchecked={activeItem}\n\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\tsetActiveItem(!activeItem);\n\t\t\t\t\t\tchangeHandler();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<span className=\"hc-text-left hc-font-medium\">{itemName}</span>\n\t\t\t{hasCount && !isExternalLink && (\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 ({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","className","item","type","itemKey","hasCount","field","activeItem","setActiveItem","changeHandler","_ref$isExternalLink","isExternalLink","externalLinkUrl","trackEvent","eventTypes","rest","_objectWithoutProperties","_excluded","itemName","name","React","createElement","_extends","onClick","EXTERNAL_LINK_CLICKED","link","window","location","href","concat","Icon","icon","size","id","disabled","count","value","checked","onChange"],"mappings":";;;;;AAGA,IAAMA,UAAU,GAAG,SAAbA,UAAUA,CAAAC,IAAA,EAeV;AAAA,EAAA,IAdLC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IACJC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IACJC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IACPC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLC,UAAU,GAAAP,IAAA,CAAVO,UAAU;IACVC,aAAa,GAAAR,IAAA,CAAbQ,aAAa;IACbC,aAAa,GAAAT,IAAA,CAAbS,aAAa;IAAAC,mBAAA,GAAAV,IAAA,CACbW,cAAc;AAAdA,IAAAA,cAAc,GAAAD,mBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,mBAAA;IACtBE,eAAe,GAAAZ,IAAA,CAAfY,eAAe;IACfC,UAAU,GAAAb,IAAA,CAAVa,UAAU;IACVC,UAAU,GAAAd,IAAA,CAAVc,UAAU;AACPC,IAAAA,IAAI,GAAAC,wBAAA,CAAAhB,IAAA,EAAAiB,SAAA,CAAA,CAAA;EAEP,IAAMC,QAAQ,GAAGhB,IAAI,CAACiB,IAAI,GAAGjB,IAAI,CAACiB,IAAI,GAAGjB,IAAI,CAAA;AAE7C,EAAA;AAAA;AACC;IACAkB,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAAC,QAAA,CAAA;MACEC,OAAO,EAAE,SAAAA,OAAAA,GACV;QACC,IAAG,CAACZ,cAAc,EAAE,OAAA;AACjBE,QAAAA,UAAU,CAACC,UAAU,CAACU,qBAAqB,EAAE;AAAEC,UAAAA,IAAI,EAAEb,eAAAA;AAAgB,SAAC,CAAC,CAAA;AAC1Ec,QAAAA,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAGhB,eAAe,CAAA;OACrC;MACFX,SAAS,EAAA,uJAAA,CAAA4B,MAAA,CAEF5B,SAAS,aAATA,SAAS,KAAA,KAAA,CAAA,GAATA,SAAS,GAAI,EAAE,EAAA,UAAA,CAAA;KAElBc,EAAAA,IAAI,GAEPJ,cAAc,gBACdS,KAAA,CAAAC,aAAA,CAACS,aAAI,EAAA;AACJC,MAAAA,IAAI,EAAC,sBAAsB;AAC3BC,MAAAA,IAAI,EAAC,WAAW;AAChB/B,MAAAA,SAAS,EAAE,0DAAA;AAA2D,KAChE,CAAC,gBAERmB,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;AACCY,MAAAA,EAAE,EAAE7B,OAAQ;AACZe,MAAAA,IAAI,EAAEb,KAAM;AACZ4B,MAAAA,QAAQ,EAAEhC,IAAI,CAACiC,KAAK,KAAK,CAAE;AAC3BC,MAAAA,KAAK,EAAElB,QAAS;AAChBf,MAAAA,IAAI,EAAEA,IAAK;AACXF,MAAAA,SAAS,EAAC,6FAA6F;AACvGoC,MAAAA,OAAO,EAAE9B,UAAW;MACpB+B,QAAQ,EAAE,SAAAA,QAAAA,GAAM;QACf9B,aAAa,CAAC,CAACD,UAAU,CAAC,CAAA;AAC1BE,QAAAA,aAAa,EAAE,CAAA;AAChB,OAAA;AAAE,KACF,CACD,eAEDW,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMpB,MAAAA,SAAS,EAAC,6BAAA;KAA+BiB,EAAAA,QAAe,CAAC,EAC9Db,QAAQ,IAAI,CAACM,cAAc,iBAC3BS,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMpB,MAAAA,SAAS,EAAC,+EAAA;AAA+E,KAAA,EAAC,GACzF,EAACC,IAAI,CAACiC,KAAK,EAAC,GACb,CAED,CAAA;AAAC,IAAA;AAEV;;;;"}
1
+ {"version":3,"file":"item.js","sources":["../../../../src/components/modules/filter/item.js"],"sourcesContent":["import React from 'react';\nimport Icon from '~/components/modules/icon';\nimport { twMerge } from '~/util/twMerge';\nimport { useMapList } from '~/contexts/mapListContext';\n\nconst FilterItem = ({\n\tclassName,\n\titem,\n\ttype,\n\titemKey,\n\thasCount,\n\tfield,\n\tactiveItem,\n\tsetActiveItem,\n\tchangeHandler,\n\tisExternalLink = false,\n\texternalLinkUrl,\n\ttrackEvent,\n\teventTypes,\n\t...rest\n}) => {\n\tconst { filterConfig } = useMapList();\n\tconst itemName = item.name ? item.name : item;\n\n\treturn (\n\t\t// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\n\t\t<label\n\t\t onClick={() =>\n\t\t\t{\n\t\t\t\tif(!isExternalLink) return;\n\t\t\t trackEvent(eventTypes.EXTERNAL_LINK_CLICKED, { link: externalLinkUrl });\n\t\t\t\twindow.location.href = externalLinkUrl;\n\t\t\t}}\n\t\t\tclassName={`\n hc-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 ${className ?? \"\"}\n `}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{isExternalLink ? (\n\t\t\t\t<Icon\n\t\t\t\t\ticon=\"tabler:external-link\"\n\t\t\t\t\tsize=\"hc-size-4\"\n\t\t\t\t\tclassName={'hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30'}\n\t\t\t\t></Icon>\n\t\t\t) : (\n\t\t\t\t<input\n\t\t\t\t\tid={itemKey}\n\t\t\t\t\tname={field}\n\t\t\t\t\tdisabled={item.count === 0}\n\t\t\t\t\tvalue={itemName}\n\t\t\t\t\ttype={type}\n\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\"hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30 hc-transition-colors hc-rounded-sm\",\n\t\t\t\t\t\tfilterConfig?.classNames?.filterItemCheckbox\n\t\t\t\t\t)}\n\t\t\t\t\tchecked={activeItem}\n\t\t\t\t\tonChange={() => {\n\t\t\t\t\t\tsetActiveItem(!activeItem);\n\t\t\t\t\t\tchangeHandler();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t)}\n\n\t\t\t<span className={twMerge(\n\t\t\t\t\"hc-text-left hc-font-medium\",\n\t\t\t\tfilterConfig?.classNames?.filterItemLabel\n\t\t\t)}>{itemName}</span>\n\t\t\t{hasCount && !isExternalLink && (\n\t\t\t\t<span className={twMerge(\n\t\t\t\t\t\"hc-inline-block hc-mt-1 hc-ml-auto hc-text-xs hc-leading-none hc-text-primary\",\n\t\t\t\t\tfilterConfig?.classNames?.filterItemCount\n\t\t\t\t)}>\n ({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","_filterConfig$classNa","_filterConfig$classNa2","_filterConfig$classNa3","className","item","type","itemKey","hasCount","field","activeItem","setActiveItem","changeHandler","_ref$isExternalLink","isExternalLink","externalLinkUrl","trackEvent","eventTypes","rest","_objectWithoutProperties","_excluded","_useMapList","useMapList","filterConfig","itemName","name","React","createElement","_extends","onClick","EXTERNAL_LINK_CLICKED","link","window","location","href","concat","Icon","icon","size","id","disabled","count","value","twMerge","classNames","filterItemCheckbox","checked","onChange","filterItemLabel","filterItemCount"],"mappings":"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"}
@@ -2,8 +2,11 @@ import React, { useRef } from 'react';
2
2
  import Button from '../buttons/default.js';
3
3
  import IconContained from '../icon.js';
4
4
  import CardFilter from '../cards/filter.js';
5
+ import { twMerge } from '../../../util/twMerge.js';
6
+ import { useMapList } from '../../../contexts/mapListContext.js';
5
7
 
6
8
  var Search = function Search(_ref) {
9
+ var _filterConfig$classNa;
7
10
  var inputPlaceholder = _ref.inputPlaceholder,
8
11
  showSearchIcon = _ref.showSearchIcon,
9
12
  className = _ref.className,
@@ -13,6 +16,8 @@ var Search = function Search(_ref) {
13
16
  handleSubmitInput = _ref.handleSubmitInput,
14
17
  handleReset = _ref.handleReset,
15
18
  label = _ref.label;
19
+ var _useMapList = useMapList(),
20
+ filterConfig = _useMapList.filterConfig;
16
21
  var inputRef = useRef(null);
17
22
  var buttonRef = useRef(null);
18
23
  return /*#__PURE__*/React.createElement(CardFilter, {
@@ -40,7 +45,7 @@ var Search = function Search(_ref) {
40
45
  },
41
46
  placeholder: inputPlaceholder,
42
47
  value: inputValue,
43
- className: "hc-w-full hc-px-0 hc-py-2 hc-text-sm hc-border-0 hc-transition-colors placeholder:hc-text-uiText/50 focus:hc-ring-0 focus:hc-outline-none",
48
+ className: twMerge("hc-w-full hc-px-0 hc-py-2 hc-text-sm hc-border-0 hc-transition-colors placeholder:hc-text-uiText/50 focus:hc-ring-0 focus:hc-outline-none", filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa = filterConfig.classNames) === null || _filterConfig$classNa === void 0 ? void 0 : _filterConfig$classNa.searchInput),
44
49
  onChange: handleInputChange
45
50
  }), /*#__PURE__*/React.createElement("button", {
46
51
  id: "SearchButton",
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sources":["../../../../src/components/modules/filter/search.js"],"sourcesContent":["import React, { useRef } from 'react';\nimport Button from '~/components/modules/buttons/default';\nimport Icon from '~/components/modules/icon';\nimport FilterCard from '~/components/modules/cards/filter';\n\nconst Search = ({\n\tinputPlaceholder,\n\tshowSearchIcon,\n\tclassName,\n\tlabelClassName,\n\tinputValue,\n\thandleInputChange,\n\thandleSubmitInput,\n\thandleReset,\n\tlabel\n}) => {\n\tconst inputRef = useRef(null);\n\tconst buttonRef = useRef(null);\n\n\treturn (\n\t\t<FilterCard as=\"form\" className={className ?? \"\"}>\n\t\t\t<FilterCard.Title\n\t\t\t\tas=\"label\"\n\t\t\t\ticon=\"fluent:search-12-filled\"\n\t\t\t\tclassName={labelClassName ?? \"\"}\n\t\t\t>\n\t\t\t\t<span>{label}</span>\n\t\t\t</FilterCard.Title>\n\n\t\t\t<div className=\"hc-relative hc-flex hc-items-center hc-px-2 hc-rounded hc-bg-white hc-border hc-border-uiAccent/20 focus-within:hc-ring-1 focus-within:hc-ring-uiAccent\">\n\t\t\t\t{showSearchIcon && (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon=\"fluent:search-12-filled\"\n\t\t\t\t\t\tsize=\"hc-size-4\"\n\t\t\t\t\t\tclassName=\"hc-mr-2 hc-text-uiAccent/50\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<input\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tname=\"search\"\n\t\t\t\t\tref={inputRef}\n\t\t\t\t\tonKeyDown={e => {\n\t\t\t\t\t\tif (e.key === 'Enter') {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tbuttonRef.current.click(); // Trigger the hidden button on Enter key press\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tplaceholder={inputPlaceholder}\n\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\tclassName=\"hc-w-full hc-px-0 hc-py-2 hc-text-sm hc-border-0 hc-transition-colors placeholder:hc-text-uiText/50 focus:hc-ring-0 focus:hc-outline-none\"\n\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t/>\n\n\t\t\t\t<button\n\t\t\t\t id=\"SearchButton\"\n\t\t\t\t\tref={buttonRef}\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclassName=\"hidden hc-invisible\"\n\t\t\t\t\tonClick={() => handleSubmitInput(inputRef.current.value)}\n\t\t\t\t>\n Hidden Submit\n\t\t\t\t</button>\n\n\t\t\t\t<Button.Btn\n\t\t\t\t\ttype=\"reset\"\n\t\t\t\t\tvariant=\"icon\"\n\t\t\t\t\tsize=\"sqsm\"\n\t\t\t\t\tclassName={`transition-opacity ${inputValue ? \"hc-opacity-100\" : \"hc-opacity-0 hc-pointer-events-none\"}`}\n\t\t\t\t\tonClick={handleReset}\n\t\t\t\t>\n\t\t\t\t\t<span className=\"hc-sr-only\">Clear</span>\n\t\t\t\t\t<Button.Icon icon=\"uil:times\" className=\"hc-text-uiAccent\" />\n\t\t\t\t</Button.Btn>\n\t\t\t</div>\n\t\t</FilterCard>\n\t);\n};\n\nexport default Search;\n"],"names":["Search","_ref","inputPlaceholder","showSearchIcon","className","labelClassName","inputValue","handleInputChange","handleSubmitInput","handleReset","label","inputRef","useRef","buttonRef","React","createElement","FilterCard","as","Title","icon","Icon","size","type","name","ref","onKeyDown","e","key","preventDefault","current","click","placeholder","value","onChange","id","onClick","Button","Btn","variant","concat"],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sources":["../../../../src/components/modules/filter/search.js"],"sourcesContent":["import React, { useRef } from 'react';\nimport Button from '~/components/modules/buttons/default';\nimport Icon from '~/components/modules/icon';\nimport FilterCard from '~/components/modules/cards/filter';\nimport { twMerge } from '~/util/twMerge';\nimport { useMapList } from '~/contexts/mapListContext';\n\nconst Search = ({\n\tinputPlaceholder,\n\tshowSearchIcon,\n\tclassName,\n\tlabelClassName,\n\tinputValue,\n\thandleInputChange,\n\thandleSubmitInput,\n\thandleReset,\n\tlabel\n}) => {\n\tconst { filterConfig } = useMapList();\n\tconst inputRef = useRef(null);\n\tconst buttonRef = useRef(null);\n\n\treturn (\n\t\t<FilterCard as=\"form\" className={className ?? \"\"}>\n\t\t\t<FilterCard.Title\n\t\t\t\tas=\"label\"\n\t\t\t\ticon=\"fluent:search-12-filled\"\n\t\t\t\tclassName={labelClassName ?? \"\"}\n\t\t\t>\n\t\t\t\t<span>{label}</span>\n\t\t\t</FilterCard.Title>\n\n\t\t\t<div className=\"hc-relative hc-flex hc-items-center hc-px-2 hc-rounded hc-bg-white hc-border hc-border-uiAccent/20 focus-within:hc-ring-1 focus-within:hc-ring-uiAccent\">\n\t\t\t\t{showSearchIcon && (\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon=\"fluent:search-12-filled\"\n\t\t\t\t\t\tsize=\"hc-size-4\"\n\t\t\t\t\t\tclassName=\"hc-mr-2 hc-text-uiAccent/50\"\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<input\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tname=\"search\"\n\t\t\t\t\tref={inputRef}\n\t\t\t\t\tonKeyDown={e => {\n\t\t\t\t\t\tif (e.key === 'Enter') {\n\t\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\t\tbuttonRef.current.click(); // Trigger the hidden button on Enter key press\n\t\t\t\t\t\t}\n\t\t\t\t\t}}\n\t\t\t\t\tplaceholder={inputPlaceholder}\n\t\t\t\t\tvalue={inputValue}\n\t\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\t\"hc-w-full hc-px-0 hc-py-2 hc-text-sm hc-border-0 hc-transition-colors placeholder:hc-text-uiText/50 focus:hc-ring-0 focus:hc-outline-none\",\n\t\t\t\t\t\tfilterConfig?.classNames?.searchInput\n\t\t\t\t\t)}\n\t\t\t\t\tonChange={handleInputChange}\n\t\t\t\t/>\n\n\t\t\t\t<button\n\t\t\t\t id=\"SearchButton\"\n\t\t\t\t\tref={buttonRef}\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclassName=\"hidden hc-invisible\"\n\t\t\t\t\tonClick={() => handleSubmitInput(inputRef.current.value)}\n\t\t\t\t>\n Hidden Submit\n\t\t\t\t</button>\n\n\t\t\t\t<Button.Btn\n\t\t\t\t\ttype=\"reset\"\n\t\t\t\t\tvariant=\"icon\"\n\t\t\t\t\tsize=\"sqsm\"\n\t\t\t\t\tclassName={`transition-opacity ${inputValue ? \"hc-opacity-100\" : \"hc-opacity-0 hc-pointer-events-none\"}`}\n\t\t\t\t\tonClick={handleReset}\n\t\t\t\t>\n\t\t\t\t\t<span className=\"hc-sr-only\">Clear</span>\n\t\t\t\t\t<Button.Icon icon=\"uil:times\" className=\"hc-text-uiAccent\" />\n\t\t\t\t</Button.Btn>\n\t\t\t</div>\n\t\t</FilterCard>\n\t);\n};\n\nexport default Search;\n"],"names":["Search","_ref","_filterConfig$classNa","inputPlaceholder","showSearchIcon","className","labelClassName","inputValue","handleInputChange","handleSubmitInput","handleReset","label","_useMapList","useMapList","filterConfig","inputRef","useRef","buttonRef","React","createElement","FilterCard","as","Title","icon","Icon","size","type","name","ref","onKeyDown","e","key","preventDefault","current","click","placeholder","value","twMerge","classNames","searchInput","onChange","id","onClick","Button","Btn","variant","concat"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-item.js","sources":["../../../../../src/components/modules/list/list-item/list-item.jsx"],"sourcesContent":["import React, { forwardRef } 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\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst mapPinColor = !showMap ? null : siteConfig.colors.primary.replace(\"#\", \"\");\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={ref}\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 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 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}\n\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}\n\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\t{/* MOBILE ONLY: This map section is visible on mobile and hidden on desktop (md:hc-hidden) */}\n\t\t\t\t{showMap && item.mapDetails && googleMapsApiKey && (\n\t\t\t\t\t<div onClick={() => { setMobileTab(\"mapTab\"); handleClick(); }} className=\"md:hc-hidden hc-w-2/5 sm:hc-w-1/3 hc-p-1.5 hc-my-1 hc-bg-uiAccent/5 hc-border hc-border-uiAccent/10 hc-rounded-sm\">\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={`https://maps.googleapis.com/maps/api/staticmap?scale=2&center=${item.mapDetails.latitude},${item.mapDetails.longitude}&zoom=10&size=240x180&maptype=roadmap&markers=color:0x${mapPinColor}%7Clabel:•%7C${item.mapDetails.latitude},${item.mapDetails.longitude}&key=${googleMapsApiKey}`}\n\t\t\t\t\t\t\talt={`Map of location for ${item.fields?.position || item.fields?.title || 'job'}`}\n\t\t\t\t\t\t\tclassName=\"hc-w-full hc-h-full hc-object-cover\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t)}\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});"],"names":["ListItem","forwardRef","_ref","ref","_item$fields","_item$fields2","isActive","bodyClassName","className","item","fieldsShown","specialFeatures","onItemSelected","showMap","setMobileTab","handleSettingFavorites","favorites","_ref$includeFavorite","includeFavorite","siteConfig","googleMapsApiKey","props","_objectWithoutProperties","_excluded","mapPinColor","colors","primary","replace","handleClick","isFavorite","includes","id","handleFavouriteClick","event","stopPropagation","updatedFavorites","filter","fav","concat","_toConsumableArray","React","createElement","_extends","onClick","Grid","columns","gap","Item","Icon","icon","size","FieldMapper","FieldMapperMobile","key","iconClasses","title","e","mapDetails","src","latitude","longitude","alt","fields","position","displayName","memo","prevProps","nextProps","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 } 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\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst mapPinColor = !showMap ? null : siteConfig.colors.primary.replace(\"#\", \"\");\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={ref}\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 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 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}\n\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}\n\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\t{/* MOBILE ONLY: This map section is visible on mobile and hidden on desktop (md:hc-hidden) */}\n\t\t\t\t{showMap && item.mapDetails && googleMapsApiKey && (\n\t\t\t\t\t<div onClick={() => { setMobileTab(\"mapTab\"); handleClick(); }} className=\"md:hc-hidden hc-w-2/5 sm:hc-w-1/3 hc-p-1.5 hc-my-1 hc-bg-uiAccent/5 hc-border hc-border-uiAccent/10 hc-rounded-sm\">\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={`https://maps.googleapis.com/maps/api/staticmap?scale=2&center=${item.mapDetails.latitude},${item.mapDetails.longitude}&zoom=10&size=240x180&maptype=roadmap&markers=color:0x${mapPinColor}%7Clabel:•%7C${item.mapDetails.latitude},${item.mapDetails.longitude}&key=${googleMapsApiKey}`}\n\t\t\t\t\t\t\talt={`Map of location for ${item.fields?.position || item.fields?.title || 'job'}`}\n\t\t\t\t\t\t\tclassName=\"hc-w-full hc-h-full hc-object-cover\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t)}\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$fields","_item$fields2","isActive","bodyClassName","className","item","fieldsShown","specialFeatures","onItemSelected","showMap","setMobileTab","handleSettingFavorites","favorites","_ref$includeFavorite","includeFavorite","siteConfig","googleMapsApiKey","props","_objectWithoutProperties","_excluded","mapPinColor","colors","primary","replace","handleClick","isFavorite","includes","id","handleFavouriteClick","event","stopPropagation","updatedFavorites","filter","fav","concat","_toConsumableArray","React","createElement","_extends","onClick","Grid","columns","gap","Item","Icon","icon","size","FieldMapper","FieldMapperMobile","key","iconClasses","title","e","mapDetails","src","latitude","longitude","alt","fields","position","displayName","memo","prevProps","nextProps","travelTime"],"mappings":"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"}
@@ -69,7 +69,7 @@ var MapTabs = function MapTabs(_ref) {
69
69
  icon: "fluent:search-12-filled",
70
70
  size: "hc-size-5"
71
71
  }), "Filter")))), /*#__PURE__*/React.createElement("div", {
72
- className: "hc-flex-grow hc-h-[100vh] md:hc-h-[calc(100%-48px)]"
72
+ className: "hc-flex-grow hc-h-[calc(100vh-180px)] md:hc-h-[calc(100%-48px)]"
73
73
  }, /*#__PURE__*/React.createElement(Tabs.Content, {
74
74
  className: "hc-h-full hc-bg-white hc-outline-none",
75
75
  value: "listTab"
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.js","sources":["../../../../src/components/modules/maps/tabs.js"],"sourcesContent":["import React from 'react';\nimport * as Tabs from '@radix-ui/react-tabs';\nimport Button from '~/components/modules/buttons/default';\nimport { useMapList } from '~/contexts/mapListContext';\n\nconst MapTabs = ({\n\tmap,\n\tlist,\n\tfilter,\n\tclassName,\n\tshowMap\n}) => {\n\tconst tabButtonClasses =\n \"hc-flex hc-items-center hc-gap-2 hc-rounded-none hc-border-x-0 data-[state=active]:hc-bg-primary data-[state=active]:hc-text-white\";\n\tconst { mobileTab, setMobileTab, containerStyle } = useMapList();\n\n\treturn (\n\t\t<div\n\t\t\tstyle={containerStyle}\n\t\t\tclassName={`\n hc-relative hc-overflow-hidden\n ${className ?? \"\"}\n `}\n\t\t>\n\t\t\t<Tabs.Root\n\t\t\t\tclassName=\"hc-flex hc-flex-col hc-h-full\"\n\t\t\t\tvalue={mobileTab}\n\t\t\t>\n\t\t\t\t{/* Fixed tab header */}\n\t\t\t\t<Tabs.List\n\t\t\t\t\tclassName=\"hc-w-full hc-shrink-0 hc-flex hc-divide-x hc-divide-primary hc-bg-white hc-z-10\"\n\t\t\t\t\taria-label=\"Review positions\"\n\t\t\t\t>\n\t\t\t\t\t<Tabs.Trigger value=\"listTab\" asChild onClick={() => setMobileTab(\"listTab\")}>\n\t\t\t\t\t\t<Button.Btn variant=\"outline\" isBlock className={tabButtonClasses}>\n\t\t\t\t\t\t\t<Button.Body className=\"hc-justify-center\">\n\t\t\t\t\t\t\t\t<Button.Icon icon=\"mdi:view-list\" size=\"hc-size-5\" />\n List\n\t\t\t\t\t\t\t</Button.Body>\n\t\t\t\t\t\t</Button.Btn>\n\t\t\t\t\t</Tabs.Trigger>\n\t\t\t\t\t{showMap && (\n\t\t\t\t\t\t<Tabs.Trigger value=\"mapTab\" asChild onClick={() => setMobileTab(\"mapTab\")}>\n\t\t\t\t\t\t\t<Button.Btn\n\t\t\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\tclassName={tabButtonClasses}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Button.Body className=\"hc-justify-center\">\n\t\t\t\t\t\t\t\t\t<Button.Icon icon=\"mdi:map\" size=\"hc-size-5\" />\n Map\n\t\t\t\t\t\t\t\t</Button.Body>\n\t\t\t\t\t\t\t</Button.Btn>\n\t\t\t\t\t\t</Tabs.Trigger>\n\t\t\t\t\t)}\n\t\t\t\t\t<Tabs.Trigger value=\"filterTab\" asChild onClick={() => setMobileTab(\"filterTab\")}>\n\t\t\t\t\t\t<Button.Btn variant=\"outline\" isBlock className={tabButtonClasses}>\n\t\t\t\t\t\t\t<Button.Body className=\"hc-justify-center\">\n\t\t\t\t\t\t\t\t<Button.Icon icon=\"fluent:search-12-filled\" size=\"hc-size-5\" />\n Filter\n\t\t\t\t\t\t\t</Button.Body>\n\t\t\t\t\t\t</Button.Btn>\n\t\t\t\t\t</Tabs.Trigger>\n\t\t\t</Tabs.List>\n\n\t\t\t{/* Tab content */}\n\t\t\t<div className=\"hc-flex-grow hc-h-[100vh] md:hc-h-[calc(100%-48px)]\">\n\t\t\t\t{/* List Tab Content */}\n\t\t\t\t<Tabs.Content\n\t\t\t\t\tclassName=\"hc-h-full hc-bg-white hc-outline-none\"\n\t\t\t\t\tvalue=\"listTab\"\n\t\t\t\t>\n\t\t\t\t\t{list}\n\t\t\t\t</Tabs.Content>\n\n\t\t\t\t\t{/* Map Tab Content */}\n\t\t\t\t\t{showMap && (\n\t\t\t\t\t\t<Tabs.Content\n\t\t\t\t\t\t\tclassName=\"hc-h-[100vh] hc-bg-white hc-outline-none\"\n\t\t\t\t\t\t\tvalue=\"mapTab\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{map}\n\t\t\t\t\t\t</Tabs.Content>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Filter Tab Content */}\n\t\t\t\t\t<Tabs.Content\n\t\t\t\t\t\tclassName=\"hc-h-full hc-max-h-[calc(100vh-158px)] hc-bg-white hc-outline-none\"\n\t\t\t\t\t\tvalue=\"filterTab\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{filter}\n\t\t\t\t\t</Tabs.Content>\n\t\t\t\t</div>\n\t\t\t</Tabs.Root>\n\t\t</div>\n\t);\n};\n\nexport default MapTabs;\n"],"names":["MapTabs","_ref","map","list","filter","className","showMap","tabButtonClasses","_useMapList","useMapList","mobileTab","setMobileTab","containerStyle","React","createElement","style","concat","Tabs","Root","value","List","Trigger","asChild","onClick","Button","Btn","variant","isBlock","Body","Icon","icon","size","Content"],"mappings":"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"}
1
+ {"version":3,"file":"tabs.js","sources":["../../../../src/components/modules/maps/tabs.js"],"sourcesContent":["import React from 'react';\nimport * as Tabs from '@radix-ui/react-tabs';\nimport Button from '~/components/modules/buttons/default';\nimport { useMapList } from '~/contexts/mapListContext';\n\nconst MapTabs = ({\n\tmap,\n\tlist,\n\tfilter,\n\tclassName,\n\tshowMap\n}) => {\n\tconst tabButtonClasses =\n \"hc-flex hc-items-center hc-gap-2 hc-rounded-none hc-border-x-0 data-[state=active]:hc-bg-primary data-[state=active]:hc-text-white\";\n\tconst { mobileTab, setMobileTab, containerStyle } = useMapList();\n\n\treturn (\n\t\t<div\n\t\t\tstyle={containerStyle}\n\t\t\tclassName={`\n hc-relative hc-overflow-hidden\n ${className ?? \"\"}\n `}\n\t\t>\n\t\t\t<Tabs.Root\n\t\t\t\tclassName=\"hc-flex hc-flex-col hc-h-full\"\n\t\t\t\tvalue={mobileTab}\n\t\t\t>\n\t\t\t\t{/* Fixed tab header */}\n\t\t\t\t<Tabs.List\n\t\t\t\t\tclassName=\"hc-w-full hc-shrink-0 hc-flex hc-divide-x hc-divide-primary hc-bg-white hc-z-10\"\n\t\t\t\t\taria-label=\"Review positions\"\n\t\t\t\t>\n\t\t\t\t\t<Tabs.Trigger value=\"listTab\" asChild onClick={() => setMobileTab(\"listTab\")}>\n\t\t\t\t\t\t<Button.Btn variant=\"outline\" isBlock className={tabButtonClasses}>\n\t\t\t\t\t\t\t<Button.Body className=\"hc-justify-center\">\n\t\t\t\t\t\t\t\t<Button.Icon icon=\"mdi:view-list\" size=\"hc-size-5\" />\n List\n\t\t\t\t\t\t\t</Button.Body>\n\t\t\t\t\t\t</Button.Btn>\n\t\t\t\t\t</Tabs.Trigger>\n\t\t\t\t\t{showMap && (\n\t\t\t\t\t\t<Tabs.Trigger value=\"mapTab\" asChild onClick={() => setMobileTab(\"mapTab\")}>\n\t\t\t\t\t\t\t<Button.Btn\n\t\t\t\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\t\t\t\tisBlock\n\t\t\t\t\t\t\t\tclassName={tabButtonClasses}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Button.Body className=\"hc-justify-center\">\n\t\t\t\t\t\t\t\t\t<Button.Icon icon=\"mdi:map\" size=\"hc-size-5\" />\n Map\n\t\t\t\t\t\t\t\t</Button.Body>\n\t\t\t\t\t\t\t</Button.Btn>\n\t\t\t\t\t\t</Tabs.Trigger>\n\t\t\t\t\t)}\n\t\t\t\t\t<Tabs.Trigger value=\"filterTab\" asChild onClick={() => setMobileTab(\"filterTab\")}>\n\t\t\t\t\t\t<Button.Btn variant=\"outline\" isBlock className={tabButtonClasses}>\n\t\t\t\t\t\t\t<Button.Body className=\"hc-justify-center\">\n\t\t\t\t\t\t\t\t<Button.Icon icon=\"fluent:search-12-filled\" size=\"hc-size-5\" />\n Filter\n\t\t\t\t\t\t\t</Button.Body>\n\t\t\t\t\t\t</Button.Btn>\n\t\t\t\t\t</Tabs.Trigger>\n\t\t\t\t</Tabs.List>\n\n\t\t\t\t{/* Tab content */}\n\t\t\t\t<div className=\"hc-flex-grow hc-h-[calc(100vh-180px)] md:hc-h-[calc(100%-48px)]\">\n\t\t\t\t\t{/* List Tab Content */}\n\t\t\t\t\t<Tabs.Content\n\t\t\t\t\t\tclassName=\"hc-h-full hc-bg-white hc-outline-none\"\n\t\t\t\t\t\tvalue=\"listTab\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{list}\n\t\t\t\t\t</Tabs.Content>\n\n\t\t\t\t\t{/* Map Tab Content */}\n\t\t\t\t\t{showMap && (\n\t\t\t\t\t\t<Tabs.Content\n\t\t\t\t\t\t\tclassName=\"hc-h-[100vh] hc-bg-white hc-outline-none\"\n\t\t\t\t\t\t\tvalue=\"mapTab\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{map}\n\t\t\t\t\t\t</Tabs.Content>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Filter Tab Content */}\n\t\t\t\t\t<Tabs.Content\n\t\t\t\t\t\tclassName=\"hc-h-full hc-max-h-[calc(100vh-158px)] hc-bg-white hc-outline-none\"\n\t\t\t\t\t\tvalue=\"filterTab\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{filter}\n\t\t\t\t\t</Tabs.Content>\n\t\t\t\t</div>\n\t\t\t</Tabs.Root>\n\t\t</div>\n\t);\n};\n\nexport default MapTabs;\n"],"names":["MapTabs","_ref","map","list","filter","className","showMap","tabButtonClasses","_useMapList","useMapList","mobileTab","setMobileTab","containerStyle","React","createElement","style","concat","Tabs","Root","value","List","Trigger","asChild","onClick","Button","Btn","variant","isBlock","Body","Icon","icon","size","Content"],"mappings":"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"}
@@ -20,7 +20,28 @@ const getQuery = (localStorageKey = '') => {
20
20
  }
21
21
  return query;
22
22
  };
23
- const MapListProvider = ({ children, siteConfig, googleMapsApiKey, resetFilters, navigateToDetails, navigateToEasyApply, Link, linkFormat, easyApplyUrl, easyApplyText, isIframe, trackEvent, listings = [], entities = [], setFiltersUrl, hiddenFilters, handleUrlUpdate, defaultFilters, containerStyle, ExpandListComponent, getListingEntitiesCallback, localStorageKey, hideMap = false, hideFilters = false, noEntities = false }) => {
23
+ const MapListProvider = ({ children, siteConfig, googleMapsApiKey, resetFilters, navigateToDetails, navigateToEasyApply, Link, linkFormat, easyApplyUrl, easyApplyText, isIframe, trackEvent, listings = [], entities = [], setFiltersUrl, hiddenFilters, handleUrlUpdate, defaultFilters, containerStyle, ExpandListComponent, getListingEntitiesCallback, localStorageKey, hideMap = false, hideFilters = false, noEntities = false, filterConfig = {
24
+ hideZeroResults: false,
25
+ dynamicCounts: true,
26
+ showFavorites: true,
27
+ collapsedByDefault: false,
28
+ sortAlphabetically: false,
29
+ classNames: {
30
+ filterContainer: '',
31
+ filterContent: '',
32
+ filterAccordion: '',
33
+ filterAccordionHeader: '',
34
+ filterAccordionContent: '',
35
+ filterItem: '',
36
+ filterItemLabel: '',
37
+ filterItemCheckbox: '',
38
+ filterItemCount: '',
39
+ searchInput: '',
40
+ resetButton: '',
41
+ showJobsButton: '',
42
+ filterFooter: ''
43
+ }
44
+ } }) => {
24
45
  const firstLoadFilters = () => {
25
46
  let urlData = filtersFromURL(window.location);
26
47
  let urlFilters = urlData?.filters;
@@ -178,7 +199,30 @@ const MapListProvider = ({ children, siteConfig, googleMapsApiKey, resetFilters,
178
199
  if (tempSelectedFilters) {
179
200
  const keys = Object.keys(tempSelectedFilters);
180
201
  const lastKey = keys[keys.length - 1];
181
- const options = generateFilterOptions(filteredListings, allListings, siteConfig, filterOptions, lastKey, favorites, tempSelectedFilters);
202
+ // Ensure all filterConfig properties have values
203
+ const normalizedFilterConfig = {
204
+ hideZeroResults: filterConfig?.hideZeroResults ?? false,
205
+ dynamicCounts: filterConfig?.dynamicCounts ?? true,
206
+ showFavorites: filterConfig?.showFavorites ?? true,
207
+ collapsedByDefault: filterConfig?.collapsedByDefault ?? false,
208
+ sortAlphabetically: filterConfig?.sortAlphabetically ?? false,
209
+ classNames: {
210
+ filterContainer: filterConfig?.classNames?.filterContainer ?? '',
211
+ filterContent: filterConfig?.classNames?.filterContent ?? '',
212
+ filterAccordion: filterConfig?.classNames?.filterAccordion ?? '',
213
+ filterAccordionHeader: filterConfig?.classNames?.filterAccordionHeader ?? '',
214
+ filterAccordionContent: filterConfig?.classNames?.filterAccordionContent ?? '',
215
+ filterItem: filterConfig?.classNames?.filterItem ?? '',
216
+ filterItemLabel: filterConfig?.classNames?.filterItemLabel ?? '',
217
+ filterItemCheckbox: filterConfig?.classNames?.filterItemCheckbox ?? '',
218
+ filterItemCount: filterConfig?.classNames?.filterItemCount ?? '',
219
+ searchInput: filterConfig?.classNames?.searchInput ?? '',
220
+ resetButton: filterConfig?.classNames?.resetButton ?? '',
221
+ showJobsButton: filterConfig?.classNames?.showJobsButton ?? '',
222
+ filterFooter: filterConfig?.classNames?.filterFooter ?? ''
223
+ }
224
+ };
225
+ const options = generateFilterOptions(filteredListings, allListings, siteConfig, filterOptions, lastKey, favorites, tempSelectedFilters, normalizedFilterConfig);
182
226
  if (options) {
183
227
  setFilterOptions(options);
184
228
  if (firstLoad)
@@ -247,7 +291,8 @@ const MapListProvider = ({ children, siteConfig, googleMapsApiKey, resetFilters,
247
291
  hiddenFilters,
248
292
  containerStyle,
249
293
  ExpandListComponent,
250
- noEntities
294
+ noEntities,
295
+ filterConfig
251
296
  } }, children));
252
297
  };
253
298