@abcagency/hc-ui-components 1.1.1 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.editorconfig +12 -0
- package/.eslintrc +144 -0
- package/.prettierignore +3 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.js +516 -0
- package/dist/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/dist/apis/hcApi.js +189 -0
- package/dist/apis/hcApi.js.map +1 -0
- package/dist/clientToken.js +10 -0
- package/dist/clientToken.js.map +1 -0
- package/dist/components/HireControlMap.js +129 -0
- package/dist/components/HireControlMap.js.map +1 -0
- package/dist/components/modules/accordions/MapAccordionItem.js +76 -0
- package/dist/components/modules/accordions/MapAccordionItem.js.map +1 -0
- package/dist/components/modules/accordions/default.js +108 -0
- package/dist/components/modules/accordions/default.js.map +1 -0
- package/dist/components/modules/accordions/filterItem.js +50 -0
- package/dist/components/modules/accordions/filterItem.js.map +1 -0
- package/dist/components/modules/accordions/filters.js +46 -0
- package/dist/components/modules/accordions/filters.js.map +1 -0
- package/dist/components/modules/buttons/button-group-apply.js +84 -0
- package/dist/components/modules/buttons/button-group-apply.js.map +1 -0
- package/dist/components/modules/buttons/commute-pill.js +18 -0
- package/dist/components/modules/buttons/commute-pill.js.map +1 -0
- package/dist/components/modules/buttons/default.js +145 -0
- package/dist/components/modules/buttons/default.js.map +1 -0
- package/dist/components/modules/buttons/items-pill.js +23 -0
- package/dist/components/modules/buttons/items-pill.js.map +1 -0
- package/dist/components/modules/buttons/pill-wrapper.js +20 -0
- package/dist/components/modules/buttons/pill-wrapper.js.map +1 -0
- package/dist/components/modules/buttons/show-all-button.js +39 -0
- package/dist/components/modules/buttons/show-all-button.js.map +1 -0
- package/dist/components/modules/cards/default.js +102 -0
- package/dist/components/modules/cards/default.js.map +1 -0
- package/dist/components/modules/cards/filter.js +38 -0
- package/dist/components/modules/cards/filter.js.map +1 -0
- package/dist/components/modules/dialogs/apply-dialog.js +46 -0
- package/dist/components/modules/dialogs/apply-dialog.js.map +1 -0
- package/dist/components/modules/filter/commute.js +184 -0
- package/dist/components/modules/filter/commute.js.map +1 -0
- package/dist/components/modules/filter/index.js +79 -0
- package/dist/components/modules/filter/index.js.map +1 -0
- package/dist/components/modules/filter/item.js +71 -0
- package/dist/components/modules/filter/item.js.map +1 -0
- package/dist/components/modules/filter/location.js +68 -0
- package/dist/components/modules/filter/location.js.map +1 -0
- package/dist/components/modules/filter/points-of-interest.js +38 -0
- package/dist/components/modules/filter/points-of-interest.js.map +1 -0
- package/dist/components/modules/filter/radio-item.js +46 -0
- package/dist/components/modules/filter/radio-item.js.map +1 -0
- package/dist/components/modules/filter/search.js +83 -0
- package/dist/components/modules/filter/search.js.map +1 -0
- package/dist/components/modules/filter/sort.js +93 -0
- package/dist/components/modules/filter/sort.js.map +1 -0
- package/dist/components/modules/grid.js +39 -0
- package/dist/components/modules/grid.js.map +1 -0
- package/dist/components/modules/icon.js +23 -0
- package/dist/components/modules/icon.js.map +1 -0
- package/dist/components/modules/jobListing/listing-details.js +69 -0
- package/dist/components/modules/jobListing/listing-details.js.map +1 -0
- package/dist/components/modules/maps/info-window-card.js +14 -0
- package/dist/components/modules/maps/info-window-card.js.map +1 -0
- package/dist/components/modules/maps/info-window-content.js +39 -0
- package/dist/components/modules/maps/info-window-content.js.map +1 -0
- package/dist/components/modules/maps/list/field-mapper.js +88 -0
- package/dist/components/modules/maps/list/field-mapper.js.map +1 -0
- package/dist/components/modules/maps/list/header-item.js +59 -0
- package/dist/components/modules/maps/list/header-item.js.map +1 -0
- package/dist/components/modules/maps/list/header.js +37 -0
- package/dist/components/modules/maps/list/header.js.map +1 -0
- package/dist/components/modules/maps/list/index.js +93 -0
- package/dist/components/modules/maps/list/index.js.map +1 -0
- package/dist/components/modules/maps/list/item-expand-card/index.js +16 -0
- package/dist/components/modules/maps/list/item-expand-card/index.js.map +1 -0
- package/dist/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js +38 -0
- package/dist/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js.map +1 -0
- package/dist/components/modules/maps/list/item-expand-card/recruiter-details.js +40 -0
- package/dist/components/modules/maps/list/item-expand-card/recruiter-details.js.map +1 -0
- package/dist/components/modules/maps/list/item-expand-card/recruiter-headshot.js +20 -0
- package/dist/components/modules/maps/list/item-expand-card/recruiter-headshot.js.map +1 -0
- package/dist/components/modules/maps/list/list-item/index.js +98 -0
- package/dist/components/modules/maps/list/list-item/index.js.map +1 -0
- package/dist/components/modules/maps/map-list.js +57 -0
- package/dist/components/modules/maps/map-list.js.map +1 -0
- package/dist/components/modules/maps/map-marker.js +85 -0
- package/dist/components/modules/maps/map-marker.js.map +1 -0
- package/dist/components/modules/maps/map.js +201 -0
- package/dist/components/modules/maps/map.js.map +1 -0
- package/dist/components/modules/maps/place-marker.js +37 -0
- package/dist/components/modules/maps/place-marker.js.map +1 -0
- package/dist/components/modules/maps/tabs.js +84 -0
- package/dist/components/modules/maps/tabs.js.map +1 -0
- package/dist/constants/placeTypes.js +11 -0
- package/dist/constants/placeTypes.js.map +1 -0
- package/dist/contexts/mapContext.js +133 -0
- package/dist/contexts/mapContext.js.map +1 -0
- package/dist/contexts/mapListContext.js +278 -0
- package/dist/contexts/mapListContext.js.map +1 -0
- package/dist/contexts/placesContext.js +152 -0
- package/dist/contexts/placesContext.js.map +1 -0
- package/dist/hooks/useList.js +119 -0
- package/dist/hooks/useList.js.map +1 -0
- package/dist/index.js +2 -4536
- package/dist/index.js.map +1 -0
- package/dist/services/_virtual/_rollupPluginBabelHelpers.js +372 -0
- package/dist/services/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/dist/services/apis/hcApi.js +189 -0
- package/dist/services/apis/hcApi.js.map +1 -0
- package/dist/services/clientToken.js +7 -0
- package/dist/services/clientToken.js.map +1 -0
- package/dist/services/configService.js +33 -0
- package/dist/services/configService.js.map +1 -0
- package/dist/services/googlePlacesNearbyService.js +61 -0
- package/dist/services/googlePlacesNearbyService.js.map +1 -0
- package/dist/services/listingAggregatorService.js +56 -0
- package/dist/services/listingAggregatorService.js.map +1 -0
- package/dist/services/listingEntityService.js +36 -0
- package/dist/services/listingEntityService.js.map +1 -0
- package/dist/services/listingService.js +60 -112
- package/dist/services/listingService.js.map +1 -0
- package/dist/services/recruiterService.js +36 -0
- package/dist/services/recruiterService.js.map +1 -0
- package/dist/services/styles/index.css +3 -0
- package/dist/styles/index.css +3 -0
- package/dist/util/filterUtil.js +213 -0
- package/dist/util/filterUtil.js.map +1 -0
- package/dist/util/loading.js +16 -0
- package/dist/util/loading.js.map +1 -0
- package/dist/util/localStorageUtil.js +32 -0
- package/dist/util/localStorageUtil.js.map +1 -0
- package/dist/util/mapIconUtil.js +73 -0
- package/dist/util/mapIconUtil.js.map +1 -0
- package/dist/util/mapUtil.js +76 -0
- package/dist/util/mapUtil.js.map +1 -0
- package/dist/util/sortUtil.js +33 -0
- package/dist/util/sortUtil.js.map +1 -0
- package/dist/util/stringUtils.js +9 -0
- package/dist/util/stringUtils.js.map +1 -0
- package/jsconfig.json +7 -0
- package/package.json +51 -38
- package/postcss.config.js +13 -15
- package/{src/tailwind/preset.default.js → preset.default.js} +15 -15
- package/rollup.config.mjs +87 -0
- package/src/apis/hcApi.js +93 -87
- package/src/clientToken.js +9 -9
- package/src/components/HireControlMap.js +120 -0
- package/src/components/modules/accordions/MapAccordionItem.js +72 -69
- package/src/components/modules/accordions/default.js +171 -173
- package/src/components/modules/accordions/filterItem.js +53 -53
- package/src/components/modules/accordions/filters.js +47 -44
- package/src/components/modules/buttons/button-group-apply.js +113 -85
- package/src/components/modules/buttons/commute-pill.js +22 -21
- package/src/components/modules/buttons/default.js +196 -196
- package/src/components/modules/buttons/items-pill.js +32 -31
- package/src/components/modules/buttons/pill-wrapper.js +27 -26
- package/src/components/modules/buttons/show-all-button.js +20 -20
- package/src/components/modules/cards/default.js +167 -168
- package/src/components/modules/cards/filter.js +56 -55
- package/src/components/modules/dialogs/apply-dialog.js +48 -47
- package/src/components/modules/filter/commute.js +148 -151
- package/src/components/modules/filter/index.js +87 -86
- package/src/components/modules/filter/item.js +76 -77
- package/src/components/modules/filter/location.js +71 -69
- package/src/components/modules/filter/points-of-interest.js +44 -43
- package/src/components/modules/filter/radio-item.js +53 -51
- package/src/components/modules/filter/search.js +92 -91
- package/src/components/modules/filter/sort.js +83 -83
- package/src/components/modules/grid.js +55 -56
- package/src/components/modules/icon.js +33 -33
- package/src/components/modules/jobListing/listing-details.js +94 -88
- package/src/components/modules/maps/info-window-card.js +17 -17
- package/src/components/modules/maps/info-window-content.js +58 -60
- package/src/components/modules/maps/list/field-mapper.js +112 -111
- package/src/components/modules/maps/list/header-item.js +91 -90
- package/src/components/modules/maps/list/header.js +47 -46
- package/src/components/modules/maps/list/index.js +107 -104
- package/src/components/modules/maps/list/item-expand-card/index.js +22 -21
- package/src/components/modules/maps/list/item-expand-card/recruiter-contact-nav.js +50 -48
- package/src/components/modules/maps/list/item-expand-card/recruiter-details.js +68 -67
- package/src/components/modules/maps/list/item-expand-card/recruiter-headshot.js +22 -22
- package/src/components/modules/maps/list/list-item/index.js +134 -133
- package/src/components/modules/maps/map-list.js +74 -73
- package/src/components/modules/maps/map-marker.js +86 -84
- package/src/components/modules/maps/map.js +229 -226
- package/src/components/modules/maps/place-marker.js +1 -1
- package/src/components/modules/maps/tabs.js +81 -79
- package/src/constants/placeTypes.js +8 -8
- package/src/contexts/mapContext.js +20 -19
- package/src/contexts/mapListContext.js +20 -15
- package/src/contexts/placesContext.js +4 -0
- package/src/hooks/useList.js +12 -10
- package/src/index.js +3 -103
- package/src/services/configService.js +16 -16
- package/src/services/googlePlacesNearbyService.js +33 -33
- package/src/services/listingAggregatorService.js +5 -4
- package/src/services/listingEntityService.js +2 -1
- package/src/services/listingService.js +27 -28
- package/src/services/recruiterService.js +17 -17
- package/src/styles/{globals.css → index.css} +23 -23
- package/src/util/arrayUtil.js +3 -3
- package/src/util/fieldMapper.js +22 -19
- package/src/util/filterUtil.js +19 -19
- package/src/util/loading.js +17 -17
- package/src/util/localStorageUtil.js +26 -26
- package/src/util/mapIconUtil.js +3 -3
- package/src/util/sortUtil.js +32 -32
- package/src/util/stringUtils.js +6 -6
- package/{src/tailwind/tailwind.config.js → tailwind.config.js} +126 -127
- package/dist/globals.css +0 -3
- package/dist/output.css +0 -784
- package/dist/services/globals.css +0 -3
- package/rollup.config.js +0 -68
- package/src/components/layout/footer.js +0 -34
- package/src/components/layout/header.js +0 -23
- package/src/components/layout/layout.js +0 -36
- package/src/components/modules/animations/slidein.js +0 -41
- package/src/components/modules/navigation/nav-link.js +0 -65
- package/src/components/modules/navigation/navbar.js +0 -106
- package/src/components/modules/navigation/skip-link.js +0 -21
- package/src/components/modules/navigation/social.js +0 -29
- package/src/components/modules/sections/default.js +0 -59
- package/src/components/modules/sections/sectionContext.js +0 -4
- package/src/hooks/useClickOutside.js +0 -16
- package/src/hooks/useEventListener.js +0 -25
- package/src/hooks/useEventTracker.js +0 -19
- package/src/hooks/useRefScrollProgress.js +0 -24
- package/src/hooks/useScript.js +0 -63
- package/src/hooks/useScrollDirection.js +0 -39
- package/src/hooks/useSectionTracker.js +0 -95
- package/src/hooks/useUserAgent.js +0 -43
- package/src/hooks/useWindowSize.js +0 -28
- package/src/index.css +0 -25
- package/src/styles/fonts.js +0 -0
- package/src/util/page-head.js +0 -62
- package/src/util/provider.js +0 -12
package/dist/index.js
CHANGED
|
@@ -1,4536 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { Link } from 'react-router-dom';
|
|
4
|
-
import { Icon } from '@iconify/react';
|
|
5
|
-
import * as RadixAccordion from '@radix-ui/react-accordion';
|
|
6
|
-
import { Combobox, Transition } from '@headlessui/react';
|
|
7
|
-
import usePlacesAutocomplete, { getLatLng, getGeocode } from 'use-places-autocomplete';
|
|
8
|
-
import * as Select from '@radix-ui/react-select';
|
|
9
|
-
import * as Dialog from '@radix-ui/react-dialog';
|
|
10
|
-
import { MarkerF, InfoWindow, Marker, InfoWindowF, GoogleMap, MarkerClustererF, useLoadScript } from '@react-google-maps/api';
|
|
11
|
-
import * as Tabs from '@radix-ui/react-tabs';
|
|
12
|
-
import { Provider as Provider$1 } from 'react-wrap-balancer';
|
|
13
|
-
|
|
14
|
-
function _iterableToArrayLimit(r, l) {
|
|
15
|
-
var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
|
|
16
|
-
if (null != t) {
|
|
17
|
-
var e,
|
|
18
|
-
n,
|
|
19
|
-
i,
|
|
20
|
-
u,
|
|
21
|
-
a = [],
|
|
22
|
-
f = !0,
|
|
23
|
-
o = !1;
|
|
24
|
-
try {
|
|
25
|
-
if (i = (t = t.call(r)).next, 0 === l) {
|
|
26
|
-
if (Object(t) !== t) return;
|
|
27
|
-
f = !1;
|
|
28
|
-
} else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
|
|
29
|
-
} catch (r) {
|
|
30
|
-
o = !0, n = r;
|
|
31
|
-
} finally {
|
|
32
|
-
try {
|
|
33
|
-
if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
|
|
34
|
-
} finally {
|
|
35
|
-
if (o) throw n;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
return a;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
function ownKeys(e, r) {
|
|
42
|
-
var t = Object.keys(e);
|
|
43
|
-
if (Object.getOwnPropertySymbols) {
|
|
44
|
-
var o = Object.getOwnPropertySymbols(e);
|
|
45
|
-
r && (o = o.filter(function (r) {
|
|
46
|
-
return Object.getOwnPropertyDescriptor(e, r).enumerable;
|
|
47
|
-
})), t.push.apply(t, o);
|
|
48
|
-
}
|
|
49
|
-
return t;
|
|
50
|
-
}
|
|
51
|
-
function _objectSpread2(e) {
|
|
52
|
-
for (var r = 1; r < arguments.length; r++) {
|
|
53
|
-
var t = null != arguments[r] ? arguments[r] : {};
|
|
54
|
-
r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
|
|
55
|
-
_defineProperty(e, r, t[r]);
|
|
56
|
-
}) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
|
|
57
|
-
Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
return e;
|
|
61
|
-
}
|
|
62
|
-
function _regeneratorRuntime() {
|
|
63
|
-
_regeneratorRuntime = function () {
|
|
64
|
-
return e;
|
|
65
|
-
};
|
|
66
|
-
var t,
|
|
67
|
-
e = {},
|
|
68
|
-
r = Object.prototype,
|
|
69
|
-
n = r.hasOwnProperty,
|
|
70
|
-
o = Object.defineProperty || function (t, e, r) {
|
|
71
|
-
t[e] = r.value;
|
|
72
|
-
},
|
|
73
|
-
i = "function" == typeof Symbol ? Symbol : {},
|
|
74
|
-
a = i.iterator || "@@iterator",
|
|
75
|
-
c = i.asyncIterator || "@@asyncIterator",
|
|
76
|
-
u = i.toStringTag || "@@toStringTag";
|
|
77
|
-
function define(t, e, r) {
|
|
78
|
-
return Object.defineProperty(t, e, {
|
|
79
|
-
value: r,
|
|
80
|
-
enumerable: !0,
|
|
81
|
-
configurable: !0,
|
|
82
|
-
writable: !0
|
|
83
|
-
}), t[e];
|
|
84
|
-
}
|
|
85
|
-
try {
|
|
86
|
-
define({}, "");
|
|
87
|
-
} catch (t) {
|
|
88
|
-
define = function (t, e, r) {
|
|
89
|
-
return t[e] = r;
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
function wrap(t, e, r, n) {
|
|
93
|
-
var i = e && e.prototype instanceof Generator ? e : Generator,
|
|
94
|
-
a = Object.create(i.prototype),
|
|
95
|
-
c = new Context(n || []);
|
|
96
|
-
return o(a, "_invoke", {
|
|
97
|
-
value: makeInvokeMethod(t, r, c)
|
|
98
|
-
}), a;
|
|
99
|
-
}
|
|
100
|
-
function tryCatch(t, e, r) {
|
|
101
|
-
try {
|
|
102
|
-
return {
|
|
103
|
-
type: "normal",
|
|
104
|
-
arg: t.call(e, r)
|
|
105
|
-
};
|
|
106
|
-
} catch (t) {
|
|
107
|
-
return {
|
|
108
|
-
type: "throw",
|
|
109
|
-
arg: t
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
e.wrap = wrap;
|
|
114
|
-
var h = "suspendedStart",
|
|
115
|
-
l = "suspendedYield",
|
|
116
|
-
f = "executing",
|
|
117
|
-
s = "completed",
|
|
118
|
-
y = {};
|
|
119
|
-
function Generator() {}
|
|
120
|
-
function GeneratorFunction() {}
|
|
121
|
-
function GeneratorFunctionPrototype() {}
|
|
122
|
-
var p = {};
|
|
123
|
-
define(p, a, function () {
|
|
124
|
-
return this;
|
|
125
|
-
});
|
|
126
|
-
var d = Object.getPrototypeOf,
|
|
127
|
-
v = d && d(d(values([])));
|
|
128
|
-
v && v !== r && n.call(v, a) && (p = v);
|
|
129
|
-
var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);
|
|
130
|
-
function defineIteratorMethods(t) {
|
|
131
|
-
["next", "throw", "return"].forEach(function (e) {
|
|
132
|
-
define(t, e, function (t) {
|
|
133
|
-
return this._invoke(e, t);
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
function AsyncIterator(t, e) {
|
|
138
|
-
function invoke(r, o, i, a) {
|
|
139
|
-
var c = tryCatch(t[r], t, o);
|
|
140
|
-
if ("throw" !== c.type) {
|
|
141
|
-
var u = c.arg,
|
|
142
|
-
h = u.value;
|
|
143
|
-
return h && "object" == typeof h && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) {
|
|
144
|
-
invoke("next", t, i, a);
|
|
145
|
-
}, function (t) {
|
|
146
|
-
invoke("throw", t, i, a);
|
|
147
|
-
}) : e.resolve(h).then(function (t) {
|
|
148
|
-
u.value = t, i(u);
|
|
149
|
-
}, function (t) {
|
|
150
|
-
return invoke("throw", t, i, a);
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
a(c.arg);
|
|
154
|
-
}
|
|
155
|
-
var r;
|
|
156
|
-
o(this, "_invoke", {
|
|
157
|
-
value: function (t, n) {
|
|
158
|
-
function callInvokeWithMethodAndArg() {
|
|
159
|
-
return new e(function (e, r) {
|
|
160
|
-
invoke(t, n, e, r);
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
|
|
164
|
-
}
|
|
165
|
-
});
|
|
166
|
-
}
|
|
167
|
-
function makeInvokeMethod(e, r, n) {
|
|
168
|
-
var o = h;
|
|
169
|
-
return function (i, a) {
|
|
170
|
-
if (o === f) throw Error("Generator is already running");
|
|
171
|
-
if (o === s) {
|
|
172
|
-
if ("throw" === i) throw a;
|
|
173
|
-
return {
|
|
174
|
-
value: t,
|
|
175
|
-
done: !0
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
for (n.method = i, n.arg = a;;) {
|
|
179
|
-
var c = n.delegate;
|
|
180
|
-
if (c) {
|
|
181
|
-
var u = maybeInvokeDelegate(c, n);
|
|
182
|
-
if (u) {
|
|
183
|
-
if (u === y) continue;
|
|
184
|
-
return u;
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) {
|
|
188
|
-
if (o === h) throw o = s, n.arg;
|
|
189
|
-
n.dispatchException(n.arg);
|
|
190
|
-
} else "return" === n.method && n.abrupt("return", n.arg);
|
|
191
|
-
o = f;
|
|
192
|
-
var p = tryCatch(e, r, n);
|
|
193
|
-
if ("normal" === p.type) {
|
|
194
|
-
if (o = n.done ? s : l, p.arg === y) continue;
|
|
195
|
-
return {
|
|
196
|
-
value: p.arg,
|
|
197
|
-
done: n.done
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
"throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg);
|
|
201
|
-
}
|
|
202
|
-
};
|
|
203
|
-
}
|
|
204
|
-
function maybeInvokeDelegate(e, r) {
|
|
205
|
-
var n = r.method,
|
|
206
|
-
o = e.iterator[n];
|
|
207
|
-
if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y;
|
|
208
|
-
var i = tryCatch(o, e.iterator, r.arg);
|
|
209
|
-
if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y;
|
|
210
|
-
var a = i.arg;
|
|
211
|
-
return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y);
|
|
212
|
-
}
|
|
213
|
-
function pushTryEntry(t) {
|
|
214
|
-
var e = {
|
|
215
|
-
tryLoc: t[0]
|
|
216
|
-
};
|
|
217
|
-
1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);
|
|
218
|
-
}
|
|
219
|
-
function resetTryEntry(t) {
|
|
220
|
-
var e = t.completion || {};
|
|
221
|
-
e.type = "normal", delete e.arg, t.completion = e;
|
|
222
|
-
}
|
|
223
|
-
function Context(t) {
|
|
224
|
-
this.tryEntries = [{
|
|
225
|
-
tryLoc: "root"
|
|
226
|
-
}], t.forEach(pushTryEntry, this), this.reset(!0);
|
|
227
|
-
}
|
|
228
|
-
function values(e) {
|
|
229
|
-
if (e || "" === e) {
|
|
230
|
-
var r = e[a];
|
|
231
|
-
if (r) return r.call(e);
|
|
232
|
-
if ("function" == typeof e.next) return e;
|
|
233
|
-
if (!isNaN(e.length)) {
|
|
234
|
-
var o = -1,
|
|
235
|
-
i = function next() {
|
|
236
|
-
for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;
|
|
237
|
-
return next.value = t, next.done = !0, next;
|
|
238
|
-
};
|
|
239
|
-
return i.next = i;
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
throw new TypeError(typeof e + " is not iterable");
|
|
243
|
-
}
|
|
244
|
-
return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", {
|
|
245
|
-
value: GeneratorFunctionPrototype,
|
|
246
|
-
configurable: !0
|
|
247
|
-
}), o(GeneratorFunctionPrototype, "constructor", {
|
|
248
|
-
value: GeneratorFunction,
|
|
249
|
-
configurable: !0
|
|
250
|
-
}), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) {
|
|
251
|
-
var e = "function" == typeof t && t.constructor;
|
|
252
|
-
return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name));
|
|
253
|
-
}, e.mark = function (t) {
|
|
254
|
-
return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t;
|
|
255
|
-
}, e.awrap = function (t) {
|
|
256
|
-
return {
|
|
257
|
-
__await: t
|
|
258
|
-
};
|
|
259
|
-
}, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {
|
|
260
|
-
return this;
|
|
261
|
-
}), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {
|
|
262
|
-
void 0 === i && (i = Promise);
|
|
263
|
-
var a = new AsyncIterator(wrap(t, r, n, o), i);
|
|
264
|
-
return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {
|
|
265
|
-
return t.done ? t.value : a.next();
|
|
266
|
-
});
|
|
267
|
-
}, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () {
|
|
268
|
-
return this;
|
|
269
|
-
}), define(g, "toString", function () {
|
|
270
|
-
return "[object Generator]";
|
|
271
|
-
}), e.keys = function (t) {
|
|
272
|
-
var e = Object(t),
|
|
273
|
-
r = [];
|
|
274
|
-
for (var n in e) r.push(n);
|
|
275
|
-
return r.reverse(), function next() {
|
|
276
|
-
for (; r.length;) {
|
|
277
|
-
var t = r.pop();
|
|
278
|
-
if (t in e) return next.value = t, next.done = !1, next;
|
|
279
|
-
}
|
|
280
|
-
return next.done = !0, next;
|
|
281
|
-
};
|
|
282
|
-
}, e.values = values, Context.prototype = {
|
|
283
|
-
constructor: Context,
|
|
284
|
-
reset: function (e) {
|
|
285
|
-
if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);
|
|
286
|
-
},
|
|
287
|
-
stop: function () {
|
|
288
|
-
this.done = !0;
|
|
289
|
-
var t = this.tryEntries[0].completion;
|
|
290
|
-
if ("throw" === t.type) throw t.arg;
|
|
291
|
-
return this.rval;
|
|
292
|
-
},
|
|
293
|
-
dispatchException: function (e) {
|
|
294
|
-
if (this.done) throw e;
|
|
295
|
-
var r = this;
|
|
296
|
-
function handle(n, o) {
|
|
297
|
-
return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o;
|
|
298
|
-
}
|
|
299
|
-
for (var o = this.tryEntries.length - 1; o >= 0; --o) {
|
|
300
|
-
var i = this.tryEntries[o],
|
|
301
|
-
a = i.completion;
|
|
302
|
-
if ("root" === i.tryLoc) return handle("end");
|
|
303
|
-
if (i.tryLoc <= this.prev) {
|
|
304
|
-
var c = n.call(i, "catchLoc"),
|
|
305
|
-
u = n.call(i, "finallyLoc");
|
|
306
|
-
if (c && u) {
|
|
307
|
-
if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
|
|
308
|
-
if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
|
|
309
|
-
} else if (c) {
|
|
310
|
-
if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);
|
|
311
|
-
} else {
|
|
312
|
-
if (!u) throw Error("try statement without catch or finally");
|
|
313
|
-
if (this.prev < i.finallyLoc) return handle(i.finallyLoc);
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
},
|
|
318
|
-
abrupt: function (t, e) {
|
|
319
|
-
for (var r = this.tryEntries.length - 1; r >= 0; --r) {
|
|
320
|
-
var o = this.tryEntries[r];
|
|
321
|
-
if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) {
|
|
322
|
-
var i = o;
|
|
323
|
-
break;
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);
|
|
327
|
-
var a = i ? i.completion : {};
|
|
328
|
-
return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a);
|
|
329
|
-
},
|
|
330
|
-
complete: function (t, e) {
|
|
331
|
-
if ("throw" === t.type) throw t.arg;
|
|
332
|
-
return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y;
|
|
333
|
-
},
|
|
334
|
-
finish: function (t) {
|
|
335
|
-
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
|
|
336
|
-
var r = this.tryEntries[e];
|
|
337
|
-
if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;
|
|
338
|
-
}
|
|
339
|
-
},
|
|
340
|
-
catch: function (t) {
|
|
341
|
-
for (var e = this.tryEntries.length - 1; e >= 0; --e) {
|
|
342
|
-
var r = this.tryEntries[e];
|
|
343
|
-
if (r.tryLoc === t) {
|
|
344
|
-
var n = r.completion;
|
|
345
|
-
if ("throw" === n.type) {
|
|
346
|
-
var o = n.arg;
|
|
347
|
-
resetTryEntry(r);
|
|
348
|
-
}
|
|
349
|
-
return o;
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
throw Error("illegal catch attempt");
|
|
353
|
-
},
|
|
354
|
-
delegateYield: function (e, r, n) {
|
|
355
|
-
return this.delegate = {
|
|
356
|
-
iterator: values(e),
|
|
357
|
-
resultName: r,
|
|
358
|
-
nextLoc: n
|
|
359
|
-
}, "next" === this.method && (this.arg = t), y;
|
|
360
|
-
}
|
|
361
|
-
}, e;
|
|
362
|
-
}
|
|
363
|
-
function _toPrimitive(t, r) {
|
|
364
|
-
if ("object" != typeof t || !t) return t;
|
|
365
|
-
var e = t[Symbol.toPrimitive];
|
|
366
|
-
if (void 0 !== e) {
|
|
367
|
-
var i = e.call(t, r || "default");
|
|
368
|
-
if ("object" != typeof i) return i;
|
|
369
|
-
throw new TypeError("@@toPrimitive must return a primitive value.");
|
|
370
|
-
}
|
|
371
|
-
return ("string" === r ? String : Number)(t);
|
|
372
|
-
}
|
|
373
|
-
function _toPropertyKey(t) {
|
|
374
|
-
var i = _toPrimitive(t, "string");
|
|
375
|
-
return "symbol" == typeof i ? i : i + "";
|
|
376
|
-
}
|
|
377
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
378
|
-
try {
|
|
379
|
-
var info = gen[key](arg);
|
|
380
|
-
var value = info.value;
|
|
381
|
-
} catch (error) {
|
|
382
|
-
reject(error);
|
|
383
|
-
return;
|
|
384
|
-
}
|
|
385
|
-
if (info.done) {
|
|
386
|
-
resolve(value);
|
|
387
|
-
} else {
|
|
388
|
-
Promise.resolve(value).then(_next, _throw);
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
function _asyncToGenerator(fn) {
|
|
392
|
-
return function () {
|
|
393
|
-
var self = this,
|
|
394
|
-
args = arguments;
|
|
395
|
-
return new Promise(function (resolve, reject) {
|
|
396
|
-
var gen = fn.apply(self, args);
|
|
397
|
-
function _next(value) {
|
|
398
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
399
|
-
}
|
|
400
|
-
function _throw(err) {
|
|
401
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
402
|
-
}
|
|
403
|
-
_next(undefined);
|
|
404
|
-
});
|
|
405
|
-
};
|
|
406
|
-
}
|
|
407
|
-
function _defineProperty(obj, key, value) {
|
|
408
|
-
key = _toPropertyKey(key);
|
|
409
|
-
if (key in obj) {
|
|
410
|
-
Object.defineProperty(obj, key, {
|
|
411
|
-
value: value,
|
|
412
|
-
enumerable: true,
|
|
413
|
-
configurable: true,
|
|
414
|
-
writable: true
|
|
415
|
-
});
|
|
416
|
-
} else {
|
|
417
|
-
obj[key] = value;
|
|
418
|
-
}
|
|
419
|
-
return obj;
|
|
420
|
-
}
|
|
421
|
-
function _extends() {
|
|
422
|
-
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
423
|
-
for (var i = 1; i < arguments.length; i++) {
|
|
424
|
-
var source = arguments[i];
|
|
425
|
-
for (var key in source) {
|
|
426
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
427
|
-
target[key] = source[key];
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
return target;
|
|
432
|
-
};
|
|
433
|
-
return _extends.apply(this, arguments);
|
|
434
|
-
}
|
|
435
|
-
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
436
|
-
if (source == null) return {};
|
|
437
|
-
var target = {};
|
|
438
|
-
for (var key in source) {
|
|
439
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
440
|
-
if (excluded.indexOf(key) >= 0) continue;
|
|
441
|
-
target[key] = source[key];
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
return target;
|
|
445
|
-
}
|
|
446
|
-
function _objectWithoutProperties(source, excluded) {
|
|
447
|
-
if (source == null) return {};
|
|
448
|
-
var target = _objectWithoutPropertiesLoose(source, excluded);
|
|
449
|
-
var key, i;
|
|
450
|
-
if (Object.getOwnPropertySymbols) {
|
|
451
|
-
var sourceSymbolKeys = Object.getOwnPropertySymbols(source);
|
|
452
|
-
for (i = 0; i < sourceSymbolKeys.length; i++) {
|
|
453
|
-
key = sourceSymbolKeys[i];
|
|
454
|
-
if (excluded.indexOf(key) >= 0) continue;
|
|
455
|
-
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
|
456
|
-
target[key] = source[key];
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
return target;
|
|
460
|
-
}
|
|
461
|
-
function _taggedTemplateLiteral(strings, raw) {
|
|
462
|
-
if (!raw) {
|
|
463
|
-
raw = strings.slice(0);
|
|
464
|
-
}
|
|
465
|
-
return Object.freeze(Object.defineProperties(strings, {
|
|
466
|
-
raw: {
|
|
467
|
-
value: Object.freeze(raw)
|
|
468
|
-
}
|
|
469
|
-
}));
|
|
470
|
-
}
|
|
471
|
-
function _slicedToArray(arr, i) {
|
|
472
|
-
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
|
|
473
|
-
}
|
|
474
|
-
function _toConsumableArray(arr) {
|
|
475
|
-
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
|
|
476
|
-
}
|
|
477
|
-
function _arrayWithoutHoles(arr) {
|
|
478
|
-
if (Array.isArray(arr)) return _arrayLikeToArray(arr);
|
|
479
|
-
}
|
|
480
|
-
function _arrayWithHoles(arr) {
|
|
481
|
-
if (Array.isArray(arr)) return arr;
|
|
482
|
-
}
|
|
483
|
-
function _iterableToArray(iter) {
|
|
484
|
-
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
485
|
-
}
|
|
486
|
-
function _unsupportedIterableToArray(o, minLen) {
|
|
487
|
-
if (!o) return;
|
|
488
|
-
if (typeof o === "string") return _arrayLikeToArray(o, minLen);
|
|
489
|
-
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
490
|
-
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
491
|
-
if (n === "Map" || n === "Set") return Array.from(o);
|
|
492
|
-
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
493
|
-
}
|
|
494
|
-
function _arrayLikeToArray(arr, len) {
|
|
495
|
-
if (len == null || len > arr.length) len = arr.length;
|
|
496
|
-
for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];
|
|
497
|
-
return arr2;
|
|
498
|
-
}
|
|
499
|
-
function _nonIterableSpread() {
|
|
500
|
-
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
501
|
-
}
|
|
502
|
-
function _nonIterableRest() {
|
|
503
|
-
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
504
|
-
}
|
|
505
|
-
function _createForOfIteratorHelper(o, allowArrayLike) {
|
|
506
|
-
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
|
507
|
-
if (!it) {
|
|
508
|
-
if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike ) {
|
|
509
|
-
if (it) o = it;
|
|
510
|
-
var i = 0;
|
|
511
|
-
var F = function () {};
|
|
512
|
-
return {
|
|
513
|
-
s: F,
|
|
514
|
-
n: function () {
|
|
515
|
-
if (i >= o.length) return {
|
|
516
|
-
done: true
|
|
517
|
-
};
|
|
518
|
-
return {
|
|
519
|
-
done: false,
|
|
520
|
-
value: o[i++]
|
|
521
|
-
};
|
|
522
|
-
},
|
|
523
|
-
e: function (e) {
|
|
524
|
-
throw e;
|
|
525
|
-
},
|
|
526
|
-
f: F
|
|
527
|
-
};
|
|
528
|
-
}
|
|
529
|
-
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
530
|
-
}
|
|
531
|
-
var normalCompletion = true,
|
|
532
|
-
didErr = false,
|
|
533
|
-
err;
|
|
534
|
-
return {
|
|
535
|
-
s: function () {
|
|
536
|
-
it = it.call(o);
|
|
537
|
-
},
|
|
538
|
-
n: function () {
|
|
539
|
-
var step = it.next();
|
|
540
|
-
normalCompletion = step.done;
|
|
541
|
-
return step;
|
|
542
|
-
},
|
|
543
|
-
e: function (e) {
|
|
544
|
-
didErr = true;
|
|
545
|
-
err = e;
|
|
546
|
-
},
|
|
547
|
-
f: function () {
|
|
548
|
-
try {
|
|
549
|
-
if (!normalCompletion && it.return != null) it.return();
|
|
550
|
-
} finally {
|
|
551
|
-
if (didErr) throw err;
|
|
552
|
-
}
|
|
553
|
-
}
|
|
554
|
-
};
|
|
555
|
-
}
|
|
556
|
-
|
|
557
|
-
var clientAuthKey = null;
|
|
558
|
-
var setClientAuthKey = function setClientAuthKey(key) {
|
|
559
|
-
clientAuthKey = key;
|
|
560
|
-
};
|
|
561
|
-
var getClientAuthKey = function getClientAuthKey() {
|
|
562
|
-
return clientAuthKey;
|
|
563
|
-
};
|
|
564
|
-
|
|
565
|
-
var baseURL = "https://api.myhirecontrol.com";
|
|
566
|
-
var memoryStorage = {
|
|
567
|
-
authToken: null,
|
|
568
|
-
tokenExpiration: null
|
|
569
|
-
};
|
|
570
|
-
function setStorage(key, value) {
|
|
571
|
-
try {
|
|
572
|
-
sessionStorage.setItem(key, value);
|
|
573
|
-
} catch (error) {
|
|
574
|
-
memoryStorage[key] = value;
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
function getStorage(key) {
|
|
578
|
-
try {
|
|
579
|
-
return sessionStorage.getItem(key) || memoryStorage[key];
|
|
580
|
-
} catch (error) {
|
|
581
|
-
return memoryStorage[key];
|
|
582
|
-
}
|
|
583
|
-
}
|
|
584
|
-
var login = /*#__PURE__*/function () {
|
|
585
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
586
|
-
var clientAuthKey, response, data;
|
|
587
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
588
|
-
while (1) switch (_context.prev = _context.next) {
|
|
589
|
-
case 0:
|
|
590
|
-
clientAuthKey = getClientAuthKey();
|
|
591
|
-
_context.prev = 1;
|
|
592
|
-
_context.next = 4;
|
|
593
|
-
return fetch("".concat(baseURL, "/auth/login"), {
|
|
594
|
-
method: 'POST',
|
|
595
|
-
headers: {
|
|
596
|
-
'Content-Type': 'application/json'
|
|
597
|
-
},
|
|
598
|
-
body: JSON.stringify({
|
|
599
|
-
clientAuthKey: clientAuthKey
|
|
600
|
-
})
|
|
601
|
-
});
|
|
602
|
-
case 4:
|
|
603
|
-
response = _context.sent;
|
|
604
|
-
_context.next = 7;
|
|
605
|
-
return response.json();
|
|
606
|
-
case 7:
|
|
607
|
-
data = _context.sent;
|
|
608
|
-
if (!(data.token && data.expiration)) {
|
|
609
|
-
_context.next = 12;
|
|
610
|
-
break;
|
|
611
|
-
}
|
|
612
|
-
setStorage('authToken', data.token);
|
|
613
|
-
setStorage('tokenExpiration', data.expiration);
|
|
614
|
-
return _context.abrupt("return", {
|
|
615
|
-
token: data.token,
|
|
616
|
-
expiration: data.expiration
|
|
617
|
-
});
|
|
618
|
-
case 12:
|
|
619
|
-
_context.next = 18;
|
|
620
|
-
break;
|
|
621
|
-
case 14:
|
|
622
|
-
_context.prev = 14;
|
|
623
|
-
_context.t0 = _context["catch"](1);
|
|
624
|
-
console.error('Login failed:', _context.t0);
|
|
625
|
-
throw _context.t0;
|
|
626
|
-
case 18:
|
|
627
|
-
case "end":
|
|
628
|
-
return _context.stop();
|
|
629
|
-
}
|
|
630
|
-
}, _callee, null, [[1, 14]]);
|
|
631
|
-
}));
|
|
632
|
-
return function login() {
|
|
633
|
-
return _ref.apply(this, arguments);
|
|
634
|
-
};
|
|
635
|
-
}();
|
|
636
|
-
var fetchWithAuth = /*#__PURE__*/function () {
|
|
637
|
-
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(url) {
|
|
638
|
-
var options,
|
|
639
|
-
token,
|
|
640
|
-
expirationDateTime,
|
|
641
|
-
currentTime,
|
|
642
|
-
authResponse,
|
|
643
|
-
headers,
|
|
644
|
-
finalOptions,
|
|
645
|
-
response,
|
|
646
|
-
_args2 = arguments;
|
|
647
|
-
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
648
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
649
|
-
case 0:
|
|
650
|
-
options = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : {};
|
|
651
|
-
token = getStorage('authToken');
|
|
652
|
-
expirationDateTime = getStorage('tokenExpiration');
|
|
653
|
-
currentTime = new Date();
|
|
654
|
-
if (!(!token || !expirationDateTime || new Date(expirationDateTime) <= currentTime)) {
|
|
655
|
-
_context2.next = 9;
|
|
656
|
-
break;
|
|
657
|
-
}
|
|
658
|
-
_context2.next = 7;
|
|
659
|
-
return login();
|
|
660
|
-
case 7:
|
|
661
|
-
authResponse = _context2.sent;
|
|
662
|
-
token = authResponse.token;
|
|
663
|
-
case 9:
|
|
664
|
-
headers = new Headers(options.headers || {});
|
|
665
|
-
headers.append('Authorization', "Bearer ".concat(token));
|
|
666
|
-
finalOptions = _objectSpread2(_objectSpread2({}, options), {}, {
|
|
667
|
-
headers: headers
|
|
668
|
-
});
|
|
669
|
-
_context2.next = 14;
|
|
670
|
-
return fetch("".concat(baseURL).concat(url), finalOptions);
|
|
671
|
-
case 14:
|
|
672
|
-
response = _context2.sent;
|
|
673
|
-
if (response.ok) {
|
|
674
|
-
_context2.next = 17;
|
|
675
|
-
break;
|
|
676
|
-
}
|
|
677
|
-
throw new Error('Network response was not ok.');
|
|
678
|
-
case 17:
|
|
679
|
-
return _context2.abrupt("return", response);
|
|
680
|
-
case 18:
|
|
681
|
-
case "end":
|
|
682
|
-
return _context2.stop();
|
|
683
|
-
}
|
|
684
|
-
}, _callee2);
|
|
685
|
-
}));
|
|
686
|
-
return function fetchWithAuth(_x) {
|
|
687
|
-
return _ref2.apply(this, arguments);
|
|
688
|
-
};
|
|
689
|
-
}();
|
|
690
|
-
var api = {
|
|
691
|
-
get: function () {
|
|
692
|
-
var _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(url) {
|
|
693
|
-
var response;
|
|
694
|
-
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
695
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
696
|
-
case 0:
|
|
697
|
-
_context3.next = 2;
|
|
698
|
-
return fetchWithAuth(url);
|
|
699
|
-
case 2:
|
|
700
|
-
response = _context3.sent;
|
|
701
|
-
return _context3.abrupt("return", response.json());
|
|
702
|
-
case 4:
|
|
703
|
-
case "end":
|
|
704
|
-
return _context3.stop();
|
|
705
|
-
}
|
|
706
|
-
}, _callee3);
|
|
707
|
-
}));
|
|
708
|
-
function get(_x2) {
|
|
709
|
-
return _get.apply(this, arguments);
|
|
710
|
-
}
|
|
711
|
-
return get;
|
|
712
|
-
}(),
|
|
713
|
-
post: function () {
|
|
714
|
-
var _post = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(url, data) {
|
|
715
|
-
var response;
|
|
716
|
-
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
717
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
718
|
-
case 0:
|
|
719
|
-
_context4.next = 2;
|
|
720
|
-
return fetchWithAuth(url, {
|
|
721
|
-
method: 'POST',
|
|
722
|
-
headers: {
|
|
723
|
-
'Content-Type': 'application/json'
|
|
724
|
-
},
|
|
725
|
-
body: JSON.stringify(data)
|
|
726
|
-
});
|
|
727
|
-
case 2:
|
|
728
|
-
response = _context4.sent;
|
|
729
|
-
return _context4.abrupt("return", response.json());
|
|
730
|
-
case 4:
|
|
731
|
-
case "end":
|
|
732
|
-
return _context4.stop();
|
|
733
|
-
}
|
|
734
|
-
}, _callee4);
|
|
735
|
-
}));
|
|
736
|
-
function post(_x3, _x4) {
|
|
737
|
-
return _post.apply(this, arguments);
|
|
738
|
-
}
|
|
739
|
-
return post;
|
|
740
|
-
}()
|
|
741
|
-
};
|
|
742
|
-
|
|
743
|
-
var getListings = /*#__PURE__*/function () {
|
|
744
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(companyId) {
|
|
745
|
-
var response;
|
|
746
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
747
|
-
while (1) switch (_context.prev = _context.next) {
|
|
748
|
-
case 0:
|
|
749
|
-
_context.prev = 0;
|
|
750
|
-
_context.next = 4;
|
|
751
|
-
return api.get("/Listings");
|
|
752
|
-
case 4:
|
|
753
|
-
response = _context.sent;
|
|
754
|
-
return _context.abrupt("return", response);
|
|
755
|
-
case 8:
|
|
756
|
-
_context.prev = 8;
|
|
757
|
-
_context.t0 = _context["catch"](0);
|
|
758
|
-
console.error(_context.t0);
|
|
759
|
-
throw _context.t0;
|
|
760
|
-
case 12:
|
|
761
|
-
case "end":
|
|
762
|
-
return _context.stop();
|
|
763
|
-
}
|
|
764
|
-
}, _callee, null, [[0, 8]]);
|
|
765
|
-
}));
|
|
766
|
-
return function getListings(_x) {
|
|
767
|
-
return _ref.apply(this, arguments);
|
|
768
|
-
};
|
|
769
|
-
}();
|
|
770
|
-
|
|
771
|
-
var getRecruiters = /*#__PURE__*/function () {
|
|
772
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(recruiterIds) {
|
|
773
|
-
var params, response;
|
|
774
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
775
|
-
while (1) switch (_context.prev = _context.next) {
|
|
776
|
-
case 0:
|
|
777
|
-
_context.prev = 0;
|
|
778
|
-
params = recruiterIds.map(function (id) {
|
|
779
|
-
return "recruiterIds=".concat(id);
|
|
780
|
-
}).join("&");
|
|
781
|
-
_context.next = 4;
|
|
782
|
-
return api.get("/Recruiters?".concat(params));
|
|
783
|
-
case 4:
|
|
784
|
-
response = _context.sent;
|
|
785
|
-
return _context.abrupt("return", response.data);
|
|
786
|
-
case 8:
|
|
787
|
-
_context.prev = 8;
|
|
788
|
-
_context.t0 = _context["catch"](0);
|
|
789
|
-
console.error("Error fetching recruiters:", _context.t0);
|
|
790
|
-
throw _context.t0;
|
|
791
|
-
case 12:
|
|
792
|
-
case "end":
|
|
793
|
-
return _context.stop();
|
|
794
|
-
}
|
|
795
|
-
}, _callee, null, [[0, 8]]);
|
|
796
|
-
}));
|
|
797
|
-
return function getRecruiters(_x) {
|
|
798
|
-
return _ref.apply(this, arguments);
|
|
799
|
-
};
|
|
800
|
-
}();
|
|
801
|
-
|
|
802
|
-
var getListingEntities = /*#__PURE__*/function () {
|
|
803
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(entityIds) {
|
|
804
|
-
var origin,
|
|
805
|
-
response,
|
|
806
|
-
_args = arguments;
|
|
807
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
808
|
-
while (1) switch (_context.prev = _context.next) {
|
|
809
|
-
case 0:
|
|
810
|
-
origin = _args.length > 1 && _args[1] !== undefined ? _args[1] : '';
|
|
811
|
-
_context.prev = 1;
|
|
812
|
-
_context.next = 4;
|
|
813
|
-
return api.post("/ListingEntities?origin=".concat(origin), entityIds);
|
|
814
|
-
case 4:
|
|
815
|
-
response = _context.sent;
|
|
816
|
-
return _context.abrupt("return", response);
|
|
817
|
-
case 8:
|
|
818
|
-
_context.prev = 8;
|
|
819
|
-
_context.t0 = _context["catch"](1);
|
|
820
|
-
console.error("Error fetching listing entities:", _context.t0);
|
|
821
|
-
throw _context.t0;
|
|
822
|
-
case 12:
|
|
823
|
-
case "end":
|
|
824
|
-
return _context.stop();
|
|
825
|
-
}
|
|
826
|
-
}, _callee, null, [[1, 8]]);
|
|
827
|
-
}));
|
|
828
|
-
return function getListingEntities(_x) {
|
|
829
|
-
return _ref.apply(this, arguments);
|
|
830
|
-
};
|
|
831
|
-
}();
|
|
832
|
-
|
|
833
|
-
var getDistinctItemsByProximity = function getDistinctItemsByProximity(items, listingEntitiesDetails) {
|
|
834
|
-
var clusters = {};
|
|
835
|
-
if (!listingEntitiesDetails) return [];
|
|
836
|
-
var closeItemPairs = findCloseItems(listingEntitiesDetails);
|
|
837
|
-
if (closeItemPairs.length > 0) {
|
|
838
|
-
listingEntitiesDetails = adjustItemPositions(listingEntitiesDetails, closeItemPairs);
|
|
839
|
-
}
|
|
840
|
-
items === null || items === void 0 || items.forEach(function (item) {
|
|
841
|
-
if (item.entityId !== -1) {
|
|
842
|
-
var entityDetails = listingEntitiesDetails[item.entityId];
|
|
843
|
-
if (!entityDetails) {
|
|
844
|
-
console.error("Details not found for entityId: ".concat(item.entityId));
|
|
845
|
-
return;
|
|
846
|
-
}
|
|
847
|
-
item.mapDetails = entityDetails;
|
|
848
|
-
if (!clusters[item.entityId]) {
|
|
849
|
-
clusters[item.entityId] = _objectSpread2(_objectSpread2({}, item.mapDetails), {}, {
|
|
850
|
-
items: _defineProperty({}, item.id, item)
|
|
851
|
-
});
|
|
852
|
-
} else {
|
|
853
|
-
clusters[item.entityId].items[item.id] = item;
|
|
854
|
-
}
|
|
855
|
-
}
|
|
856
|
-
});
|
|
857
|
-
return Object.values(clusters);
|
|
858
|
-
};
|
|
859
|
-
var findCloseItems = function findCloseItems(itemsObj) {
|
|
860
|
-
var closeItems = [];
|
|
861
|
-
var items = Object.values(itemsObj); // Convert object to array for iteration
|
|
862
|
-
var proximityThreshold = 0.0001;
|
|
863
|
-
for (var i = 0; i < items.length; i++) {
|
|
864
|
-
for (var j = i + 1; j < items.length; j++) {
|
|
865
|
-
var distanceLat = Math.abs(items[i].latitude - items[j].latitude);
|
|
866
|
-
var distanceLng = Math.abs(items[i].longitude - items[j].longitude);
|
|
867
|
-
if (distanceLat < proximityThreshold && distanceLng < proximityThreshold) {
|
|
868
|
-
closeItems.push({
|
|
869
|
-
item1: items[i],
|
|
870
|
-
item2: items[j]
|
|
871
|
-
});
|
|
872
|
-
}
|
|
873
|
-
}
|
|
874
|
-
}
|
|
875
|
-
return closeItems;
|
|
876
|
-
};
|
|
877
|
-
var adjustItemPositions = function adjustItemPositions(itemsObj, closeItemPairs) {
|
|
878
|
-
var adjustmentValue = 0.0001;
|
|
879
|
-
var adjustedItems = _objectSpread2({}, itemsObj); // Create a shallow copy of the object
|
|
880
|
-
|
|
881
|
-
closeItemPairs.forEach(function (pair) {
|
|
882
|
-
if (adjustedItems[pair.item1.id] && adjustedItems[pair.item2.id]) {
|
|
883
|
-
adjustedItems[pair.item2.id].latitude += adjustmentValue;
|
|
884
|
-
adjustedItems[pair.item2.id].longitude += adjustmentValue;
|
|
885
|
-
}
|
|
886
|
-
});
|
|
887
|
-
return adjustedItems;
|
|
888
|
-
};
|
|
889
|
-
var clusterOptions = function clusterOptions(clusterGridSize, fillColor) {
|
|
890
|
-
return {
|
|
891
|
-
gridSize: clusterGridSize,
|
|
892
|
-
styles: [{
|
|
893
|
-
url: createSvgDataUri(fillColor),
|
|
894
|
-
textColor: 'white',
|
|
895
|
-
height: 40,
|
|
896
|
-
width: 40
|
|
897
|
-
}]
|
|
898
|
-
};
|
|
899
|
-
};
|
|
900
|
-
function createSvgDataUri(fillColor) {
|
|
901
|
-
var svg = "<svg width=\"50\" height=\"50\" xmlns=\"http://www.w3.org/2000/svg\">\n\t <circle cx=\"25\" cy=\"25\" r=\"20\" fill=\"".concat(fillColor, "\" />\n\t</svg>");
|
|
902
|
-
return "data:image/svg+xml;base64,".concat(btoa(svg));
|
|
903
|
-
}
|
|
904
|
-
|
|
905
|
-
var fetchListings = /*#__PURE__*/function () {
|
|
906
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(query, siteConfig) {
|
|
907
|
-
var listingsResult, recruiterIds, fetchedRecruiters, distinctEntityIds, fetchedEntities, distinctItems;
|
|
908
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
909
|
-
while (1) switch (_context.prev = _context.next) {
|
|
910
|
-
case 0:
|
|
911
|
-
_context.prev = 0;
|
|
912
|
-
_context.next = 3;
|
|
913
|
-
return getListings(siteConfig.companyId, 5000, 1, query);
|
|
914
|
-
case 3:
|
|
915
|
-
listingsResult = _context.sent;
|
|
916
|
-
recruiterIds = _toConsumableArray(new Set(listingsResult.map(function (listing) {
|
|
917
|
-
return listing.recruiterId;
|
|
918
|
-
})));
|
|
919
|
-
_context.next = 7;
|
|
920
|
-
return getRecruiters(recruiterIds);
|
|
921
|
-
case 7:
|
|
922
|
-
fetchedRecruiters = _context.sent;
|
|
923
|
-
distinctEntityIds = _toConsumableArray(new Set(listingsResult.map(function (listing) {
|
|
924
|
-
return listing.entityId;
|
|
925
|
-
})));
|
|
926
|
-
_context.next = 11;
|
|
927
|
-
return getListingEntities(distinctEntityIds);
|
|
928
|
-
case 11:
|
|
929
|
-
fetchedEntities = _context.sent;
|
|
930
|
-
distinctItems = getDistinctItemsByProximity(listingsResult, fetchedEntities);
|
|
931
|
-
return _context.abrupt("return", {
|
|
932
|
-
listingsResult: listingsResult,
|
|
933
|
-
fetchedRecruiters: fetchedRecruiters,
|
|
934
|
-
fetchedEntities: fetchedEntities,
|
|
935
|
-
distinctItems: distinctItems
|
|
936
|
-
});
|
|
937
|
-
case 16:
|
|
938
|
-
_context.prev = 16;
|
|
939
|
-
_context.t0 = _context["catch"](0);
|
|
940
|
-
console.error("Error fetching listings:", _context.t0);
|
|
941
|
-
throw _context.t0;
|
|
942
|
-
case 20:
|
|
943
|
-
case "end":
|
|
944
|
-
return _context.stop();
|
|
945
|
-
}
|
|
946
|
-
}, _callee, null, [[0, 16]]);
|
|
947
|
-
}));
|
|
948
|
-
return function fetchListings(_x, _x2) {
|
|
949
|
-
return _ref.apply(this, arguments);
|
|
950
|
-
};
|
|
951
|
-
}();
|
|
952
|
-
|
|
953
|
-
var getFilterOptions = function getFilterOptions(listings, filteredListings, field) {
|
|
954
|
-
var excludeZeroCount = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
955
|
-
var options = new Set();
|
|
956
|
-
listings.forEach(function (listing) {
|
|
957
|
-
if (listing.fields[field]) {
|
|
958
|
-
options.add(listing.fields[field]);
|
|
959
|
-
}
|
|
960
|
-
});
|
|
961
|
-
var optionCounts = {};
|
|
962
|
-
options.forEach(function (option) {
|
|
963
|
-
optionCounts[option] = 0;
|
|
964
|
-
});
|
|
965
|
-
filteredListings.forEach(function (listing) {
|
|
966
|
-
var value = listing.fields[field];
|
|
967
|
-
if (value && optionCounts.hasOwnProperty(value)) {
|
|
968
|
-
optionCounts[value] += 1;
|
|
969
|
-
}
|
|
970
|
-
});
|
|
971
|
-
return Array.from(options).sort().map(function (option) {
|
|
972
|
-
return {
|
|
973
|
-
name: option,
|
|
974
|
-
count: optionCounts[option] || 0
|
|
975
|
-
};
|
|
976
|
-
}).filter(function (option) {
|
|
977
|
-
return !(excludeZeroCount === true && option.count === 0);
|
|
978
|
-
});
|
|
979
|
-
};
|
|
980
|
-
var getSpecialFeatureOptions = function getSpecialFeatureOptions(listings, filteredListings, siteConfig, favorites) {
|
|
981
|
-
var specialFeatures = siteConfig.specialFeatures;
|
|
982
|
-
var featureCounts = Object.keys(specialFeatures).sort().reduce(function (acc, key) {
|
|
983
|
-
acc[specialFeatures[key]] = 0;
|
|
984
|
-
return acc;
|
|
985
|
-
}, {});
|
|
986
|
-
filteredListings.forEach(function (listing) {
|
|
987
|
-
Object.entries(specialFeatures).forEach(function (_ref) {
|
|
988
|
-
var _ref2 = _slicedToArray(_ref, 2),
|
|
989
|
-
featureKey = _ref2[0],
|
|
990
|
-
featureName = _ref2[1];
|
|
991
|
-
if (listing.fields[featureKey] === 1) {
|
|
992
|
-
featureCounts[featureName] += 1;
|
|
993
|
-
}
|
|
994
|
-
});
|
|
995
|
-
});
|
|
996
|
-
var specialFeatureOptions = Object.entries(featureCounts).map(function (_ref3) {
|
|
997
|
-
var _ref4 = _slicedToArray(_ref3, 2),
|
|
998
|
-
name = _ref4[0],
|
|
999
|
-
count = _ref4[1];
|
|
1000
|
-
return {
|
|
1001
|
-
name: name,
|
|
1002
|
-
count: count
|
|
1003
|
-
};
|
|
1004
|
-
});
|
|
1005
|
-
var _iterator = _createForOfIteratorHelper(specialFeatureOptions),
|
|
1006
|
-
_step;
|
|
1007
|
-
try {
|
|
1008
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
1009
|
-
var option = _step.value;
|
|
1010
|
-
if (option.name === 'Favorite') {
|
|
1011
|
-
option.count = filteredListings.filter(function (x) {
|
|
1012
|
-
return favorites.includes(x.id);
|
|
1013
|
-
}).length;
|
|
1014
|
-
}
|
|
1015
|
-
}
|
|
1016
|
-
} catch (err) {
|
|
1017
|
-
_iterator.e(err);
|
|
1018
|
-
} finally {
|
|
1019
|
-
_iterator.f();
|
|
1020
|
-
}
|
|
1021
|
-
return specialFeatureOptions;
|
|
1022
|
-
};
|
|
1023
|
-
var getPointsOfInterestOptions = function getPointsOfInterestOptions(pointsOfInterestNames) {
|
|
1024
|
-
return Object.entries(pointsOfInterestNames).sort().map(function (_ref5) {
|
|
1025
|
-
var _ref6 = _slicedToArray(_ref5, 2),
|
|
1026
|
-
key = _ref6[0],
|
|
1027
|
-
name = _ref6[1];
|
|
1028
|
-
return {
|
|
1029
|
-
key: key,
|
|
1030
|
-
name: name
|
|
1031
|
-
};
|
|
1032
|
-
});
|
|
1033
|
-
};
|
|
1034
|
-
var generateFilterOptions = function generateFilterOptions(filteredListings, allListings, siteConfig, filterOptions) {
|
|
1035
|
-
var parentField = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : null;
|
|
1036
|
-
var favorites = arguments.length > 5 ? arguments[5] : undefined;
|
|
1037
|
-
if (allListings.length > 0) {
|
|
1038
|
-
var dynamicFilters = siteConfig.fieldFiltersShown.map(function (fieldName) {
|
|
1039
|
-
if (fieldName === parentField && filterOptions !== null && filterOptions !== void 0 && filterOptions.filters) {
|
|
1040
|
-
return filterOptions.filters.find(function (filter) {
|
|
1041
|
-
return filter.id === fieldName;
|
|
1042
|
-
});
|
|
1043
|
-
}
|
|
1044
|
-
if (fieldName == "specialFeatures") {
|
|
1045
|
-
return {
|
|
1046
|
-
id: fieldName,
|
|
1047
|
-
title: siteConfig.fieldNames[fieldName],
|
|
1048
|
-
items: getSpecialFeatureOptions(allListings, filteredListings, siteConfig, favorites).sort()
|
|
1049
|
-
};
|
|
1050
|
-
}
|
|
1051
|
-
return {
|
|
1052
|
-
id: fieldName,
|
|
1053
|
-
title: siteConfig.fieldNames[fieldName],
|
|
1054
|
-
items: getFilterOptions(allListings, filteredListings, fieldName)
|
|
1055
|
-
};
|
|
1056
|
-
});
|
|
1057
|
-
var locations = siteConfig.locationFiltersShown.map(function (fieldName, index) {
|
|
1058
|
-
if (index === 0 && filterOptions !== null && filterOptions !== void 0 && filterOptions.locations) {
|
|
1059
|
-
return filterOptions.locations.find(function (filter) {
|
|
1060
|
-
return filter.id === fieldName;
|
|
1061
|
-
});
|
|
1062
|
-
}
|
|
1063
|
-
return {
|
|
1064
|
-
id: fieldName,
|
|
1065
|
-
title: siteConfig.fieldNames[fieldName],
|
|
1066
|
-
items: getFilterOptions(allListings, filteredListings, fieldName, true)
|
|
1067
|
-
};
|
|
1068
|
-
});
|
|
1069
|
-
var pointsOfInterest = {
|
|
1070
|
-
id: "pointsOfInterest",
|
|
1071
|
-
title: siteConfig.pointsOfInterestConfig.title,
|
|
1072
|
-
items: getPointsOfInterestOptions(siteConfig.pointsOfInterestConfig.pointsOfInterestNames)
|
|
1073
|
-
};
|
|
1074
|
-
return {
|
|
1075
|
-
filters: dynamicFilters,
|
|
1076
|
-
locations: locations,
|
|
1077
|
-
pointsOfInterest: pointsOfInterest
|
|
1078
|
-
};
|
|
1079
|
-
}
|
|
1080
|
-
return null;
|
|
1081
|
-
};
|
|
1082
|
-
var applyFilters = function applyFilters(allListings, selectedFilters, query, listingEntities, favorites, siteConfig) {
|
|
1083
|
-
var results = allListings;
|
|
1084
|
-
var invertedSpecialFeaturesMap;
|
|
1085
|
-
if (siteConfig.specialFeatures) {
|
|
1086
|
-
invertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce(function (acc, _ref7) {
|
|
1087
|
-
var _ref8 = _slicedToArray(_ref7, 2),
|
|
1088
|
-
key = _ref8[0],
|
|
1089
|
-
value = _ref8[1];
|
|
1090
|
-
acc[value] = key;
|
|
1091
|
-
return acc;
|
|
1092
|
-
}, {});
|
|
1093
|
-
}
|
|
1094
|
-
var hasFavorite = !!selectedFilters.specialFeatures && !!selectedFilters.specialFeatures.Favorite;
|
|
1095
|
-
if (hasFavorite && selectedFilters.specialFeatures.Favorite == true) {
|
|
1096
|
-
results = results.filter(function (x) {
|
|
1097
|
-
return favorites.includes(x.id);
|
|
1098
|
-
});
|
|
1099
|
-
}
|
|
1100
|
-
var favorite;
|
|
1101
|
-
if (hasFavorite) {
|
|
1102
|
-
favorite = selectedFilters.specialFeatures.Favorite;
|
|
1103
|
-
delete selectedFilters.specialFeatures.Favorite;
|
|
1104
|
-
}
|
|
1105
|
-
var _loop = function _loop() {
|
|
1106
|
-
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
1107
|
-
field = _Object$entries$_i[0],
|
|
1108
|
-
filterItems = _Object$entries$_i[1];
|
|
1109
|
-
var formattedField = field;
|
|
1110
|
-
if (field === "pointsOfInterest") return 1; // continue
|
|
1111
|
-
if (field === "specialFeatures" && invertedSpecialFeaturesMap && Object.keys(filterItems).length > 0) {
|
|
1112
|
-
results = results.filter(function (listing) {
|
|
1113
|
-
return Object.entries(filterItems).some(function (_ref9) {
|
|
1114
|
-
var _ref10 = _slicedToArray(_ref9, 2),
|
|
1115
|
-
filterName = _ref10[0],
|
|
1116
|
-
filterValue = _ref10[1];
|
|
1117
|
-
var listingFieldName = invertedSpecialFeaturesMap[filterName];
|
|
1118
|
-
return filterValue && listing.fields[listingFieldName] === 1;
|
|
1119
|
-
});
|
|
1120
|
-
});
|
|
1121
|
-
} else if (Object.keys(filterItems).length > 0) {
|
|
1122
|
-
results = results.filter(function (listing) {
|
|
1123
|
-
return filterItems.hasOwnProperty(listing.fields[formattedField]);
|
|
1124
|
-
});
|
|
1125
|
-
}
|
|
1126
|
-
};
|
|
1127
|
-
for (var _i = 0, _Object$entries = Object.entries(selectedFilters); _i < _Object$entries.length; _i++) {
|
|
1128
|
-
if (_loop()) continue;
|
|
1129
|
-
}
|
|
1130
|
-
if (query) {
|
|
1131
|
-
results = results.filter(function (listing) {
|
|
1132
|
-
var _Object$values;
|
|
1133
|
-
return (_Object$values = Object.values(listing.fields)) === null || _Object$values === void 0 ? void 0 : _Object$values.some(function (value) {
|
|
1134
|
-
return value === null || value === void 0 ? void 0 : value.toString().toLowerCase().includes(query.toLowerCase());
|
|
1135
|
-
});
|
|
1136
|
-
});
|
|
1137
|
-
}
|
|
1138
|
-
var distinctItems = getDistinctItemsByProximity(results, listingEntities);
|
|
1139
|
-
if (hasFavorite) {
|
|
1140
|
-
selectedFilters.specialFeatures.Favorite = favorite;
|
|
1141
|
-
}
|
|
1142
|
-
return {
|
|
1143
|
-
filteredListings: results,
|
|
1144
|
-
mapItems: distinctItems
|
|
1145
|
-
};
|
|
1146
|
-
};
|
|
1147
|
-
var filterListingsByLocation = function filterListingsByLocation(allListings, selectedLocation, listingEntities) {
|
|
1148
|
-
var results = allListings;
|
|
1149
|
-
if (selectedLocation !== null) {
|
|
1150
|
-
results = results.filter(function (item) {
|
|
1151
|
-
return selectedLocation.items.hasOwnProperty(item.id);
|
|
1152
|
-
});
|
|
1153
|
-
}
|
|
1154
|
-
var mapItems = getDistinctItemsByProximity(results, listingEntities);
|
|
1155
|
-
return {
|
|
1156
|
-
filteredListings: results,
|
|
1157
|
-
mapItems: mapItems
|
|
1158
|
-
};
|
|
1159
|
-
};
|
|
1160
|
-
|
|
1161
|
-
var getStorageObject = function getStorageObject(item) {
|
|
1162
|
-
var _JSON$parse;
|
|
1163
|
-
var defaultItem = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
1164
|
-
if (typeof window == 'undefined') return defaultItem;
|
|
1165
|
-
if (localStorage.getItem(item) == null) return defaultItem;
|
|
1166
|
-
if (localStorage.getItem(item) == 'undefined') {
|
|
1167
|
-
localStorage.removeItem(item);
|
|
1168
|
-
}
|
|
1169
|
-
return (_JSON$parse = JSON.parse(localStorage.getItem(item))) !== null && _JSON$parse !== void 0 ? _JSON$parse : defaultItem;
|
|
1170
|
-
};
|
|
1171
|
-
var getStorageItem = function getStorageItem(item) {
|
|
1172
|
-
var _localStorage$getItem;
|
|
1173
|
-
var defaultItem = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
1174
|
-
if (typeof window == 'undefined') return defaultItem;
|
|
1175
|
-
if (localStorage.getItem(item) == null) return defaultItem;
|
|
1176
|
-
if (localStorage.getItem(item) == 'undefined') {
|
|
1177
|
-
localStorage.removeItem(item);
|
|
1178
|
-
}
|
|
1179
|
-
return (_localStorage$getItem = localStorage.getItem(item)) !== null && _localStorage$getItem !== void 0 ? _localStorage$getItem : defaultItem;
|
|
1180
|
-
};
|
|
1181
|
-
var setStorageObject = function setStorageObject(key, item) {
|
|
1182
|
-
if (typeof window == 'undefined') return;
|
|
1183
|
-
if (item == undefined) return;
|
|
1184
|
-
try {
|
|
1185
|
-
localStorage.setItem(key, JSON.stringify(item));
|
|
1186
|
-
} catch (err) {
|
|
1187
|
-
console.log(err);
|
|
1188
|
-
}
|
|
1189
|
-
};
|
|
1190
|
-
|
|
1191
|
-
var MapListContext = /*#__PURE__*/createContext();
|
|
1192
|
-
var useMapList = function useMapList() {
|
|
1193
|
-
return useContext(MapListContext);
|
|
1194
|
-
};
|
|
1195
|
-
var getQuery = function getQuery() {
|
|
1196
|
-
var query;
|
|
1197
|
-
//if (!hasQueryInUrl(location)) {
|
|
1198
|
-
query = typeof window !== 'undefined' ? localStorage.getItem('query') : '';
|
|
1199
|
-
// }
|
|
1200
|
-
//else {
|
|
1201
|
-
// query = filtersFromURL(location).query;
|
|
1202
|
-
// }
|
|
1203
|
-
return query;
|
|
1204
|
-
};
|
|
1205
|
-
var MapListProvider = function MapListProvider(_ref) {
|
|
1206
|
-
var children = _ref.children,
|
|
1207
|
-
siteConfig = _ref.siteConfig,
|
|
1208
|
-
resetFilters = _ref.resetFilters,
|
|
1209
|
-
navigateToDetails = _ref.navigateToDetails;
|
|
1210
|
-
// const location = useLocation();
|
|
1211
|
-
// const navigate = useNavigate();
|
|
1212
|
-
var _useState = useState(getStorageObject("listings", [])),
|
|
1213
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
1214
|
-
allListings = _useState2[0],
|
|
1215
|
-
setAllListings = _useState2[1];
|
|
1216
|
-
var _useState3 = useState([]),
|
|
1217
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
1218
|
-
filteredListings = _useState4[0],
|
|
1219
|
-
setFilteredListings = _useState4[1];
|
|
1220
|
-
var _useState5 = useState(false),
|
|
1221
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
1222
|
-
loading = _useState6[0],
|
|
1223
|
-
setLoading = _useState6[1];
|
|
1224
|
-
var _useState7 = useState(getStorageObject('mapItems', [])),
|
|
1225
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
1226
|
-
mapItems = _useState8[0],
|
|
1227
|
-
setMapItems = _useState8[1];
|
|
1228
|
-
var _useState9 = useState(function () {
|
|
1229
|
-
return resetFilters ? null : getQuery();
|
|
1230
|
-
}),
|
|
1231
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
1232
|
-
query = _useState10[0],
|
|
1233
|
-
setQuery = _useState10[1];
|
|
1234
|
-
var _useState11 = useState(getStorageObject("listingEntities", null)),
|
|
1235
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
|
1236
|
-
listingEntities = _useState12[0],
|
|
1237
|
-
setListingEntities = _useState12[1];
|
|
1238
|
-
var _useState13 = useState(true),
|
|
1239
|
-
_useState14 = _slicedToArray(_useState13, 2),
|
|
1240
|
-
firstLoad = _useState14[0],
|
|
1241
|
-
setFirstLoad = _useState14[1];
|
|
1242
|
-
var _useState15 = useState(null),
|
|
1243
|
-
_useState16 = _slicedToArray(_useState15, 2),
|
|
1244
|
-
commuteLocation = _useState16[0],
|
|
1245
|
-
setCommuteLocation = _useState16[1];
|
|
1246
|
-
var _useState17 = useState(function () {
|
|
1247
|
-
return resetFilters ? {} : getStorageObject('selectedFilters', {});
|
|
1248
|
-
}),
|
|
1249
|
-
_useState18 = _slicedToArray(_useState17, 2),
|
|
1250
|
-
selectedFilters = _useState18[0],
|
|
1251
|
-
setSelectedFilters = _useState18[1]; //hasFiltersInURL(location) ? filtersFromURL(location).filters : getStorageObject('selectedFilters', {}));
|
|
1252
|
-
var _useState19 = useState(),
|
|
1253
|
-
_useState20 = _slicedToArray(_useState19, 2),
|
|
1254
|
-
filterOptions = _useState20[0],
|
|
1255
|
-
setFilterOptions = _useState20[1];
|
|
1256
|
-
var _useState21 = useState(getStorageObject("recruiters", {})),
|
|
1257
|
-
_useState22 = _slicedToArray(_useState21, 2),
|
|
1258
|
-
recruiters = _useState22[0],
|
|
1259
|
-
setRecruiters = _useState22[1];
|
|
1260
|
-
var _useState23 = useState(false),
|
|
1261
|
-
_useState24 = _slicedToArray(_useState23, 2),
|
|
1262
|
-
filterDialogIsOpen = _useState24[0],
|
|
1263
|
-
setFilterDialogIsOpen = _useState24[1];
|
|
1264
|
-
var _useState25 = useState("listTab"),
|
|
1265
|
-
_useState26 = _slicedToArray(_useState25, 2),
|
|
1266
|
-
mobileTab = _useState26[0],
|
|
1267
|
-
setMobileTab = _useState26[1];
|
|
1268
|
-
var _useState27 = useState([]),
|
|
1269
|
-
_useState28 = _slicedToArray(_useState27, 2),
|
|
1270
|
-
favorites = _useState28[0],
|
|
1271
|
-
setFavorites = _useState28[1];
|
|
1272
|
-
var _useState29 = useState(false),
|
|
1273
|
-
_useState30 = _slicedToArray(_useState29, 2),
|
|
1274
|
-
filterByFavorites = _useState30[0],
|
|
1275
|
-
setFilterByFavorites = _useState30[1];
|
|
1276
|
-
useEffect(function () {
|
|
1277
|
-
var loadedFavorites = JSON.parse(localStorage.getItem('favorites')) || [];
|
|
1278
|
-
setFavorites(loadedFavorites);
|
|
1279
|
-
}, []);
|
|
1280
|
-
useEffect(function () {
|
|
1281
|
-
if (commuteLocation === null || commuteLocation === '') return;
|
|
1282
|
-
function fetchEntities() {
|
|
1283
|
-
return _fetchEntities.apply(this, arguments);
|
|
1284
|
-
}
|
|
1285
|
-
function _fetchEntities() {
|
|
1286
|
-
_fetchEntities = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
1287
|
-
var distinctEntityIds, fetchedEntities, newFilteredListings, i;
|
|
1288
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
1289
|
-
while (1) switch (_context.prev = _context.next) {
|
|
1290
|
-
case 0:
|
|
1291
|
-
distinctEntityIds = _toConsumableArray(new Set(allListings.map(function (listing) {
|
|
1292
|
-
return listing.entityId;
|
|
1293
|
-
})));
|
|
1294
|
-
_context.prev = 1;
|
|
1295
|
-
_context.next = 4;
|
|
1296
|
-
return getListingEntities(distinctEntityIds, "".concat(commuteLocation.lat, ", ").concat(commuteLocation.lng));
|
|
1297
|
-
case 4:
|
|
1298
|
-
fetchedEntities = _context.sent;
|
|
1299
|
-
setListingEntities(fetchedEntities);
|
|
1300
|
-
newFilteredListings = filteredListings;
|
|
1301
|
-
for (i = 0; i < allListings.length; i++) {
|
|
1302
|
-
if (newFilteredListings[i].entityId != -1) {
|
|
1303
|
-
newFilteredListings[i].fields.travelTime = fetchedEntities[newFilteredListings[i].entityId].travelTime;
|
|
1304
|
-
}
|
|
1305
|
-
}
|
|
1306
|
-
for (i = 0; i < newFilteredListings.length; i++) {
|
|
1307
|
-
if (newFilteredListings[i].entityId != -1) {
|
|
1308
|
-
newFilteredListings[i].fields.travelTime = fetchedEntities[newFilteredListings[i].entityId].travelTime;
|
|
1309
|
-
}
|
|
1310
|
-
}
|
|
1311
|
-
setFilteredListings(newFilteredListings);
|
|
1312
|
-
_context.next = 15;
|
|
1313
|
-
break;
|
|
1314
|
-
case 12:
|
|
1315
|
-
_context.prev = 12;
|
|
1316
|
-
_context.t0 = _context["catch"](1);
|
|
1317
|
-
console.error("Failed to fetch listing entities:", _context.t0);
|
|
1318
|
-
case 15:
|
|
1319
|
-
case "end":
|
|
1320
|
-
return _context.stop();
|
|
1321
|
-
}
|
|
1322
|
-
}, _callee, null, [[1, 12]]);
|
|
1323
|
-
}));
|
|
1324
|
-
return _fetchEntities.apply(this, arguments);
|
|
1325
|
-
}
|
|
1326
|
-
fetchEntities();
|
|
1327
|
-
}, [commuteLocation, allListings, siteConfig.companyId]);
|
|
1328
|
-
useEffect(function () {
|
|
1329
|
-
var handleFetchListings = /*#__PURE__*/function () {
|
|
1330
|
-
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
1331
|
-
var _yield$fetchListings, listingsResult, fetchedRecruiters, fetchedEntities, distinctItems;
|
|
1332
|
-
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
1333
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
1334
|
-
case 0:
|
|
1335
|
-
if (!getStorageObject('listings', []).length > 0) {
|
|
1336
|
-
setLoading(true);
|
|
1337
|
-
}
|
|
1338
|
-
_context2.prev = 1;
|
|
1339
|
-
_context2.next = 4;
|
|
1340
|
-
return fetchListings(query, siteConfig);
|
|
1341
|
-
case 4:
|
|
1342
|
-
_yield$fetchListings = _context2.sent;
|
|
1343
|
-
listingsResult = _yield$fetchListings.listingsResult;
|
|
1344
|
-
fetchedRecruiters = _yield$fetchListings.fetchedRecruiters;
|
|
1345
|
-
fetchedEntities = _yield$fetchListings.fetchedEntities;
|
|
1346
|
-
distinctItems = _yield$fetchListings.distinctItems;
|
|
1347
|
-
setAllListings(listingsResult);
|
|
1348
|
-
setRecruiters(fetchedRecruiters);
|
|
1349
|
-
setListingEntities(fetchedEntities);
|
|
1350
|
-
setMapItems(distinctItems);
|
|
1351
|
-
setStorageObject("mapItems", distinctItems);
|
|
1352
|
-
setStorageObject("listingEntities", fetchedEntities);
|
|
1353
|
-
setStorageObject("recruiters", fetchedRecruiters);
|
|
1354
|
-
setStorageObject("listings", listingsResult);
|
|
1355
|
-
_context2.next = 22;
|
|
1356
|
-
break;
|
|
1357
|
-
case 19:
|
|
1358
|
-
_context2.prev = 19;
|
|
1359
|
-
_context2.t0 = _context2["catch"](1);
|
|
1360
|
-
console.log(_context2.t0);
|
|
1361
|
-
case 22:
|
|
1362
|
-
setLoading(false);
|
|
1363
|
-
case 23:
|
|
1364
|
-
case "end":
|
|
1365
|
-
return _context2.stop();
|
|
1366
|
-
}
|
|
1367
|
-
}, _callee2, null, [[1, 19]]);
|
|
1368
|
-
}));
|
|
1369
|
-
return function handleFetchListings() {
|
|
1370
|
-
return _ref2.apply(this, arguments);
|
|
1371
|
-
};
|
|
1372
|
-
}();
|
|
1373
|
-
handleFetchListings();
|
|
1374
|
-
}, [query, siteConfig]);
|
|
1375
|
-
useEffect(function () {
|
|
1376
|
-
var processListings = function processListings() {
|
|
1377
|
-
var _applyFilters = applyFilters(allListings, selectedFilters, query, listingEntities, favorites, siteConfig),
|
|
1378
|
-
filteredListings = _applyFilters.filteredListings,
|
|
1379
|
-
mapItems = _applyFilters.mapItems;
|
|
1380
|
-
if (filterByFavorites) {
|
|
1381
|
-
filteredListings = filteredListings.filter(function (x) {
|
|
1382
|
-
return favorites.includes(x.id);
|
|
1383
|
-
});
|
|
1384
|
-
}
|
|
1385
|
-
setFilteredListings(filteredListings);
|
|
1386
|
-
// if (firstLoad && hasFiltersInURL(location)) {
|
|
1387
|
-
// const { filters } = filtersFromURL(location);
|
|
1388
|
-
// setSelectedFilters(filters);
|
|
1389
|
-
// }
|
|
1390
|
-
if (firstLoad && selectedFilters) ; else if (Object.keys(selectedFilters).length === 0 && !firstLoad) {
|
|
1391
|
-
localStorage.removeItem('selectedFilters');
|
|
1392
|
-
//updateURLWithFilters(selectedFilters,location, navigate, query);
|
|
1393
|
-
} else if (!firstLoad) {
|
|
1394
|
-
setStorageObject('selectedFilters', selectedFilters);
|
|
1395
|
-
//updateURLWithFilters(selectedFilters,location, navigate, query);
|
|
1396
|
-
}
|
|
1397
|
-
query != null ? localStorage.setItem('query', query) : localStorage.removeItem('query');
|
|
1398
|
-
setMapItems(mapItems);
|
|
1399
|
-
if (selectedFilters) {
|
|
1400
|
-
var keys = Object.keys(selectedFilters);
|
|
1401
|
-
var lastKey = keys[keys.length - 1];
|
|
1402
|
-
var options = generateFilterOptions(firstLoad ? allListings : filteredListings, allListings, siteConfig, filterOptions, lastKey, favorites);
|
|
1403
|
-
if (options) {
|
|
1404
|
-
setFilterOptions(options);
|
|
1405
|
-
if (firstLoad) setFirstLoad(false);
|
|
1406
|
-
}
|
|
1407
|
-
}
|
|
1408
|
-
};
|
|
1409
|
-
processListings();
|
|
1410
|
-
}, [selectedFilters, query, listingEntities, filterByFavorites, favorites]);
|
|
1411
|
-
var handleFilterListingsByLocation = function handleFilterListingsByLocation(selectedLocation) {
|
|
1412
|
-
var _filterListingsByLoca = filterListingsByLocation(allListings, selectedLocation, listingEntities),
|
|
1413
|
-
filteredListings = _filterListingsByLoca.filteredListings;
|
|
1414
|
-
setFilteredListings(filteredListings);
|
|
1415
|
-
//setMapItems(mapItems);
|
|
1416
|
-
};
|
|
1417
|
-
var handleSettingFavorites = function handleSettingFavorites(newFavorites) {
|
|
1418
|
-
if (newFavorites == null) {
|
|
1419
|
-
localStorage.removeItem('favorites');
|
|
1420
|
-
} else {
|
|
1421
|
-
setFavorites(newFavorites);
|
|
1422
|
-
localStorage.setItem('favorites', JSON.stringify(newFavorites));
|
|
1423
|
-
}
|
|
1424
|
-
};
|
|
1425
|
-
return /*#__PURE__*/React.createElement(MapListContext.Provider, {
|
|
1426
|
-
value: {
|
|
1427
|
-
loading: loading,
|
|
1428
|
-
allListings: allListings,
|
|
1429
|
-
filteredListings: filteredListings,
|
|
1430
|
-
mapItems: mapItems,
|
|
1431
|
-
query: query,
|
|
1432
|
-
setFilteredListings: setFilteredListings,
|
|
1433
|
-
setQuery: setQuery,
|
|
1434
|
-
listingEntities: listingEntities,
|
|
1435
|
-
selectedFilters: selectedFilters,
|
|
1436
|
-
setSelectedFilters: setSelectedFilters,
|
|
1437
|
-
filterOptions: filterOptions,
|
|
1438
|
-
recruiters: recruiters,
|
|
1439
|
-
handleFilterListingsByLocation: handleFilterListingsByLocation,
|
|
1440
|
-
filterDialogIsOpen: filterDialogIsOpen,
|
|
1441
|
-
setFilterDialogIsOpen: setFilterDialogIsOpen,
|
|
1442
|
-
setMobileTab: setMobileTab,
|
|
1443
|
-
mobileTab: mobileTab,
|
|
1444
|
-
siteConfig: siteConfig,
|
|
1445
|
-
favorites: favorites,
|
|
1446
|
-
handleSettingFavorites: handleSettingFavorites,
|
|
1447
|
-
setFilterByFavorites: setFilterByFavorites,
|
|
1448
|
-
filterByFavorites: filterByFavorites,
|
|
1449
|
-
commuteLocation: commuteLocation,
|
|
1450
|
-
setCommuteLocation: setCommuteLocation,
|
|
1451
|
-
navigateToDetails: navigateToDetails
|
|
1452
|
-
}
|
|
1453
|
-
}, children);
|
|
1454
|
-
};
|
|
1455
|
-
|
|
1456
|
-
var PageHead = function PageHead(_ref) {
|
|
1457
|
-
var _siteConfig$colors$ma, _siteConfig$colors;
|
|
1458
|
-
var description = _ref.description,
|
|
1459
|
-
keywords = _ref.keywords,
|
|
1460
|
-
title = _ref.title;
|
|
1461
|
-
var _useMapList = useMapList(),
|
|
1462
|
-
siteConfig = _useMapList.siteConfig;
|
|
1463
|
-
//const router = useRouter();
|
|
1464
|
-
var defaultTitle = siteConfig.title;
|
|
1465
|
-
var pageTitle = title || defaultTitle;
|
|
1466
|
-
var metaDescription = description || siteConfig.description;
|
|
1467
|
-
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("title", null, title ? "".concat(title, " | ").concat(defaultTitle) : defaultTitle), /*#__PURE__*/React.createElement("meta", {
|
|
1468
|
-
name: "description",
|
|
1469
|
-
content: metaDescription
|
|
1470
|
-
}), (keywords === null || keywords === void 0 ? void 0 : keywords.length) > 0 ? /*#__PURE__*/React.createElement("meta", {
|
|
1471
|
-
name: "keywords",
|
|
1472
|
-
content: "".concat(keywords.join(', '))
|
|
1473
|
-
}) : null, /*#__PURE__*/React.createElement("meta", {
|
|
1474
|
-
property: "og:title",
|
|
1475
|
-
content: pageTitle
|
|
1476
|
-
}), /*#__PURE__*/React.createElement("meta", {
|
|
1477
|
-
property: "og:description",
|
|
1478
|
-
content: metaDescription
|
|
1479
|
-
}), (siteConfig === null || siteConfig === void 0 ? void 0 : siteConfig.shareImage) && /*#__PURE__*/React.createElement("meta", {
|
|
1480
|
-
property: "og:image",
|
|
1481
|
-
content: "/".concat(siteConfig.shareImage)
|
|
1482
|
-
}), /*#__PURE__*/React.createElement("meta", {
|
|
1483
|
-
property: "og:type",
|
|
1484
|
-
content: "website"
|
|
1485
|
-
}), /*#__PURE__*/React.createElement("meta", {
|
|
1486
|
-
name: "twitter:card",
|
|
1487
|
-
content: "summary"
|
|
1488
|
-
}), /*#__PURE__*/React.createElement("meta", {
|
|
1489
|
-
name: "twitter:creator",
|
|
1490
|
-
content: siteConfig === null || siteConfig === void 0 ? void 0 : siteConfig.author
|
|
1491
|
-
}), /*#__PURE__*/React.createElement("meta", {
|
|
1492
|
-
name: "twitter:title",
|
|
1493
|
-
content: pageTitle
|
|
1494
|
-
}), /*#__PURE__*/React.createElement("meta", {
|
|
1495
|
-
name: "twitter:description",
|
|
1496
|
-
content: metaDescription
|
|
1497
|
-
}), /*#__PURE__*/React.createElement("script", {
|
|
1498
|
-
type: "application/ld+json"
|
|
1499
|
-
}, "\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"@context\": \"https://schema.org\",\n\t\t\t\t\t\t\t\"@type\": \"WebPage\",\n\t\t\t\t\t\t\t\"url\": \"pathame\",\n\t\t\t\t\t\t\t\"legalName\": \"".concat(defaultTitle, "\",\n\t\t\t\t\t\t\t\"name\": \"").concat(pageTitle, "\",\n\t\t\t\t\t\t\t\"about\": \"").concat(metaDescription, "\",\n\t\t\t\t\t\t\t\"brand\": \"").concat(defaultTitle, "\"\n\t\t\t\t\t\t}\n\t\t\t\t")), /*#__PURE__*/React.createElement("link", {
|
|
1500
|
-
rel: "icon",
|
|
1501
|
-
href: "/favicon.svg",
|
|
1502
|
-
type: "image/svg+xml"
|
|
1503
|
-
}), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("link", {
|
|
1504
|
-
rel: "icon",
|
|
1505
|
-
href: "/favicon.ico",
|
|
1506
|
-
sizes: "any"
|
|
1507
|
-
}), /*#__PURE__*/React.createElement("link", {
|
|
1508
|
-
rel: "apple-touch-icon",
|
|
1509
|
-
href: "/apple-touch-icon.png"
|
|
1510
|
-
}), /*#__PURE__*/React.createElement("link", {
|
|
1511
|
-
rel: "manifest",
|
|
1512
|
-
href: "/manifest.webmanifest"
|
|
1513
|
-
}), /*#__PURE__*/React.createElement("meta", {
|
|
1514
|
-
name: "msapplication-TileColor",
|
|
1515
|
-
content: (_siteConfig$colors$ma = siteConfig === null || siteConfig === void 0 || (_siteConfig$colors = siteConfig.colors) === null || _siteConfig$colors === void 0 || (_siteConfig$colors = _siteConfig$colors.manifest) === null || _siteConfig$colors === void 0 ? void 0 : _siteConfig$colors.tileColor) !== null && _siteConfig$colors$ma !== void 0 ? _siteConfig$colors$ma : '#000'
|
|
1516
|
-
})));
|
|
1517
|
-
};
|
|
1518
|
-
|
|
1519
|
-
var _excluded$e = ["as", "isAnimated", "children", "className", "autoRows", "columns", "gap"];
|
|
1520
|
-
var Grid = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
1521
|
-
var _props$as = props.as,
|
|
1522
|
-
as = _props$as === void 0 ? 'div' : _props$as;
|
|
1523
|
-
props.isAnimated;
|
|
1524
|
-
var children = props.children,
|
|
1525
|
-
className = props.className,
|
|
1526
|
-
_props$autoRows = props.autoRows,
|
|
1527
|
-
autoRows = _props$autoRows === void 0 ? true : _props$autoRows,
|
|
1528
|
-
_props$columns = props.columns,
|
|
1529
|
-
columns = _props$columns === void 0 ? 'md:hc-grid-cols-2' : _props$columns,
|
|
1530
|
-
_props$gap = props.gap,
|
|
1531
|
-
gap = _props$gap === void 0 ? 'hc-gap-12 lg:hc-gap-16' : _props$gap,
|
|
1532
|
-
rest = _objectWithoutProperties(props, _excluded$e);
|
|
1533
|
-
var Container = as;
|
|
1534
|
-
return /*#__PURE__*/React.createElement(Container, _extends({
|
|
1535
|
-
ref: ref,
|
|
1536
|
-
className: twMerge('hc-grid', gap, autoRows ? 'hc-auto-rows-min' : '', 'hc-grid-cols-1', columns, className !== null && className !== void 0 ? className : '')
|
|
1537
|
-
}, rest), children);
|
|
1538
|
-
});
|
|
1539
|
-
var GridItem = function GridItem(_ref) {
|
|
1540
|
-
var _ref$as = _ref.as,
|
|
1541
|
-
as = _ref$as === void 0 ? 'div' : _ref$as,
|
|
1542
|
-
children = _ref.children,
|
|
1543
|
-
className = _ref.className;
|
|
1544
|
-
var Container = as;
|
|
1545
|
-
return /*#__PURE__*/React.createElement(Container, {
|
|
1546
|
-
className: className !== null && className !== void 0 ? className : ''
|
|
1547
|
-
}, children);
|
|
1548
|
-
};
|
|
1549
|
-
Grid.Item = GridItem;
|
|
1550
|
-
Grid.displayName = 'Grid';
|
|
1551
|
-
|
|
1552
|
-
var _excluded$d = ["className", "size", "icon", "iconClasses", "title"];
|
|
1553
|
-
var IconContained = function IconContained(_ref) {
|
|
1554
|
-
var className = _ref.className,
|
|
1555
|
-
size = _ref.size,
|
|
1556
|
-
icon = _ref.icon,
|
|
1557
|
-
iconClasses = _ref.iconClasses,
|
|
1558
|
-
title = _ref.title,
|
|
1559
|
-
iconProps = _objectWithoutProperties(_ref, _excluded$d);
|
|
1560
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
1561
|
-
title: title,
|
|
1562
|
-
className: "\n\t\t\thc-inline-block hc-align-middle\n\t\t\t\t".concat(className !== null && className !== void 0 ? className : '', "\n\t\t\t\t").concat(size !== null && size !== void 0 ? size : '', "\n\t\t\t")
|
|
1563
|
-
}, /*#__PURE__*/React.createElement(Icon, _extends({
|
|
1564
|
-
icon: icon,
|
|
1565
|
-
className: "\n\t\t\t\t\t".concat(iconClasses !== null && iconClasses !== void 0 ? iconClasses : '', "\n\t\t\t\t\t").concat(size !== null && size !== void 0 ? size : '', "\n\t\t\t\t")
|
|
1566
|
-
}, iconProps)));
|
|
1567
|
-
};
|
|
1568
|
-
|
|
1569
|
-
var _excluded$c = ["children", "href", "className", "size", "variant", "isBlock", "hasUnderline", "target"],
|
|
1570
|
-
_excluded2$3 = ["children", "href", "className", "activeClassName", "partiallyActive", "size", "variant", "isBlock", "hasUnderline"],
|
|
1571
|
-
_excluded3$2 = ["children", "href", "className", "size", "variant", "isBlock", "hasUnderline"],
|
|
1572
|
-
_excluded4$2 = ["children", "type", "className", "size", "variant", "isBlock", "hasUnderline"];
|
|
1573
|
-
var linkDefaultClasses = "normal-case text-inherit !font-[inherit] [font-weight:inherit] !p-0 rounded-none";
|
|
1574
|
-
var underlineClasses = "!underline decoration-1 underline-offset-2 hover:!no-underline focus:!no-underline";
|
|
1575
|
-
var ButtonVariant = {
|
|
1576
|
-
none: '',
|
|
1577
|
-
primary: 'hc-bg-primary hc-border hc-border-primary hc-text-white hover:hc-bg-opacity-70 focus:hc-bg-opacity-70',
|
|
1578
|
-
secondary: 'hc-bg-secondary hc-border hc-border-secondary hc-text-white hover:hc-bg-opacity-70 focus:hc-bg-opacity-70',
|
|
1579
|
-
outline: 'hc-bg-transparent hc-border hc-border-primary hc-text-primary hover:hc-bg-primaryDark hover:hc-border-primaryDark hover:hc-text-white focus:hc-bg-primaryDark focus:hc-border-primaryDark hc-focus:hc-text-white',
|
|
1580
|
-
link: "".concat(linkDefaultClasses, " hc-text-primary hover:hc-text-uiText focus:hc-text-uiText"),
|
|
1581
|
-
icon: 'hc-opacity-100 hover:hc-opacity-70 focus:hc-opacity-70'
|
|
1582
|
-
};
|
|
1583
|
-
var ButtonSize = {
|
|
1584
|
-
none: '',
|
|
1585
|
-
"default": 'hc-py-2 hc-px-6 hc-text-base',
|
|
1586
|
-
sq: 'hc-p-2.5',
|
|
1587
|
-
sqsm: 'hc-p-1',
|
|
1588
|
-
xs: 'hc-py-1.5 hc-px-3 hc-text-xs',
|
|
1589
|
-
sm: 'hc-py-1.5 hc-px-4 hc-text-sm',
|
|
1590
|
-
lg: 'hc-py-4 hc-px-10 hc-text-lg'
|
|
1591
|
-
};
|
|
1592
|
-
var ButtonDefaults = {
|
|
1593
|
-
style: 'hc-group hc-font-medium hc-uppercase hc-text-center hc-rounded hc-transition',
|
|
1594
|
-
size: ButtonSize["default"],
|
|
1595
|
-
variant: ButtonVariant.primary,
|
|
1596
|
-
block: 'block w-full'
|
|
1597
|
-
};
|
|
1598
|
-
var linkVariants = function linkVariants(variant) {
|
|
1599
|
-
return variant === 'link';
|
|
1600
|
-
};
|
|
1601
|
-
var buttonClasses = function buttonClasses(variant, size, isBlock, hasUnderline, className) {
|
|
1602
|
-
return twMerge(isBlock ? ButtonDefaults.block : linkVariants(variant) ? 'hc-inline' : 'hc-inline-block', ButtonDefaults.style, variant ? ButtonVariant[variant] : ButtonDefaults.variant, size ? ButtonSize[size] : ButtonDefaults.size, hasUnderline ? underlineClasses : '', className !== null && className !== void 0 ? className : '');
|
|
1603
|
-
};
|
|
1604
|
-
var Button = function Button(_ref) {
|
|
1605
|
-
var children = _ref.children;
|
|
1606
|
-
return {
|
|
1607
|
-
children: children
|
|
1608
|
-
};
|
|
1609
|
-
};
|
|
1610
|
-
var Anchor = function Anchor(_ref2) {
|
|
1611
|
-
var children = _ref2.children,
|
|
1612
|
-
href = _ref2.href,
|
|
1613
|
-
className = _ref2.className,
|
|
1614
|
-
size = _ref2.size,
|
|
1615
|
-
variant = _ref2.variant,
|
|
1616
|
-
isBlock = _ref2.isBlock,
|
|
1617
|
-
hasUnderline = _ref2.hasUnderline,
|
|
1618
|
-
_ref2$target = _ref2.target,
|
|
1619
|
-
target = _ref2$target === void 0 ? '_blank' : _ref2$target,
|
|
1620
|
-
rest = _objectWithoutProperties(_ref2, _excluded$c);
|
|
1621
|
-
return /*#__PURE__*/React.createElement("a", _extends({
|
|
1622
|
-
href: href,
|
|
1623
|
-
target: target,
|
|
1624
|
-
className: buttonClasses(variant, size, isBlock, hasUnderline, className),
|
|
1625
|
-
onClick: href === '#' ? function (e) {
|
|
1626
|
-
e.preventDefault();
|
|
1627
|
-
} : null
|
|
1628
|
-
}, rest), children);
|
|
1629
|
-
};
|
|
1630
|
-
var AnchorLink = function AnchorLink(_ref3) {
|
|
1631
|
-
var children = _ref3.children,
|
|
1632
|
-
href = _ref3.href,
|
|
1633
|
-
className = _ref3.className,
|
|
1634
|
-
activeClassName = _ref3.activeClassName,
|
|
1635
|
-
_ref3$partiallyActive = _ref3.partiallyActive,
|
|
1636
|
-
partiallyActive = _ref3$partiallyActive === void 0 ? false : _ref3$partiallyActive,
|
|
1637
|
-
size = _ref3.size,
|
|
1638
|
-
variant = _ref3.variant,
|
|
1639
|
-
isBlock = _ref3.isBlock,
|
|
1640
|
-
hasUnderline = _ref3.hasUnderline,
|
|
1641
|
-
rest = _objectWithoutProperties(_ref3, _excluded2$3);
|
|
1642
|
-
var router = useRouter();
|
|
1643
|
-
return /*#__PURE__*/React.createElement(Link, _extends({
|
|
1644
|
-
href: href,
|
|
1645
|
-
className: "\n\t\t\t\t".concat(buttonClasses(variant, size, isBlock, hasUnderline, className), "\n\t\t\t\t").concat(activeClassName && router.pathname === href || router.pathname.startsWith(href) && partiallyActive ? activeClassName : '', "\n\t\t\t")
|
|
1646
|
-
}, rest), children);
|
|
1647
|
-
};
|
|
1648
|
-
var ScrollAnchor = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
1649
|
-
var children = props.children,
|
|
1650
|
-
href = props.href,
|
|
1651
|
-
className = props.className,
|
|
1652
|
-
size = props.size,
|
|
1653
|
-
variant = props.variant,
|
|
1654
|
-
isBlock = props.isBlock,
|
|
1655
|
-
hasUnderline = props.hasUnderline,
|
|
1656
|
-
rest = _objectWithoutProperties(props, _excluded3$2);
|
|
1657
|
-
return /*#__PURE__*/React.createElement(Link, _extends({
|
|
1658
|
-
ref: ref,
|
|
1659
|
-
href: "#".concat(href),
|
|
1660
|
-
scroll: false,
|
|
1661
|
-
className: buttonClasses(variant, size, isBlock, hasUnderline, className)
|
|
1662
|
-
}, rest), children);
|
|
1663
|
-
});
|
|
1664
|
-
var Btn = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
1665
|
-
var children = props.children,
|
|
1666
|
-
_props$type = props.type,
|
|
1667
|
-
type = _props$type === void 0 ? 'button' : _props$type,
|
|
1668
|
-
className = props.className,
|
|
1669
|
-
size = props.size,
|
|
1670
|
-
variant = props.variant,
|
|
1671
|
-
isBlock = props.isBlock,
|
|
1672
|
-
hasUnderline = props.hasUnderline,
|
|
1673
|
-
rest = _objectWithoutProperties(props, _excluded4$2);
|
|
1674
|
-
return /*#__PURE__*/React.createElement("button", _extends({
|
|
1675
|
-
ref: ref,
|
|
1676
|
-
type: type,
|
|
1677
|
-
className: buttonClasses(variant, size, isBlock, hasUnderline, className)
|
|
1678
|
-
}, rest), children);
|
|
1679
|
-
});
|
|
1680
|
-
var ButtonBody = function ButtonBody(_ref4) {
|
|
1681
|
-
var children = _ref4.children,
|
|
1682
|
-
className = _ref4.className;
|
|
1683
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
1684
|
-
className: twMerge('hc-inline-flex hc-w-full hc-items-center hc-justify-between hc-gap-1.5', className !== null && className !== void 0 ? className : '')
|
|
1685
|
-
}, children);
|
|
1686
|
-
};
|
|
1687
|
-
var ButtonIcon = function ButtonIcon(_ref5) {
|
|
1688
|
-
var icon = _ref5.icon,
|
|
1689
|
-
_ref5$size = _ref5.size,
|
|
1690
|
-
size = _ref5$size === void 0 ? 'hc-size-4' : _ref5$size,
|
|
1691
|
-
className = _ref5.className;
|
|
1692
|
-
return /*#__PURE__*/React.createElement(IconContained, {
|
|
1693
|
-
icon: icon,
|
|
1694
|
-
size: size,
|
|
1695
|
-
className: className !== null && className !== void 0 ? className : ''
|
|
1696
|
-
});
|
|
1697
|
-
};
|
|
1698
|
-
Button.Anchor = Anchor;
|
|
1699
|
-
Button.Link = AnchorLink;
|
|
1700
|
-
Button.Scroll = ScrollAnchor;
|
|
1701
|
-
Button.Btn = Btn;
|
|
1702
|
-
Button.Body = ButtonBody;
|
|
1703
|
-
Button.Icon = ButtonIcon;
|
|
1704
|
-
Btn.displayName = 'Button:Button';
|
|
1705
|
-
ScrollAnchor.displayName = 'Button:ScrollAnchor';
|
|
1706
|
-
|
|
1707
|
-
var _excluded$b = ["as", "className", "hasShadow", "image", "body", "children", "footer"],
|
|
1708
|
-
_excluded2$2 = ["as", "href", "className", "hasShadow", "image", "body", "children", "footer"],
|
|
1709
|
-
_excluded3$1 = ["image", "alt", "className", "imageClassName"],
|
|
1710
|
-
_excluded4$1 = ["as", "children", "className"];
|
|
1711
|
-
var cardClasses = function cardClasses(className, hasShadow) {
|
|
1712
|
-
return twMerge('hc-relative hc-flex hc-flex-wrap hc-flex-col hc-bg-clip-border hc-break-words hc-bg-white hc-border hc-border-gray-100', hasShadow ? 'hc-shadow-lg' : '', className !== null && className !== void 0 ? className : '');
|
|
1713
|
-
};
|
|
1714
|
-
var Card = function Card(_ref) {
|
|
1715
|
-
var children = _ref.children;
|
|
1716
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
1717
|
-
};
|
|
1718
|
-
var CardDefault = /*#__PURE__*/forwardRef(function (_ref2, ref) {
|
|
1719
|
-
var _ref2$as = _ref2.as,
|
|
1720
|
-
as = _ref2$as === void 0 ? 'div' : _ref2$as,
|
|
1721
|
-
className = _ref2.className,
|
|
1722
|
-
_ref2$hasShadow = _ref2.hasShadow,
|
|
1723
|
-
hasShadow = _ref2$hasShadow === void 0 ? false : _ref2$hasShadow,
|
|
1724
|
-
image = _ref2.image,
|
|
1725
|
-
body = _ref2.body,
|
|
1726
|
-
children = _ref2.children,
|
|
1727
|
-
footer = _ref2.footer,
|
|
1728
|
-
rest = _objectWithoutProperties(_ref2, _excluded$b);
|
|
1729
|
-
var Container = as;
|
|
1730
|
-
return /*#__PURE__*/React.createElement(Container, _extends({
|
|
1731
|
-
ref: ref,
|
|
1732
|
-
className: cardClasses(className, hasShadow)
|
|
1733
|
-
}, rest), image, children, body, footer);
|
|
1734
|
-
});
|
|
1735
|
-
var CardLink = function CardLink(_ref3) {
|
|
1736
|
-
var _ref3$as = _ref3.as,
|
|
1737
|
-
as = _ref3$as === void 0 ? 'link' : _ref3$as,
|
|
1738
|
-
href = _ref3.href,
|
|
1739
|
-
className = _ref3.className,
|
|
1740
|
-
_ref3$hasShadow = _ref3.hasShadow,
|
|
1741
|
-
hasShadow = _ref3$hasShadow === void 0 ? false : _ref3$hasShadow,
|
|
1742
|
-
image = _ref3.image,
|
|
1743
|
-
body = _ref3.body,
|
|
1744
|
-
children = _ref3.children,
|
|
1745
|
-
footer = _ref3.footer,
|
|
1746
|
-
rest = _objectWithoutProperties(_ref3, _excluded2$2);
|
|
1747
|
-
var Container = as === 'link' ? Link : as;
|
|
1748
|
-
return /*#__PURE__*/React.createElement(Container, _extends({
|
|
1749
|
-
to: href,
|
|
1750
|
-
className: twMerge(cardClasses(className, hasShadow), 'hc-group hc-transition hover:hc-shadow-xl hover:hc-border-indigo-300 focus:hc-shadow-xl focus:hc-border-indigo-300')
|
|
1751
|
-
}, rest), image && image, children, body && body, footer && footer);
|
|
1752
|
-
};
|
|
1753
|
-
var CardImage = function CardImage(_ref4) {
|
|
1754
|
-
var image = _ref4.image,
|
|
1755
|
-
alt = _ref4.alt,
|
|
1756
|
-
className = _ref4.className,
|
|
1757
|
-
imageClassName = _ref4.imageClassName,
|
|
1758
|
-
rest = _objectWithoutProperties(_ref4, _excluded3$1);
|
|
1759
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
1760
|
-
className: twMerge('hc-w-full', className !== null && className !== void 0 ? className : '')
|
|
1761
|
-
}, /*#__PURE__*/React.createElement("img", _extends({
|
|
1762
|
-
src: typeof image === 'string' ? image : image.src,
|
|
1763
|
-
width: image.width ? image.width : null,
|
|
1764
|
-
height: image.height ? image.height : null,
|
|
1765
|
-
alt: alt !== null && alt !== void 0 ? alt : '',
|
|
1766
|
-
className: twMerge('hc-w-full hc-h-auto', imageClassName !== null && imageClassName !== void 0 ? imageClassName : '')
|
|
1767
|
-
}, rest)));
|
|
1768
|
-
};
|
|
1769
|
-
var CardBody = function CardBody(_ref5) {
|
|
1770
|
-
var children = _ref5.children,
|
|
1771
|
-
className = _ref5.className;
|
|
1772
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
1773
|
-
className: twMerge('hc-flex-auto hc-p-4 md:hc-px-6 lg:hc-px-8', className !== null && className !== void 0 ? className : '')
|
|
1774
|
-
}, children);
|
|
1775
|
-
};
|
|
1776
|
-
var CardTitle$1 = function CardTitle(_ref6) {
|
|
1777
|
-
var _ref6$as = _ref6.as,
|
|
1778
|
-
as = _ref6$as === void 0 ? 'h3' : _ref6$as,
|
|
1779
|
-
children = _ref6.children,
|
|
1780
|
-
className = _ref6.className,
|
|
1781
|
-
rest = _objectWithoutProperties(_ref6, _excluded4$1);
|
|
1782
|
-
var Title = as;
|
|
1783
|
-
return /*#__PURE__*/React.createElement(Title, _extends({
|
|
1784
|
-
className: twMerge('hc-text-2xl hc-font-bold', className !== null && className !== void 0 ? className : '')
|
|
1785
|
-
}, rest), children);
|
|
1786
|
-
};
|
|
1787
|
-
var CardFooter = function CardFooter(_ref7) {
|
|
1788
|
-
var children = _ref7.children,
|
|
1789
|
-
className = _ref7.className;
|
|
1790
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
1791
|
-
className: twMerge('hc-py-2 hc-px-4 md:hc-px-6 lg:hc-px-8 hc-bg-gray-100', className !== null && className !== void 0 ? className : '')
|
|
1792
|
-
}, children);
|
|
1793
|
-
};
|
|
1794
|
-
Card.Default = CardDefault;
|
|
1795
|
-
Card.Link = CardLink;
|
|
1796
|
-
Card.Image = CardImage;
|
|
1797
|
-
Card.Body = CardBody;
|
|
1798
|
-
Card.Title = CardTitle$1;
|
|
1799
|
-
Card.Footer = CardFooter;
|
|
1800
|
-
CardDefault.displayName = 'Card:Default';
|
|
1801
|
-
|
|
1802
|
-
var _excluded$a = ["as", "className", "children"],
|
|
1803
|
-
_excluded2$1 = ["as", "children", "icon", "className"];
|
|
1804
|
-
var CardFilter = function CardFilter(_ref) {
|
|
1805
|
-
var as = _ref.as,
|
|
1806
|
-
className = _ref.className,
|
|
1807
|
-
children = _ref.children,
|
|
1808
|
-
rest = _objectWithoutProperties(_ref, _excluded$a);
|
|
1809
|
-
return /*#__PURE__*/React.createElement(Card.Default, _extends({
|
|
1810
|
-
as: as,
|
|
1811
|
-
className: "\n\t\t\thc-bg-uiAccent/5 hc-border hc-border-uiAccent/20 hc-rounded\n\t\t\t\t".concat(className !== null && className !== void 0 ? className : '', "\n\t\t\t")
|
|
1812
|
-
}, rest), /*#__PURE__*/React.createElement(Card.Body, {
|
|
1813
|
-
className: "!hc-p-3"
|
|
1814
|
-
}, children));
|
|
1815
|
-
};
|
|
1816
|
-
var CardTitle = function CardTitle(_ref2) {
|
|
1817
|
-
var as = _ref2.as,
|
|
1818
|
-
children = _ref2.children,
|
|
1819
|
-
icon = _ref2.icon,
|
|
1820
|
-
className = _ref2.className,
|
|
1821
|
-
rest = _objectWithoutProperties(_ref2, _excluded2$1);
|
|
1822
|
-
return /*#__PURE__*/React.createElement(Card.Title, _extends({
|
|
1823
|
-
as: as,
|
|
1824
|
-
className: "\n\t\t\thc-flex hc-items-center hc-gap-2 hc-mb-2 hc-text-xs hc-uppercase hc-font-bold hc-text-uiText\n\t\t\t\t".concat(className !== null && className !== void 0 ? className : '', "\n\t\t\t")
|
|
1825
|
-
}, rest), /*#__PURE__*/React.createElement(IconContained, {
|
|
1826
|
-
icon: icon,
|
|
1827
|
-
size: "hc-size-5",
|
|
1828
|
-
className: "hc-text-uiAccent/30"
|
|
1829
|
-
}), children);
|
|
1830
|
-
};
|
|
1831
|
-
CardFilter.Title = CardTitle;
|
|
1832
|
-
|
|
1833
|
-
var Search = function Search(_ref) {
|
|
1834
|
-
var _ref$inputPlaceholder = _ref.inputPlaceholder,
|
|
1835
|
-
inputPlaceholder = _ref$inputPlaceholder === void 0 ? "Keywords" : _ref$inputPlaceholder,
|
|
1836
|
-
_ref$showSearchIcon = _ref.showSearchIcon,
|
|
1837
|
-
showSearchIcon = _ref$showSearchIcon === void 0 ? false : _ref$showSearchIcon,
|
|
1838
|
-
className = _ref.className,
|
|
1839
|
-
labelClassName = _ref.labelClassName;
|
|
1840
|
-
var _useState = useState(query != null ? query : ""),
|
|
1841
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
1842
|
-
inputValue = _useState2[0],
|
|
1843
|
-
setInputValue = _useState2[1];
|
|
1844
|
-
var debounceTimer = useRef(null);
|
|
1845
|
-
var _useMapList = useMapList(),
|
|
1846
|
-
query = _useMapList.query,
|
|
1847
|
-
setQuery = _useMapList.setQuery,
|
|
1848
|
-
siteConfig = _useMapList.siteConfig;
|
|
1849
|
-
var handleInputChange = function handleInputChange(e) {
|
|
1850
|
-
setInputValue(e.target.value);
|
|
1851
|
-
if (debounceTimer.current) {
|
|
1852
|
-
clearTimeout(debounceTimer.current);
|
|
1853
|
-
}
|
|
1854
|
-
debounceTimer.current = setTimeout(function () {
|
|
1855
|
-
setQuery(e.target.value);
|
|
1856
|
-
}, 500);
|
|
1857
|
-
};
|
|
1858
|
-
var handleReset = function handleReset() {
|
|
1859
|
-
setInputValue("");
|
|
1860
|
-
setQuery("");
|
|
1861
|
-
};
|
|
1862
|
-
useEffect(function () {
|
|
1863
|
-
if (query == null) {
|
|
1864
|
-
setInputValue("");
|
|
1865
|
-
}
|
|
1866
|
-
}, [query]);
|
|
1867
|
-
inputPlaceholder = siteConfig.searchConfig.placeholder;
|
|
1868
|
-
return /*#__PURE__*/React.createElement(CardFilter, {
|
|
1869
|
-
as: "form",
|
|
1870
|
-
className: className !== null && className !== void 0 ? className : ""
|
|
1871
|
-
}, /*#__PURE__*/React.createElement(CardFilter.Title, {
|
|
1872
|
-
as: "label",
|
|
1873
|
-
icon: "fluent:search-12-filled",
|
|
1874
|
-
className: labelClassName !== null && labelClassName !== void 0 ? labelClassName : ""
|
|
1875
|
-
}, /*#__PURE__*/React.createElement("span", null, siteConfig.searchConfig.label)), /*#__PURE__*/React.createElement("div", {
|
|
1876
|
-
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"
|
|
1877
|
-
}, showSearchIcon && /*#__PURE__*/React.createElement(IconContained, {
|
|
1878
|
-
icon: "fluent:search-12-filled",
|
|
1879
|
-
size: "hc-size-4",
|
|
1880
|
-
className: "hc-mr-2 hc-text-uiAccent/50"
|
|
1881
|
-
}), /*#__PURE__*/React.createElement("input", {
|
|
1882
|
-
type: "text",
|
|
1883
|
-
name: "search",
|
|
1884
|
-
onKeyDown: function onKeyDown(e) {
|
|
1885
|
-
if (e.key === 'Enter') {
|
|
1886
|
-
e.preventDefault();
|
|
1887
|
-
}
|
|
1888
|
-
},
|
|
1889
|
-
placeholder: inputPlaceholder,
|
|
1890
|
-
value: inputValue,
|
|
1891
|
-
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",
|
|
1892
|
-
onChange: handleInputChange
|
|
1893
|
-
}), /*#__PURE__*/React.createElement(Button.Btn, {
|
|
1894
|
-
type: "reset",
|
|
1895
|
-
variant: "icon",
|
|
1896
|
-
size: "sqsm",
|
|
1897
|
-
className: "transition-opacity ".concat(inputValue ? "hc-opacity-100" : "hc-opacity-0 hc-pointer-events-none"),
|
|
1898
|
-
onClick: handleReset
|
|
1899
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
1900
|
-
className: "sr-only"
|
|
1901
|
-
}, "Clear"), /*#__PURE__*/React.createElement(Button.Icon, {
|
|
1902
|
-
icon: "uil:times",
|
|
1903
|
-
className: "hc-text-uiAccent"
|
|
1904
|
-
}))));
|
|
1905
|
-
};
|
|
1906
|
-
|
|
1907
|
-
var isBrowser = typeof window !== 'undefined';
|
|
1908
|
-
if (isBrowser) {
|
|
1909
|
-
window.dataLayer = window.dataLayer || [];
|
|
1910
|
-
}
|
|
1911
|
-
var trackEvent = function trackEvent(category, action, label, value) {
|
|
1912
|
-
if (isBrowser && window.dataLayer) {
|
|
1913
|
-
window.dataLayer.push({
|
|
1914
|
-
'event': 'eventTracking',
|
|
1915
|
-
'category': category,
|
|
1916
|
-
'action': action,
|
|
1917
|
-
'label': label,
|
|
1918
|
-
'value': value
|
|
1919
|
-
});
|
|
1920
|
-
}
|
|
1921
|
-
};
|
|
1922
|
-
|
|
1923
|
-
var _excluded$9 = ["id", "children", "className"],
|
|
1924
|
-
_excluded2 = ["children", "className"],
|
|
1925
|
-
_excluded3 = ["header", "headerClassName", "iconClassName", "children", "className"],
|
|
1926
|
-
_excluded4 = ["children", "className"],
|
|
1927
|
-
_excluded5 = ["children", "className", "bodyClassName"];
|
|
1928
|
-
var Accordion = function Accordion(_ref) {
|
|
1929
|
-
var className = _ref.className,
|
|
1930
|
-
_ref$type = _ref.type,
|
|
1931
|
-
type = _ref$type === void 0 ? 'single' : _ref$type,
|
|
1932
|
-
defaultValue = _ref.defaultValue,
|
|
1933
|
-
_ref$collapsible = _ref.collapsible,
|
|
1934
|
-
collapsible = _ref$collapsible === void 0 ? true : _ref$collapsible,
|
|
1935
|
-
children = _ref.children;
|
|
1936
|
-
return /*#__PURE__*/React.createElement(RadixAccordion.Root, {
|
|
1937
|
-
type: type,
|
|
1938
|
-
value: defaultValue !== null && defaultValue !== void 0 ? defaultValue : null,
|
|
1939
|
-
collapsible: collapsible,
|
|
1940
|
-
className: className !== null && className !== void 0 ? className : '',
|
|
1941
|
-
onValueChange: function onValueChange(value) {
|
|
1942
|
-
return trackEvent('Engagement', 'Open Accordion', value);
|
|
1943
|
-
}
|
|
1944
|
-
}, children);
|
|
1945
|
-
};
|
|
1946
|
-
var AccordionItem = /*#__PURE__*/forwardRef(function (_ref2, forwardedRef) {
|
|
1947
|
-
var id = _ref2.id,
|
|
1948
|
-
children = _ref2.children,
|
|
1949
|
-
className = _ref2.className,
|
|
1950
|
-
props = _objectWithoutProperties(_ref2, _excluded$9);
|
|
1951
|
-
return /*#__PURE__*/React.createElement(RadixAccordion.Item, _extends({
|
|
1952
|
-
ref: forwardedRef,
|
|
1953
|
-
value: id,
|
|
1954
|
-
className: className !== null && className !== void 0 ? className : ''
|
|
1955
|
-
}, props), children);
|
|
1956
|
-
});
|
|
1957
|
-
var AccordionTrigger = /*#__PURE__*/forwardRef(function (_ref3, forwardedRef) {
|
|
1958
|
-
var children = _ref3.children,
|
|
1959
|
-
className = _ref3.className,
|
|
1960
|
-
props = _objectWithoutProperties(_ref3, _excluded2);
|
|
1961
|
-
return /*#__PURE__*/React.createElement(RadixAccordion.Header, {
|
|
1962
|
-
asChild: true
|
|
1963
|
-
}, /*#__PURE__*/React.createElement(RadixAccordion.Trigger, _extends({
|
|
1964
|
-
ref: forwardedRef,
|
|
1965
|
-
className: twMerge('hc-group hc-flex hc-justify-between hc-w-full hc-p-4 hc-font-bold hc-text-left hc-text-uiText focus:hc-outline-none hc-focus-visible:ring hc-focus-visible:hc-ring-uiAccent focus-visible:hc-ring-opacity-75 hover:hc-text-primary focus:hc-text-primary hc-transition data-[state=open]:hc-text-primary', className !== null && className !== void 0 ? className : '')
|
|
1966
|
-
}, props), children, /*#__PURE__*/React.createElement(IconContained, {
|
|
1967
|
-
icon: "uil:angle-down",
|
|
1968
|
-
size: "hc-size-5",
|
|
1969
|
-
className: "hc-transition-transform hc-group-data-[state=open]:!hc-rotate-180",
|
|
1970
|
-
"aria-hidden": "true"
|
|
1971
|
-
})));
|
|
1972
|
-
});
|
|
1973
|
-
var AccordionTriggerHasHeader = /*#__PURE__*/forwardRef(function (_ref4, forwardedRef) {
|
|
1974
|
-
var header = _ref4.header,
|
|
1975
|
-
headerClassName = _ref4.headerClassName,
|
|
1976
|
-
iconClassName = _ref4.iconClassName,
|
|
1977
|
-
children = _ref4.children,
|
|
1978
|
-
className = _ref4.className,
|
|
1979
|
-
props = _objectWithoutProperties(_ref4, _excluded3);
|
|
1980
|
-
return /*#__PURE__*/React.createElement(RadixAccordion.Header, {
|
|
1981
|
-
className: twMerge('hc-group hc-flex hc-items-start hc-justify-between hc-w-full hc-p-4 hc-pr-3 hc-font-bold hc-text-left hc-text-uiText focus:hc-outline-none focus-visible:hc-ring focus-visible:hc-ring-uiAccent focus-visible:hc-ring-opacity-75 hover:hc-text-primary focus:hc-text-primary hc-transition data-[state=open]:hc-text-primary', headerClassName !== null && headerClassName !== void 0 ? headerClassName : '')
|
|
1982
|
-
}, /*#__PURE__*/React.createElement(RadixAccordion.Trigger, _extends({
|
|
1983
|
-
ref: forwardedRef,
|
|
1984
|
-
className: twMerge('hc-flex hc-items-center hc-justify-between hc-w-full', className !== null && className !== void 0 ? className : '')
|
|
1985
|
-
}, props), children, /*#__PURE__*/React.createElement(IconContained, {
|
|
1986
|
-
icon: "uil:angle-down",
|
|
1987
|
-
size: "w-5 h-5",
|
|
1988
|
-
className: twMerge('hc-transition-transform group-data-[state=open]:!hc-hc-rotate-180', iconClassName !== null && iconClassName !== void 0 ? iconClassName : ''),
|
|
1989
|
-
"aria-hidden": "true"
|
|
1990
|
-
}), header));
|
|
1991
|
-
});
|
|
1992
|
-
var AccordionTriggerBlank = /*#__PURE__*/forwardRef(function (_ref5, forwardedRef) {
|
|
1993
|
-
var children = _ref5.children;
|
|
1994
|
-
_ref5.className;
|
|
1995
|
-
var props = _objectWithoutProperties(_ref5, _excluded4);
|
|
1996
|
-
return /*#__PURE__*/React.createElement(RadixAccordion.Header, {
|
|
1997
|
-
asChild: true
|
|
1998
|
-
}, /*#__PURE__*/React.createElement(RadixAccordion.Trigger, _extends({
|
|
1999
|
-
asChild: true,
|
|
2000
|
-
ref: forwardedRef
|
|
2001
|
-
}, props), children));
|
|
2002
|
-
});
|
|
2003
|
-
var AccordionContent = /*#__PURE__*/forwardRef(function (_ref6, forwardedRef) {
|
|
2004
|
-
var children = _ref6.children,
|
|
2005
|
-
className = _ref6.className,
|
|
2006
|
-
bodyClassName = _ref6.bodyClassName,
|
|
2007
|
-
props = _objectWithoutProperties(_ref6, _excluded5);
|
|
2008
|
-
return /*#__PURE__*/React.createElement(RadixAccordion.Content, _extends({
|
|
2009
|
-
ref: forwardedRef,
|
|
2010
|
-
className: twMerge('data-[state=open]:hc-animate-slideDown hc-data-[state=closed]:hc-animate-slideUp hc-overflow-hidden', className !== null && className !== void 0 ? className : '')
|
|
2011
|
-
}, props), /*#__PURE__*/React.createElement("div", {
|
|
2012
|
-
className: twMerge('p-4 pt-0.5', bodyClassName !== null && bodyClassName !== void 0 ? bodyClassName : '')
|
|
2013
|
-
}, children));
|
|
2014
|
-
});
|
|
2015
|
-
Accordion.Item = AccordionItem;
|
|
2016
|
-
Accordion.Trigger = AccordionTrigger;
|
|
2017
|
-
Accordion.Trigger.Blank = AccordionTriggerBlank;
|
|
2018
|
-
Accordion.Trigger.HasHeader = AccordionTriggerHasHeader;
|
|
2019
|
-
Accordion.Content = AccordionContent;
|
|
2020
|
-
AccordionItem.displayName = 'AccordionItem';
|
|
2021
|
-
AccordionTrigger.displayName = 'AccordionTrigger';
|
|
2022
|
-
AccordionTriggerBlank.displayName = 'AccordionTriggerBlank';
|
|
2023
|
-
AccordionTriggerHasHeader.displayName = 'AccordionTriggerHasHeader';
|
|
2024
|
-
AccordionContent.displayName = 'AccordionContent';
|
|
2025
|
-
|
|
2026
|
-
var _excluded$8 = ["className", "item", "type", "itemKey", "hasCount", "field", "selectedFilters", "setSelectedFilters"];
|
|
2027
|
-
var FilterItem = function FilterItem(_ref) {
|
|
2028
|
-
var _selectedFilters$fiel;
|
|
2029
|
-
var className = _ref.className,
|
|
2030
|
-
item = _ref.item,
|
|
2031
|
-
_ref$type = _ref.type,
|
|
2032
|
-
type = _ref$type === void 0 ? 'checkbox' : _ref$type,
|
|
2033
|
-
_ref$itemKey = _ref.itemKey,
|
|
2034
|
-
itemKey = _ref$itemKey === void 0 ? null : _ref$itemKey,
|
|
2035
|
-
_ref$hasCount = _ref.hasCount,
|
|
2036
|
-
hasCount = _ref$hasCount === void 0 ? true : _ref$hasCount,
|
|
2037
|
-
field = _ref.field,
|
|
2038
|
-
selectedFilters = _ref.selectedFilters,
|
|
2039
|
-
setSelectedFilters = _ref.setSelectedFilters,
|
|
2040
|
-
rest = _objectWithoutProperties(_ref, _excluded$8);
|
|
2041
|
-
var itemName = item.name ? item.name : item;
|
|
2042
|
-
itemKey = itemKey === null ? itemName : itemKey;
|
|
2043
|
-
var isActive = selectedFilters != undefined && !!((_selectedFilters$fiel = selectedFilters[field]) !== null && _selectedFilters$fiel !== void 0 && _selectedFilters$fiel[itemKey]);
|
|
2044
|
-
var changeHandler = function changeHandler() {
|
|
2045
|
-
setSelectedFilters(function (prevFilters) {
|
|
2046
|
-
var updatedFilters = _objectSpread2({}, prevFilters);
|
|
2047
|
-
if (!isActive) {
|
|
2048
|
-
if (!updatedFilters[field]) {
|
|
2049
|
-
updatedFilters[field] = {};
|
|
2050
|
-
}
|
|
2051
|
-
updatedFilters[field][itemKey] = true;
|
|
2052
|
-
return updatedFilters;
|
|
2053
|
-
}
|
|
2054
|
-
delete updatedFilters[field][itemKey];
|
|
2055
|
-
if (Object.keys(updatedFilters[field]).length === 0) {
|
|
2056
|
-
delete updatedFilters[field];
|
|
2057
|
-
}
|
|
2058
|
-
return updatedFilters;
|
|
2059
|
-
});
|
|
2060
|
-
};
|
|
2061
|
-
var _useState = useState(isActive),
|
|
2062
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
2063
|
-
activeItem = _useState2[0],
|
|
2064
|
-
setActiveItem = _useState2[1];
|
|
2065
|
-
useEffect(function () {
|
|
2066
|
-
var _Object$keys;
|
|
2067
|
-
if (selectedFilters && selectedFilters[field] && ((_Object$keys = Object.keys(selectedFilters[field])) === null || _Object$keys === void 0 ? void 0 : _Object$keys.length) > 0) return;else if (activeItem === true) {
|
|
2068
|
-
setActiveItem(false);
|
|
2069
|
-
}
|
|
2070
|
-
}, [selectedFilters]);
|
|
2071
|
-
return /*#__PURE__*/React.createElement("label", _extends({
|
|
2072
|
-
className: "\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 hc-hover:bg-uiAccent/5\n\t\t\t\t".concat(className !== null && className !== void 0 ? className : "", "\n\t\t\t")
|
|
2073
|
-
}, rest), /*#__PURE__*/React.createElement("input", {
|
|
2074
|
-
id: itemKey,
|
|
2075
|
-
name: field,
|
|
2076
|
-
disabled: item.count == 0,
|
|
2077
|
-
value: itemName,
|
|
2078
|
-
type: type,
|
|
2079
|
-
className: "hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30 hc-transition-colors hc-rounded-sm",
|
|
2080
|
-
checked: activeItem,
|
|
2081
|
-
onChange: function onChange() {
|
|
2082
|
-
setActiveItem(!activeItem);
|
|
2083
|
-
changeHandler();
|
|
2084
|
-
}
|
|
2085
|
-
}), /*#__PURE__*/React.createElement("span", {
|
|
2086
|
-
className: "font-medium"
|
|
2087
|
-
}, itemName), hasCount && /*#__PURE__*/React.createElement("span", {
|
|
2088
|
-
className: "hc-inline-block hc-mt-1 hc-ml-auto hc-text-xs hc-leading-none hc-text-primary"
|
|
2089
|
-
}, "(", item.count, ")"));
|
|
2090
|
-
};
|
|
2091
|
-
|
|
2092
|
-
var _excluded$7 = ["className", "activeItemsCount"];
|
|
2093
|
-
var ButtonItemsPill = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
2094
|
-
_ref.className;
|
|
2095
|
-
var activeItemsCount = _ref.activeItemsCount,
|
|
2096
|
-
props = _objectWithoutProperties(_ref, _excluded$7);
|
|
2097
|
-
return /*#__PURE__*/React.createElement(Button.Btn, _extends({
|
|
2098
|
-
ref: ref,
|
|
2099
|
-
size: "none",
|
|
2100
|
-
variant: "none",
|
|
2101
|
-
className: "hc-relative hc-z-[2] hc-group hc-inline-flex hc-items-center hc-gap-px hc-ml-auto hc-mr-1.5 hc-pl-1.5 hc-pr-1 hc-py-0.5 hc-rounded hc-bg-primary/10 hc-text-xs hc-font-bold hc-text-primary hc-ring-1 hc-ring-inset hc-ring-primary/20"
|
|
2102
|
-
}, props), activeItemsCount > 9 ? '9+' : activeItemsCount, /*#__PURE__*/React.createElement(Button.Icon, {
|
|
2103
|
-
icon: "uil:times",
|
|
2104
|
-
size: "hc-size-3.5"
|
|
2105
|
-
}));
|
|
2106
|
-
});
|
|
2107
|
-
ButtonItemsPill.displayName = 'ButtonItemsPill';
|
|
2108
|
-
|
|
2109
|
-
var AccordionFilterItem = /*#__PURE__*/memo(function (_ref) {
|
|
2110
|
-
var filter = _ref.filter,
|
|
2111
|
-
setDefaultValue = _ref.setDefaultValue,
|
|
2112
|
-
setSelectedFilters = _ref.setSelectedFilters,
|
|
2113
|
-
selectedFilters = _ref.selectedFilters;
|
|
2114
|
-
var fieldKey = filter.id;
|
|
2115
|
-
var activeItemsCount = selectedFilters != null && selectedFilters[fieldKey] ? Object.keys(selectedFilters[fieldKey]).length : 0;
|
|
2116
|
-
var handleClearFilters = function handleClearFilters() {
|
|
2117
|
-
setSelectedFilters(function (prevFilters) {
|
|
2118
|
-
var updatedFilters = _objectSpread2({}, prevFilters);
|
|
2119
|
-
delete updatedFilters[fieldKey];
|
|
2120
|
-
return updatedFilters;
|
|
2121
|
-
});
|
|
2122
|
-
};
|
|
2123
|
-
return /*#__PURE__*/React.createElement(Accordion.Item, {
|
|
2124
|
-
key: filter.id,
|
|
2125
|
-
id: filter.id
|
|
2126
|
-
}, /*#__PURE__*/React.createElement(Accordion.Trigger.HasHeader, {
|
|
2127
|
-
onClick: function onClick() {
|
|
2128
|
-
return setDefaultValue(filter.id);
|
|
2129
|
-
},
|
|
2130
|
-
className: "hc-stretched-link hc-text-left",
|
|
2131
|
-
iconClassName: "hc-order-last",
|
|
2132
|
-
headerClassName: "hc-relative hc-py-2 hc-rounded hc-border hc-border-uiAccent/20 hc-bg-white hc-text-sm hc-transition data-[state=open]:hc-border-b-transparent data-[state=open]:hc-rounded-b-none",
|
|
2133
|
-
header: activeItemsCount > 0 && /*#__PURE__*/React.createElement(ButtonItemsPill, {
|
|
2134
|
-
activeItemsCount: activeItemsCount,
|
|
2135
|
-
onClick: handleClearFilters
|
|
2136
|
-
})
|
|
2137
|
-
}, filter.title), /*#__PURE__*/React.createElement(Accordion.Content, {
|
|
2138
|
-
bodyClassName: "hc-px-2 hc-py-1 hc-bg-white hc-rounded-b hc-border hc-border-uiAccent/20 hc-border-t-0 hc-max-h-[20vh] md:hc-max-h-[25vh] hc-overflow-auto"
|
|
2139
|
-
}, filter.items.sort().map(function (item) {
|
|
2140
|
-
return /*#__PURE__*/React.createElement(FilterItem, {
|
|
2141
|
-
key: item.name,
|
|
2142
|
-
item: item,
|
|
2143
|
-
field: filter.id,
|
|
2144
|
-
selectedFilters: selectedFilters,
|
|
2145
|
-
setSelectedFilters: setSelectedFilters
|
|
2146
|
-
});
|
|
2147
|
-
})));
|
|
2148
|
-
});
|
|
2149
|
-
AccordionFilterItem.displayName = 'AccordionItem';
|
|
2150
|
-
|
|
2151
|
-
var Loading = function Loading(_ref) {
|
|
2152
|
-
_ref.color;
|
|
2153
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
2154
|
-
className: "hc-flex hc-items-center hc-justify-center hc-w-full hc-h-full"
|
|
2155
|
-
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
2156
|
-
icon: "ph:spinner",
|
|
2157
|
-
className: "hc-animate-spin hc-text-gray-300",
|
|
2158
|
-
width: "40",
|
|
2159
|
-
height: "40"
|
|
2160
|
-
}));
|
|
2161
|
-
};
|
|
2162
|
-
|
|
2163
|
-
var AccordionFilters = function AccordionFilters(_ref) {
|
|
2164
|
-
var className = _ref.className,
|
|
2165
|
-
defaultValue = _ref.defaultValue,
|
|
2166
|
-
setDefaultValue = _ref.setDefaultValue,
|
|
2167
|
-
setLocation = _ref.setLocation,
|
|
2168
|
-
setSelectedListItem = _ref.setSelectedListItem;
|
|
2169
|
-
var _useMapList = useMapList(),
|
|
2170
|
-
filterOptions = _useMapList.filterOptions,
|
|
2171
|
-
selectedFilters = _useMapList.selectedFilters,
|
|
2172
|
-
_setSelectedFilters = _useMapList.setSelectedFilters;
|
|
2173
|
-
_useMapList.favorites;
|
|
2174
|
-
_useMapList.filterByFavorites;
|
|
2175
|
-
_useMapList.setFilterByFavorites;
|
|
2176
|
-
return /*#__PURE__*/React.createElement(CardFilter, {
|
|
2177
|
-
className: className !== null && className !== void 0 ? className : ""
|
|
2178
|
-
}, /*#__PURE__*/React.createElement(CardFilter.Title, {
|
|
2179
|
-
icon: "fa-solid:sliders-h"
|
|
2180
|
-
}, /*#__PURE__*/React.createElement("span", null, "Filter ", /*#__PURE__*/React.createElement("span", {
|
|
2181
|
-
className: "md:hc-hidden lg:hc-inline"
|
|
2182
|
-
}, "your search"))), /*#__PURE__*/React.createElement(Accordion, {
|
|
2183
|
-
defaultValue: defaultValue,
|
|
2184
|
-
className: "hc-space-y-4"
|
|
2185
|
-
}, !(filterOptions !== null && filterOptions !== void 0 && filterOptions.filters) && /*#__PURE__*/React.createElement(Accordion.Item, null, /*#__PURE__*/React.createElement(Loading, null)), (filterOptions === null || filterOptions === void 0 ? void 0 : filterOptions.filters) && (filterOptions === null || filterOptions === void 0 ? void 0 : filterOptions.filters.map(function (filter) {
|
|
2186
|
-
return /*#__PURE__*/React.createElement(AccordionFilterItem, {
|
|
2187
|
-
key: filter.id,
|
|
2188
|
-
filter: filter,
|
|
2189
|
-
setDefaultValue: setDefaultValue,
|
|
2190
|
-
selectedFilters: selectedFilters,
|
|
2191
|
-
setSelectedFilters: function setSelectedFilters(prevFilters) {
|
|
2192
|
-
_setSelectedFilters(prevFilters);
|
|
2193
|
-
setLocation(null);
|
|
2194
|
-
setSelectedListItem(null);
|
|
2195
|
-
}
|
|
2196
|
-
});
|
|
2197
|
-
}))));
|
|
2198
|
-
};
|
|
2199
|
-
|
|
2200
|
-
var MapContext = /*#__PURE__*/createContext();
|
|
2201
|
-
var useMap = function useMap() {
|
|
2202
|
-
var context = useContext(MapContext);
|
|
2203
|
-
if (!context) {
|
|
2204
|
-
throw new Error("useMap must be used within a MapProvider");
|
|
2205
|
-
}
|
|
2206
|
-
return context;
|
|
2207
|
-
};
|
|
2208
|
-
var MapProvider = function MapProvider(_ref) {
|
|
2209
|
-
var _getStorageObject;
|
|
2210
|
-
var children = _ref.children,
|
|
2211
|
-
resetFilters = _ref.resetFilters;
|
|
2212
|
-
var _useState = useState(getStorageObject('selectedListItem')),
|
|
2213
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
2214
|
-
selectedListItem = _useState2[0],
|
|
2215
|
-
setSelectedListItem = _useState2[1];
|
|
2216
|
-
var _useState3 = useState(getStorageObject('location')),
|
|
2217
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
2218
|
-
location = _useState4[0],
|
|
2219
|
-
setLocation = _useState4[1];
|
|
2220
|
-
var _useState5 = useState(getStorageObject("center", {
|
|
2221
|
-
lat: 39.8283,
|
|
2222
|
-
lng: -98.5795
|
|
2223
|
-
})),
|
|
2224
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
2225
|
-
center = _useState6[0],
|
|
2226
|
-
setCenter = _useState6[1];
|
|
2227
|
-
var _useState7 = useState(getStorageObject("zoom", 10)),
|
|
2228
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
2229
|
-
zoom = _useState8[0],
|
|
2230
|
-
setZoom = _useState8[1];
|
|
2231
|
-
var _useState9 = useState(getStorageObject('commuteLocation')),
|
|
2232
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
2233
|
-
commuteLocation = _useState10[0],
|
|
2234
|
-
setCommuteLocation = _useState10[1];
|
|
2235
|
-
var _useState11 = useState([]),
|
|
2236
|
-
_useState12 = _slicedToArray(_useState11, 2),
|
|
2237
|
-
selectedPlaces = _useState12[0],
|
|
2238
|
-
setSelectedPlaces = _useState12[1];
|
|
2239
|
-
var _useState13 = useState(false),
|
|
2240
|
-
_useState14 = _slicedToArray(_useState13, 2),
|
|
2241
|
-
mapInteracted = _useState14[0],
|
|
2242
|
-
setMapInteracted = _useState14[1];
|
|
2243
|
-
var _useState15 = useState((_getStorageObject = getStorageObject('selectedListItem')) !== null && _getStorageObject !== void 0 ? _getStorageObject : {
|
|
2244
|
-
id: "defaultId"
|
|
2245
|
-
}),
|
|
2246
|
-
_useState16 = _slicedToArray(_useState15, 1),
|
|
2247
|
-
firstLoadListItem = _useState16[0];
|
|
2248
|
-
var _useState17 = useState(null),
|
|
2249
|
-
_useState18 = _slicedToArray(_useState17, 2),
|
|
2250
|
-
travelTime = _useState18[0],
|
|
2251
|
-
setTravelTime = _useState18[1];
|
|
2252
|
-
var userSetZoom = useRef(true);
|
|
2253
|
-
useEffect(function () {
|
|
2254
|
-
setStorageObject("commuteLocation", commuteLocation);
|
|
2255
|
-
if (!commuteLocation) {
|
|
2256
|
-
setTravelTime(null);
|
|
2257
|
-
}
|
|
2258
|
-
}, [commuteLocation]);
|
|
2259
|
-
useEffect(function () {
|
|
2260
|
-
setStorageObject("selectedListItem", selectedListItem);
|
|
2261
|
-
}, [selectedListItem]);
|
|
2262
|
-
useEffect(function () {
|
|
2263
|
-
localStorage.setItem("zoom", zoom);
|
|
2264
|
-
}, [zoom]);
|
|
2265
|
-
useEffect(function () {
|
|
2266
|
-
if (location == null) {
|
|
2267
|
-
localStorage.removeItem("location");
|
|
2268
|
-
} else {
|
|
2269
|
-
setStorageObject("location", location);
|
|
2270
|
-
}
|
|
2271
|
-
}, [location]);
|
|
2272
|
-
useEffect(function () {
|
|
2273
|
-
setStorageObject("center", center);
|
|
2274
|
-
}, [center]);
|
|
2275
|
-
var selectItem = function selectItem(item, itemLocation, zoom, center) {
|
|
2276
|
-
setSelectedListItem(item);
|
|
2277
|
-
if (mapInteracted === false && itemLocation != null) {
|
|
2278
|
-
setLocation(itemLocation);
|
|
2279
|
-
}
|
|
2280
|
-
if (mapInteracted === false || itemLocation != null) {
|
|
2281
|
-
setLocation(itemLocation);
|
|
2282
|
-
setCenter(center);
|
|
2283
|
-
}
|
|
2284
|
-
if (mapInteracted === false) {
|
|
2285
|
-
setZoom(zoom);
|
|
2286
|
-
}
|
|
2287
|
-
};
|
|
2288
|
-
var filterReset = function filterReset() {
|
|
2289
|
-
setSelectedPlaces({});
|
|
2290
|
-
setSelectedListItem(null);
|
|
2291
|
-
setLocation(null);
|
|
2292
|
-
setZoom(8);
|
|
2293
|
-
setMapInteracted(false);
|
|
2294
|
-
};
|
|
2295
|
-
if (resetFilters === true) {
|
|
2296
|
-
filterReset();
|
|
2297
|
-
}
|
|
2298
|
-
var selectLocationEntity = function selectLocationEntity(location) {
|
|
2299
|
-
localStorage.removeItem("selectedListItem");
|
|
2300
|
-
setTimeout(function () {
|
|
2301
|
-
return setLocation(location);
|
|
2302
|
-
}, 200);
|
|
2303
|
-
setSelectedListItem(null);
|
|
2304
|
-
};
|
|
2305
|
-
return /*#__PURE__*/React.createElement(MapContext.Provider, {
|
|
2306
|
-
value: _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({
|
|
2307
|
-
selectedListItem: selectedListItem,
|
|
2308
|
-
setSelectedListItem: setSelectedListItem,
|
|
2309
|
-
location: location,
|
|
2310
|
-
center: center,
|
|
2311
|
-
zoom: zoom,
|
|
2312
|
-
setZoom: setZoom,
|
|
2313
|
-
selectItem: selectItem,
|
|
2314
|
-
commuteLocation: commuteLocation,
|
|
2315
|
-
setCommuteLocation: setCommuteLocation,
|
|
2316
|
-
setSelectedPlaces: setSelectedPlaces,
|
|
2317
|
-
selectedPlaces: selectedPlaces,
|
|
2318
|
-
selectLocationEntity: selectLocationEntity,
|
|
2319
|
-
setLocation: setLocation,
|
|
2320
|
-
setMapInteracted: setMapInteracted,
|
|
2321
|
-
mapInteracted: mapInteracted,
|
|
2322
|
-
userSetZoom: userSetZoom
|
|
2323
|
-
}, "setLocation", setLocation), "location", location), "firstLoadListItem", firstLoadListItem), "travelTime", travelTime), "setTravelTime", setTravelTime), "filterReset", filterReset)
|
|
2324
|
-
}, children);
|
|
2325
|
-
};
|
|
2326
|
-
|
|
2327
|
-
var FilterCommute = function FilterCommute(_ref) {
|
|
2328
|
-
var className = _ref.className;
|
|
2329
|
-
var _usePlacesAutocomplet = usePlacesAutocomplete(),
|
|
2330
|
-
ready = _usePlacesAutocomplet.ready;
|
|
2331
|
-
_usePlacesAutocomplet.value;
|
|
2332
|
-
var _usePlacesAutocomplet2 = _usePlacesAutocomplet.suggestions,
|
|
2333
|
-
status = _usePlacesAutocomplet2.status,
|
|
2334
|
-
data = _usePlacesAutocomplet2.data,
|
|
2335
|
-
setValue = _usePlacesAutocomplet.setValue,
|
|
2336
|
-
clearSuggestions = _usePlacesAutocomplet.clearSuggestions;
|
|
2337
|
-
var _useState = useState(getStorageItem('selectedCommute', '')),
|
|
2338
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
2339
|
-
selected = _useState2[0],
|
|
2340
|
-
setSelected = _useState2[1];
|
|
2341
|
-
var inputRef = useRef(null);
|
|
2342
|
-
var _useMapList = useMapList(),
|
|
2343
|
-
setCommuteLocation = _useMapList.setCommuteLocation,
|
|
2344
|
-
commuteLocation = _useMapList.commuteLocation;
|
|
2345
|
-
var _useState3 = useState(getStorageItem('isCurrentLocation', false)),
|
|
2346
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
2347
|
-
isCurrentLocation = _useState4[0],
|
|
2348
|
-
setIsCurrentLocation = _useState4[1];
|
|
2349
|
-
useEffect(function () {
|
|
2350
|
-
if (commuteLocation !== null && commuteLocation != '') return;
|
|
2351
|
-
setIsCurrentLocation(false);
|
|
2352
|
-
localStorage.removeItem('isCurrentLocation');
|
|
2353
|
-
localStorage.removeItem('selectedCommute');
|
|
2354
|
-
setSelected("");
|
|
2355
|
-
}, [commuteLocation]);
|
|
2356
|
-
var handleSelect = /*#__PURE__*/function () {
|
|
2357
|
-
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(val) {
|
|
2358
|
-
var isCurrLocation,
|
|
2359
|
-
results,
|
|
2360
|
-
_yield$getLatLng,
|
|
2361
|
-
lat,
|
|
2362
|
-
lng,
|
|
2363
|
-
_args = arguments;
|
|
2364
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
2365
|
-
while (1) switch (_context.prev = _context.next) {
|
|
2366
|
-
case 0:
|
|
2367
|
-
isCurrLocation = _args.length > 1 && _args[1] !== undefined ? _args[1] : false;
|
|
2368
|
-
setValue(val, false);
|
|
2369
|
-
setSelected(val);
|
|
2370
|
-
localStorage.setItem('selectedCommute', val);
|
|
2371
|
-
clearSuggestions();
|
|
2372
|
-
if (!isCurrLocation) {
|
|
2373
|
-
_context.next = 7;
|
|
2374
|
-
break;
|
|
2375
|
-
}
|
|
2376
|
-
return _context.abrupt("return");
|
|
2377
|
-
case 7:
|
|
2378
|
-
_context.prev = 7;
|
|
2379
|
-
_context.next = 10;
|
|
2380
|
-
return getGeocode({
|
|
2381
|
-
address: val
|
|
2382
|
-
});
|
|
2383
|
-
case 10:
|
|
2384
|
-
results = _context.sent;
|
|
2385
|
-
_context.next = 13;
|
|
2386
|
-
return getLatLng(results[0]);
|
|
2387
|
-
case 13:
|
|
2388
|
-
_yield$getLatLng = _context.sent;
|
|
2389
|
-
lat = _yield$getLatLng.lat;
|
|
2390
|
-
lng = _yield$getLatLng.lng;
|
|
2391
|
-
setCommuteLocation({
|
|
2392
|
-
lat: lat,
|
|
2393
|
-
lng: lng
|
|
2394
|
-
});
|
|
2395
|
-
_context.next = 21;
|
|
2396
|
-
break;
|
|
2397
|
-
case 19:
|
|
2398
|
-
_context.prev = 19;
|
|
2399
|
-
_context.t0 = _context["catch"](7);
|
|
2400
|
-
case 21:
|
|
2401
|
-
case "end":
|
|
2402
|
-
return _context.stop();
|
|
2403
|
-
}
|
|
2404
|
-
}, _callee, null, [[7, 19]]);
|
|
2405
|
-
}));
|
|
2406
|
-
return function handleSelect(_x) {
|
|
2407
|
-
return _ref2.apply(this, arguments);
|
|
2408
|
-
};
|
|
2409
|
-
}();
|
|
2410
|
-
var fetchLocation = function fetchLocation() {
|
|
2411
|
-
if (!navigator.geolocation) {
|
|
2412
|
-
console.error("Geolocation is not supported by this browser.");
|
|
2413
|
-
return;
|
|
2414
|
-
}
|
|
2415
|
-
navigator.geolocation.getCurrentPosition(function (position) {
|
|
2416
|
-
setCommuteLocation({
|
|
2417
|
-
lat: position.coords.latitude,
|
|
2418
|
-
lng: position.coords.longitude
|
|
2419
|
-
});
|
|
2420
|
-
handleSelect("Current Location");
|
|
2421
|
-
}, function (error) {
|
|
2422
|
-
console.error("Error fetching location", error);
|
|
2423
|
-
});
|
|
2424
|
-
};
|
|
2425
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
2426
|
-
className: "relative ".concat(className !== null && className !== void 0 ? className : "")
|
|
2427
|
-
}, /*#__PURE__*/React.createElement("label", {
|
|
2428
|
-
htmlFor: "commute",
|
|
2429
|
-
className: "hc-flex hc-items-center hc-gap-2 hc-mb-2 hc-text-xs hc-uppercase hc-font-bold hc-text-uiText"
|
|
2430
|
-
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
2431
|
-
icon: "ri:pin-distance-fill",
|
|
2432
|
-
size: "hc-size-5",
|
|
2433
|
-
className: "hc-text-uiAccent/30"
|
|
2434
|
-
}), /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement("span", {
|
|
2435
|
-
className: "md:hc-hidden lg:hc-inline"
|
|
2436
|
-
}, "Calculate your"), " commute")), /*#__PURE__*/React.createElement(Combobox, {
|
|
2437
|
-
value: selected,
|
|
2438
|
-
onChange: handleSelect
|
|
2439
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
2440
|
-
className: "hc-relative hc-mt-1"
|
|
2441
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
2442
|
-
className: "hc-relative hc-flex hc-items-center hc-w-full hc-pr-2 hc-cursor-default hc-overflow-hidden hc-rounded hc-bg-white hc-text-left hc-border hc-border-uiAccent/20 focus-within:hc-ring-1 focus-within:hc-ring-uiAccent focus:hc-outline-none"
|
|
2443
|
-
}, /*#__PURE__*/React.createElement(Combobox.Input, {
|
|
2444
|
-
className: "hc-w-full hc-border-none hc-py-2 hc-pl-4 hc-pr-1 hc-text-sm hc-leading-5 hc-text-gray-900 focus:hc-ring-0 placeholder:hc-text-gray-400",
|
|
2445
|
-
onChange: function onChange(e) {
|
|
2446
|
-
setValue(e.target.value);
|
|
2447
|
-
setSelected(e.target.value);
|
|
2448
|
-
},
|
|
2449
|
-
value: selected,
|
|
2450
|
-
disabled: !ready,
|
|
2451
|
-
placeholder: "Starting point",
|
|
2452
|
-
ref: inputRef
|
|
2453
|
-
}), /*#__PURE__*/React.createElement(Button.Btn, {
|
|
2454
|
-
variant: "icon",
|
|
2455
|
-
size: "sqsm",
|
|
2456
|
-
onClick: function onClick() {
|
|
2457
|
-
setIsCurrentLocation(!isCurrentLocation);
|
|
2458
|
-
localStorage.setItem('isCurrentLocation', !isCurrentLocation);
|
|
2459
|
-
if (isCurrentLocation || commuteLocation) {
|
|
2460
|
-
setCommuteLocation("");
|
|
2461
|
-
setSelected("");
|
|
2462
|
-
} else if (!commuteLocation) {
|
|
2463
|
-
fetchLocation();
|
|
2464
|
-
}
|
|
2465
|
-
},
|
|
2466
|
-
className: ""
|
|
2467
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
2468
|
-
className: "hc-sr-only"
|
|
2469
|
-
}, "Use your location"), commuteLocation ? /*#__PURE__*/React.createElement(IconContained, {
|
|
2470
|
-
icon: "mdi:times"
|
|
2471
|
-
}) : /*#__PURE__*/React.createElement(Button.Icon, {
|
|
2472
|
-
className: isCurrentLocation ? 'hc-text-blue-500' : 'hc-text-current',
|
|
2473
|
-
icon: "mdi:hc-my-location"
|
|
2474
|
-
}))), /*#__PURE__*/React.createElement(Transition, {
|
|
2475
|
-
as: Fragment,
|
|
2476
|
-
leave: "hc-transition hc-ease-in hc-duration-100",
|
|
2477
|
-
leaveFrom: "hc-opacity-100",
|
|
2478
|
-
leaveTo: "hc-opacity-0",
|
|
2479
|
-
afterLeave: clearSuggestions
|
|
2480
|
-
}, /*#__PURE__*/React.createElement(Combobox.Options, {
|
|
2481
|
-
className: "hc-absolute hc-z-20 hc-mt-1 hc-max-h-60 hc-w-full hc-overflow-auto hc-rounded hc-bg-white hc-py-1 hc-text-base hc-shadow hc-ring-1 hc-ring-uiAccent/10 focus:hc-outline-none sm:hc-text-sm"
|
|
2482
|
-
}, status === "OK" && data.map(function (data) {
|
|
2483
|
-
return /*#__PURE__*/React.createElement(Combobox.Option, {
|
|
2484
|
-
key: data.place_id,
|
|
2485
|
-
value: data.description,
|
|
2486
|
-
className: function className(_ref3) {
|
|
2487
|
-
var active = _ref3.active;
|
|
2488
|
-
return "hc-relative hc-cursor-default hc-select-none hc-px-4 hc-py-2 ".concat(active ? "hc-bg-primary hc-text-white" : "hc-text-uiText");
|
|
2489
|
-
}
|
|
2490
|
-
}, function (_ref4) {
|
|
2491
|
-
var selected = _ref4.selected;
|
|
2492
|
-
_ref4.active;
|
|
2493
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
2494
|
-
className: "hc-block hc-truncate ".concat(selected ? "hc-font-bold" : "hc-font-medium")
|
|
2495
|
-
}, data.description);
|
|
2496
|
-
});
|
|
2497
|
-
}))))));
|
|
2498
|
-
};
|
|
2499
|
-
|
|
2500
|
-
var _excluded$6 = ["className", "item", "field"];
|
|
2501
|
-
var RadioItem = function RadioItem(_ref) {
|
|
2502
|
-
var className = _ref.className,
|
|
2503
|
-
item = _ref.item,
|
|
2504
|
-
field = _ref.field,
|
|
2505
|
-
rest = _objectWithoutProperties(_ref, _excluded$6);
|
|
2506
|
-
var _useMap = useMap(),
|
|
2507
|
-
selectedPlaces = _useMap.selectedPlaces,
|
|
2508
|
-
setSelectedPlaces = _useMap.setSelectedPlaces;
|
|
2509
|
-
var chosenPlace = item.key.toLowerCase();
|
|
2510
|
-
var isActive = selectedPlaces.includes(chosenPlace);
|
|
2511
|
-
var changeHandler = function changeHandler() {
|
|
2512
|
-
setSelectedPlaces([isActive ? '' : chosenPlace]);
|
|
2513
|
-
};
|
|
2514
|
-
return /*#__PURE__*/React.createElement("label", _extends({
|
|
2515
|
-
key: item.key,
|
|
2516
|
-
className: "\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\n\t\t\t\t".concat(item.count === 0 ? 'hc-text-uiDisabled hc-cursor-not-allowed' : 'hover:hc-bg-uiAccent/5', "\n\t\t\t\t").concat(className !== null && className !== void 0 ? className : "", "\n\t\t\t")
|
|
2517
|
-
}, rest), /*#__PURE__*/React.createElement("input", {
|
|
2518
|
-
key: item.key,
|
|
2519
|
-
id: item.Key,
|
|
2520
|
-
name: field,
|
|
2521
|
-
value: item.key,
|
|
2522
|
-
type: "radio",
|
|
2523
|
-
className: "hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30 hc-transition-colors hc-rounded-full",
|
|
2524
|
-
checked: isActive,
|
|
2525
|
-
onClick: function onClick() {
|
|
2526
|
-
changeHandler();
|
|
2527
|
-
},
|
|
2528
|
-
onChange: function onChange() {}
|
|
2529
|
-
}), /*#__PURE__*/React.createElement("span", {
|
|
2530
|
-
className: "hc-font-medium"
|
|
2531
|
-
}, item.key), isActive && /*#__PURE__*/React.createElement("div", {
|
|
2532
|
-
className: "hc-w-full hc-unselect-div"
|
|
2533
|
-
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
2534
|
-
className: "hc-float-right",
|
|
2535
|
-
icon: "mdi:times"
|
|
2536
|
-
})));
|
|
2537
|
-
};
|
|
2538
|
-
|
|
2539
|
-
var FilterPointsOfInterest = function FilterPointsOfInterest(_ref) {
|
|
2540
|
-
var _ref$title = _ref.title,
|
|
2541
|
-
title = _ref$title === void 0 ? "Points of interest" : _ref$title,
|
|
2542
|
-
pointsOfInterest = _ref.pointsOfInterest,
|
|
2543
|
-
setDefaultValue = _ref.setDefaultValue,
|
|
2544
|
-
className = _ref.className,
|
|
2545
|
-
defaultValue = _ref.defaultValue;
|
|
2546
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
2547
|
-
className: "\n\t\t\t\thc-relative\n\t\t\t\t".concat(className !== null && className !== void 0 ? className : "", "\n\t\t\t")
|
|
2548
|
-
}, /*#__PURE__*/React.createElement(Accordion, {
|
|
2549
|
-
defaultValue: defaultValue,
|
|
2550
|
-
className: "hc-space-y-4"
|
|
2551
|
-
}, /*#__PURE__*/React.createElement(Accordion.Item, {
|
|
2552
|
-
id: "points-of-interest"
|
|
2553
|
-
}, /*#__PURE__*/React.createElement(Accordion.Trigger.HasHeader, {
|
|
2554
|
-
onClick: function onClick() {
|
|
2555
|
-
return setDefaultValue("points-of-interest");
|
|
2556
|
-
},
|
|
2557
|
-
className: "hc-stretched-link hc-text-left",
|
|
2558
|
-
iconClassName: "hc-order-last",
|
|
2559
|
-
headerClassName: "hc-relative hc-py-2 hc-rounded hc-border hc-border-uiAccent/20 hc-bg-white hc-text-sm hc-transition data-[state=open]:hc-border-b-transparent data-[state=open]:hc-rounded-b-none"
|
|
2560
|
-
}, title), /*#__PURE__*/React.createElement(Accordion.Content, {
|
|
2561
|
-
bodyClassName: "hc-px-2 hc-py-1 hc-bg-white hc-rounded-b hc-border hc-border-uiAccent/20 hc-border-t-0 hc-max-h-[20vh] md:hc-max-h-[25vh] ohc-verflow-auto"
|
|
2562
|
-
}, pointsOfInterest.items.map(function (item, index) {
|
|
2563
|
-
return /*#__PURE__*/React.createElement(RadioItem, {
|
|
2564
|
-
key: item.key + index,
|
|
2565
|
-
item: item,
|
|
2566
|
-
field: item.id
|
|
2567
|
-
});
|
|
2568
|
-
})))));
|
|
2569
|
-
};
|
|
2570
|
-
|
|
2571
|
-
var FilterLocation = function FilterLocation(_ref) {
|
|
2572
|
-
var className = _ref.className,
|
|
2573
|
-
defaultValue = _ref.defaultValue,
|
|
2574
|
-
setDefaultValue = _ref.setDefaultValue,
|
|
2575
|
-
_ref$showMap = _ref.showMap,
|
|
2576
|
-
showMap = _ref$showMap === void 0 ? false : _ref$showMap,
|
|
2577
|
-
setLocation = _ref.setLocation,
|
|
2578
|
-
setSelectedListItem = _ref.setSelectedListItem;
|
|
2579
|
-
var _useMapList = useMapList(),
|
|
2580
|
-
_setSelectedFilters = _useMapList.setSelectedFilters,
|
|
2581
|
-
selectedFilters = _useMapList.selectedFilters,
|
|
2582
|
-
filterOptions = _useMapList.filterOptions;
|
|
2583
|
-
selectedFilters != null && selectedFilters["cityState"] ? Object.keys(selectedFilters["cityState"]).length : 0;
|
|
2584
|
-
var locations = filterOptions === null || filterOptions === void 0 ? void 0 : filterOptions.locations;
|
|
2585
|
-
var pointsOfInterest = filterOptions === null || filterOptions === void 0 ? void 0 : filterOptions.pointsOfInterest;
|
|
2586
|
-
return /*#__PURE__*/React.createElement(CardFilter, {
|
|
2587
|
-
className: className !== null && className !== void 0 ? className : ""
|
|
2588
|
-
}, /*#__PURE__*/React.createElement(CardFilter.Title, {
|
|
2589
|
-
icon: "fluent:hc-location-16-filled"
|
|
2590
|
-
}, /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement("span", {
|
|
2591
|
-
className: "hc-hidden lg:hc-inline"
|
|
2592
|
-
}, "Job"), " location")), !locations && /*#__PURE__*/React.createElement(Loading, null), locations && /*#__PURE__*/React.createElement(Accordion, {
|
|
2593
|
-
defaultValue: defaultValue,
|
|
2594
|
-
className: "hc-space-y-4"
|
|
2595
|
-
}, locations === null || locations === void 0 ? void 0 : locations.map(function (filter) {
|
|
2596
|
-
return /*#__PURE__*/React.createElement(AccordionFilterItem, {
|
|
2597
|
-
key: filter.id,
|
|
2598
|
-
filter: filter,
|
|
2599
|
-
setDefaultValue: setDefaultValue,
|
|
2600
|
-
selectedFilters: selectedFilters,
|
|
2601
|
-
setSelectedFilters: function setSelectedFilters(prevFilters) {
|
|
2602
|
-
_setSelectedFilters(prevFilters);
|
|
2603
|
-
setLocation(null);
|
|
2604
|
-
setSelectedListItem(null);
|
|
2605
|
-
}
|
|
2606
|
-
});
|
|
2607
|
-
}), showMap && /*#__PURE__*/React.createElement(FilterCommute, {
|
|
2608
|
-
className: "hc-mt-6"
|
|
2609
|
-
}), showMap && /*#__PURE__*/React.createElement(FilterPointsOfInterest, {
|
|
2610
|
-
className: "hc-mt-4",
|
|
2611
|
-
pointsOfInterest: pointsOfInterest,
|
|
2612
|
-
setDefaultValue: setDefaultValue,
|
|
2613
|
-
defaultValue: defaultValue
|
|
2614
|
-
})));
|
|
2615
|
-
};
|
|
2616
|
-
|
|
2617
|
-
var Filter = function Filter(_ref) {
|
|
2618
|
-
var className = _ref.className,
|
|
2619
|
-
showMap = _ref.showMap;
|
|
2620
|
-
var _useState = useState(false),
|
|
2621
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
2622
|
-
hasActiveFilters = _useState2[0],
|
|
2623
|
-
setHasActiveFilters = _useState2[1];
|
|
2624
|
-
var _useState3 = useState(null),
|
|
2625
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
2626
|
-
defaultValue = _useState4[0],
|
|
2627
|
-
_setDefaultValue = _useState4[1];
|
|
2628
|
-
var _useMap = useMap(),
|
|
2629
|
-
setSelectedListItem = _useMap.setSelectedListItem,
|
|
2630
|
-
setLocation = _useMap.setLocation,
|
|
2631
|
-
filterReset = _useMap.filterReset;
|
|
2632
|
-
var _useMapList = useMapList(),
|
|
2633
|
-
filteredListings = _useMapList.filteredListings,
|
|
2634
|
-
selectedFilters = _useMapList.selectedFilters,
|
|
2635
|
-
setSelectedFilters = _useMapList.setSelectedFilters,
|
|
2636
|
-
setMobileTab = _useMapList.setMobileTab,
|
|
2637
|
-
handleSettingFavorites = _useMapList.handleSettingFavorites,
|
|
2638
|
-
setQuery = _useMapList.setQuery,
|
|
2639
|
-
siteConfig = _useMapList.siteConfig;
|
|
2640
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
2641
|
-
className: "\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".concat(className !== null && className !== void 0 ? className : "", "\n\t\t\t")
|
|
2642
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
2643
|
-
className: "hc-px-4 md:hc-pt-4 hc-space-y-4"
|
|
2644
|
-
}, /*#__PURE__*/React.createElement(AccordionFilters, {
|
|
2645
|
-
setHasActiveFilters: setHasActiveFilters,
|
|
2646
|
-
defaultValue: defaultValue,
|
|
2647
|
-
setDefaultValue: function setDefaultValue(value) {
|
|
2648
|
-
_setDefaultValue(value == defaultValue ? "" : value);
|
|
2649
|
-
},
|
|
2650
|
-
setLocation: setLocation,
|
|
2651
|
-
setSelectedListItem: setSelectedListItem
|
|
2652
|
-
}), /*#__PURE__*/React.createElement(Search, null), siteConfig.hideLocations !== true && /*#__PURE__*/React.createElement(FilterLocation, {
|
|
2653
|
-
setHasActiveFilters: setHasActiveFilters,
|
|
2654
|
-
defaultValue: defaultValue,
|
|
2655
|
-
showMap: showMap,
|
|
2656
|
-
setDefaultValue: function setDefaultValue(value) {
|
|
2657
|
-
_setDefaultValue(value == defaultValue ? "" : value);
|
|
2658
|
-
},
|
|
2659
|
-
setLocation: setLocation,
|
|
2660
|
-
setSelectedListItem: setSelectedListItem
|
|
2661
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
2662
|
-
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"
|
|
2663
|
-
}, /*#__PURE__*/React.createElement(Button.Btn, {
|
|
2664
|
-
onClick: function onClick() {
|
|
2665
|
-
filterReset();
|
|
2666
|
-
setSelectedFilters({});
|
|
2667
|
-
setQuery(null);
|
|
2668
|
-
handleSettingFavorites(null);
|
|
2669
|
-
},
|
|
2670
|
-
variant: "outline",
|
|
2671
|
-
size: "sm"
|
|
2672
|
-
}, "Reset"), selectedFilters && Object.keys(selectedFilters).length > 0 && /*#__PURE__*/React.createElement(Button.Btn, {
|
|
2673
|
-
onClick: function onClick() {
|
|
2674
|
-
return setMobileTab("listTab");
|
|
2675
|
-
},
|
|
2676
|
-
variant: "primary",
|
|
2677
|
-
size: "sm",
|
|
2678
|
-
className: "\n\t\t\t\t\t\tmd:hidden\n\t\t\t\t\t\t".concat(hasActiveFilters ? "hc-opacity-0 hc-pointer-events-none" : "hc-opacity-100", "\n\t\t\t\t\t")
|
|
2679
|
-
}, /*#__PURE__*/React.createElement(Button.Body, null, /*#__PURE__*/React.createElement(Button.Icon, {
|
|
2680
|
-
icon: "fluent:search-12-filled",
|
|
2681
|
-
size: "hc-size-3.5"
|
|
2682
|
-
}), "Show ", filteredListings.length, " Jobs"))));
|
|
2683
|
-
};
|
|
2684
|
-
|
|
2685
|
-
var _excluded$5 = ["className", "children", "field", "setSortSetting", "sortSetting", "isSortable"];
|
|
2686
|
-
var SORT_STATE = {
|
|
2687
|
-
notSorted: "not-sorted",
|
|
2688
|
-
sortedAsc: "sorted-asc",
|
|
2689
|
-
sortedDesc: "sorted-desc"
|
|
2690
|
-
};
|
|
2691
|
-
var HeaderItem = function HeaderItem(_ref) {
|
|
2692
|
-
var className = _ref.className,
|
|
2693
|
-
children = _ref.children,
|
|
2694
|
-
field = _ref.field,
|
|
2695
|
-
setSortSetting = _ref.setSortSetting,
|
|
2696
|
-
sortSetting = _ref.sortSetting,
|
|
2697
|
-
isSortable = _ref.isSortable,
|
|
2698
|
-
rest = _objectWithoutProperties(_ref, _excluded$5);
|
|
2699
|
-
var _useState = useState(SORT_STATE.notSorted),
|
|
2700
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
2701
|
-
isSorted = _useState2[0],
|
|
2702
|
-
setIsSorted = _useState2[1];
|
|
2703
|
-
var handleChange = function handleChange(field) {
|
|
2704
|
-
if (isSortable === false) return;
|
|
2705
|
-
var setting = {
|
|
2706
|
-
field: field,
|
|
2707
|
-
type: isSorted === SORT_STATE.sortedAsc ? "desc" : "asc"
|
|
2708
|
-
};
|
|
2709
|
-
setSortSetting(setting);
|
|
2710
|
-
isSorted === SORT_STATE.notSorted ? setIsSorted(SORT_STATE.sortedAsc) : isSorted === SORT_STATE.sortedAsc ? setIsSorted(SORT_STATE.sortedDesc) : setIsSorted(SORT_STATE.sortedAsc);
|
|
2711
|
-
};
|
|
2712
|
-
useEffect(function () {
|
|
2713
|
-
if ((sortSetting === null || sortSetting === void 0 ? void 0 : sortSetting.field) != null && sortSetting.field != field) {
|
|
2714
|
-
setIsSorted(SORT_STATE.notSorted);
|
|
2715
|
-
} else if ((sortSetting === null || sortSetting === void 0 ? void 0 : sortSetting.field) != null && isSorted == SORT_STATE.notSorted && sortSetting.field == field) {
|
|
2716
|
-
setIsSorted(sortSetting.type == "asc" ? SORT_STATE.sortedAsc : SORT_STATE.sortedDesc);
|
|
2717
|
-
}
|
|
2718
|
-
}, [sortSetting, isSorted, field]);
|
|
2719
|
-
return /*#__PURE__*/React.createElement(Button.Btn, _extends({
|
|
2720
|
-
onClick: function onClick() {
|
|
2721
|
-
return handleChange(field);
|
|
2722
|
-
},
|
|
2723
|
-
variant: "none",
|
|
2724
|
-
className: "\n\t\t\t\thc-p-2 hc-rounded-none hc-text-left hc-normal-case hc-font-bold hover:hc-bg-uiAccent/5 focus:hc-bg-uiAccent/5\n\t\t\t\t".concat(className !== null && className !== void 0 ? className : "", "\n\t\t\t")
|
|
2725
|
-
}, rest), /*#__PURE__*/React.createElement(Button.Body, null, children, isSortable && /*#__PURE__*/React.createElement("div", {
|
|
2726
|
-
className: "hc-flex hc-flex-col hc-pr-2"
|
|
2727
|
-
}, /*#__PURE__*/React.createElement(Button.Icon, {
|
|
2728
|
-
icon: "bi:caret-up-fill",
|
|
2729
|
-
size: "hc-size-2.5",
|
|
2730
|
-
className: "\n\t\t\t\t\t\t\thc-transition-opacity\n\t\t\t\t\t\t\t\t".concat(isSorted === "sorted-asc" ? "hc-opacity-100 hc-text-primary" : "hc-opacity-30", "\n\t\t\t\t\t\t\t")
|
|
2731
|
-
}), /*#__PURE__*/React.createElement(Button.Icon, {
|
|
2732
|
-
icon: "bi:caret-down-fill",
|
|
2733
|
-
size: "hc-size-2.5",
|
|
2734
|
-
className: "\n\t\t\t\t\t\t\t\ttransition-opacity\n\t\t\t\t\t\t\t\t".concat(isSorted === "sorted-desc" ? "hc-opacity-100" : "hc-opacity-30", "\n\t\t\t\t\t\t\t")
|
|
2735
|
-
}))));
|
|
2736
|
-
};
|
|
2737
|
-
|
|
2738
|
-
var _templateObject$2;
|
|
2739
|
-
var ListHeader = function ListHeader(_ref) {
|
|
2740
|
-
var className = _ref.className,
|
|
2741
|
-
fieldsShown = _ref.fieldsShown,
|
|
2742
|
-
fieldNames = _ref.fieldNames,
|
|
2743
|
-
_ref$fieldIsSortable = _ref.fieldIsSortable,
|
|
2744
|
-
fieldIsSortable = _ref$fieldIsSortable === void 0 ? true : _ref$fieldIsSortable,
|
|
2745
|
-
setSortSetting = _ref.setSortSetting,
|
|
2746
|
-
sortSetting = _ref.sortSetting;
|
|
2747
|
-
return /*#__PURE__*/React.createElement(Grid, {
|
|
2748
|
-
columns: "hc-grid-flow-col hc-auto-cols-fr",
|
|
2749
|
-
gap: "hc-gap-0",
|
|
2750
|
-
isAnimated: false,
|
|
2751
|
-
className: twMerge(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n\t\t\thc-pl-6 hc-pr-8 hc-hidden hc-md:grid hc-flex-auto hc-bg-uiAccent/10 hc-border-b hc-border-uiAccent/10 hc-sticky hc-top-0 hc-z-10 hc-pb-[20px]\n\t\t\t\t", "\n\t\t\t"])), className !== null && className !== void 0 ? className : "")
|
|
2752
|
-
}, fieldsShown.map(function (field) {
|
|
2753
|
-
return /*#__PURE__*/React.createElement(HeaderItem, {
|
|
2754
|
-
key: field,
|
|
2755
|
-
isSortable: fieldIsSortable,
|
|
2756
|
-
sortSetting: sortSetting,
|
|
2757
|
-
field: field,
|
|
2758
|
-
setSortSetting: setSortSetting
|
|
2759
|
-
}, fieldNames[field]);
|
|
2760
|
-
}), /*#__PURE__*/React.createElement(HeaderItem, {
|
|
2761
|
-
key: "favorite",
|
|
2762
|
-
isSortable: false,
|
|
2763
|
-
field: "favorite"
|
|
2764
|
-
}, "Favorite"));
|
|
2765
|
-
};
|
|
2766
|
-
|
|
2767
|
-
var capitalize = function capitalize(str) {
|
|
2768
|
-
if (str && typeof str === "string") {
|
|
2769
|
-
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
|
|
2770
|
-
}
|
|
2771
|
-
return str;
|
|
2772
|
-
};
|
|
2773
|
-
|
|
2774
|
-
var _excluded$4 = ["className", "children"];
|
|
2775
|
-
var PillWrapper = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
2776
|
-
var className = _ref.className,
|
|
2777
|
-
children = _ref.children,
|
|
2778
|
-
props = _objectWithoutProperties(_ref, _excluded$4);
|
|
2779
|
-
return /*#__PURE__*/React.createElement(Button.Btn, _extends({
|
|
2780
|
-
ref: ref,
|
|
2781
|
-
size: "none",
|
|
2782
|
-
variant: "none",
|
|
2783
|
-
className: "hc-relative hc-group hc-inline-flex hc-items-center hc-gap-px hc-ml-auto hc-mr-1.5 hc-pl-1.5 hc-pr-1 hc-py-0.5 hc-rounded hc-bg-primary/10 hc-text-xs hc-font-bold hc-text-primary hc-ring-1 hc-ring-inset hc-ring-primary/20 ".concat(className)
|
|
2784
|
-
}, props), children);
|
|
2785
|
-
});
|
|
2786
|
-
PillWrapper.displayName = 'PillWrapper';
|
|
2787
|
-
|
|
2788
|
-
var CommutePill = function CommutePill(_ref) {
|
|
2789
|
-
var travelTime = _ref.travelTime;
|
|
2790
|
-
if (!travelTime) return;
|
|
2791
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
2792
|
-
className: "pt-2"
|
|
2793
|
-
}, /*#__PURE__*/React.createElement(PillWrapper, null, /*#__PURE__*/React.createElement(IconContained, {
|
|
2794
|
-
icon: "ri:pin-distance-fill",
|
|
2795
|
-
size: "hc-size-5",
|
|
2796
|
-
className: "hc-text-uiAccent/30"
|
|
2797
|
-
}), "commute time = ", travelTime));
|
|
2798
|
-
};
|
|
2799
|
-
|
|
2800
|
-
var FieldMapper = function FieldMapper(_ref) {
|
|
2801
|
-
var item = _ref.item,
|
|
2802
|
-
fieldsShown = _ref.fieldsShown,
|
|
2803
|
-
specialFeatures = _ref.specialFeatures,
|
|
2804
|
-
handleFavouriteClick = _ref.handleFavouriteClick,
|
|
2805
|
-
isFavorite = _ref.isFavorite;
|
|
2806
|
-
var orderedFields = fieldsShown.filter(function (field) {
|
|
2807
|
-
return field in item.fields;
|
|
2808
|
-
});
|
|
2809
|
-
var specialFeaturePills = function specialFeaturePills(field) {
|
|
2810
|
-
return field === 'position' && specialFeatures && Object.entries(specialFeatures).map(function (_ref2) {
|
|
2811
|
-
var _ref3 = _slicedToArray(_ref2, 2),
|
|
2812
|
-
featureKey = _ref3[0],
|
|
2813
|
-
featureLabel = _ref3[1];
|
|
2814
|
-
return item.fields[featureKey] === 1 && /*#__PURE__*/React.createElement(PillWrapper, {
|
|
2815
|
-
key: featureKey
|
|
2816
|
-
}, featureLabel);
|
|
2817
|
-
});
|
|
2818
|
-
};
|
|
2819
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, orderedFields.map(function (field) {
|
|
2820
|
-
var value = item.fields[field];
|
|
2821
|
-
return /*#__PURE__*/React.createElement(Grid.Item, {
|
|
2822
|
-
key: field,
|
|
2823
|
-
className: "hc-hidden md:hc-block"
|
|
2824
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
2825
|
-
className: "hc-sr-only"
|
|
2826
|
-
}, capitalize(field)), value, /*#__PURE__*/React.createElement("br", null), specialFeaturePills(field));
|
|
2827
|
-
}), /*#__PURE__*/React.createElement(Grid.Item, {
|
|
2828
|
-
className: "md:hc-hidden"
|
|
2829
|
-
}, fieldsShown.includes("position") && /*#__PURE__*/React.createElement(React.Fragment, null, " ", /*#__PURE__*/React.createElement("div", {
|
|
2830
|
-
className: "hc-flex hc-items-start"
|
|
2831
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
2832
|
-
className: "hc-flex hc-justify-between hc-items-center hc-min-w-[100%]"
|
|
2833
|
-
}, " ", /*#__PURE__*/React.createElement("h3", {
|
|
2834
|
-
className: "hc-font-bold hc-mb-3 hc-flex-1"
|
|
2835
|
-
}, item.fields.position), /*#__PURE__*/React.createElement("div", {
|
|
2836
|
-
className: "hc-flex hc-justify-end hc-pb-2"
|
|
2837
|
-
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
2838
|
-
icon: isFavorite ? "mdi:heart" : "mdi:heart-outline",
|
|
2839
|
-
size: "hc-size-3.5",
|
|
2840
|
-
iconClasses: isFavorite ? "hc-text-primary" : "",
|
|
2841
|
-
className: "hc-transition-opacity hc-duration-300 hc-cursor-pointer\n\t\t\t\t\t\t\t\t\t".concat(isFavorite ? "hc-opacity-100" : "hc-text-uiText/60 group-hover:hc-opacity-100", "\n\t\t\t\t\t\t\t\t\t"),
|
|
2842
|
-
onClick: function onClick(e) {
|
|
2843
|
-
return handleFavouriteClick(e);
|
|
2844
|
-
}
|
|
2845
|
-
})))), specialFeatures && /*#__PURE__*/React.createElement("div", {
|
|
2846
|
-
className: "hc-pb-4"
|
|
2847
|
-
}, specialFeaturePills("position"), " ")), /*#__PURE__*/React.createElement("ul", {
|
|
2848
|
-
className: "hc-space-y-2 hc-text-xs"
|
|
2849
|
-
}, [{
|
|
2850
|
-
field: "category",
|
|
2851
|
-
name: "Category",
|
|
2852
|
-
icon: "icon-park-solid:tree-list"
|
|
2853
|
-
}, {
|
|
2854
|
-
field: "schedule",
|
|
2855
|
-
name: "Schedule",
|
|
2856
|
-
icon: "gravity-ui:clock-fill"
|
|
2857
|
-
}, {
|
|
2858
|
-
field: "cityState",
|
|
2859
|
-
name: "Location",
|
|
2860
|
-
icon: "fluent:location-16-filled"
|
|
2861
|
-
}, {
|
|
2862
|
-
field: "travelTime",
|
|
2863
|
-
name: "Commute",
|
|
2864
|
-
icon: "ri:pin-distance-fill"
|
|
2865
|
-
}].map(function (listItem) {
|
|
2866
|
-
return fieldsShown.includes(listItem.field) && item.fields[listItem.field] && /*#__PURE__*/React.createElement("li", {
|
|
2867
|
-
key: listItem.field,
|
|
2868
|
-
className: "hc-flex hc-gap-2"
|
|
2869
|
-
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
2870
|
-
icon: listItem.icon,
|
|
2871
|
-
size: "hc-size-3.5",
|
|
2872
|
-
className: "hc-text-uiAccent/30"
|
|
2873
|
-
}), /*#__PURE__*/React.createElement("span", {
|
|
2874
|
-
className: "hc-sr-only"
|
|
2875
|
-
}, listItem.name), item.fields[listItem.field]);
|
|
2876
|
-
}))));
|
|
2877
|
-
};
|
|
2878
|
-
|
|
2879
|
-
var _excluded$3 = ["isActive", "bodyClassName", "className", "item", "fieldsShown", "specialFeatures", "onItemSelected", "showMap", "setMobileTab", "favorites", "setFavorites"];
|
|
2880
|
-
var ListItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
|
2881
|
-
var _item$mapDetails, _item$mapDetails2, _item$mapDetails3, _item$mapDetails4;
|
|
2882
|
-
var isActive = _ref.isActive,
|
|
2883
|
-
bodyClassName = _ref.bodyClassName,
|
|
2884
|
-
className = _ref.className,
|
|
2885
|
-
item = _ref.item,
|
|
2886
|
-
fieldsShown = _ref.fieldsShown,
|
|
2887
|
-
specialFeatures = _ref.specialFeatures,
|
|
2888
|
-
onItemSelected = _ref.onItemSelected,
|
|
2889
|
-
showMap = _ref.showMap,
|
|
2890
|
-
setMobileTab = _ref.setMobileTab,
|
|
2891
|
-
favorites = _ref.favorites,
|
|
2892
|
-
setFavorites = _ref.setFavorites,
|
|
2893
|
-
props = _objectWithoutProperties(_ref, _excluded$3);
|
|
2894
|
-
var _useMapList = useMapList(),
|
|
2895
|
-
siteConfig = _useMapList.siteConfig;
|
|
2896
|
-
var mapPinColor = siteConfig.colors.primary.replace("#", "");
|
|
2897
|
-
var handleClick = function handleClick() {
|
|
2898
|
-
if (onItemSelected) {
|
|
2899
|
-
onItemSelected(item);
|
|
2900
|
-
}
|
|
2901
|
-
};
|
|
2902
|
-
var isFavorite = favorites.includes(item.id);
|
|
2903
|
-
var handleFavouriteClick = function handleFavouriteClick(event) {
|
|
2904
|
-
event.stopPropagation();
|
|
2905
|
-
var updatedFavorites;
|
|
2906
|
-
if (isFavorite) {
|
|
2907
|
-
updatedFavorites = favorites.filter(function (fav) {
|
|
2908
|
-
return fav !== item.id;
|
|
2909
|
-
});
|
|
2910
|
-
} else {
|
|
2911
|
-
updatedFavorites = [].concat(_toConsumableArray(favorites), [item.id]);
|
|
2912
|
-
}
|
|
2913
|
-
isFavorite = !isFavorite;
|
|
2914
|
-
setFavorites(updatedFavorites);
|
|
2915
|
-
};
|
|
2916
|
-
return /*#__PURE__*/React.createElement("button", _extends({
|
|
2917
|
-
ref: ref,
|
|
2918
|
-
onClick: handleClick,
|
|
2919
|
-
className: "\n\t\t\t\t\thc-group hc-relative hc-flex md:hc-flex-col hc-w-full md:hc-pl-4 hc-text-left hc-bg-clip-border hc-border hc-border-transparent hc-break-words hc-overflow-hidden hc-cursor-pointer hc-transition-colors hover:hc-bg-uiAccent/5 focus:hc-hover:bg-uiAccent/5\n\t\t\t\t\t".concat(isActive ? "bg-uiAccent/5 border-secondary border" : "text-uiText bg-white", "\n\t\t\t\t\t").concat(className !== null && className !== void 0 ? className : "", "\n ")
|
|
2920
|
-
}, props), /*#__PURE__*/React.createElement(Grid, {
|
|
2921
|
-
columns: "hc-grid-flow-col hc-auto-cols-fr",
|
|
2922
|
-
gap: "hc-gap-2",
|
|
2923
|
-
isAnimated: false,
|
|
2924
|
-
className: "\n\t\t\t\t\t\thc-block md:hc-grid hc-flex-auto hc-p-2 hc-ps-4 hc-w-full hc-grow hc-leading-tight hc-text-sm md:hc-text-xs lg:hc-text-sm\n\t\t\t\t\t\t".concat(bodyClassName !== null && bodyClassName !== void 0 ? bodyClassName : "", "\n\t\t\t\t\t")
|
|
2925
|
-
}, /*#__PURE__*/React.createElement(Grid.Item, {
|
|
2926
|
-
className: "hc-hidden md:hc-block md:hc-absolute md:hc-left-1.5 hc-top-1.5"
|
|
2927
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
2928
|
-
className: "hc-sr-only"
|
|
2929
|
-
}, "Expand row"), /*#__PURE__*/React.createElement(IconContained, {
|
|
2930
|
-
icon: "fluent-emoji-high-contrast:plus",
|
|
2931
|
-
size: "hc-size-2.5",
|
|
2932
|
-
className: "\n\t\t\t\t\t\t\t\thc-opacity-0 hc-text-uiText/60 hc-transition group-hover:hc-opacity-100 group-active:hc-opacity-100\n\t\t\t\t\t\t\t\t".concat(isActive ? "hc-opacity-100 hc-rotate-45" : "", "\n\t\t\t\t\t\t\t")
|
|
2933
|
-
})), /*#__PURE__*/React.createElement(FieldMapper, {
|
|
2934
|
-
item: item,
|
|
2935
|
-
fieldsShown: fieldsShown,
|
|
2936
|
-
specialFeatures: specialFeatures,
|
|
2937
|
-
isFavorite: isFavorite,
|
|
2938
|
-
handleFavouriteClick: handleFavouriteClick
|
|
2939
|
-
}), /*#__PURE__*/React.createElement(Grid.Item, {
|
|
2940
|
-
key: "favorites",
|
|
2941
|
-
className: "hc-hidden md:hc-block"
|
|
2942
|
-
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
2943
|
-
icon: isFavorite ? "mdi:heart" : "mdi:heart-outline",
|
|
2944
|
-
size: "hc-size-3.5",
|
|
2945
|
-
iconClasses: isFavorite ? "hc-text-primary" : "",
|
|
2946
|
-
title: !isFavorite ? 'Add job to favorites' : 'Remove job from favorites',
|
|
2947
|
-
className: "\n\t\t\t\t\t\t\thc-pr-2 hc-transition-opacity hc-duration-300 hc-cursor-pointer hc-opacity-100\"\n\t\t\t\t\t\t",
|
|
2948
|
-
onClick: function onClick(e) {
|
|
2949
|
-
return handleFavouriteClick(e);
|
|
2950
|
-
}
|
|
2951
|
-
}))), showMap && /*#__PURE__*/React.createElement("div", {
|
|
2952
|
-
onClick: function onClick() {
|
|
2953
|
-
setMobileTab("mapTab");
|
|
2954
|
-
handleClick();
|
|
2955
|
-
},
|
|
2956
|
-
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"
|
|
2957
|
-
}, /*#__PURE__*/React.createElement("img", {
|
|
2958
|
-
src: "https://maps.googleapis.com/maps/api/staticmap?scale=2¢er=".concat((_item$mapDetails = item.mapDetails) === null || _item$mapDetails === void 0 ? void 0 : _item$mapDetails.latitude, ",").concat((_item$mapDetails2 = item.mapDetails) === null || _item$mapDetails2 === void 0 ? void 0 : _item$mapDetails2.longitude, "&zoom=10&size=240x180&maptype=roadmap&markers=color:0x").concat(mapPinColor, "%7Clabel:\u2022%7C").concat((_item$mapDetails3 = item.mapDetails) === null || _item$mapDetails3 === void 0 ? void 0 : _item$mapDetails3.latitude, ",").concat((_item$mapDetails4 = item.mapDetails) === null || _item$mapDetails4 === void 0 ? void 0 : _item$mapDetails4.longitude, "&key=ToDo"),
|
|
2959
|
-
alt: "Map of location for ".concat(item.fields.position),
|
|
2960
|
-
className: "hc-w-full hc-h-full hc-object-cover"
|
|
2961
|
-
})));
|
|
2962
|
-
});
|
|
2963
|
-
ListItem.displayName = "ListItem";
|
|
2964
|
-
var ListItem$1 = /*#__PURE__*/React.memo(ListItem, function (prevProps, nextProps) {
|
|
2965
|
-
return (prevProps.isActive === nextProps.isActive || prevProps.isActive !== nextProps.isActive) && prevProps.bodyClassName === nextProps.bodyClassName && prevProps.className === nextProps.className && prevProps.fieldsShown === nextProps.fieldsShown && prevProps.item.id === nextProps.item.id;
|
|
2966
|
-
});
|
|
2967
|
-
|
|
2968
|
-
var _excluded$2 = ["className", "content"];
|
|
2969
|
-
var CardItemExpand = function CardItemExpand(_ref) {
|
|
2970
|
-
var className = _ref.className,
|
|
2971
|
-
content = _ref.content,
|
|
2972
|
-
props = _objectWithoutProperties(_ref, _excluded$2);
|
|
2973
|
-
return /*#__PURE__*/React.createElement("div", _extends({
|
|
2974
|
-
className: twMerge('hc-flex hc-flex-col lg:hc-flex-row hc-flex-wrap hc-items-stretch hc-gap-x-4 hc-w-full lg:hc-pt-2 hc-border-t hc-border-uiAccent/20', className !== null && className !== void 0 ? className : '')
|
|
2975
|
-
}, props), content);
|
|
2976
|
-
};
|
|
2977
|
-
|
|
2978
|
-
var MapAccordionItem = function MapAccordionItem(_ref) {
|
|
2979
|
-
var item = _ref.item,
|
|
2980
|
-
itemRefs = _ref.itemRefs,
|
|
2981
|
-
itemExpandedContent = _ref.itemExpandedContent,
|
|
2982
|
-
fieldsShown = _ref.fieldsShown,
|
|
2983
|
-
showMap = _ref.showMap,
|
|
2984
|
-
hasListItemSelected = _ref.hasListItemSelected,
|
|
2985
|
-
specialFeatures = _ref.specialFeatures,
|
|
2986
|
-
isActive = _ref.isActive;
|
|
2987
|
-
var _useMapList = useMapList(),
|
|
2988
|
-
mapItems = _useMapList.mapItems,
|
|
2989
|
-
recruiters = _useMapList.recruiters,
|
|
2990
|
-
setMobileTab = _useMapList.setMobileTab,
|
|
2991
|
-
favorites = _useMapList.favorites,
|
|
2992
|
-
handleSettingFavorites = _useMapList.handleSettingFavorites;
|
|
2993
|
-
var _useMap = useMap(),
|
|
2994
|
-
selectItem = _useMap.selectItem;
|
|
2995
|
-
var setSelectedItemAndZoomMap = function setSelectedItemAndZoomMap(item) {
|
|
2996
|
-
if (isActive) {
|
|
2997
|
-
localStorage.removeItem("selectedListItem");
|
|
2998
|
-
mapItems.find(function (x) {
|
|
2999
|
-
return x.items.hasOwnProperty(item.id);
|
|
3000
|
-
}) || null;
|
|
3001
|
-
selectItem(null, null, 9, {
|
|
3002
|
-
lat: 39.8283,
|
|
3003
|
-
lng: -98.5795
|
|
3004
|
-
});
|
|
3005
|
-
} else {
|
|
3006
|
-
setStorageObject("selectedListItem", item);
|
|
3007
|
-
var location = mapItems.find(function (x) {
|
|
3008
|
-
return x.items.hasOwnProperty(item.id);
|
|
3009
|
-
}) || null;
|
|
3010
|
-
selectItem(item, location, 12, {
|
|
3011
|
-
lat: location === null || location === void 0 ? void 0 : location.latitude,
|
|
3012
|
-
lng: location === null || location === void 0 ? void 0 : location.longitude
|
|
3013
|
-
});
|
|
3014
|
-
}
|
|
3015
|
-
};
|
|
3016
|
-
return /*#__PURE__*/React.createElement(Accordion.Item, {
|
|
3017
|
-
key: item.id,
|
|
3018
|
-
id: item.id
|
|
3019
|
-
}, /*#__PURE__*/React.createElement(Accordion.Trigger.Blank, null, /*#__PURE__*/React.createElement(ListItem$1, {
|
|
3020
|
-
ref: function ref(el) {
|
|
3021
|
-
return itemRefs.current[item.id] = el;
|
|
3022
|
-
},
|
|
3023
|
-
id: item.id,
|
|
3024
|
-
key: item.id,
|
|
3025
|
-
item: item,
|
|
3026
|
-
fieldsShown: fieldsShown,
|
|
3027
|
-
onClick: function onClick() {
|
|
3028
|
-
return setSelectedItemAndZoomMap(item);
|
|
3029
|
-
},
|
|
3030
|
-
showMap: showMap,
|
|
3031
|
-
isActive: isActive,
|
|
3032
|
-
setMobileTab: setMobileTab,
|
|
3033
|
-
specialFeatures: specialFeatures,
|
|
3034
|
-
className: hasListItemSelected ? isActive ? "!hc-border-secondary hc-border hc-border-b-0" : "hc-opacity-85" : "",
|
|
3035
|
-
favorites: favorites,
|
|
3036
|
-
setFavorites: handleSettingFavorites
|
|
3037
|
-
})), isActive && /*#__PURE__*/React.createElement(Accordion.Content, {
|
|
3038
|
-
bodyClassName: "hc-px-2 hc-py-2 hc-pt-0 hc-bg-uiAccent/5 hc-border-secondary hc-border hc-border-t-0"
|
|
3039
|
-
}, /*#__PURE__*/React.createElement(CardItemExpand, {
|
|
3040
|
-
content: itemExpandedContent(item, recruiters)
|
|
3041
|
-
})));
|
|
3042
|
-
};
|
|
3043
|
-
|
|
3044
|
-
var dynamicSort = function dynamicSort(items, fieldName) {
|
|
3045
|
-
var order = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "asc";
|
|
3046
|
-
if (!items || !items.length) {
|
|
3047
|
-
return [];
|
|
3048
|
-
}
|
|
3049
|
-
var inferType = function inferType(value) {
|
|
3050
|
-
if (!isNaN(Date.parse(value)) && isNaN(value)) {
|
|
3051
|
-
return "date";
|
|
3052
|
-
} else if (!isNaN(parseFloat(value)) && isFinite(value)) {
|
|
3053
|
-
return "number";
|
|
3054
|
-
} else {
|
|
3055
|
-
return "string";
|
|
3056
|
-
}
|
|
3057
|
-
};
|
|
3058
|
-
var dataType = inferType(items[0].fields[fieldName]);
|
|
3059
|
-
return items.sort(function (a, b) {
|
|
3060
|
-
var valA = a.fields[fieldName];
|
|
3061
|
-
var valB = b.fields[fieldName];
|
|
3062
|
-
if (!valA || !valB) return;
|
|
3063
|
-
var comparison = 0;
|
|
3064
|
-
if (dataType === "string") {
|
|
3065
|
-
comparison = valA.localeCompare(valB);
|
|
3066
|
-
} else if (dataType === "number") {
|
|
3067
|
-
comparison = valA - valB;
|
|
3068
|
-
} else if (dataType === "date") {
|
|
3069
|
-
comparison = new Date(valA) - new Date(valB);
|
|
3070
|
-
}
|
|
3071
|
-
return order === "desc" ? comparison * -1 : comparison;
|
|
3072
|
-
});
|
|
3073
|
-
};
|
|
3074
|
-
|
|
3075
|
-
var getDefaultItemId = function getDefaultItemId() {
|
|
3076
|
-
var item = getStorageObject("selectedListItem");
|
|
3077
|
-
if ((item === null || item === void 0 ? void 0 : item.expanded) == true) {
|
|
3078
|
-
return item.id;
|
|
3079
|
-
} else {
|
|
3080
|
-
return null;
|
|
3081
|
-
}
|
|
3082
|
-
};
|
|
3083
|
-
var useListLogic = function useListLogic() {
|
|
3084
|
-
var _useState = useState(100),
|
|
3085
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
3086
|
-
itemLimit = _useState2[0],
|
|
3087
|
-
setItemLimit = _useState2[1];
|
|
3088
|
-
var _useState3 = useState(getDefaultItemId()),
|
|
3089
|
-
_useState4 = _slicedToArray(_useState3, 1),
|
|
3090
|
-
expandedId = _useState4[0];
|
|
3091
|
-
var _useState5 = useState(getStorageObject('sortSetting', null)),
|
|
3092
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
3093
|
-
sortSetting = _useState6[0],
|
|
3094
|
-
setSortSetting = _useState6[1];
|
|
3095
|
-
var _useState7 = useState(getStorageObject('scrollPosition', 0)),
|
|
3096
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
3097
|
-
scrollPosition = _useState8[0],
|
|
3098
|
-
setScrollPosition = _useState8[1];
|
|
3099
|
-
var loader = useRef(null);
|
|
3100
|
-
var scrollContainerRef = useRef(null);
|
|
3101
|
-
var itemRefs = useRef({});
|
|
3102
|
-
var observer = useRef(null);
|
|
3103
|
-
var _useMapList = useMapList(),
|
|
3104
|
-
filteredListings = _useMapList.filteredListings,
|
|
3105
|
-
setFilteredListings = _useMapList.setFilteredListings;
|
|
3106
|
-
useEffect(function () {
|
|
3107
|
-
if (!sortSetting) return;
|
|
3108
|
-
localStorage.setItem('sortSetting', JSON.stringify(sortSetting));
|
|
3109
|
-
var listingFiltered = dynamicSort(filteredListings, sortSetting.field, sortSetting.type);
|
|
3110
|
-
setFilteredListings(listingFiltered);
|
|
3111
|
-
}, [sortSetting]);
|
|
3112
|
-
useEffect(function () {
|
|
3113
|
-
observer.current = new IntersectionObserver(handleObserver, {
|
|
3114
|
-
root: scrollContainerRef.current,
|
|
3115
|
-
rootMargin: "100px 0px",
|
|
3116
|
-
threshold: 0.5
|
|
3117
|
-
});
|
|
3118
|
-
if (loader.current) {
|
|
3119
|
-
observer.current.observe(loader.current);
|
|
3120
|
-
}
|
|
3121
|
-
return function () {
|
|
3122
|
-
if (observer.current && loader.current) {
|
|
3123
|
-
observer.current.unobserve(loader.current);
|
|
3124
|
-
}
|
|
3125
|
-
};
|
|
3126
|
-
}, [loader.current, itemLimit, filteredListings.length]);
|
|
3127
|
-
useEffect(function () {
|
|
3128
|
-
localStorage.setItem('scrollPosition', scrollPosition.toString());
|
|
3129
|
-
}, [scrollPosition]);
|
|
3130
|
-
useEffect(function () {
|
|
3131
|
-
var savedScrollPosition = scrollPosition;
|
|
3132
|
-
if (parseInt(savedScrollPosition) > 3000) {
|
|
3133
|
-
setItemLimit(savedScrollPosition / 10);
|
|
3134
|
-
}
|
|
3135
|
-
if (savedScrollPosition && scrollPosition != null && scrollContainerRef.current) {
|
|
3136
|
-
scrollContainerRef.current;
|
|
3137
|
-
setTimeout(function () {
|
|
3138
|
-
}, 300);
|
|
3139
|
-
}
|
|
3140
|
-
}, []);
|
|
3141
|
-
useEffect(function () {
|
|
3142
|
-
var scrollContainer = scrollContainerRef.current;
|
|
3143
|
-
if (scrollContainer) {
|
|
3144
|
-
scrollContainer.addEventListener('scroll', handleScroll);
|
|
3145
|
-
}
|
|
3146
|
-
return function () {
|
|
3147
|
-
if (scrollContainer) {
|
|
3148
|
-
scrollContainer.removeEventListener('scroll', handleScroll);
|
|
3149
|
-
}
|
|
3150
|
-
};
|
|
3151
|
-
}, [scrollContainerRef.current]);
|
|
3152
|
-
var handleObserver = function handleObserver(entities) {
|
|
3153
|
-
var target = entities[0];
|
|
3154
|
-
if (!target.isIntersecting) return;
|
|
3155
|
-
if (filteredListings.length > itemLimit) {
|
|
3156
|
-
setItemLimit(function (prevLimit) {
|
|
3157
|
-
return prevLimit + 100;
|
|
3158
|
-
});
|
|
3159
|
-
} else if (observer.current) {
|
|
3160
|
-
observer.current.disconnect();
|
|
3161
|
-
}
|
|
3162
|
-
};
|
|
3163
|
-
if (sortSetting) {
|
|
3164
|
-
dynamicSort(filteredListings, sortSetting.field, sortSetting.type);
|
|
3165
|
-
}
|
|
3166
|
-
var handleScroll = function handleScroll() {
|
|
3167
|
-
if (scrollContainerRef.current) {
|
|
3168
|
-
setScrollPosition(scrollContainerRef.current.scrollTop);
|
|
3169
|
-
}
|
|
3170
|
-
};
|
|
3171
|
-
return {
|
|
3172
|
-
itemLimit: itemLimit,
|
|
3173
|
-
expandedId: expandedId,
|
|
3174
|
-
sortSetting: sortSetting,
|
|
3175
|
-
scrollPosition: scrollPosition,
|
|
3176
|
-
loader: loader,
|
|
3177
|
-
scrollContainerRef: scrollContainerRef,
|
|
3178
|
-
itemRefs: itemRefs,
|
|
3179
|
-
setSortSetting: setSortSetting,
|
|
3180
|
-
setScrollPosition: setScrollPosition,
|
|
3181
|
-
dynamicSort: dynamicSort,
|
|
3182
|
-
filteredListings: filteredListings
|
|
3183
|
-
};
|
|
3184
|
-
};
|
|
3185
|
-
|
|
3186
|
-
var _excluded$1 = ["children", "className"];
|
|
3187
|
-
var FilterSort = function FilterSort(_ref) {
|
|
3188
|
-
var className = _ref.className,
|
|
3189
|
-
fields = _ref.fields,
|
|
3190
|
-
setSortSetting = _ref.setSortSetting,
|
|
3191
|
-
fieldNames = _ref.fieldNames;
|
|
3192
|
-
var handleSortChange = function handleSortChange(value) {
|
|
3193
|
-
var _value$split = value.split("-"),
|
|
3194
|
-
_value$split2 = _slicedToArray(_value$split, 2),
|
|
3195
|
-
field = _value$split2[0],
|
|
3196
|
-
direction = _value$split2[1];
|
|
3197
|
-
setSortSetting({
|
|
3198
|
-
field: field,
|
|
3199
|
-
type: direction
|
|
3200
|
-
});
|
|
3201
|
-
};
|
|
3202
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
3203
|
-
className: className !== null && className !== void 0 ? className : ""
|
|
3204
|
-
}, /*#__PURE__*/React.createElement(Select.Root, {
|
|
3205
|
-
onValueChange: handleSortChange
|
|
3206
|
-
}, /*#__PURE__*/React.createElement(Select.Trigger, {
|
|
3207
|
-
asChild: true,
|
|
3208
|
-
"aria-label": "Sort"
|
|
3209
|
-
}, /*#__PURE__*/React.createElement(Button.Btn, {
|
|
3210
|
-
variant: "outline",
|
|
3211
|
-
size: "sm",
|
|
3212
|
-
className: "hc-normal-case"
|
|
3213
|
-
}, /*#__PURE__*/React.createElement(Button.Body, {
|
|
3214
|
-
className: "hc-justify-center"
|
|
3215
|
-
}, /*#__PURE__*/React.createElement(Select.Value, {
|
|
3216
|
-
placeholder: /*#__PURE__*/React.createElement("span", {
|
|
3217
|
-
className: "hc-flex hc-items-center hc-gap-2"
|
|
3218
|
-
}, "Sort", /*#__PURE__*/React.createElement(IconContained, {
|
|
3219
|
-
icon: "mdi:sort"
|
|
3220
|
-
}))
|
|
3221
|
-
}), /*#__PURE__*/React.createElement(Select.Icon, null, /*#__PURE__*/React.createElement(Button.Icon, {
|
|
3222
|
-
icon: "mdi:chevron-down"
|
|
3223
|
-
}))))), /*#__PURE__*/React.createElement(Select.Portal, null, /*#__PURE__*/React.createElement(Select.Content, {
|
|
3224
|
-
className: "hc-relative hc-z-[200] hc-overflow-hidden hc-bg-white hc-rounded-md "
|
|
3225
|
-
}, /*#__PURE__*/React.createElement(Select.ScrollUpButton, {
|
|
3226
|
-
className: "hc-flex hc-items-center hc-justify-center hc-h-5 hc-bg-white hc-text-primary hc-cursor-default"
|
|
3227
|
-
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
3228
|
-
icon: "mdi:chevron-up"
|
|
3229
|
-
})), /*#__PURE__*/React.createElement(Select.Viewport, {
|
|
3230
|
-
className: "hc-p-1"
|
|
3231
|
-
}, fields.map(function (field) {
|
|
3232
|
-
var _fieldNames$field, _fieldNames$field2;
|
|
3233
|
-
return /*#__PURE__*/React.createElement(Select.Group, {
|
|
3234
|
-
key: field
|
|
3235
|
-
}, /*#__PURE__*/React.createElement(SelectItem, {
|
|
3236
|
-
value: "".concat(field, "-asc")
|
|
3237
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
3238
|
-
className: "hc-flex hc-items-center hc-justify-between hc-gap-2 hc-w-full"
|
|
3239
|
-
}, (_fieldNames$field = fieldNames[field]) !== null && _fieldNames$field !== void 0 ? _fieldNames$field : field, /*#__PURE__*/React.createElement(IconContained, {
|
|
3240
|
-
icon: "mdi:sort-ascending"
|
|
3241
|
-
}))), /*#__PURE__*/React.createElement(SelectItem, {
|
|
3242
|
-
value: "".concat(field, "-desc")
|
|
3243
|
-
}, /*#__PURE__*/React.createElement("span", {
|
|
3244
|
-
className: "hc-flex hc-items-center hc-justify-between hc-gap-2 w-full"
|
|
3245
|
-
}, (_fieldNames$field2 = fieldNames[field]) !== null && _fieldNames$field2 !== void 0 ? _fieldNames$field2 : field, /*#__PURE__*/React.createElement(IconContained, {
|
|
3246
|
-
icon: "mdi:sort-descending"
|
|
3247
|
-
}))));
|
|
3248
|
-
})), /*#__PURE__*/React.createElement(Select.ScrollDownButton, {
|
|
3249
|
-
className: "hc-flex hc-items-center hc-justify-center hc-h-5 hc-bg-white hc-text-primary hc-cursor-default"
|
|
3250
|
-
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
3251
|
-
icon: "mdi:chevron-down"
|
|
3252
|
-
}))))));
|
|
3253
|
-
};
|
|
3254
|
-
var SelectItem = /*#__PURE__*/forwardRef(function (_ref2, forwardedRef) {
|
|
3255
|
-
var children = _ref2.children,
|
|
3256
|
-
className = _ref2.className,
|
|
3257
|
-
props = _objectWithoutProperties(_ref2, _excluded$1);
|
|
3258
|
-
return /*#__PURE__*/React.createElement(Select.Item, _extends({
|
|
3259
|
-
className: twMerge("hc-text-sm hc-leading-none hc-rounded-sm hc-flex hc-items-center hc-w-full hc-py-1.5 hc-pr-4 hc-pl-7 hc-relative hc-select-none hc-cursor-pointer data-[disabled]:hc-text-gray-500 data-[disabled]:hc-pointer-events-none data-[highlighted]:hc-outline-none data-[highlighted]:hc-bg-primary data-[highlighted]:hc-text-white", className)
|
|
3260
|
-
}, props, {
|
|
3261
|
-
ref: forwardedRef
|
|
3262
|
-
}), /*#__PURE__*/React.createElement(Select.ItemText, null, children), /*#__PURE__*/React.createElement(Select.ItemIndicator, {
|
|
3263
|
-
className: "hc-absolute hc-left-0 hc-w-8 hc-inline-flex hc-items-center hc-justify-center"
|
|
3264
|
-
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
3265
|
-
icon: "mdi:check"
|
|
3266
|
-
})));
|
|
3267
|
-
});
|
|
3268
|
-
SelectItem.displayName = "SelectItem";
|
|
3269
|
-
|
|
3270
|
-
var RecruiterHeadshot = function RecruiterHeadshot(_ref) {
|
|
3271
|
-
var image = _ref.image,
|
|
3272
|
-
alt = _ref.alt,
|
|
3273
|
-
className = _ref.className,
|
|
3274
|
-
imageClassName = _ref.imageClassName;
|
|
3275
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
3276
|
-
className: className !== null && className !== void 0 ? className : ''
|
|
3277
|
-
}, /*#__PURE__*/React.createElement("img", {
|
|
3278
|
-
src: image,
|
|
3279
|
-
width: "96",
|
|
3280
|
-
height: "96",
|
|
3281
|
-
alt: alt,
|
|
3282
|
-
className: imageClassName !== null && imageClassName !== void 0 ? imageClassName : ''
|
|
3283
|
-
}));
|
|
3284
|
-
};
|
|
3285
|
-
|
|
3286
|
-
var _templateObject$1, _templateObject2, _templateObject3;
|
|
3287
|
-
var RecruiterDetails = function RecruiterDetails(_ref) {
|
|
3288
|
-
var contactNav = _ref.contactNav,
|
|
3289
|
-
className = _ref.className,
|
|
3290
|
-
children = _ref.children;
|
|
3291
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
3292
|
-
className: twMerge(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral(["\n\t\t\t\thc-grow\n\t\t\t\t", "\n\t\t\t"])), className !== null && className !== void 0 ? className : '')
|
|
3293
|
-
}, children, contactNav && /*#__PURE__*/React.createElement("div", {
|
|
3294
|
-
className: "hc-inline-flex"
|
|
3295
|
-
}, contactNav));
|
|
3296
|
-
};
|
|
3297
|
-
var Title = function Title(_ref2) {
|
|
3298
|
-
var _ref2$as = _ref2.as,
|
|
3299
|
-
as = _ref2$as === void 0 ? 'h4' : _ref2$as,
|
|
3300
|
-
className = _ref2.className,
|
|
3301
|
-
children = _ref2.children;
|
|
3302
|
-
var Container = as;
|
|
3303
|
-
return /*#__PURE__*/React.createElement(Container, {
|
|
3304
|
-
className: twMerge(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n\t\t\t\thc-text-base hc-font-medium\n\t\t\t\t", "\n\t\t\t"])), className !== null && className !== void 0 ? className : '')
|
|
3305
|
-
}, children);
|
|
3306
|
-
};
|
|
3307
|
-
var Text = function Text(_ref3) {
|
|
3308
|
-
var _ref3$as = _ref3.as,
|
|
3309
|
-
as = _ref3$as === void 0 ? 'p' : _ref3$as,
|
|
3310
|
-
className = _ref3.className,
|
|
3311
|
-
children = _ref3.children;
|
|
3312
|
-
var Container = as;
|
|
3313
|
-
return /*#__PURE__*/React.createElement(Container, {
|
|
3314
|
-
className: twMerge(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n\t\t\t\thc-text-sm hc-text-uiText/60\n\t\t\t\t", "\n\t\t\t"])), className !== null && className !== void 0 ? className : '')
|
|
3315
|
-
}, children);
|
|
3316
|
-
};
|
|
3317
|
-
RecruiterDetails.Title = Title;
|
|
3318
|
-
RecruiterDetails.Text = Text;
|
|
3319
|
-
|
|
3320
|
-
var ApplyDialog = function ApplyDialog(_ref) {
|
|
3321
|
-
var children = _ref.children,
|
|
3322
|
-
applyUrl = _ref.applyUrl,
|
|
3323
|
-
internalApplyLink = _ref.internalApplyLink,
|
|
3324
|
-
companyName = _ref.companyName;
|
|
3325
|
-
return /*#__PURE__*/React.createElement(Dialog.Root, null, /*#__PURE__*/React.createElement(Dialog.Trigger, {
|
|
3326
|
-
asChild: true
|
|
3327
|
-
}, children), /*#__PURE__*/React.createElement(Dialog.Portal, null, /*#__PURE__*/React.createElement(Dialog.Overlay, {
|
|
3328
|
-
className: "hc-bg-blackA6 hc-fixed hc-inset-0 hc-animate-overlayShow"
|
|
3329
|
-
}), /*#__PURE__*/React.createElement(Dialog.Content, {
|
|
3330
|
-
className: "hc-fit-content hc-animate-contentShow hc-fixed hc-inset-0 hc-m-auto hc-max-h-[85vh] hc-w-[90vw] hc-max-w-[450px] hc-rounded-[6px] hc-bg-white hc-p-[25px] hc-shadow-lg focus:hc-outline-none hc-flex hc-flex-col hc-items-center hc-text-center"
|
|
3331
|
-
}, /*#__PURE__*/React.createElement(Dialog.Title, {
|
|
3332
|
-
className: "hc-text-[17px] hc-font-medium hc-w-full"
|
|
3333
|
-
}, "Career Opportunities"), /*#__PURE__*/React.createElement(Dialog.Description, {
|
|
3334
|
-
className: "hc-mt-4 hc-mb-5 hc-text-[15px] hc-leading-normal hc-w-full"
|
|
3335
|
-
}, "Are you currently a ", companyName, " employee?"), /*#__PURE__*/React.createElement("div", {
|
|
3336
|
-
className: "hc-flex hc-justify-center hc-space-x-4 hc-w-full"
|
|
3337
|
-
}, /*#__PURE__*/React.createElement(Dialog.Close, {
|
|
3338
|
-
asChild: true
|
|
3339
|
-
}, /*#__PURE__*/React.createElement(Button.Anchor, {
|
|
3340
|
-
variant: "outline",
|
|
3341
|
-
href: internalApplyLink
|
|
3342
|
-
}, "Yes")), /*#__PURE__*/React.createElement(Dialog.Close, {
|
|
3343
|
-
asChild: true
|
|
3344
|
-
}, /*#__PURE__*/React.createElement(Button.Anchor, {
|
|
3345
|
-
variant: "primary",
|
|
3346
|
-
href: applyUrl
|
|
3347
|
-
}, "No"))), /*#__PURE__*/React.createElement(Dialog.Close, {
|
|
3348
|
-
asChild: true
|
|
3349
|
-
}, /*#__PURE__*/React.createElement(Button.Anchor, {
|
|
3350
|
-
className: "hc-absolute hc-top-[10px] hc-right-[10px] hc-inline-flex hc-h-[25px] hc-w-[25px] hc-items-center hc-justify-center hc-rounded-full focus:hc-outline-none",
|
|
3351
|
-
variant: "ghost",
|
|
3352
|
-
"aria-label": "Close"
|
|
3353
|
-
}, /*#__PURE__*/React.createElement(IconContained, {
|
|
3354
|
-
icon: "mdi:times",
|
|
3355
|
-
className: "hc-cursor-pointer hc-text-black hover:hc-text-gray-500 hover:hc-opacity-75"
|
|
3356
|
-
}))))));
|
|
3357
|
-
};
|
|
3358
|
-
|
|
3359
|
-
var _templateObject;
|
|
3360
|
-
var ButtonGroupApply = function ButtonGroupApply(_ref) {
|
|
3361
|
-
var applyUrl = _ref.applyUrl,
|
|
3362
|
-
useDetailsPostMessage = _ref.useDetailsPostMessage,
|
|
3363
|
-
navigateToDetails = _ref.navigateToDetails,
|
|
3364
|
-
_ref$applyText = _ref.applyText,
|
|
3365
|
-
applyText = _ref$applyText === void 0 ? 'Apply Now' : _ref$applyText,
|
|
3366
|
-
detailsUrl = _ref.detailsUrl,
|
|
3367
|
-
_ref$detailsText = _ref.detailsText,
|
|
3368
|
-
detailsText = _ref$detailsText === void 0 ? 'View Details' : _ref$detailsText,
|
|
3369
|
-
className = _ref.className,
|
|
3370
|
-
_ref$buttonSize = _ref.buttonSize,
|
|
3371
|
-
buttonSize = _ref$buttonSize === void 0 ? 'default' : _ref$buttonSize,
|
|
3372
|
-
_ref$applyButtonVaria = _ref.applyButtonVariant,
|
|
3373
|
-
applyButtonVariant = _ref$applyButtonVaria === void 0 ? 'primary' : _ref$applyButtonVaria,
|
|
3374
|
-
_ref$detailsButtonVar = _ref.detailsButtonVariant,
|
|
3375
|
-
detailsButtonVariant = _ref$detailsButtonVar === void 0 ? 'outline' : _ref$detailsButtonVar,
|
|
3376
|
-
_ref$includeDialog = _ref.includeDialog,
|
|
3377
|
-
includeDialog = _ref$includeDialog === void 0 ? false : _ref$includeDialog,
|
|
3378
|
-
internalApplyLink = _ref.internalApplyLink,
|
|
3379
|
-
itemId = _ref.itemId,
|
|
3380
|
-
companyName = _ref.companyName;
|
|
3381
|
-
var applyButton = function applyButton() {
|
|
3382
|
-
return /*#__PURE__*/React.createElement(Button.Anchor, {
|
|
3383
|
-
variant: applyButtonVariant,
|
|
3384
|
-
size: buttonSize
|
|
3385
|
-
}, applyText);
|
|
3386
|
-
};
|
|
3387
|
-
return /*#__PURE__*/React.createElement("nav", {
|
|
3388
|
-
className: twMerge(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n\t\t\t\thc-flex hc-flex-row hc-justify-between hc-gap-2 hc-w-full\n\t\t\t\t", "\n\t\t\t"])), className !== null && className !== void 0 ? className : '')
|
|
3389
|
-
}, navigateToDetails !== null && /*#__PURE__*/React.createElement(Button.Btn, {
|
|
3390
|
-
onClick: function onClick() {
|
|
3391
|
-
navigateToDetails(itemId);
|
|
3392
|
-
},
|
|
3393
|
-
variant: detailsButtonVariant,
|
|
3394
|
-
size: buttonSize
|
|
3395
|
-
}, detailsText), detailsUrl && useDetailsPostMessage !== true && navigateToDetails === null && /*#__PURE__*/React.createElement(Button.Anchor, {
|
|
3396
|
-
href: detailsUrl,
|
|
3397
|
-
variant: detailsButtonVariant,
|
|
3398
|
-
size: buttonSize
|
|
3399
|
-
}, detailsText), useDetailsPostMessage === true && navigateToDetails === null && /*#__PURE__*/React.createElement(Button.Btn, {
|
|
3400
|
-
onClick: function onClick() {
|
|
3401
|
-
window.parent.postMessage({
|
|
3402
|
-
itemId: itemId,
|
|
3403
|
-
type: 'LISTING_ID'
|
|
3404
|
-
}, '*');
|
|
3405
|
-
},
|
|
3406
|
-
variant: detailsButtonVariant,
|
|
3407
|
-
size: buttonSize
|
|
3408
|
-
}, detailsText), applyUrl && !includeDialog && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button.Anchor, {
|
|
3409
|
-
href: applyUrl,
|
|
3410
|
-
variant: applyButtonVariant,
|
|
3411
|
-
size: buttonSize
|
|
3412
|
-
}, applyText)), applyUrl && includeDialog && /*#__PURE__*/React.createElement(ApplyDialog, {
|
|
3413
|
-
applyUrl: applyUrl,
|
|
3414
|
-
internalApplyLink: internalApplyLink,
|
|
3415
|
-
companyName: companyName
|
|
3416
|
-
}, applyButton()));
|
|
3417
|
-
};
|
|
3418
|
-
|
|
3419
|
-
var _excluded = ["className", "href", "target", "title", "icon"];
|
|
3420
|
-
var RecruiterContactNav = function RecruiterContactNav(_ref) {
|
|
3421
|
-
var children = _ref.children,
|
|
3422
|
-
className = _ref.className;
|
|
3423
|
-
return /*#__PURE__*/React.createElement("nav", {
|
|
3424
|
-
className: "\n\t\t\thc-inline-flex hc-items-center hc-justify-between hc-gap-2 hc-mt-2\n\t\t\t\t".concat(className !== null && className !== void 0 ? className : '', "\n\t\t\t")
|
|
3425
|
-
}, children);
|
|
3426
|
-
};
|
|
3427
|
-
var NavButton = function NavButton(_ref2) {
|
|
3428
|
-
var className = _ref2.className,
|
|
3429
|
-
href = _ref2.href,
|
|
3430
|
-
_ref2$target = _ref2.target,
|
|
3431
|
-
target = _ref2$target === void 0 ? '_self' : _ref2$target,
|
|
3432
|
-
title = _ref2.title,
|
|
3433
|
-
icon = _ref2.icon,
|
|
3434
|
-
props = _objectWithoutProperties(_ref2, _excluded);
|
|
3435
|
-
return /*#__PURE__*/React.createElement(Button.Anchor, _extends({
|
|
3436
|
-
href: href,
|
|
3437
|
-
variant: "icon",
|
|
3438
|
-
size: "sq",
|
|
3439
|
-
target: target,
|
|
3440
|
-
title: title,
|
|
3441
|
-
className: className !== null && className !== void 0 ? className : ''
|
|
3442
|
-
}, props), /*#__PURE__*/React.createElement("span", {
|
|
3443
|
-
className: "hc-sr-only"
|
|
3444
|
-
}, title), /*#__PURE__*/React.createElement(Button.Icon, {
|
|
3445
|
-
icon: icon,
|
|
3446
|
-
size: "hc-size-8"
|
|
3447
|
-
}));
|
|
3448
|
-
};
|
|
3449
|
-
RecruiterContactNav.Button = NavButton;
|
|
3450
|
-
|
|
3451
|
-
var ListingDetails = function ListingDetails(_ref) {
|
|
3452
|
-
var _item$details;
|
|
3453
|
-
var item = _ref.item,
|
|
3454
|
-
recruiters = _ref.recruiters;
|
|
3455
|
-
var _useMap = useMap(),
|
|
3456
|
-
travelTime = _useMap.travelTime;
|
|
3457
|
-
var _useMapList = useMapList(),
|
|
3458
|
-
siteConfig = _useMapList.siteConfig,
|
|
3459
|
-
navigateToDetails = _useMapList.navigateToDetails;
|
|
3460
|
-
if (!item) {
|
|
3461
|
-
return null;
|
|
3462
|
-
}
|
|
3463
|
-
var matchingRecruiter = !recruiters ? null : recruiters[item === null || item === void 0 ? void 0 : item.recruiterId];
|
|
3464
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
3465
|
-
className: "hc-w-full"
|
|
3466
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
3467
|
-
className: "hc-grow hc-flex hc-flex-wrap hc-items-center hc-gap-4"
|
|
3468
|
-
}, (matchingRecruiter === null || matchingRecruiter === void 0 ? void 0 : matchingRecruiter.headshot) && /*#__PURE__*/React.createElement(RecruiterHeadshot, {
|
|
3469
|
-
image: "https:".concat(matchingRecruiter.headshot),
|
|
3470
|
-
alt: matchingRecruiter === null || matchingRecruiter === void 0 ? void 0 : matchingRecruiter.firstName,
|
|
3471
|
-
className: "hc-bg-gray-300"
|
|
3472
|
-
}), matchingRecruiter && /*#__PURE__*/React.createElement(RecruiterDetails, {
|
|
3473
|
-
contactNav: /*#__PURE__*/React.createElement(RecruiterContactNav, null, (matchingRecruiter === null || matchingRecruiter === void 0 ? void 0 : matchingRecruiter.mobilePhone) && /*#__PURE__*/React.createElement(RecruiterContactNav.Button, {
|
|
3474
|
-
href: "tel:".concat(matchingRecruiter.mobilePhone),
|
|
3475
|
-
title: "Call ".concat(matchingRecruiter.mobilePhone),
|
|
3476
|
-
icon: "fluent:phone-32-regular"
|
|
3477
|
-
}), (matchingRecruiter === null || matchingRecruiter === void 0 ? void 0 : matchingRecruiter.email) && /*#__PURE__*/React.createElement(RecruiterContactNav.Button, {
|
|
3478
|
-
href: "mailto:".concat(matchingRecruiter.email),
|
|
3479
|
-
title: "email ".concat(matchingRecruiter.email),
|
|
3480
|
-
icon: "bi:envelope-at"
|
|
3481
|
-
}), (matchingRecruiter === null || matchingRecruiter === void 0 ? void 0 : matchingRecruiter.linkedIn) && /*#__PURE__*/React.createElement(RecruiterContactNav.Button, {
|
|
3482
|
-
href: matchingRecruiter.linkedIn,
|
|
3483
|
-
title: "LinkedIn",
|
|
3484
|
-
icon: "ant-design:linkedin-outlined"
|
|
3485
|
-
}))
|
|
3486
|
-
}, (matchingRecruiter === null || matchingRecruiter === void 0 ? void 0 : matchingRecruiter.firstName) && (matchingRecruiter === null || matchingRecruiter === void 0 ? void 0 : matchingRecruiter.lastName) && /*#__PURE__*/React.createElement(RecruiterDetails.Title, null, "".concat(matchingRecruiter === null || matchingRecruiter === void 0 ? void 0 : matchingRecruiter.firstName, " ").concat(matchingRecruiter === null || matchingRecruiter === void 0 ? void 0 : matchingRecruiter.lastName)), ((_item$details = item.details) === null || _item$details === void 0 || (_item$details = _item$details.recruiter) === null || _item$details === void 0 ? void 0 : _item$details.title) && /*#__PURE__*/React.createElement(RecruiterDetails.Text, null, item.details.recruiter.title)), /*#__PURE__*/React.createElement(ButtonGroupApply, {
|
|
3487
|
-
useDetailsPostMessage: siteConfig.useDetailsPostMessage,
|
|
3488
|
-
navigateToDetails: navigateToDetails,
|
|
3489
|
-
includeDialog: siteConfig.useApplyDialog,
|
|
3490
|
-
internalApplyLink: siteConfig.internalApplyLink,
|
|
3491
|
-
companyName: siteConfig.companyName,
|
|
3492
|
-
applyUrl: item === null || item === void 0 ? void 0 : item.applyUrl,
|
|
3493
|
-
itemId: item.id,
|
|
3494
|
-
detailsUrl: item.useClientJobUrl ? item === null || item === void 0 ? void 0 : item.detailsUrl : "".concat(siteConfig.jobsDomain).concat(item.id),
|
|
3495
|
-
className: "\n\t\t\t\t\tlg:hc-flex-col lg: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".concat(matchingRecruiter ? "lg:hc-flex-col lg:hc-w-auto" : "lg:hc-flex-row", "\n ")
|
|
3496
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
3497
|
-
className: "hc-w-full"
|
|
3498
|
-
}, /*#__PURE__*/React.createElement(CommutePill, {
|
|
3499
|
-
travelTime: travelTime,
|
|
3500
|
-
className: "hc-ml-0"
|
|
3501
|
-
})));
|
|
3502
|
-
};
|
|
3503
|
-
|
|
3504
|
-
var ItemsList = function ItemsList(_ref) {
|
|
3505
|
-
var fieldNames = _ref.fieldNames,
|
|
3506
|
-
showMap = _ref.showMap,
|
|
3507
|
-
fieldsShown = _ref.fieldsShown,
|
|
3508
|
-
specialFeatures = _ref.specialFeatures;
|
|
3509
|
-
var _useListLogic = useListLogic(),
|
|
3510
|
-
itemLimit = _useListLogic.itemLimit,
|
|
3511
|
-
sortSetting = _useListLogic.sortSetting,
|
|
3512
|
-
loader = _useListLogic.loader,
|
|
3513
|
-
scrollContainerRef = _useListLogic.scrollContainerRef,
|
|
3514
|
-
itemRefs = _useListLogic.itemRefs,
|
|
3515
|
-
setSortSetting = _useListLogic.setSortSetting;
|
|
3516
|
-
var _useMap = useMap(),
|
|
3517
|
-
selectedListItem = _useMap.selectedListItem;
|
|
3518
|
-
var _useMapList = useMapList(),
|
|
3519
|
-
mapItems = _useMapList.mapItems,
|
|
3520
|
-
filteredListings = _useMapList.filteredListings,
|
|
3521
|
-
loading = _useMapList.loading,
|
|
3522
|
-
commuteLocation = _useMapList.commuteLocation;
|
|
3523
|
-
var itemExpandedContent = function itemExpandedContent(item, recruiters) {
|
|
3524
|
-
return item ? /*#__PURE__*/React.createElement(ListingDetails, {
|
|
3525
|
-
item: item,
|
|
3526
|
-
recruiters: recruiters
|
|
3527
|
-
}) : null;
|
|
3528
|
-
};
|
|
3529
|
-
if (!fieldsShown.includes('travelTime') && commuteLocation != null && Object.entries(commuteLocation).length > 0) {
|
|
3530
|
-
fieldsShown.push('travelTime');
|
|
3531
|
-
fieldNames['travelTime'] = 'Commute';
|
|
3532
|
-
} else if (fieldsShown.includes('travelTime') && !commuteLocation) {
|
|
3533
|
-
fieldsShown = fieldsShown.filter(function (x) {
|
|
3534
|
-
return x !== 'travelTime';
|
|
3535
|
-
});
|
|
3536
|
-
}
|
|
3537
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
3538
|
-
className: "hc-relative hc-bg-white md:hc-px-4 hc-flex hc-flex-col"
|
|
3539
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
3540
|
-
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"
|
|
3541
|
-
}, /*#__PURE__*/React.createElement("h2", {
|
|
3542
|
-
className: "hc-text-gray-500 hc-font-semibold hc-text-xs md:hc-text-sm"
|
|
3543
|
-
}, loading && /*#__PURE__*/React.createElement("span", null, "Loading..."), !loading && /*#__PURE__*/React.createElement("span", null, filteredListings.length, " results")), /*#__PURE__*/React.createElement("div", {
|
|
3544
|
-
className: "hc-block md:hc-hidden"
|
|
3545
|
-
}, /*#__PURE__*/React.createElement(FilterSort, {
|
|
3546
|
-
fields: fieldsShown,
|
|
3547
|
-
setSortSetting: setSortSetting,
|
|
3548
|
-
fieldNames: fieldNames
|
|
3549
|
-
}))), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(ListHeader, {
|
|
3550
|
-
setSortSetting: setSortSetting,
|
|
3551
|
-
sortSetting: sortSetting,
|
|
3552
|
-
fieldsShown: fieldsShown,
|
|
3553
|
-
fieldNames: fieldNames
|
|
3554
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
3555
|
-
ref: scrollContainerRef,
|
|
3556
|
-
className: "\n\t\t\t\t\thc-flex-grow hc-overflow-y-auto\n\t\t\t\t\t".concat(showMap ? "md:hc-max-h-45vh hc-max-h-[100vh]" : "md:hc-max-h-95vh hc-max-h-[95vh]", "\n\t\t\t\t")
|
|
3557
|
-
}, loading ? /*#__PURE__*/React.createElement("div", {
|
|
3558
|
-
className: "hc-flex hc-justify-center hc-items-center hc-pt-20"
|
|
3559
|
-
}, /*#__PURE__*/React.createElement(Loading, null)) : /*#__PURE__*/React.createElement(Accordion, {
|
|
3560
|
-
className: "hc-divide-y hc-divide-uiAccent/10 hc-z-[1000]",
|
|
3561
|
-
defaultValue: selectedListItem === null || selectedListItem === void 0 ? void 0 : selectedListItem.id
|
|
3562
|
-
}, filteredListings.slice(0, itemLimit).map(function (item) {
|
|
3563
|
-
return /*#__PURE__*/React.createElement(MapAccordionItem, {
|
|
3564
|
-
key: item.id,
|
|
3565
|
-
showMap: showMap,
|
|
3566
|
-
item: item,
|
|
3567
|
-
itemRefs: itemRefs,
|
|
3568
|
-
fieldsShown: fieldsShown,
|
|
3569
|
-
itemExpandedContent: itemExpandedContent,
|
|
3570
|
-
specialFeatures: specialFeatures,
|
|
3571
|
-
mapItems: mapItems,
|
|
3572
|
-
isActive: (selectedListItem === null || selectedListItem === void 0 ? void 0 : selectedListItem.id) == item.id,
|
|
3573
|
-
hasListItemSelected: selectedListItem != null
|
|
3574
|
-
});
|
|
3575
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
3576
|
-
ref: loader,
|
|
3577
|
-
style: {
|
|
3578
|
-
height: "100px",
|
|
3579
|
-
textAlign: "center"
|
|
3580
|
-
}
|
|
3581
|
-
}, filteredListings.length >= itemLimit && /*#__PURE__*/React.createElement(Loading, null))));
|
|
3582
|
-
};
|
|
3583
|
-
|
|
3584
|
-
var CardInfoWindow = function CardInfoWindow(_ref) {
|
|
3585
|
-
var className = _ref.className,
|
|
3586
|
-
content = _ref.content,
|
|
3587
|
-
id = _ref.id;
|
|
3588
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
3589
|
-
id: id,
|
|
3590
|
-
className: "\n\t\t\thc-relative hc-flex hc-flex-col hc-break-words hc-bg-clip-border\n\t\t\t\t".concat(className !== null && className !== void 0 ? className : "", "\n\t\t\t")
|
|
3591
|
-
}, content);
|
|
3592
|
-
};
|
|
3593
|
-
|
|
3594
|
-
var InfoWindowContent = function InfoWindowContent(_ref) {
|
|
3595
|
-
var _items$0$mapDetails, _items$0$mapDetails2, _items$0$mapDetails3, _items$0$mapDetails4, _items$0$mapDetails5;
|
|
3596
|
-
var item = _ref.item,
|
|
3597
|
-
filterListingsByLocation = _ref.filterListingsByLocation;
|
|
3598
|
-
var _useMapList = useMapList(),
|
|
3599
|
-
setSelectedFilters = _useMapList.setSelectedFilters;
|
|
3600
|
-
_useMapList.setQuery;
|
|
3601
|
-
var setMobileTab = _useMapList.setMobileTab,
|
|
3602
|
-
selectedFilters = _useMapList.selectedFilters;
|
|
3603
|
-
var items = item && item.items ? Object.values(item.items) : null;
|
|
3604
|
-
if (!items || items.length < 0) {
|
|
3605
|
-
return;
|
|
3606
|
-
}
|
|
3607
|
-
var addressParts = [(_items$0$mapDetails = items[0].mapDetails) === null || _items$0$mapDetails === void 0 || (_items$0$mapDetails = _items$0$mapDetails.address) === null || _items$0$mapDetails === void 0 ? void 0 : _items$0$mapDetails.street, (_items$0$mapDetails2 = items[0].mapDetails) === null || _items$0$mapDetails2 === void 0 || (_items$0$mapDetails2 = _items$0$mapDetails2.address) === null || _items$0$mapDetails2 === void 0 ? void 0 : _items$0$mapDetails2.city, (_items$0$mapDetails3 = items[0].mapDetails) === null || _items$0$mapDetails3 === void 0 || (_items$0$mapDetails3 = _items$0$mapDetails3.address) === null || _items$0$mapDetails3 === void 0 ? void 0 : _items$0$mapDetails3.state, (_items$0$mapDetails4 = items[0].mapDetails) === null || _items$0$mapDetails4 === void 0 || (_items$0$mapDetails4 = _items$0$mapDetails4.address) === null || _items$0$mapDetails4 === void 0 ? void 0 : _items$0$mapDetails4.zip];
|
|
3608
|
-
var fullAddress = addressParts.filter(Boolean).join(', ');
|
|
3609
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
3610
|
-
className: "hc-flex-auto hc-p-2"
|
|
3611
|
-
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h4", {
|
|
3612
|
-
className: "hc-text-lg hc-font-bold hc-leading-tight hc-mb-3"
|
|
3613
|
-
}, (_items$0$mapDetails5 = items[0].mapDetails) === null || _items$0$mapDetails5 === void 0 ? void 0 : _items$0$mapDetails5.entityDisplayName), /*#__PURE__*/React.createElement("p", null, fullAddress), /*#__PURE__*/React.createElement("div", {
|
|
3614
|
-
className: "hc-pt-2"
|
|
3615
|
-
}, /*#__PURE__*/React.createElement("button", {
|
|
3616
|
-
className: "hc-cursor-pointer hover:hc-opacity-70 hc-text-primary",
|
|
3617
|
-
onClick: function onClick() {
|
|
3618
|
-
setMobileTab("listTab");
|
|
3619
|
-
setSelectedFilters(_objectSpread2(_objectSpread2({}, selectedFilters), {}, {
|
|
3620
|
-
cityState: _defineProperty({}, items[0].fields.cityState, true)
|
|
3621
|
-
}));
|
|
3622
|
-
filterListingsByLocation();
|
|
3623
|
-
}
|
|
3624
|
-
}, items.length > 1 ? "View All ".concat(items.length, " jobs at this location") : "View job at this location")))));
|
|
3625
|
-
};
|
|
3626
|
-
|
|
3627
|
-
var MapMarker = function MapMarker(_ref) {
|
|
3628
|
-
var item = _ref.item,
|
|
3629
|
-
markerRefs = _ref.markerRefs,
|
|
3630
|
-
infoWindowClasses = _ref.infoWindowClasses,
|
|
3631
|
-
markerClickHandler = _ref.markerClickHandler,
|
|
3632
|
-
clusterer = _ref.clusterer,
|
|
3633
|
-
markerIconSelected = _ref.markerIconSelected,
|
|
3634
|
-
markerIcon = _ref.markerIcon,
|
|
3635
|
-
selectedLocation = _ref.selectedLocation,
|
|
3636
|
-
setMapInteracted = _ref.setMapInteracted;
|
|
3637
|
-
var _useMap = useMap(),
|
|
3638
|
-
setLocation = _useMap.setLocation,
|
|
3639
|
-
commuteLocation = _useMap.commuteLocation;
|
|
3640
|
-
var isSelected = item.id === (selectedLocation === null || selectedLocation === void 0 ? void 0 : selectedLocation.id);
|
|
3641
|
-
var markerRef = useRef(null);
|
|
3642
|
-
var _useMapList = useMapList(),
|
|
3643
|
-
handleFilterListingsByLocation = _useMapList.handleFilterListingsByLocation;
|
|
3644
|
-
useEffect(function () {
|
|
3645
|
-
markerRefs.current[item.id] = markerRef.current;
|
|
3646
|
-
}, []);
|
|
3647
|
-
var onMarkerClick = function onMarkerClick() {
|
|
3648
|
-
setMapInteracted(true);
|
|
3649
|
-
markerClickHandler(item);
|
|
3650
|
-
};
|
|
3651
|
-
var getInfoWindow = function getInfoWindow() {
|
|
3652
|
-
if (!isSelected || !item || !item.id || !selectedLocation) {
|
|
3653
|
-
return;
|
|
3654
|
-
}
|
|
3655
|
-
//Direct dom removal of empty info windows
|
|
3656
|
-
document.querySelectorAll("div.gm-style-iw.gm-style-iw-c").forEach(function (x) {
|
|
3657
|
-
if (!x.innerHTML.includes(item.id)) x.parentElement.remove();
|
|
3658
|
-
});
|
|
3659
|
-
return /*#__PURE__*/React.createElement(InfoWindow, {
|
|
3660
|
-
position: {
|
|
3661
|
-
lat: item.latitude,
|
|
3662
|
-
lng: item.longitude
|
|
3663
|
-
},
|
|
3664
|
-
anchor: markerRefs.current[item.id],
|
|
3665
|
-
onCloseClick: function onCloseClick() {
|
|
3666
|
-
setMapInteracted(true);
|
|
3667
|
-
setLocation(null);
|
|
3668
|
-
},
|
|
3669
|
-
options: {
|
|
3670
|
-
maxWidth: 400
|
|
3671
|
-
}
|
|
3672
|
-
}, /*#__PURE__*/React.createElement(CardInfoWindow, {
|
|
3673
|
-
className: infoWindowClasses,
|
|
3674
|
-
id: item.id,
|
|
3675
|
-
content: /*#__PURE__*/React.createElement(InfoWindowContent, {
|
|
3676
|
-
item: item,
|
|
3677
|
-
commuteLocation: commuteLocation,
|
|
3678
|
-
filterListingsByLocation: function filterListingsByLocation() {
|
|
3679
|
-
return handleFilterListingsByLocation(selectedLocation);
|
|
3680
|
-
}
|
|
3681
|
-
})
|
|
3682
|
-
}));
|
|
3683
|
-
};
|
|
3684
|
-
return /*#__PURE__*/React.createElement(MarkerF, {
|
|
3685
|
-
key: item.id,
|
|
3686
|
-
position: {
|
|
3687
|
-
lat: item.latitude,
|
|
3688
|
-
lng: item.longitude
|
|
3689
|
-
},
|
|
3690
|
-
title: item.name,
|
|
3691
|
-
options: {
|
|
3692
|
-
icon: isSelected ? markerIconSelected : markerIcon
|
|
3693
|
-
},
|
|
3694
|
-
zIndex: isSelected ? 9999 : 1,
|
|
3695
|
-
onLoad: function onLoad(marker) {
|
|
3696
|
-
return markerRef.current = marker;
|
|
3697
|
-
},
|
|
3698
|
-
onClick: onMarkerClick,
|
|
3699
|
-
clusterer: clusterer
|
|
3700
|
-
}, isSelected && getInfoWindow());
|
|
3701
|
-
};
|
|
3702
|
-
|
|
3703
|
-
var placeTypes = {
|
|
3704
|
-
FOOD: "food",
|
|
3705
|
-
STORE: "shopping",
|
|
3706
|
-
TOURIST_ATTRACTION: "attractions",
|
|
3707
|
-
TRANSIT_STATION: "transit",
|
|
3708
|
-
SCHOOL: "schools",
|
|
3709
|
-
PLACE_OF_WORSHIP: "worship"
|
|
3710
|
-
};
|
|
3711
|
-
|
|
3712
|
-
var customSVGIcon = function customSVGIcon(type) {
|
|
3713
|
-
var fillColor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "#FFFFFF";
|
|
3714
|
-
var strokeColor = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "#000000";
|
|
3715
|
-
var backgroundFill = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "#000000";
|
|
3716
|
-
var backgroundStroke = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : "#000000";
|
|
3717
|
-
var svg = "";
|
|
3718
|
-
switch (type) {
|
|
3719
|
-
case placeTypes.FOOD:
|
|
3720
|
-
svg = "\n\t\t\t\t\t<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" preserveAspectRatio=\"xMidYMid meet\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:".concat(fillColor, "; stroke:").concat(strokeColor, ";}\n\t\t\t\t\t.svg-background{fill:").concat(backgroundFill, "; stroke:").concat(backgroundStroke, ";}\n\t\t\t\t\t</style>\n\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M25.7,36.6l0.6,15.8c0.1,2.4-2.3,2.4-2.3,2.4s-2.4,0-2.3-2.4l0.6-15.8c0.1-2-4.3-2.9-4-4.9l2.3-13.3h1.1\n\t\t\t\t\t\tl-0.6,9.7l1.7,1.2l0.6-10.9h1.1l0.6,10.9l1.7-1.2l-0.6-9.7h1.1l2.3,13.3C29.7,33.7,25.6,34.6,25.7,36.6z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M40,52.4c0,2.4-2.3,2.4-2.3,2.4s-2.5,0-2.3-2.4L36.6,39c-0.9,0-3.4-0.4-3.4-2.4v-6.1c0-2.4,0.3-6.4,1.2-8.2\n\t\t\t\t\t\tc1.1-2.4,3.9-4,5.6-4C40,18.3,40,52.4,40,52.4z\"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t");
|
|
3721
|
-
break;
|
|
3722
|
-
case placeTypes.TOURIST_ATTRACTION:
|
|
3723
|
-
svg = "<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" preserveAspectRatio=\"xMidYMid meet\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:".concat(fillColor, "; stroke:").concat(strokeColor, ";}\n\t\t\t\t\t.svg-background{fill:").concat(backgroundFill, "; stroke:").concat(backgroundStroke, ";}\n\t\t\t\t\t</style>\n\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M27,18.5c-1.2,0-1.7,1.1-2.2,2.2L23.7,23h-4.5c-1.9,0-3.4,1.5-3.4,3.4v11.2c0,1.9,1.5,3.4,3.4,3.4h22.5\n\t\t\t\t\t\tc1.9,0,3.4-1.5,3.4-3.4V26.4c0-1.9-1.5-3.4-3.4-3.4h-4.5L36,20.8c-0.6-1.1-1-2.2-2.2-2.2H27z M19.2,25.3c0.6,0,1.1,0.5,1.1,1.1\n\t\t\t\t\t\tc0,0.6-0.5,1.1-1.1,1.1c-0.6,0-1.1-0.5-1.1-1.1C18,25.8,18.5,25.3,19.2,25.3z M30.4,25.3c3.7,0,6.7,3,6.7,6.7s-3,6.7-6.7,6.7\n\t\t\t\t\t\ts-6.7-3-6.7-6.7S26.7,25.3,30.4,25.3z M30.4,28.7c-1.9,0-3.4,1.5-3.4,3.4s1.5,3.4,3.4,3.4c1.9,0,3.4-1.5,3.4-3.4\n\t\t\t\t\t\tS32.3,28.7,30.4,28.7z\"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t");
|
|
3724
|
-
break;
|
|
3725
|
-
case placeTypes.SCHOOL:
|
|
3726
|
-
svg = "\n\t\t\t\t\t<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" preserveAspectRatio=\"xMidYMid meet\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:".concat(fillColor, "; stroke:").concat(strokeColor, ";}\n\t\t\t\t\t.svg-background{fill:").concat(backgroundFill, "; stroke:").concat(backgroundStroke, ";}\n\t\t\t\t\t</style>\n\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M39.2,40.6c0,0-4.1,4.6-9.1,4.6S21,40.6,21,40.6v-5.2l9.1,5l9.1-5V40.6z\"/>\n\t\t\t\t\t<polygon class=\"st0\" points=\"44.4,40.4 41.8,40.4 41.8,31.4 30.1,37.8 15.8,30 30.1,22.2 44.4,30 \"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t");
|
|
3727
|
-
break;
|
|
3728
|
-
case placeTypes.STORE:
|
|
3729
|
-
svg = "<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" preserveAspectRatio=\"xMidYMid meet\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:".concat(fillColor, "; stroke:").concat(strokeColor, ";}\n\t\t\t\t\t.svg-background{fill:").concat(backgroundFill, "; stroke:").concat(backgroundStroke, ";}\n\t\t\t\t\t</style>\n\t\t\t\t\t<g>\n\t\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t</g>\n\t\t\t\t\t<path class=\"st0\" d=\"M45.4,27.7L42,41.1c-0.1,0.6-0.7,1-1.3,1c1.8,0,3.3,1.5,3.3,3.3s-1.5,3.3-3.3,3.3s-3.3-1.5-3.3-3.3\n\t\t\t\t\t\ts1.5-3.3,3.3-3.3H23.3c1.8,0,3.3,1.5,3.3,3.3s-1.5,3.3-3.3,3.3S20,47.2,20,45.4s1.5-3.3,3.3-3.3c-0.6,0-1.2-0.4-1.3-1l-4.1-16.4\n\t\t\t\t\t\th-1.3c-0.7,0-1.3-0.6-1.3-1.3s0.6-1.3,1.3-1.3h2.3c0.6,0,1.2,0.4,1.3,1l0.8,3h23.1c0.4,0,0.8,0.2,1.1,0.5\n\t\t\t\t\t\tC45.4,26.9,45.5,27.3,45.4,27.7z\"/>\n\t\t\t\t\t<path d=\"M41.4,45.5c0-0.4-0.3-0.7-0.7-0.7S40,45.1,40,45.5C40.1,46.2,41.4,46.2,41.4,45.5z\"/>\n\t\t\t\t\t<path d=\"M24,45.5c0-0.4-0.3-0.7-0.7-0.7s-0.7,0.3-0.7,0.7C22.6,46.2,24,46.2,24,45.5z\"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t");
|
|
3730
|
-
break;
|
|
3731
|
-
case placeTypes.TRANSIT_STATION:
|
|
3732
|
-
svg = "<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" preserveAspectRatio=\"xMidYMid meet\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:".concat(fillColor, "; stroke:").concat(strokeColor, ";}\n\t\t\t\t\t.svg-background{fill:").concat(backgroundFill, "; stroke:").concat(backgroundStroke, ";}\n\t\t\t\t\t</style>\n\t\t\t\t\t<g>\n\t\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t</g>\n\t\t\t\t\t<path class=\"st0\" d=\"M26.3,41.3h-2.8L20.7,44h-1.4v-1.4l1.4-1.4c-2.3,0-4.2-1.9-4.2-4.2V26c0-2.3,1.9-4.2,4.2-4.2h9.7\n\t\t\t\t\t\tc2.3,0,4.2,1.9,4.2,4.2v1.4h-2.8v-2.8H19.3v9.7h6.9v7H26.3z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M44.3,43c0,0.5-0.4,1-1,1h-0.8c-0.5,0-1-0.5-1-1.1v-1.7H30.4V43c0,0.5-0.4,1.1-0.9,1.1h-0.9c-0.5,0-1-0.5-1-1\n\t\t\t\t\t\tv-7.6l2-5.7c0.2-0.6,0.7-0.9,1.4-0.9h10c0.6,0,1.1,0.4,1.3,0.9l2,5.7V43z\"/>\n\t\t\t\t\t<circle cx=\"20.7\" cy=\"37.1\" r=\"1.4\"/>\n\t\t\t\t\t<circle cx=\"41.5\" cy=\"37.1\" r=\"1.4\"/>\n\t\t\t\t\t<circle cx=\"30.4\" cy=\"37.1\" r=\"1.4\"/>\n\t\t\t\t\t<polygon points=\"31,30.2 29.6,34.4 42.4,34.4 40.9,30.2 \"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t");
|
|
3733
|
-
break;
|
|
3734
|
-
case placeTypes.PLACE_OF_WORSHIP:
|
|
3735
|
-
svg = "<svg version=\"1.1\" id=\"Layer_1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" x=\"0px\" y=\"0px\"\n\t\t\t\t\tviewBox=\"0 0 60.8 89.6\" style=\"enable-background:new 0 0 60.8 89.6;\" xml:space=\"preserve\">\n\t\t\t\t\t<style type=\"text/css\">\n\t\t\t\t\t.st0{fill:".concat(fillColor, "; stroke:").concat(strokeColor, ";}\n\t\t\t\t\t.svg-background{fill:").concat(backgroundFill, "; stroke:").concat(backgroundStroke, ";}\n\t\t\t\t\t</style>\n\t\t\t\t\t<path class=\"svg-background\" d=\"M30.4,3.9C14.3,3.9,1.3,16.8,1.3,33c0,21,18.6,29.1,29.1,56.6C40.9,62.1,59.5,54.9,59.5,33C60.3,16.8,46.6,3.9,30.4,3.9z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M21.3,40.8h-3.8c-1.3,0-2.3-1-2.3-2.3v-4.3c0-0.8,0.5-1.6,1.2-2l4.9-2.7V40.8z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M38,40.8h-4.6v-4.6c0-1.7-1.4-3-3-3c-1.7,0-3,1.4-3,3v4.6h-4.6V30c0-0.8,0.4-1.5,1.1-2l1.9-1.2v-5.1l0,0\n\t\t\t\t\t\tc0-0.4,0.2-0.8,0.4-1.1l3.6-3.6c0.3-0.3,0.8-0.3,1.1,0l3.6,3.6c0.3,0.3,0.4,0.7,0.4,1.1v5.1l1.9,1.2c0.7,0.4,1.1,1.2,1.1,2L38,40.8\n\t\t\t\t\t\tL38,40.8z\"/>\n\t\t\t\t\t<path class=\"st0\" d=\"M45.6,38.5c0,1.3-1,2.3-2.3,2.3h-3.8V29.5l4.9,2.7c0.7,0.4,1.2,1.2,1.2,2C45.6,34.2,45.6,38.5,45.6,38.5z\"/>\n\t\t\t\t\t</svg>\n\t\t\t\t\t");
|
|
3736
|
-
break;
|
|
3737
|
-
}
|
|
3738
|
-
var iconUrl = "data:image/svg+xml;utf8,".concat(encodeURIComponent(svg));
|
|
3739
|
-
return iconUrl;
|
|
3740
|
-
};
|
|
3741
|
-
var iconPath = "M5.5 0A5.27 5.27 0 0 0 0 5.01v.49c0 1.73 1.38 3.43 2.07 4.12s3.43 4.12 3.43 4.12 2.75-3.43 3.43-4.12 2.06-2.39 2.06-4.12c.14-2.9-2.1-5.36-5-5.5H5.5Zm-.04 5.71c-.32 0-.57-.27-.56-.58 0-.32.27-.57.58-.56.32 0 .57.27.56.58 0 .31-.25.55-.56.56h-.02Z";
|
|
3742
|
-
var markerIconProps = function markerIconProps(placeMarkerConfigs, type) {
|
|
3743
|
-
var scaledWidth = placeMarkerConfigs.size;
|
|
3744
|
-
var scaledHeight = scaledWidth * 3 / 2;
|
|
3745
|
-
var iconUrl = customSVGIcon(type, placeMarkerConfigs.colors.innerFillColor, placeMarkerConfigs.colors.innerStrokeColor, placeMarkerConfigs.colors.outerFillColor, placeMarkerConfigs.colors.outerStrokeColor);
|
|
3746
|
-
return {
|
|
3747
|
-
url: iconUrl,
|
|
3748
|
-
scaledSize: new google.maps.Size(scaledWidth, scaledHeight),
|
|
3749
|
-
anchor: new google.maps.Point(scaledWidth / 2, scaledHeight)
|
|
3750
|
-
};
|
|
3751
|
-
};
|
|
3752
|
-
var iconProps = function iconProps() {
|
|
3753
|
-
return {
|
|
3754
|
-
path: iconPath,
|
|
3755
|
-
fillOpacity: 1,
|
|
3756
|
-
strokeWeight: 1.75,
|
|
3757
|
-
scale: 1.6,
|
|
3758
|
-
anchor: new google.maps.Point(12, 17)
|
|
3759
|
-
};
|
|
3760
|
-
};
|
|
3761
|
-
var markerIcon = function markerIcon(markerConfigs) {
|
|
3762
|
-
return _objectSpread2(_objectSpread2({}, iconProps()), {}, {
|
|
3763
|
-
fillColor: markerConfigs.fillColor,
|
|
3764
|
-
strokeColor: markerConfigs.strokeColor
|
|
3765
|
-
});
|
|
3766
|
-
};
|
|
3767
|
-
var markerIconSelected = function markerIconSelected(markerConfigs) {
|
|
3768
|
-
return _objectSpread2(_objectSpread2({}, iconProps()), {}, {
|
|
3769
|
-
fillColor: markerConfigs.selectedFillColor,
|
|
3770
|
-
strokeColor: markerConfigs.selectedStrokeColor
|
|
3771
|
-
});
|
|
3772
|
-
};
|
|
3773
|
-
var pinIcon = function pinIcon(markerConfigs) {
|
|
3774
|
-
var fillColor = markerConfigs.fillColor,
|
|
3775
|
-
strokeColor = markerConfigs.strokeColor;
|
|
3776
|
-
var svg = "\n\t<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"30\" height=\"30\" viewBox=\"-6 -4 24 24\">\n\t\t<path d=\"".concat(iconPath, "\" fill=\"").concat(fillColor, "\" stroke=\"").concat(strokeColor, "\" stroke-width=\"2\"/>\n\t </svg>\n\t");
|
|
3777
|
-
return "data:image/svg+xml;utf8,".concat(encodeURIComponent(svg));
|
|
3778
|
-
};
|
|
3779
|
-
|
|
3780
|
-
var searchNearbyPlaces = /*#__PURE__*/function () {
|
|
3781
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(typesArray, location, radius) {
|
|
3782
|
-
var url, headers, data, response;
|
|
3783
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
3784
|
-
while (1) switch (_context.prev = _context.next) {
|
|
3785
|
-
case 0:
|
|
3786
|
-
url = 'https://places.googleapis.com/v1/places:searchNearby';
|
|
3787
|
-
headers = {
|
|
3788
|
-
'Content-Type': 'application/json',
|
|
3789
|
-
'X-Goog-Api-Key': "AIzaSyAXPlfaoMCrmjNV1u-vFYdLBi7GkGeh4S4",
|
|
3790
|
-
'X-Goog-FieldMask': 'places.location,places.displayName,places.types'
|
|
3791
|
-
};
|
|
3792
|
-
data = {
|
|
3793
|
-
includedTypes: typesArray,
|
|
3794
|
-
maxResultCount: 20,
|
|
3795
|
-
locationRestriction: {
|
|
3796
|
-
circle: {
|
|
3797
|
-
center: location,
|
|
3798
|
-
radius: radius
|
|
3799
|
-
}
|
|
3800
|
-
}
|
|
3801
|
-
};
|
|
3802
|
-
_context.prev = 3;
|
|
3803
|
-
_context.next = 6;
|
|
3804
|
-
return fetch(url, {
|
|
3805
|
-
method: 'POST',
|
|
3806
|
-
headers: headers,
|
|
3807
|
-
body: JSON.stringify(data)
|
|
3808
|
-
});
|
|
3809
|
-
case 6:
|
|
3810
|
-
response = _context.sent;
|
|
3811
|
-
if (response.ok) {
|
|
3812
|
-
_context.next = 9;
|
|
3813
|
-
break;
|
|
3814
|
-
}
|
|
3815
|
-
throw new Error("HTTP error! status: ".concat(response.status));
|
|
3816
|
-
case 9:
|
|
3817
|
-
_context.next = 11;
|
|
3818
|
-
return response.json();
|
|
3819
|
-
case 11:
|
|
3820
|
-
return _context.abrupt("return", _context.sent);
|
|
3821
|
-
case 14:
|
|
3822
|
-
_context.prev = 14;
|
|
3823
|
-
_context.t0 = _context["catch"](3);
|
|
3824
|
-
console.error('Error making the Nearby Search request:', _context.t0);
|
|
3825
|
-
throw _context.t0;
|
|
3826
|
-
case 18:
|
|
3827
|
-
case "end":
|
|
3828
|
-
return _context.stop();
|
|
3829
|
-
}
|
|
3830
|
-
}, _callee, null, [[3, 14]]);
|
|
3831
|
-
}));
|
|
3832
|
-
return function searchNearbyPlaces(_x, _x2, _x3) {
|
|
3833
|
-
return _ref.apply(this, arguments);
|
|
3834
|
-
};
|
|
3835
|
-
}();
|
|
3836
|
-
|
|
3837
|
-
var PlacesContext = /*#__PURE__*/createContext();
|
|
3838
|
-
var usePlaces = function usePlaces() {
|
|
3839
|
-
return useContext(PlacesContext);
|
|
3840
|
-
};
|
|
3841
|
-
var PlacesProvider = function PlacesProvider(_ref) {
|
|
3842
|
-
var children = _ref.children,
|
|
3843
|
-
placeMappings = _ref.placeMappings,
|
|
3844
|
-
markerColors = _ref.markerColors;
|
|
3845
|
-
var _useMap = useMap(),
|
|
3846
|
-
selectedPlaces = _useMap.selectedPlaces,
|
|
3847
|
-
zoom = _useMap.zoom,
|
|
3848
|
-
center = _useMap.center;
|
|
3849
|
-
var _useState = useState({
|
|
3850
|
-
markers: [],
|
|
3851
|
-
icon: null
|
|
3852
|
-
}),
|
|
3853
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
3854
|
-
poiMarkers = _useState2[0],
|
|
3855
|
-
setPoiMarkers = _useState2[1];
|
|
3856
|
-
var _useState3 = useState(center),
|
|
3857
|
-
_useState4 = _slicedToArray(_useState3, 2),
|
|
3858
|
-
currentCenter = _useState4[0],
|
|
3859
|
-
setCurrentCenter = _useState4[1];
|
|
3860
|
-
var _useState5 = useState(zoom),
|
|
3861
|
-
_useState6 = _slicedToArray(_useState5, 2),
|
|
3862
|
-
currentZoom = _useState6[0],
|
|
3863
|
-
setCurrentZoom = _useState6[1];
|
|
3864
|
-
var _useState7 = useState(false),
|
|
3865
|
-
_useState8 = _slicedToArray(_useState7, 2),
|
|
3866
|
-
placesWindow = _useState8[0],
|
|
3867
|
-
setPlacesWindow = _useState8[1];
|
|
3868
|
-
var _useState9 = useState(null),
|
|
3869
|
-
_useState10 = _slicedToArray(_useState9, 2),
|
|
3870
|
-
selectedPlaceMarker = _useState10[0],
|
|
3871
|
-
setSelectedPlaceMarker = _useState10[1];
|
|
3872
|
-
var getRadiusForZoom = function getRadiusForZoom() {
|
|
3873
|
-
if (currentZoom >= 18) return 1000;
|
|
3874
|
-
if (currentZoom <= 10) return 0;
|
|
3875
|
-
var tempZoom = Math.pow(19 - currentZoom, 4.85);
|
|
3876
|
-
var radius = tempZoom;
|
|
3877
|
-
var minRadius = 1500;
|
|
3878
|
-
var maxRadius = 800000;
|
|
3879
|
-
if (radius < minRadius) radius = minRadius;else if (radius > maxRadius) radius = maxRadius;
|
|
3880
|
-
return radius;
|
|
3881
|
-
};
|
|
3882
|
-
useEffect(function () {
|
|
3883
|
-
if (!selectedPlaces || !selectedPlaces.length > 0 || !center || currentZoom < 12) {
|
|
3884
|
-
setPoiMarkers({
|
|
3885
|
-
markers: [],
|
|
3886
|
-
icon: null
|
|
3887
|
-
});
|
|
3888
|
-
return;
|
|
3889
|
-
}
|
|
3890
|
-
var fetchPlaces = /*#__PURE__*/function () {
|
|
3891
|
-
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
3892
|
-
var poiTypes, selectedPOICategories, radius, location, response, newMarkers;
|
|
3893
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
3894
|
-
while (1) switch (_context.prev = _context.next) {
|
|
3895
|
-
case 0:
|
|
3896
|
-
poiTypes = [];
|
|
3897
|
-
selectedPOICategories = selectedPlaces;
|
|
3898
|
-
selectedPOICategories.forEach(function (pointOfInterest) {
|
|
3899
|
-
poiTypes = poiTypes.concat(placeMappings[pointOfInterest]);
|
|
3900
|
-
});
|
|
3901
|
-
radius = getRadiusForZoom();
|
|
3902
|
-
location = {
|
|
3903
|
-
latitude: currentCenter.lat,
|
|
3904
|
-
longitude: currentCenter.lng
|
|
3905
|
-
};
|
|
3906
|
-
_context.prev = 5;
|
|
3907
|
-
_context.next = 8;
|
|
3908
|
-
return searchNearbyPlaces(poiTypes, location, radius);
|
|
3909
|
-
case 8:
|
|
3910
|
-
response = _context.sent;
|
|
3911
|
-
newMarkers = response.places.map(function (place) {
|
|
3912
|
-
var getParentCategory = function getParentCategory(types) {
|
|
3913
|
-
var selectedTypes = selectedPOICategories.reduce(function (acc, category) {
|
|
3914
|
-
return acc.concat(placeMappings[category]);
|
|
3915
|
-
}, []);
|
|
3916
|
-
var _iterator = _createForOfIteratorHelper(types),
|
|
3917
|
-
_step;
|
|
3918
|
-
try {
|
|
3919
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
3920
|
-
var type = _step.value;
|
|
3921
|
-
if (!selectedTypes.includes(type)) continue;
|
|
3922
|
-
for (var category in placeMappings) {
|
|
3923
|
-
if (placeMappings[category].includes(type)) {
|
|
3924
|
-
return category;
|
|
3925
|
-
}
|
|
3926
|
-
}
|
|
3927
|
-
}
|
|
3928
|
-
} catch (err) {
|
|
3929
|
-
_iterator.e(err);
|
|
3930
|
-
} finally {
|
|
3931
|
-
_iterator.f();
|
|
3932
|
-
}
|
|
3933
|
-
};
|
|
3934
|
-
var icon = markerIconProps(markerColors.placeMarkers, getParentCategory(place.types));
|
|
3935
|
-
return {
|
|
3936
|
-
position: {
|
|
3937
|
-
lat: place.location.latitude,
|
|
3938
|
-
lng: place.location.longitude
|
|
3939
|
-
},
|
|
3940
|
-
title: place.displayName.text,
|
|
3941
|
-
icon: icon
|
|
3942
|
-
};
|
|
3943
|
-
});
|
|
3944
|
-
setPoiMarkers({
|
|
3945
|
-
markers: newMarkers,
|
|
3946
|
-
icon: null
|
|
3947
|
-
});
|
|
3948
|
-
_context.next = 16;
|
|
3949
|
-
break;
|
|
3950
|
-
case 13:
|
|
3951
|
-
_context.prev = 13;
|
|
3952
|
-
_context.t0 = _context["catch"](5);
|
|
3953
|
-
console.error('Failed to fetch places:', _context.t0);
|
|
3954
|
-
case 16:
|
|
3955
|
-
case "end":
|
|
3956
|
-
return _context.stop();
|
|
3957
|
-
}
|
|
3958
|
-
}, _callee, null, [[5, 13]]);
|
|
3959
|
-
}));
|
|
3960
|
-
return function fetchPlaces() {
|
|
3961
|
-
return _ref2.apply(this, arguments);
|
|
3962
|
-
};
|
|
3963
|
-
}();
|
|
3964
|
-
fetchPlaces();
|
|
3965
|
-
}, [selectedPlaces, currentZoom, currentCenter]);
|
|
3966
|
-
return /*#__PURE__*/React.createElement(PlacesContext.Provider, {
|
|
3967
|
-
value: {
|
|
3968
|
-
poiMarkers: poiMarkers,
|
|
3969
|
-
setCurrentCenter: setCurrentCenter,
|
|
3970
|
-
currentCenter: currentCenter,
|
|
3971
|
-
setCurrentZoom: setCurrentZoom,
|
|
3972
|
-
currentZoom: currentZoom,
|
|
3973
|
-
placesWindow: placesWindow,
|
|
3974
|
-
setPlacesWindow: setPlacesWindow,
|
|
3975
|
-
selectedPlaceMarker: selectedPlaceMarker,
|
|
3976
|
-
setSelectedPlaceMarker: setSelectedPlaceMarker
|
|
3977
|
-
}
|
|
3978
|
-
}, children);
|
|
3979
|
-
};
|
|
3980
|
-
|
|
3981
|
-
var PlaceMarker = function PlaceMarker(_ref) {
|
|
3982
|
-
var marker = _ref.marker,
|
|
3983
|
-
index = _ref.index,
|
|
3984
|
-
selectedPlaceMarker = _ref.selectedPlaceMarker,
|
|
3985
|
-
setSelectedPlaceMarker = _ref.setSelectedPlaceMarker,
|
|
3986
|
-
placesWindow = _ref.placesWindow,
|
|
3987
|
-
setPlacesWindow = _ref.setPlacesWindow;
|
|
3988
|
-
var markerKey = "marker-".concat(marker.title, "-").concat(index);
|
|
3989
|
-
var placeMarkerClickHandler = function placeMarkerClickHandler() {
|
|
3990
|
-
setSelectedPlaceMarker(markerKey);
|
|
3991
|
-
setPlacesWindow(true);
|
|
3992
|
-
};
|
|
3993
|
-
return /*#__PURE__*/React.createElement(Marker, {
|
|
3994
|
-
key: markerKey,
|
|
3995
|
-
position: marker.position,
|
|
3996
|
-
title: marker.title,
|
|
3997
|
-
icon: marker.icon,
|
|
3998
|
-
options: {
|
|
3999
|
-
optimized: false
|
|
4000
|
-
},
|
|
4001
|
-
onClick: placeMarkerClickHandler
|
|
4002
|
-
}, selectedPlaceMarker === markerKey && placesWindow && marker && /*#__PURE__*/React.createElement(InfoWindowF, {
|
|
4003
|
-
position: marker.position,
|
|
4004
|
-
onCloseClick: function onCloseClick() {
|
|
4005
|
-
return setPlacesWindow(false);
|
|
4006
|
-
},
|
|
4007
|
-
options: {
|
|
4008
|
-
maxWidth: 400
|
|
4009
|
-
}
|
|
4010
|
-
}, /*#__PURE__*/React.createElement("div", null, marker.title)));
|
|
4011
|
-
};
|
|
4012
|
-
|
|
4013
|
-
var ShowAllButton = function ShowAllButton(_ref) {
|
|
4014
|
-
var mapInteracted = _ref.mapInteracted,
|
|
4015
|
-
markerConfigs = _ref.markerConfigs,
|
|
4016
|
-
setMapInteracted = _ref.setMapInteracted,
|
|
4017
|
-
fitBounds = _ref.fitBounds,
|
|
4018
|
-
mapRef = _ref.mapRef,
|
|
4019
|
-
pinIconUrl = _ref.pinIconUrl,
|
|
4020
|
-
setSelectedFilters = _ref.setSelectedFilters,
|
|
4021
|
-
setQuery = _ref.setQuery,
|
|
4022
|
-
listingCount = _ref.listingCount;
|
|
4023
|
-
if (!mapInteracted || !markerConfigs) {
|
|
4024
|
-
return null;
|
|
4025
|
-
}
|
|
4026
|
-
return /*#__PURE__*/React.createElement("button", {
|
|
4027
|
-
style: {
|
|
4028
|
-
fontFamily: 'Roboto, Arial, sans-serif',
|
|
4029
|
-
fontSize: '14px',
|
|
4030
|
-
fontWeight: '500'
|
|
4031
|
-
},
|
|
4032
|
-
className: "hc-absolute hc-bottom-10 hc-left-2.5 hc-z-10 hc-flex hc-items-center hc-justify-center hc-pl-2 hc-pb-1 hc-pt-1.5 hc-pr-3 hc-bg-white hc-text-black hc-border-none hc-rounded-full hc-shadow hc-cursor-pointer hc-text-sm hc-font-medium",
|
|
4033
|
-
onClick: function onClick() {
|
|
4034
|
-
setMapInteracted(false);
|
|
4035
|
-
fitBounds(mapRef.current, true);
|
|
4036
|
-
if (listingCount < 2) {
|
|
4037
|
-
setSelectedFilters({});
|
|
4038
|
-
setQuery(null);
|
|
4039
|
-
}
|
|
4040
|
-
}
|
|
4041
|
-
}, /*#__PURE__*/React.createElement("img", {
|
|
4042
|
-
src: pinIconUrl,
|
|
4043
|
-
alt: "Pin Icon",
|
|
4044
|
-
className: "hc-size-5"
|
|
4045
|
-
}), "Show All");
|
|
4046
|
-
};
|
|
4047
|
-
|
|
4048
|
-
var Map = function Map(_ref) {
|
|
4049
|
-
var markerConfigs = _ref.markerConfigs,
|
|
4050
|
-
infoWindowClasses = _ref.infoWindowClasses,
|
|
4051
|
-
_ref$clusterGridSize = _ref.clusterGridSize,
|
|
4052
|
-
clusterGridSize = _ref$clusterGridSize === void 0 ? 60 : _ref$clusterGridSize;
|
|
4053
|
-
var _useMap = useMap(),
|
|
4054
|
-
location = _useMap.location,
|
|
4055
|
-
zoom = _useMap.zoom,
|
|
4056
|
-
center = _useMap.center;
|
|
4057
|
-
_useMap.commuteLocation;
|
|
4058
|
-
var selectLocationEntity = _useMap.selectLocationEntity,
|
|
4059
|
-
setLocation = _useMap.setLocation,
|
|
4060
|
-
mapInteracted = _useMap.mapInteracted,
|
|
4061
|
-
setMapInteracted = _useMap.setMapInteracted;
|
|
4062
|
-
var _useMapList = useMapList(),
|
|
4063
|
-
mapItems = _useMapList.mapItems;
|
|
4064
|
-
_useMapList.handleFilterListingsByLocation;
|
|
4065
|
-
var filteredListings = _useMapList.filteredListings,
|
|
4066
|
-
setSelectedFilters = _useMapList.setSelectedFilters,
|
|
4067
|
-
setQuery = _useMapList.setQuery;
|
|
4068
|
-
var mapRef = useRef();
|
|
4069
|
-
var markerRefs = useRef({});
|
|
4070
|
-
var mapContainerRef = useRef(null);
|
|
4071
|
-
var _usePlaces = usePlaces(),
|
|
4072
|
-
poiMarkers = _usePlaces.poiMarkers,
|
|
4073
|
-
setCurrentCenter = _usePlaces.setCurrentCenter,
|
|
4074
|
-
currentCenter = _usePlaces.currentCenter,
|
|
4075
|
-
setCurrentZoom = _usePlaces.setCurrentZoom,
|
|
4076
|
-
currentZoom = _usePlaces.currentZoom,
|
|
4077
|
-
selectedPlaceMarker = _usePlaces.selectedPlaceMarker,
|
|
4078
|
-
setSelectedPlaceMarker = _usePlaces.setSelectedPlaceMarker,
|
|
4079
|
-
placesWindow = _usePlaces.placesWindow,
|
|
4080
|
-
setPlacesWindow = _usePlaces.setPlacesWindow;
|
|
4081
|
-
var onIdle = function onIdle() {
|
|
4082
|
-
if (!currentCenter || !mapRef.current) return;
|
|
4083
|
-
var newCenter = mapRef.current.getCenter().toJSON();
|
|
4084
|
-
var newZoom = mapRef.current.zoom;
|
|
4085
|
-
setCurrentCenter(newCenter);
|
|
4086
|
-
if (newZoom != currentZoom) {
|
|
4087
|
-
setCurrentZoom(newZoom);
|
|
4088
|
-
}
|
|
4089
|
-
};
|
|
4090
|
-
useEffect(function () {
|
|
4091
|
-
if (mapContainerRef.current) {
|
|
4092
|
-
var handleScroll = function handleScroll() {
|
|
4093
|
-
setMapInteracted(true);
|
|
4094
|
-
};
|
|
4095
|
-
var mapContainerRefCurrent = mapContainerRef.current;
|
|
4096
|
-
mapContainerRef.current.addEventListener('wheel', handleScroll);
|
|
4097
|
-
return function () {
|
|
4098
|
-
return mapContainerRefCurrent.removeEventListener('wheel', handleScroll);
|
|
4099
|
-
};
|
|
4100
|
-
}
|
|
4101
|
-
}, [mapContainerRef.current]);
|
|
4102
|
-
useEffect(function () {
|
|
4103
|
-
if (mapRef.current) {
|
|
4104
|
-
var mapInstance = mapRef.current;
|
|
4105
|
-
var dragStartListener = mapInstance.addListener('dragstart', function () {
|
|
4106
|
-
return setMapInteracted(true);
|
|
4107
|
-
});
|
|
4108
|
-
var mouseDownListener = mapInstance.addListener('mousedown', function () {
|
|
4109
|
-
return setMapInteracted(true);
|
|
4110
|
-
});
|
|
4111
|
-
return function () {
|
|
4112
|
-
google.maps.event.removeListener(dragStartListener);
|
|
4113
|
-
google.maps.event.removeListener(mouseDownListener);
|
|
4114
|
-
};
|
|
4115
|
-
}
|
|
4116
|
-
}, [mapRef.current, mapContainerRef.current]);
|
|
4117
|
-
useEffect(function () {
|
|
4118
|
-
if ((mapItems && mapItems.length > 0 || poiMarkers.length > 0) && mapRef.current) {
|
|
4119
|
-
fitBounds(mapRef.current);
|
|
4120
|
-
}
|
|
4121
|
-
}, [mapItems, mapRef.current, location]);
|
|
4122
|
-
useEffect(function () {
|
|
4123
|
-
if (mapItems && mapItems.length > 0 || poiMarkers.length > 0 && mapRef.current && mapInteracted) {
|
|
4124
|
-
fitBounds(mapRef.current, true);
|
|
4125
|
-
}
|
|
4126
|
-
if (mapRef.current) {
|
|
4127
|
-
var currZoom = mapRef.current.zoom;
|
|
4128
|
-
var setZoomVal = currZoom < 13 ? currZoom : 12;
|
|
4129
|
-
mapRef.current.setZoom(setZoomVal);
|
|
4130
|
-
}
|
|
4131
|
-
}, [filteredListings]);
|
|
4132
|
-
useEffect(function () {
|
|
4133
|
-
if (!mapRef.current || !location || mapInteracted) return;
|
|
4134
|
-
mapRef.current.panTo(new google.maps.LatLng(location.latitude, location.longitude));
|
|
4135
|
-
if (mapRef.current) {
|
|
4136
|
-
var setZoomVal = zoom < 13 ? zoom : 12;
|
|
4137
|
-
mapRef.current.setZoom(setZoomVal);
|
|
4138
|
-
}
|
|
4139
|
-
}, [location, zoom, mapRef.current]);
|
|
4140
|
-
var fitBounds = function fitBounds(map) {
|
|
4141
|
-
var overload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
4142
|
-
if ((mapInteracted === false || overload) && mapItems != null) {
|
|
4143
|
-
var bounds = new window.google.maps.LatLngBounds();
|
|
4144
|
-
mapItems.forEach(function (item) {
|
|
4145
|
-
bounds.extend(new google.maps.LatLng(item.latitude, item.longitude));
|
|
4146
|
-
});
|
|
4147
|
-
if (!map) return;
|
|
4148
|
-
map.fitBounds(bounds);
|
|
4149
|
-
}
|
|
4150
|
-
if (mapRef.current.zoom > 17) {
|
|
4151
|
-
mapRef.current.setZoom(16);
|
|
4152
|
-
}
|
|
4153
|
-
};
|
|
4154
|
-
var markerClickHandler = function markerClickHandler(mapLocation) {
|
|
4155
|
-
setMapInteracted(true);
|
|
4156
|
-
selectLocationEntity(mapLocation);
|
|
4157
|
-
};
|
|
4158
|
-
var onLoad = function onLoad(map) {
|
|
4159
|
-
if (!location || location === null) {
|
|
4160
|
-
mapRef.current = map;
|
|
4161
|
-
fitBounds(map, true);
|
|
4162
|
-
return;
|
|
4163
|
-
}
|
|
4164
|
-
mapRef.current = map;
|
|
4165
|
-
if (mapInteracted === false) {
|
|
4166
|
-
mapRef.current.panTo(new google.maps.LatLng(location.latitude, location.longitude));
|
|
4167
|
-
mapRef.current.setZoom(zoom);
|
|
4168
|
-
}
|
|
4169
|
-
};
|
|
4170
|
-
var pinIconUrl = pinIcon({
|
|
4171
|
-
fillColor: markerConfigs.fillColor,
|
|
4172
|
-
strokeColor: markerConfigs.strokeColor
|
|
4173
|
-
});
|
|
4174
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, zoom && center && /*#__PURE__*/React.createElement("div", {
|
|
4175
|
-
ref: mapContainerRef,
|
|
4176
|
-
className: "hc-h-full hc-relative"
|
|
4177
|
-
}, /*#__PURE__*/React.createElement(GoogleMap, {
|
|
4178
|
-
zoom: zoom,
|
|
4179
|
-
onLoad: onLoad,
|
|
4180
|
-
onIdle: onIdle,
|
|
4181
|
-
center: center,
|
|
4182
|
-
mapContainerStyle: {
|
|
4183
|
-
width: "100%",
|
|
4184
|
-
height: "100%"
|
|
4185
|
-
},
|
|
4186
|
-
options: {
|
|
4187
|
-
styles: [{
|
|
4188
|
-
featureType: "poi",
|
|
4189
|
-
elementType: "labels",
|
|
4190
|
-
stylers: [{
|
|
4191
|
-
visibility: "off"
|
|
4192
|
-
}]
|
|
4193
|
-
}]
|
|
4194
|
-
}
|
|
4195
|
-
}, /*#__PURE__*/React.createElement(MarkerClustererF, {
|
|
4196
|
-
options: clusterOptions(clusterGridSize, markerConfigs.fillColor)
|
|
4197
|
-
}, function (clusterer) {
|
|
4198
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, mapItems.map(function (item) {
|
|
4199
|
-
return /*#__PURE__*/React.createElement(MapMarker, {
|
|
4200
|
-
key: item.id,
|
|
4201
|
-
item: item,
|
|
4202
|
-
selectedLocation: location,
|
|
4203
|
-
markerRefs: markerRefs,
|
|
4204
|
-
infoWindowClasses: infoWindowClasses,
|
|
4205
|
-
setSelectedLocation: setLocation,
|
|
4206
|
-
markerClickHandler: markerClickHandler,
|
|
4207
|
-
clusterer: clusterer,
|
|
4208
|
-
markerIcon: markerIcon(markerConfigs),
|
|
4209
|
-
markerIconSelected: markerIconSelected(markerConfigs),
|
|
4210
|
-
setMapInteracted: setMapInteracted
|
|
4211
|
-
});
|
|
4212
|
-
}), poiMarkers && poiMarkers.markers.map(function (marker, index) {
|
|
4213
|
-
return /*#__PURE__*/React.createElement(PlaceMarker, {
|
|
4214
|
-
key: "marker-".concat(marker.title, "-").concat(index),
|
|
4215
|
-
marker: marker,
|
|
4216
|
-
index: index,
|
|
4217
|
-
selectedPlaceMarker: selectedPlaceMarker,
|
|
4218
|
-
placesWindow: placesWindow,
|
|
4219
|
-
setPlacesWindow: setPlacesWindow,
|
|
4220
|
-
setSelectedPlaceMarker: setSelectedPlaceMarker
|
|
4221
|
-
});
|
|
4222
|
-
}));
|
|
4223
|
-
})), mapInteracted && markerConfigs && /*#__PURE__*/React.createElement(ShowAllButton, {
|
|
4224
|
-
mapInteracted: mapInteracted,
|
|
4225
|
-
markerConfigs: markerConfigs,
|
|
4226
|
-
setMapInteracted: setMapInteracted,
|
|
4227
|
-
fitBounds: fitBounds,
|
|
4228
|
-
mapRef: mapRef,
|
|
4229
|
-
pinIconUrl: pinIconUrl,
|
|
4230
|
-
setQuery: setQuery,
|
|
4231
|
-
listingCount: filteredListings.length,
|
|
4232
|
-
setSelectedFilters: setSelectedFilters
|
|
4233
|
-
})));
|
|
4234
|
-
};
|
|
4235
|
-
|
|
4236
|
-
var MapTabs = function MapTabs(_ref) {
|
|
4237
|
-
var map = _ref.map,
|
|
4238
|
-
list = _ref.list,
|
|
4239
|
-
filter = _ref.filter,
|
|
4240
|
-
className = _ref.className,
|
|
4241
|
-
showMap = _ref.showMap;
|
|
4242
|
-
var tabButtonClasses = "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";
|
|
4243
|
-
var _useMapList = useMapList(),
|
|
4244
|
-
mobileTab = _useMapList.mobileTab,
|
|
4245
|
-
setMobileTab = _useMapList.setMobileTab;
|
|
4246
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
4247
|
-
className: "\n\t\t\t\thc-relative hc-overflow-hidden\n\t\t\t\t".concat(className !== null && className !== void 0 ? className : "", "\n\t\t\t")
|
|
4248
|
-
}, /*#__PURE__*/React.createElement(Tabs.Root, {
|
|
4249
|
-
className: "hc-flex hc-flex-col hc-h-screen hc-min-h-screen"
|
|
4250
|
-
//defaultValue="listTab"
|
|
4251
|
-
,
|
|
4252
|
-
value: mobileTab
|
|
4253
|
-
}, /*#__PURE__*/React.createElement(Tabs.List, {
|
|
4254
|
-
className: "hc-w-full hc-shrink-0 hc-flex hc-divide-x hc-divide-primary",
|
|
4255
|
-
"aria-label": "Review positions"
|
|
4256
|
-
}, /*#__PURE__*/React.createElement(Tabs.Trigger, {
|
|
4257
|
-
value: "listTab",
|
|
4258
|
-
asChild: true,
|
|
4259
|
-
onClick: function onClick() {
|
|
4260
|
-
return setMobileTab("listTab");
|
|
4261
|
-
}
|
|
4262
|
-
}, /*#__PURE__*/React.createElement(Button.Btn, {
|
|
4263
|
-
variant: "outline",
|
|
4264
|
-
isBlock: true,
|
|
4265
|
-
className: tabButtonClasses
|
|
4266
|
-
}, /*#__PURE__*/React.createElement(Button.Body, {
|
|
4267
|
-
className: "hc-justify-center"
|
|
4268
|
-
}, /*#__PURE__*/React.createElement(Button.Icon, {
|
|
4269
|
-
icon: "mdi:view-list",
|
|
4270
|
-
size: "hc-size-5"
|
|
4271
|
-
}), "List"))), showMap && /*#__PURE__*/React.createElement(Tabs.Trigger, {
|
|
4272
|
-
value: "mapTab",
|
|
4273
|
-
asChild: true,
|
|
4274
|
-
onClick: function onClick() {
|
|
4275
|
-
return setMobileTab("mapTab");
|
|
4276
|
-
}
|
|
4277
|
-
}, /*#__PURE__*/React.createElement(Button.Btn, {
|
|
4278
|
-
variant: "outline",
|
|
4279
|
-
isBlock: true,
|
|
4280
|
-
className: tabButtonClasses
|
|
4281
|
-
}, /*#__PURE__*/React.createElement(Button.Body, {
|
|
4282
|
-
className: "hc-justify-center"
|
|
4283
|
-
}, /*#__PURE__*/React.createElement(Button.Icon, {
|
|
4284
|
-
icon: "mdi:map",
|
|
4285
|
-
size: "hc-size-5"
|
|
4286
|
-
}), "Map"))), /*#__PURE__*/React.createElement(Tabs.Trigger, {
|
|
4287
|
-
value: "filterTab",
|
|
4288
|
-
asChild: true,
|
|
4289
|
-
onClick: function onClick() {
|
|
4290
|
-
return setMobileTab("filterTab");
|
|
4291
|
-
}
|
|
4292
|
-
}, /*#__PURE__*/React.createElement(Button.Btn, {
|
|
4293
|
-
variant: "outline",
|
|
4294
|
-
isBlock: true,
|
|
4295
|
-
className: tabButtonClasses
|
|
4296
|
-
}, /*#__PURE__*/React.createElement(Button.Body, {
|
|
4297
|
-
className: "hc-justify-center"
|
|
4298
|
-
}, /*#__PURE__*/React.createElement(Button.Icon, {
|
|
4299
|
-
icon: "fluent:search-12-filled",
|
|
4300
|
-
size: "hc-size-5"
|
|
4301
|
-
}), "Filter")))), /*#__PURE__*/React.createElement(Tabs.Content, {
|
|
4302
|
-
className: "hc-grow hc-bg-white hc-outline-none",
|
|
4303
|
-
value: "listTab"
|
|
4304
|
-
}, list), showMap && /*#__PURE__*/React.createElement(Tabs.Content, {
|
|
4305
|
-
className: "hc-grow hc-bg-white hc-outline-none",
|
|
4306
|
-
value: "mapTab"
|
|
4307
|
-
}, map), /*#__PURE__*/React.createElement(Tabs.Content, {
|
|
4308
|
-
className: "hc-grow hc-bg-white hc-outline-none hc-p-2",
|
|
4309
|
-
value: "filterTab"
|
|
4310
|
-
}, filter)));
|
|
4311
|
-
};
|
|
4312
|
-
|
|
4313
|
-
var MapList = function MapList(_ref) {
|
|
4314
|
-
var _ref$loading = _ref.loading,
|
|
4315
|
-
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
4316
|
-
mapDetails = _ref.mapDetails,
|
|
4317
|
-
markerConfigs = _ref.markerConfigs,
|
|
4318
|
-
itemExpandedContent = _ref.itemExpandedContent,
|
|
4319
|
-
fieldsShown = _ref.fieldsShown,
|
|
4320
|
-
specialFeatures = _ref.specialFeatures,
|
|
4321
|
-
fieldNames = _ref.fieldNames,
|
|
4322
|
-
showMap = _ref.showMap,
|
|
4323
|
-
placeMappings = _ref.placeMappings;
|
|
4324
|
-
var listProps = {
|
|
4325
|
-
fieldsShown: fieldsShown,
|
|
4326
|
-
fieldNames: fieldNames,
|
|
4327
|
-
itemExpandedContent: itemExpandedContent,
|
|
4328
|
-
loading: loading,
|
|
4329
|
-
showMap: showMap,
|
|
4330
|
-
specialFeatures: specialFeatures
|
|
4331
|
-
};
|
|
4332
|
-
var mapProps = {
|
|
4333
|
-
mapDetails: mapDetails,
|
|
4334
|
-
markerConfigs: markerConfigs,
|
|
4335
|
-
placeMappings: placeMappings,
|
|
4336
|
-
clusterGridSize: 60,
|
|
4337
|
-
showMap: showMap
|
|
4338
|
-
};
|
|
4339
|
-
|
|
4340
|
-
// useEffect(() => {
|
|
4341
|
-
// if (selectedItem !== null) {
|
|
4342
|
-
// trackEvent("Map", "View Location", selectedItem[titlePropName]);
|
|
4343
|
-
// }
|
|
4344
|
-
// // eslint-disable-next-line react-hooks/exhaustive-deps
|
|
4345
|
-
// }, []);
|
|
4346
|
-
var map = /*#__PURE__*/React.createElement(Map, mapProps);
|
|
4347
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
4348
|
-
className: "\n\t\t\t\t\t".concat(showMap == false ? "md:hc-grid-rows-[100vh]" : "md:hc-grid-rows-[50vh_50vh]", "\n\t\t\t\t\tmd:hc-grid md:hc-pt-4 hc-overflow-hidden hc-relative\n\t\t\t\t")
|
|
4349
|
-
}, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(ItemsList, listProps)), /*#__PURE__*/React.createElement("div", null, showMap && map)), /*#__PURE__*/React.createElement("div", {
|
|
4350
|
-
className: "md:hc-hidden"
|
|
4351
|
-
}, /*#__PURE__*/React.createElement(MapTabs, {
|
|
4352
|
-
showMap: showMap,
|
|
4353
|
-
list: /*#__PURE__*/React.createElement(ItemsList, listProps),
|
|
4354
|
-
map: !loading && showMap && map,
|
|
4355
|
-
filter: /*#__PURE__*/React.createElement(Filter, {
|
|
4356
|
-
showMap: showMap,
|
|
4357
|
-
className: "md:hc-hidden"
|
|
4358
|
-
})
|
|
4359
|
-
})));
|
|
4360
|
-
};
|
|
4361
|
-
|
|
4362
|
-
var reactThingy = React;
|
|
4363
|
-
var SectionContext = reactThingy.createContext(null);
|
|
4364
|
-
|
|
4365
|
-
function Provider(_ref) {
|
|
4366
|
-
var children = _ref.children;
|
|
4367
|
-
return /*#__PURE__*/React.createElement(Provider$1, null, children);
|
|
4368
|
-
}
|
|
4369
|
-
|
|
4370
|
-
var SkipLink = function SkipLink(_ref) {
|
|
4371
|
-
var _ref$href = _ref.href,
|
|
4372
|
-
href = _ref$href === void 0 ? '#start-of-content' : _ref$href,
|
|
4373
|
-
className = _ref.className,
|
|
4374
|
-
_ref$children = _ref.children,
|
|
4375
|
-
children = _ref$children === void 0 ? 'Skip to content' : _ref$children;
|
|
4376
|
-
return /*#__PURE__*/React.createElement("a", {
|
|
4377
|
-
href: href,
|
|
4378
|
-
className: "\n\t\t\t\thc-sr-only focus:hc-not-sr-only focus:hc-absolute focus:hc-py-2 focus:hc-px-6 hc-bg-gray-900 dark:hc-bg-white hc-text-white dark:hc-text-gray-900 hc-font-bold hc-text-center hc-transition-colors hover:hc-bg-gray-700\n\t\t\t\t".concat(className !== null && className !== void 0 ? className : '', "\n\t\t\t")
|
|
4379
|
-
}, children);
|
|
4380
|
-
};
|
|
4381
|
-
|
|
4382
|
-
var RootLayout = function RootLayout(_ref) {
|
|
4383
|
-
var children = _ref.children;
|
|
4384
|
-
var _useState = useState(null),
|
|
4385
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
4386
|
-
currentSection = _useState2[0],
|
|
4387
|
-
setCurrentSection = _useState2[1];
|
|
4388
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
4389
|
-
id: "top",
|
|
4390
|
-
className: "hc-relative"
|
|
4391
|
-
}, /*#__PURE__*/React.createElement(Provider, null, /*#__PURE__*/React.createElement(SectionContext.Provider, {
|
|
4392
|
-
value: {
|
|
4393
|
-
currentSection: currentSection,
|
|
4394
|
-
setCurrentSection: setCurrentSection
|
|
4395
|
-
}
|
|
4396
|
-
}, /*#__PURE__*/React.createElement(SkipLink, null), /*#__PURE__*/React.createElement("main", {
|
|
4397
|
-
id: "start-of-content"
|
|
4398
|
-
}, children))));
|
|
4399
|
-
};
|
|
4400
|
-
|
|
4401
|
-
var getMapConfig = /*#__PURE__*/function () {
|
|
4402
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
4403
|
-
var response;
|
|
4404
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
4405
|
-
while (1) switch (_context.prev = _context.next) {
|
|
4406
|
-
case 0:
|
|
4407
|
-
_context.prev = 0;
|
|
4408
|
-
_context.next = 3;
|
|
4409
|
-
return api.get("/MapConfig");
|
|
4410
|
-
case 3:
|
|
4411
|
-
response = _context.sent;
|
|
4412
|
-
return _context.abrupt("return", response);
|
|
4413
|
-
case 7:
|
|
4414
|
-
_context.prev = 7;
|
|
4415
|
-
_context.t0 = _context["catch"](0);
|
|
4416
|
-
console.error("Error retrieving map configuration:", _context.t0);
|
|
4417
|
-
throw _context.t0;
|
|
4418
|
-
case 11:
|
|
4419
|
-
case "end":
|
|
4420
|
-
return _context.stop();
|
|
4421
|
-
}
|
|
4422
|
-
}, _callee, null, [[0, 7]]);
|
|
4423
|
-
}));
|
|
4424
|
-
return function getMapConfig() {
|
|
4425
|
-
return _ref.apply(this, arguments);
|
|
4426
|
-
};
|
|
4427
|
-
}();
|
|
4428
|
-
|
|
4429
|
-
var libraries = ['places'];
|
|
4430
|
-
var HireControlMap = function HireControlMap(_ref) {
|
|
4431
|
-
var clientToken = _ref.clientToken,
|
|
4432
|
-
_ref$navigateToDetail = _ref.navigateToDetails,
|
|
4433
|
-
navigateToDetails = _ref$navigateToDetail === void 0 ? null : _ref$navigateToDetail;
|
|
4434
|
-
var _useState = useState(null),
|
|
4435
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
4436
|
-
siteConfig = _useState2[0],
|
|
4437
|
-
setSiteconfig = _useState2[1];
|
|
4438
|
-
useEffect(function () {
|
|
4439
|
-
setClientAuthKey(clientToken);
|
|
4440
|
-
var fetchSiteConfig = /*#__PURE__*/function () {
|
|
4441
|
-
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
4442
|
-
var configData;
|
|
4443
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
4444
|
-
while (1) switch (_context.prev = _context.next) {
|
|
4445
|
-
case 0:
|
|
4446
|
-
_context.prev = 0;
|
|
4447
|
-
_context.next = 3;
|
|
4448
|
-
return getMapConfig(clientToken);
|
|
4449
|
-
case 3:
|
|
4450
|
-
configData = _context.sent;
|
|
4451
|
-
setSiteconfig(configData);
|
|
4452
|
-
_context.next = 10;
|
|
4453
|
-
break;
|
|
4454
|
-
case 7:
|
|
4455
|
-
_context.prev = 7;
|
|
4456
|
-
_context.t0 = _context["catch"](0);
|
|
4457
|
-
console.error('Failed to fetch site configuration:', _context.t0);
|
|
4458
|
-
case 10:
|
|
4459
|
-
case "end":
|
|
4460
|
-
return _context.stop();
|
|
4461
|
-
}
|
|
4462
|
-
}, _callee, null, [[0, 7]]);
|
|
4463
|
-
}));
|
|
4464
|
-
return function fetchSiteConfig() {
|
|
4465
|
-
return _ref2.apply(this, arguments);
|
|
4466
|
-
};
|
|
4467
|
-
}();
|
|
4468
|
-
fetchSiteConfig();
|
|
4469
|
-
}, [clientToken]);
|
|
4470
|
-
var _useLoadScript = useLoadScript({
|
|
4471
|
-
googleMapsApiKey: "AIzaSyAXPlfaoMCrmjNV1u-vFYdLBi7GkGeh4S4",
|
|
4472
|
-
libraries: libraries
|
|
4473
|
-
}),
|
|
4474
|
-
isLoaded = _useLoadScript.isLoaded;
|
|
4475
|
-
return /*#__PURE__*/React.createElement(RootLayout, null, isLoaded && siteConfig && /*#__PURE__*/React.createElement(HomeBody, {
|
|
4476
|
-
siteConfig: siteConfig,
|
|
4477
|
-
navigateToDetails: navigateToDetails
|
|
4478
|
-
}));
|
|
4479
|
-
};
|
|
4480
|
-
var HomeBody = function HomeBody(_ref3) {
|
|
4481
|
-
var _siteConfig$pointsOfI, _siteConfig$pointsOfI2;
|
|
4482
|
-
var siteConfig = _ref3.siteConfig,
|
|
4483
|
-
navigateToDetails = _ref3.navigateToDetails;
|
|
4484
|
-
var resetFilters = false;
|
|
4485
|
-
return /*#__PURE__*/React.createElement(MapListProvider, {
|
|
4486
|
-
siteConfig: siteConfig,
|
|
4487
|
-
resetFilters: resetFilters,
|
|
4488
|
-
navigateToDetails: navigateToDetails
|
|
4489
|
-
}, /*#__PURE__*/React.createElement(MapProvider, {
|
|
4490
|
-
resetFilters: resetFilters
|
|
4491
|
-
}, /*#__PURE__*/React.createElement(PlacesProvider, {
|
|
4492
|
-
placeMappings: (_siteConfig$pointsOfI = siteConfig.pointsOfInterestConfig.placeMappings) !== null && _siteConfig$pointsOfI !== void 0 ? _siteConfig$pointsOfI : {},
|
|
4493
|
-
markerColors: {
|
|
4494
|
-
fillColor: siteConfig.colors.primary,
|
|
4495
|
-
strokeColor: siteConfig.colors.primaryDark,
|
|
4496
|
-
selectedFillColor: siteConfig.colors.secondary,
|
|
4497
|
-
selectedStrokeColor: siteConfig.colors.secondaryDark,
|
|
4498
|
-
placeMarkers: {
|
|
4499
|
-
colors: siteConfig.pointsOfInterestConfig.placeMarkerColors,
|
|
4500
|
-
size: siteConfig.pointsOfInterestConfig.placeMarkerSize
|
|
4501
|
-
}
|
|
4502
|
-
}
|
|
4503
|
-
}, /*#__PURE__*/React.createElement(PageHead, {
|
|
4504
|
-
title: ""
|
|
4505
|
-
}), /*#__PURE__*/React.createElement(Grid, {
|
|
4506
|
-
as: "section",
|
|
4507
|
-
id: "job-search-interface",
|
|
4508
|
-
columns: "md:hc-grid-cols-[1fr_2.5fr] lg:hc-grid-cols-[1fr_3.5fr]",
|
|
4509
|
-
gap: "hc-gap-0",
|
|
4510
|
-
autoRows: false,
|
|
4511
|
-
className: "hc-items-stretch hc-h-screen hc-min-h-[30rem] hc-divide-x hc-divide-uiAccent/20"
|
|
4512
|
-
}, /*#__PURE__*/React.createElement(Grid.Item, {
|
|
4513
|
-
className: "hc-bg-gray-100"
|
|
4514
|
-
}, /*#__PURE__*/React.createElement(Filter, {
|
|
4515
|
-
showMap: siteConfig.showMap,
|
|
4516
|
-
className: "hc-hidden md:hc-block"
|
|
4517
|
-
})), /*#__PURE__*/React.createElement(MapList, {
|
|
4518
|
-
markerConfigs: {
|
|
4519
|
-
fillColor: siteConfig.colors.primary,
|
|
4520
|
-
strokeColor: siteConfig.colors.primaryDark,
|
|
4521
|
-
selectedFillColor: siteConfig.colors.secondary,
|
|
4522
|
-
selectedStrokeColor: siteConfig.colors.secondaryDark,
|
|
4523
|
-
placeMarkers: {
|
|
4524
|
-
colors: siteConfig.pointsOfInterestConfig.placeMarkerColors,
|
|
4525
|
-
size: siteConfig.pointsOfInterestConfig.placeMarkerSize
|
|
4526
|
-
}
|
|
4527
|
-
},
|
|
4528
|
-
showMap: siteConfig.showMap,
|
|
4529
|
-
fieldsShown: siteConfig.fieldsShown,
|
|
4530
|
-
specialFeatures: siteConfig.specialFeatures,
|
|
4531
|
-
fieldNames: siteConfig.fieldNames,
|
|
4532
|
-
placeMappings: (_siteConfig$pointsOfI2 = siteConfig.pointsOfInterestConfig.placeMappings) !== null && _siteConfig$pointsOfI2 !== void 0 ? _siteConfig$pointsOfI2 : {}
|
|
4533
|
-
})))));
|
|
4534
|
-
};
|
|
4535
|
-
|
|
4536
|
-
export { HireControlMap, HireControlMap as default };
|
|
1
|
+
export { HireControlMap } from './components/HireControlMap.js';
|
|
2
|
+
//# sourceMappingURL=index.js.map
|