@next-degree/pickle-shared-js 0.14.0 → 0.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-7NP3NX67.cjs → chunk-2VFY5AZA.cjs} +10 -10
- package/dist/chunk-2VFY5AZA.cjs.map +1 -0
- package/dist/{chunk-QYSTBZXD.js → chunk-45FFXB2Y.js} +6 -6
- package/dist/{chunk-QYSTBZXD.js.map → chunk-45FFXB2Y.js.map} +1 -1
- package/dist/{chunk-OZJZVEF2.js → chunk-4E3ANVRR.js} +3 -3
- package/dist/{chunk-OZJZVEF2.js.map → chunk-4E3ANVRR.js.map} +1 -1
- package/dist/{chunk-OXDKVZZ5.cjs → chunk-567FG76G.cjs} +4 -4
- package/dist/{chunk-OXDKVZZ5.cjs.map → chunk-567FG76G.cjs.map} +1 -1
- package/dist/{chunk-6KGXXX6X.cjs → chunk-6XAUCO2D.cjs} +3 -3
- package/dist/chunk-6XAUCO2D.cjs.map +1 -0
- package/dist/{chunk-SKMP4FO7.cjs → chunk-ASPUIRWU.cjs} +22 -4
- package/dist/chunk-ASPUIRWU.cjs.map +1 -0
- package/dist/{chunk-Z2I2265Q.cjs → chunk-FDGHWRRP.cjs} +5 -3
- package/dist/chunk-FDGHWRRP.cjs.map +1 -0
- package/dist/{chunk-4FETL23S.cjs → chunk-IMJ7S3LK.cjs} +4 -4
- package/dist/{chunk-4FETL23S.cjs.map → chunk-IMJ7S3LK.cjs.map} +1 -1
- package/dist/{chunk-PU4O76IS.js → chunk-JQUWC2YP.js} +4 -4
- package/dist/{chunk-PU4O76IS.js.map → chunk-JQUWC2YP.js.map} +1 -1
- package/dist/{chunk-CPZFINPG.js → chunk-K76RPF2X.js} +3 -3
- package/dist/{chunk-CPZFINPG.js.map → chunk-K76RPF2X.js.map} +1 -1
- package/dist/{chunk-KM5XDOAL.js → chunk-Q6AKHW44.js} +3 -12
- package/dist/chunk-Q6AKHW44.js.map +1 -0
- package/dist/{chunk-IJV66D4K.cjs → chunk-RCYBG5RG.cjs} +3 -12
- package/dist/chunk-RCYBG5RG.cjs.map +1 -0
- package/dist/{chunk-CGCGALTZ.cjs → chunk-SUDPNL2Q.cjs} +10 -10
- package/dist/{chunk-CGCGALTZ.cjs.map → chunk-SUDPNL2Q.cjs.map} +1 -1
- package/dist/{chunk-5GODYRZA.js → chunk-U2T5ZKPR.js} +3 -3
- package/dist/chunk-U2T5ZKPR.js.map +1 -0
- package/dist/{chunk-TOEADI6J.cjs → chunk-VCCYAJK7.cjs} +3 -3
- package/dist/{chunk-TOEADI6J.cjs.map → chunk-VCCYAJK7.cjs.map} +1 -1
- package/dist/{chunk-6Z6T5WWS.js → chunk-VRYGJJ5K.js} +3 -3
- package/dist/{chunk-6Z6T5WWS.js.map → chunk-VRYGJJ5K.js.map} +1 -1
- package/dist/{chunk-3XO3AJR4.js → chunk-XTEZM6SY.js} +6 -6
- package/dist/chunk-XTEZM6SY.js.map +1 -0
- package/dist/{chunk-PWKRCU2K.js → chunk-YJICO3OG.js} +5 -3
- package/dist/chunk-YJICO3OG.js.map +1 -0
- package/dist/chunk-Z77KENZ6.js +52 -0
- package/dist/chunk-Z77KENZ6.js.map +1 -0
- package/dist/{chunk-2YUUVN7E.cjs → chunk-ZZCTMR2F.cjs} +3 -3
- package/dist/{chunk-2YUUVN7E.cjs.map → chunk-ZZCTMR2F.cjs.map} +1 -1
- package/dist/{company_service_sanity-CCbS8ElX.d.cts → company_service_sanity-Br0R7m-A.d.cts} +271 -271
- package/dist/{company_service_sanity-B1Xg7ISJ.d.ts → company_service_sanity-DF01qvTz.d.ts} +271 -271
- package/dist/components/jobCard/JobLocation.cjs +1 -1
- package/dist/components/jobCard/JobLocation.d.cts +1 -1
- package/dist/components/jobCard/JobLocation.d.ts +1 -1
- package/dist/components/jobCard/JobLocation.js +1 -1
- package/dist/components/jobPost/JobHeader.cjs +5 -5
- package/dist/components/jobPost/JobHeader.js +4 -4
- package/dist/components/jobPost/JobPost.cjs +14 -14
- package/dist/components/jobPost/JobPost.d.cts +1 -1
- package/dist/components/jobPost/JobPost.d.ts +1 -1
- package/dist/components/jobPost/JobPost.js +13 -13
- package/dist/components/primitives/command.d.cts +1 -1
- package/dist/components/primitives/command.d.ts +1 -1
- package/dist/components/ui/Button.d.cts +1 -1
- package/dist/components/ui/Button.d.ts +1 -1
- package/dist/components/ui/Combobox.cjs +6 -6
- package/dist/components/ui/Combobox.js +5 -5
- package/dist/components/ui/Input.cjs +2 -2
- package/dist/components/ui/Input.d.cts +1 -0
- package/dist/components/ui/Input.d.ts +1 -0
- package/dist/components/ui/Input.js +1 -1
- package/dist/components/ui/Map/MapComponent.cjs +6 -6
- package/dist/components/ui/Map/MapComponent.js +5 -5
- package/dist/components/ui/Map/MapContent.cjs +4 -4
- package/dist/components/ui/Map/MapContent.js +3 -3
- package/dist/components/ui/Map/hooks.cjs +4 -4
- package/dist/components/ui/Map/hooks.js +1 -1
- package/dist/components/ui/Map/index.cjs +6 -6
- package/dist/components/ui/Map/index.js +5 -5
- package/dist/components/ui/Select.cjs +2 -2
- package/dist/components/ui/Select.js +1 -1
- package/dist/components/ui/buttonShadcn.d.cts +1 -1
- package/dist/components/ui/buttonShadcn.d.ts +1 -1
- package/dist/{displayText-Ck0qovrl.d.cts → displayText-BDPndCI9.d.cts} +2 -2
- package/dist/{displayText-ClDGmi1J.d.ts → displayText-EpnIpZ38.d.ts} +2 -2
- package/dist/hooks/useDisplayText.cjs +4 -4
- package/dist/hooks/useDisplayText.d.cts +3 -3
- package/dist/hooks/useDisplayText.d.ts +3 -3
- package/dist/hooks/useDisplayText.js +3 -3
- package/dist/index.cjs +76 -76
- package/dist/index.d.cts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.js +33 -33
- package/dist/{job_posting_service_latest-DfX8Y4gB.d.cts → job_posting_service_latest-B6Trs6sX.d.cts} +177 -177
- package/dist/{job_posting_service_latest-DfX8Y4gB.d.ts → job_posting_service_latest-B6Trs6sX.d.ts} +177 -177
- package/dist/{job_posting_service_latest-Bk53vj02.d.cts → job_posting_service_latest-BKz5U2Gp.d.cts} +177 -177
- package/dist/{job_posting_service_latest-Bk53vj02.d.ts → job_posting_service_latest-BKz5U2Gp.d.ts} +177 -177
- package/dist/{job_posting_service_sanity-BSxLNte3.d.cts → job_posting_service_sanity-BN7XcVxU.d.cts} +357 -357
- package/dist/{job_posting_service_sanity-C6aPb8kp.d.ts → job_posting_service_sanity-BNQsNQs2.d.ts} +357 -357
- package/dist/lib/locations.d.cts +3 -3
- package/dist/lib/locations.d.ts +3 -3
- package/dist/lib/mappings.d.cts +3 -3
- package/dist/lib/mappings.d.ts +3 -3
- package/dist/lib/salaryRange.cjs +1 -1
- package/dist/lib/salaryRange.d.cts +1 -1
- package/dist/lib/salaryRange.d.ts +1 -1
- package/dist/lib/salaryRange.js +1 -1
- package/dist/services/displayText.cjs +3 -3
- package/dist/services/displayText.d.cts +3 -3
- package/dist/services/displayText.d.ts +3 -3
- package/dist/services/displayText.js +2 -2
- package/dist/types/data/company_service_latest.d.cts +1 -1
- package/dist/types/data/company_service_latest.d.ts +1 -1
- package/dist/types/data/job_posting_service_latest.d.cts +1 -1
- package/dist/types/data/job_posting_service_latest.d.ts +1 -1
- package/dist/types/data/shared_pickle_output_latest.d.cts +1 -1
- package/dist/types/data/shared_pickle_output_latest.d.ts +1 -1
- package/dist/types/index.cjs +5 -5
- package/dist/types/index.d.cts +5 -5
- package/dist/types/index.d.ts +5 -5
- package/dist/types/index.js +1 -1
- package/dist/types/latest/company_service_latest.d.cts +1 -1
- package/dist/types/latest/company_service_latest.d.ts +1 -1
- package/dist/types/latest/custom/company_service_sanity.d.cts +3 -3
- package/dist/types/latest/custom/company_service_sanity.d.ts +3 -3
- package/dist/types/latest/custom/job_posting_service_sanity.d.cts +3 -3
- package/dist/types/latest/custom/job_posting_service_sanity.d.ts +3 -3
- package/dist/types/latest/job_posting_service_latest.d.cts +1 -1
- package/dist/types/latest/job_posting_service_latest.d.ts +1 -1
- package/dist/types/latest/shared_pickle_output_latest.d.cts +1 -1
- package/dist/types/latest/shared_pickle_output_latest.d.ts +1 -1
- package/package.json +1 -1
- package/dist/chunk-3XO3AJR4.js.map +0 -1
- package/dist/chunk-5GODYRZA.js.map +0 -1
- package/dist/chunk-6KGXXX6X.cjs.map +0 -1
- package/dist/chunk-7NP3NX67.cjs.map +0 -1
- package/dist/chunk-FSMBDLNU.js +0 -34
- package/dist/chunk-FSMBDLNU.js.map +0 -1
- package/dist/chunk-IJV66D4K.cjs.map +0 -1
- package/dist/chunk-KM5XDOAL.js.map +0 -1
- package/dist/chunk-PWKRCU2K.js.map +0 -1
- package/dist/chunk-SKMP4FO7.cjs.map +0 -1
- package/dist/chunk-Z2I2265Q.cjs.map +0 -1
- package/dist/{company_service_latest-CVgoQ8Mc.d.cts → company_service_latest-C7Moeufo.d.cts} +174 -174
- package/dist/{company_service_latest-CVgoQ8Mc.d.ts → company_service_latest-C7Moeufo.d.ts} +174 -174
- package/dist/{company_service_latest-oWEnaiRd.d.cts → company_service_latest-CITz7F53.d.cts} +174 -174
- package/dist/{company_service_latest-oWEnaiRd.d.ts → company_service_latest-CITz7F53.d.ts} +174 -174
- package/dist/{shared_pickle_output_latest-BVF7Zh2H.d.ts → shared_pickle_output_latest--XZhOUyE.d.cts} +11 -11
- package/dist/{shared_pickle_output_latest-BVF7Zh2H.d.cts → shared_pickle_output_latest--XZhOUyE.d.ts} +11 -11
- package/dist/{shared_pickle_output_latest-BjRRmT8R.d.ts → shared_pickle_output_latest-DKOmTyYk.d.cts} +11 -11
- package/dist/{shared_pickle_output_latest-BjRRmT8R.d.cts → shared_pickle_output_latest-DKOmTyYk.d.ts} +11 -11
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ClusterMarker } from './chunk-EBZRXX6P.js';
|
|
2
1
|
import { FocusCircle } from './chunk-5Z4ILTRD.js';
|
|
3
2
|
import { IndividualMarker } from './chunk-EWFDWOL2.js';
|
|
3
|
+
import { ClusterMarker } from './chunk-EBZRXX6P.js';
|
|
4
4
|
import { PIN_COLORS } from './chunk-LQQ244AY.js';
|
|
5
5
|
import { cn } from './chunk-2FGZQI42.js';
|
|
6
6
|
import { useMap, useMapsLibrary, Map, AdvancedMarker, Pin } from '@vis.gl/react-google-maps';
|
|
@@ -93,15 +93,6 @@ function MapContent({
|
|
|
93
93
|
`marker-${cluster.properties.pointId}`
|
|
94
94
|
);
|
|
95
95
|
}),
|
|
96
|
-
coordinates && clusters.length === 0 && coordinates.map((coord, index) => /* @__PURE__ */ jsx(
|
|
97
|
-
IndividualMarker,
|
|
98
|
-
{
|
|
99
|
-
coordinate: coord,
|
|
100
|
-
onPinClick,
|
|
101
|
-
onPinHover
|
|
102
|
-
},
|
|
103
|
-
`fallback-${index}`
|
|
104
|
-
)),
|
|
105
96
|
focusPoint && radiusMiles && /* @__PURE__ */ jsx(
|
|
106
97
|
FocusCircle,
|
|
107
98
|
{
|
|
@@ -117,5 +108,5 @@ function MapContent({
|
|
|
117
108
|
}
|
|
118
109
|
|
|
119
110
|
export { MapContent };
|
|
120
|
-
//# sourceMappingURL=chunk-
|
|
121
|
-
//# sourceMappingURL=chunk-
|
|
111
|
+
//# sourceMappingURL=chunk-Q6AKHW44.js.map
|
|
112
|
+
//# sourceMappingURL=chunk-Q6AKHW44.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/Map/MapContent.tsx"],"names":[],"mappings":"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","file":"chunk-Q6AKHW44.js","sourcesContent":["'use client'\n\nimport { AdvancedMarker, Map, Pin, useMap, useMapsLibrary } from '@vis.gl/react-google-maps'\nimport { useCallback } from 'react'\n\nimport { ClusterMarker } from '@/components/ui/Map/ClusterMarker'\nimport { PIN_COLORS } from '@/components/ui/Map/constants'\nimport { FocusCircle } from '@/components/ui/Map/FocusCircle'\nimport { IndividualMarker } from '@/components/ui/Map/IndividualMarker'\nimport type { MapContentProps, PinData } from '@/components/ui/Map/types'\nimport { cn } from '@/lib/utils'\n\nexport function MapContent<T = PinData>({\n mapId,\n mapCenter,\n mapZoom,\n position,\n coordinates,\n clusters,\n supercluster,\n onPinHover,\n onPinClick,\n focusPoint,\n radiusMiles,\n className,\n setBounds,\n setZoomLevel,\n}: MapContentProps<T>) {\n const map = useMap()\n const mapsLibrary = useMapsLibrary('maps')\n\n const zoomToLevel = useCallback(\n (newZoom: number) => {\n if (map) {\n map.setZoom(newZoom)\n }\n },\n [map]\n )\n\n const handleBoundsChanged = (e: {\n detail: { bounds: { south: number; west: number; north: number; east: number } }\n }) => {\n if (e.detail.bounds) {\n const bounds = e.detail.bounds\n setBounds([\n [bounds.south, bounds.west],\n [bounds.north, bounds.east],\n ])\n }\n }\n\n const handleZoomChanged = (e: { detail: { zoom: number } }) => {\n if (e.detail.zoom) {\n setZoomLevel(e.detail.zoom)\n }\n }\n\n const handleCameraChanged = (e: { detail: { zoom: number } }) => {\n if (e.detail.zoom) {\n setZoomLevel(e.detail.zoom)\n }\n }\n\n return (\n <div className={cn('relative h-screen max-w-full', className)}>\n <Map\n defaultZoom={mapZoom}\n defaultCenter={mapCenter}\n mapId={mapId}\n keyboardShortcuts={true}\n disableDefaultUI={true}\n zoomControl={true}\n onBoundsChanged={handleBoundsChanged}\n onZoomChanged={handleZoomChanged}\n onCameraChanged={handleCameraChanged}\n >\n {position && !coordinates && (\n <AdvancedMarker position={position}>\n <Pin {...PIN_COLORS} />\n </AdvancedMarker>\n )}\n\n {coordinates &&\n clusters.map((cluster) => {\n const { cluster: isCluster } = cluster.properties\n\n if (isCluster) {\n return (\n <ClusterMarker\n key={`cluster-${cluster.id}`}\n cluster={cluster}\n coordinates={coordinates}\n onPinClick={onPinClick}\n onPinHover={onPinHover}\n zoomToLevel={zoomToLevel}\n supercluster={supercluster}\n />\n )\n }\n\n const originalPoint = coordinates[cluster.properties.pointId!]\n return (\n <IndividualMarker\n key={`marker-${cluster.properties.pointId}`}\n coordinate={originalPoint}\n onPinClick={onPinClick}\n onPinHover={onPinHover}\n />\n )\n })}\n\n {focusPoint && radiusMiles && (\n <FocusCircle\n focusPoint={focusPoint}\n radiusMiles={radiusMiles}\n map={map}\n mapsLibrary={mapsLibrary}\n />\n )}\n </Map>\n </div>\n )\n}\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var chunk4JSV7KA3_cjs = require('./chunk-4JSV7KA3.cjs');
|
|
4
3
|
var chunkPSRWV7UW_cjs = require('./chunk-PSRWV7UW.cjs');
|
|
5
4
|
var chunkAPHLSON7_cjs = require('./chunk-APHLSON7.cjs');
|
|
5
|
+
var chunk4JSV7KA3_cjs = require('./chunk-4JSV7KA3.cjs');
|
|
6
6
|
var chunkNLGWU2KI_cjs = require('./chunk-NLGWU2KI.cjs');
|
|
7
7
|
var chunkMGWZXPMF_cjs = require('./chunk-MGWZXPMF.cjs');
|
|
8
8
|
var reactGoogleMaps = require('@vis.gl/react-google-maps');
|
|
@@ -95,15 +95,6 @@ function MapContent({
|
|
|
95
95
|
`marker-${cluster.properties.pointId}`
|
|
96
96
|
);
|
|
97
97
|
}),
|
|
98
|
-
coordinates && clusters.length === 0 && coordinates.map((coord, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
99
|
-
chunkAPHLSON7_cjs.IndividualMarker,
|
|
100
|
-
{
|
|
101
|
-
coordinate: coord,
|
|
102
|
-
onPinClick,
|
|
103
|
-
onPinHover
|
|
104
|
-
},
|
|
105
|
-
`fallback-${index}`
|
|
106
|
-
)),
|
|
107
98
|
focusPoint && radiusMiles && /* @__PURE__ */ jsxRuntime.jsx(
|
|
108
99
|
chunkPSRWV7UW_cjs.FocusCircle,
|
|
109
100
|
{
|
|
@@ -119,5 +110,5 @@ function MapContent({
|
|
|
119
110
|
}
|
|
120
111
|
|
|
121
112
|
exports.MapContent = MapContent;
|
|
122
|
-
//# sourceMappingURL=chunk-
|
|
123
|
-
//# sourceMappingURL=chunk-
|
|
113
|
+
//# sourceMappingURL=chunk-RCYBG5RG.cjs.map
|
|
114
|
+
//# sourceMappingURL=chunk-RCYBG5RG.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/Map/MapContent.tsx"],"names":["useMap","useMapsLibrary","useCallback","cn","jsxs","Map","jsx","AdvancedMarker","Pin","PIN_COLORS","ClusterMarker","IndividualMarker","FocusCircle"],"mappings":"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","file":"chunk-RCYBG5RG.cjs","sourcesContent":["'use client'\n\nimport { AdvancedMarker, Map, Pin, useMap, useMapsLibrary } from '@vis.gl/react-google-maps'\nimport { useCallback } from 'react'\n\nimport { ClusterMarker } from '@/components/ui/Map/ClusterMarker'\nimport { PIN_COLORS } from '@/components/ui/Map/constants'\nimport { FocusCircle } from '@/components/ui/Map/FocusCircle'\nimport { IndividualMarker } from '@/components/ui/Map/IndividualMarker'\nimport type { MapContentProps, PinData } from '@/components/ui/Map/types'\nimport { cn } from '@/lib/utils'\n\nexport function MapContent<T = PinData>({\n mapId,\n mapCenter,\n mapZoom,\n position,\n coordinates,\n clusters,\n supercluster,\n onPinHover,\n onPinClick,\n focusPoint,\n radiusMiles,\n className,\n setBounds,\n setZoomLevel,\n}: MapContentProps<T>) {\n const map = useMap()\n const mapsLibrary = useMapsLibrary('maps')\n\n const zoomToLevel = useCallback(\n (newZoom: number) => {\n if (map) {\n map.setZoom(newZoom)\n }\n },\n [map]\n )\n\n const handleBoundsChanged = (e: {\n detail: { bounds: { south: number; west: number; north: number; east: number } }\n }) => {\n if (e.detail.bounds) {\n const bounds = e.detail.bounds\n setBounds([\n [bounds.south, bounds.west],\n [bounds.north, bounds.east],\n ])\n }\n }\n\n const handleZoomChanged = (e: { detail: { zoom: number } }) => {\n if (e.detail.zoom) {\n setZoomLevel(e.detail.zoom)\n }\n }\n\n const handleCameraChanged = (e: { detail: { zoom: number } }) => {\n if (e.detail.zoom) {\n setZoomLevel(e.detail.zoom)\n }\n }\n\n return (\n <div className={cn('relative h-screen max-w-full', className)}>\n <Map\n defaultZoom={mapZoom}\n defaultCenter={mapCenter}\n mapId={mapId}\n keyboardShortcuts={true}\n disableDefaultUI={true}\n zoomControl={true}\n onBoundsChanged={handleBoundsChanged}\n onZoomChanged={handleZoomChanged}\n onCameraChanged={handleCameraChanged}\n >\n {position && !coordinates && (\n <AdvancedMarker position={position}>\n <Pin {...PIN_COLORS} />\n </AdvancedMarker>\n )}\n\n {coordinates &&\n clusters.map((cluster) => {\n const { cluster: isCluster } = cluster.properties\n\n if (isCluster) {\n return (\n <ClusterMarker\n key={`cluster-${cluster.id}`}\n cluster={cluster}\n coordinates={coordinates}\n onPinClick={onPinClick}\n onPinHover={onPinHover}\n zoomToLevel={zoomToLevel}\n supercluster={supercluster}\n />\n )\n }\n\n const originalPoint = coordinates[cluster.properties.pointId!]\n return (\n <IndividualMarker\n key={`marker-${cluster.properties.pointId}`}\n coordinate={originalPoint}\n onPinClick={onPinClick}\n onPinHover={onPinHover}\n />\n )\n })}\n\n {focusPoint && radiusMiles && (\n <FocusCircle\n focusPoint={focusPoint}\n radiusMiles={radiusMiles}\n map={map}\n mapsLibrary={mapsLibrary}\n />\n )}\n </Map>\n </div>\n )\n}\n"]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunk4LUPQO4R_cjs = require('./chunk-4LUPQO4R.cjs');
|
|
3
4
|
var chunkDWB5TTR6_cjs = require('./chunk-DWB5TTR6.cjs');
|
|
4
5
|
var chunk46HHHYSV_cjs = require('./chunk-46HHHYSV.cjs');
|
|
5
6
|
var chunkQRMNGILI_cjs = require('./chunk-QRMNGILI.cjs');
|
|
6
|
-
var
|
|
7
|
+
var chunkVCCYAJK7_cjs = require('./chunk-VCCYAJK7.cjs');
|
|
8
|
+
var chunkXAPQTBJR_cjs = require('./chunk-XAPQTBJR.cjs');
|
|
7
9
|
var chunkGQNVPLSG_cjs = require('./chunk-GQNVPLSG.cjs');
|
|
8
10
|
var chunkMGWZXPMF_cjs = require('./chunk-MGWZXPMF.cjs');
|
|
9
|
-
var
|
|
10
|
-
var chunkOXDKVZZ5_cjs = require('./chunk-OXDKVZZ5.cjs');
|
|
11
|
-
var chunkXAPQTBJR_cjs = require('./chunk-XAPQTBJR.cjs');
|
|
11
|
+
var chunk567FG76G_cjs = require('./chunk-567FG76G.cjs');
|
|
12
12
|
var DateFns = require('date-fns');
|
|
13
13
|
var jsxRuntime = require('react/jsx-runtime');
|
|
14
14
|
|
|
@@ -42,9 +42,9 @@ function JobPost({
|
|
|
42
42
|
backAcceptedRoutes,
|
|
43
43
|
actions
|
|
44
44
|
}) {
|
|
45
|
-
const formattedEmploymentType =
|
|
46
|
-
const formattedEmploymentLevel =
|
|
47
|
-
const formattedJobFunction =
|
|
45
|
+
const formattedEmploymentType = chunk567FG76G_cjs.useDisplayText("employmentType", job.employmentType);
|
|
46
|
+
const formattedEmploymentLevel = chunk567FG76G_cjs.useDisplayText("employmentLevel", job.employmentLevel);
|
|
47
|
+
const formattedJobFunction = chunk567FG76G_cjs.useDisplayText("jobFunction", job.jobFunction);
|
|
48
48
|
const formattedLocations = chunkXAPQTBJR_cjs.getAddressList(job);
|
|
49
49
|
const formattedSalary = chunkGQNVPLSG_cjs.salaryRange(job.estimatedSalary);
|
|
50
50
|
const formattedDate = DateFns__namespace.formatDistanceToNow(new Date(job.datePosted), {
|
|
@@ -86,7 +86,7 @@ function JobPost({
|
|
|
86
86
|
),
|
|
87
87
|
children: [
|
|
88
88
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
89
|
-
|
|
89
|
+
chunkVCCYAJK7_cjs.JobHeader,
|
|
90
90
|
{
|
|
91
91
|
title: job.title,
|
|
92
92
|
bannerSrc,
|
|
@@ -133,5 +133,5 @@ function JobPost({
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
exports.JobPost = JobPost;
|
|
136
|
-
//# sourceMappingURL=chunk-
|
|
137
|
-
//# sourceMappingURL=chunk-
|
|
136
|
+
//# sourceMappingURL=chunk-SUDPNL2Q.cjs.map
|
|
137
|
+
//# sourceMappingURL=chunk-SUDPNL2Q.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/jobPost/JobPost.tsx"],"names":["useDisplayText","getAddressList","salaryRange","DateFns","jsxs","cn","jsx","JobHeader","JobDescription","CompanyTake","CompanyInformation","CompanyBenefits"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/jobPost/JobPost.tsx"],"names":["useDisplayText","getAddressList","salaryRange","DateFns","jsxs","cn","jsx","JobHeader","JobDescription","CompanyTake","CompanyInformation","CompanyBenefits"],"mappings":"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","file":"chunk-SUDPNL2Q.cjs","sourcesContent":["'use client'\n\nimport * as DateFns from 'date-fns'\nimport { type ReactNode } from 'react'\n\nimport { CompanyBenefits } from '@/components/company/CompanyBenefits'\nimport { CompanyInformation } from '@/components/company/CompanyInformation'\nimport { CompanyTake } from '@/components/company/CompanyTake'\nimport { JobDescription } from '@/components/jobPost/JobDescription'\nimport { JobHeader } from '@/components/jobPost/JobHeader'\nimport { useDisplayText } from '@/hooks/useDisplayText'\nimport { getAddressList } from '@/lib/locations'\nimport { salaryRange } from '@/lib/salaryRange'\nimport { cn } from '@/lib/utils'\nimport { type JobPostModel } from '@/types/data/job_posting_service_latest'\n\nexport type JobPostProps = {\n job: JobPostModel\n bannerSrc: string\n avatarSrc?: string\n standalone?: boolean\n avatarHref?: string\n fallbackHref?: string\n backAcceptedRoutes?: string[]\n actions?: ReactNode\n}\n\nexport function JobPost({\n job,\n bannerSrc,\n avatarSrc,\n standalone,\n avatarHref,\n fallbackHref,\n backAcceptedRoutes,\n actions,\n}: Readonly<JobPostProps>) {\n const formattedEmploymentType = useDisplayText('employmentType', job.employmentType)\n const formattedEmploymentLevel = useDisplayText('employmentLevel', job.employmentLevel)\n const formattedJobFunction = useDisplayText('jobFunction', job.jobFunction)\n const formattedLocations = getAddressList(job)\n const formattedSalary = salaryRange(job.estimatedSalary)\n const formattedDate = DateFns.formatDistanceToNow(new Date(job.datePosted as string), {\n addSuffix: true,\n })\n\n const tags = [\n !!formattedSalary && {\n icon: 'banknote' as const,\n name: 'salary',\n label: formattedSalary,\n },\n !!formattedEmploymentType && {\n icon: 'briefcase-business' as const,\n name: 'employmentType',\n label: formattedEmploymentType,\n },\n !!formattedEmploymentLevel && {\n icon: 'circle-user' as const,\n name: 'level',\n label: formattedEmploymentLevel,\n },\n !!formattedJobFunction && {\n icon: 'briefcase-business' as const,\n name: 'jobFunction',\n label: formattedJobFunction,\n },\n ...formattedLocations.map((label) => ({\n icon: 'map-pin' as const,\n name: 'location',\n label,\n })),\n ].filter((t) => !!t)\n\n return (\n <div\n className={cn(\n 'flex flex-col gap-10 pb-4',\n !standalone && 'border-1 rounded-3xl border-grey-5'\n )}\n >\n <JobHeader\n title={job.title}\n bannerSrc={bannerSrc}\n avatarName={job.hiringOrganization?.companyName}\n avatarSrc={job.hiringOrganization?.logo?.asset?.url}\n subtitles={[job.hiringOrganization?.companyName ?? '', `Posted ${formattedDate}`]}\n actions={actions}\n standalone={standalone}\n avatarHref={avatarHref}\n backFallbackHref={fallbackHref}\n backAcceptedRoutes={backAcceptedRoutes}\n tags={tags}\n />\n\n <div className=\"flex flex-col gap-8 px-6\">\n <JobDescription description={job.description} />\n\n <CompanyTake\n avatarSrc={avatarSrc}\n content={job.hiringOrganization?.companyNDG?.companyNDGTake}\n />\n\n <CompanyInformation\n name={job.hiringOrganization?.companyName ?? ''}\n how={job.hiringOrganization?.companyPhilosophy?.companyHow}\n mission={job.hiringOrganization?.companyPhilosophy?.companyMission}\n wow={job.hiringOrganization?.companyNDG?.companyWow}\n website={job.hiringOrganization?.companyWebsite}\n />\n\n <CompanyBenefits\n benefits={job.hiringOrganization?.companyCareers?.companyBenefits\n ?.map((b) => b.title)\n .filter((d) => d !== undefined)}\n />\n </div>\n </div>\n )\n}\n"]}
|
|
@@ -55,7 +55,7 @@ var Input = forwardRef(
|
|
|
55
55
|
/* @__PURE__ */ jsx(
|
|
56
56
|
"input",
|
|
57
57
|
{
|
|
58
|
-
className: cn(inputVariants({ theme, hasIcon, size })),
|
|
58
|
+
className: cn(inputVariants({ theme, hasIcon, size }), classNames?.input),
|
|
59
59
|
ref,
|
|
60
60
|
placeholder,
|
|
61
61
|
value,
|
|
@@ -134,5 +134,5 @@ var inputVariants = cva(
|
|
|
134
134
|
var Input_default = Input;
|
|
135
135
|
|
|
136
136
|
export { Input_default };
|
|
137
|
-
//# sourceMappingURL=chunk-
|
|
138
|
-
//# sourceMappingURL=chunk-
|
|
137
|
+
//# sourceMappingURL=chunk-U2T5ZKPR.js.map
|
|
138
|
+
//# sourceMappingURL=chunk-U2T5ZKPR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/Input.tsx"],"names":[],"mappings":"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","file":"chunk-U2T5ZKPR.js","sourcesContent":["import { cva, type VariantProps } from 'cva'\nimport { icons, X } from 'lucide-react'\nimport { type ChangeEvent, forwardRef, type InputHTMLAttributes } from 'react'\n\nimport ErrorMessage from '@/components/ui/ErrorMessage'\nimport Label from '@/components/ui/Label'\nimport { cn } from '@/lib/utils'\n\ninterface Props\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'>,\n VariantProps<typeof inputVariants> {\n label?: string\n error?: string\n icon?: keyof typeof icons\n description?: string\n classNames?: { label?: string; input?: string }\n onClear?: () => void\n}\n\n/**\n * A reusable input component that supports icons, labels, error messages, and clearing functionality.\n *\n * @example\n * // Basic usage\n * <Input\n * id=\"email\"\n * name=\"email\"\n * placeholder=\"Enter your email\"\n * />\n *\n * @example\n * // With label and error\n * <Input\n * id=\"username\"\n * label=\"Username\"\n * error=\"Username is required\"\n * required\n * />\n *\n * @example\n * // Search input with clear functionality\n * <Input\n * icon=\"Search\"\n * value={searchValue}\n * onChange={handleChange}\n * onClear={() => setSearchValue('')}\n * />\n */\nconst Input = forwardRef<HTMLInputElement, Props>(\n (\n {\n label,\n error,\n description,\n theme,\n size,\n icon,\n onClear,\n value,\n onChange,\n classNames,\n className,\n ...props\n },\n ref\n ) => {\n const handleClear = () => {\n onChange?.({ target: { value: '' } } as ChangeEvent<HTMLInputElement>)\n onClear?.()\n }\n\n const IconComponent = icon && icons[icon]\n\n const placeholder = props.placeholder ?? (icon === 'Search' ? 'Search...' : '')\n const hasIcon = !!icon\n\n const iconColor = theme === 'dark' ? 'text-white' : 'text-grey-80'\n\n return (\n <div\n className={cn('group flex w-full flex-col gap-1', className)}\n data-testid={`input-wrapper-${props.id}`}\n >\n {label && (\n <Label\n text={label}\n htmlFor={props.name}\n required={props.required}\n description={description}\n className={classNames?.label}\n />\n )}\n <div className=\"relative flex flex-row items-center\">\n {IconComponent && (\n <IconComponent\n className={`absolute left-3 h-4 w-4 ${iconColor} opacity-50 group-hover:opacity-100`}\n />\n )}\n <input\n className={cn(inputVariants({ theme, hasIcon, size }), classNames?.input)}\n ref={ref}\n placeholder={placeholder}\n value={value}\n onChange={onChange}\n data-testid={`input-element-${props.id}`}\n {...props}\n />\n {hasIcon && value && (\n <X\n className={`absolute right-3 h-4 w-4 cursor-pointer ${iconColor}`}\n onClick={handleClear}\n data-testid=\"clear-button\"\n />\n )}\n </div>\n\n <ErrorMessage message={error} />\n </div>\n )\n }\n)\nInput.displayName = 'Input'\n\nconst inputVariants = cva(\n [\n 'border',\n 'border-grey-20',\n 'placeholder:text-grey-50',\n 'focus-visible:ring-ring',\n 'inline-flex',\n 'w-full',\n 'items-center',\n 'justify-start',\n 'gap-3',\n 'rounded-lg',\n 'bg-transparent',\n 'shadow-sm',\n 'transition-colors',\n 'focus-visible:outline-none',\n 'focus-visible:ring-1',\n 'disabled:cursor-not-allowed',\n 'disabled:opacity-50',\n 'appearance-none',\n '[&::-webkit-search-cancel-button]:appearance-none',\n '[&::-webkit-search-decoration]:appearance-none',\n '[&::-webkit-search-results-button]:appearance-none',\n '[&::-webkit-search-results-decoration]:appearance-none',\n '[&::-ms-clear]:display-none',\n '[&::-ms-reveal]:display-none',\n ],\n {\n variants: {\n theme: {\n light: 'text-grey-80',\n dark: 'text-white',\n },\n size: {\n small: 'h-8 pl-4 pr-3 py-1 text-xs',\n normal: 'h-9 pl-4 pr-3 py-2 text-sm',\n large: 'h-10 pl-4 pr-3 py-2 text-base',\n xlarge: 'h-11 pl-4 pr-3 py-3 text-base',\n },\n hasIcon: {\n false: 'pl-3',\n true: 'pl-8',\n },\n },\n defaultVariants: {\n theme: 'light',\n size: 'normal',\n hasIcon: false,\n },\n }\n)\n\nexport default Input\n"]}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunkHD3VN7GE_cjs = require('./chunk-HD3VN7GE.cjs');
|
|
3
4
|
var chunkW2UGL7QI_cjs = require('./chunk-W2UGL7QI.cjs');
|
|
4
5
|
var chunk6BFFHI2V_cjs = require('./chunk-6BFFHI2V.cjs');
|
|
5
|
-
var chunkHD3VN7GE_cjs = require('./chunk-HD3VN7GE.cjs');
|
|
6
6
|
var chunkMGWZXPMF_cjs = require('./chunk-MGWZXPMF.cjs');
|
|
7
7
|
var chunkSMDQTPJE_cjs = require('./chunk-SMDQTPJE.cjs');
|
|
8
8
|
var lucideReact = require('lucide-react');
|
|
@@ -156,5 +156,5 @@ function JobHeader({
|
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
exports.JobHeader = JobHeader;
|
|
159
|
-
//# sourceMappingURL=chunk-
|
|
160
|
-
//# sourceMappingURL=chunk-
|
|
159
|
+
//# sourceMappingURL=chunk-VCCYAJK7.cjs.map
|
|
160
|
+
//# sourceMappingURL=chunk-VCCYAJK7.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/jobPost/JobHeader.tsx"],"names":["iconMap","jsx","jsxs","cn","Image","BackButton","Avatar","Dot","Chip_default"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/jobPost/JobHeader.tsx"],"names":["iconMap","jsx","jsxs","cn","Image","BackButton","Avatar","Dot","Chip_default"],"mappings":"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","file":"chunk-VCCYAJK7.cjs","sourcesContent":["'use client'\n\nimport { Dot } from 'lucide-react'\nimport Image from 'next/image'\nimport { type ReactNode } from 'react'\n\nimport { BackButton } from '@/components/buttons/BackButton'\nimport { Avatar } from '@/components/ui/Avatar'\nimport Chip from '@/components/ui/Chip'\nimport { iconMap } from '@/lib/icons'\nimport { cn } from '@/lib/utils'\n\nexport type JobHeaderTag = {\n name: string\n label: string\n icon: keyof typeof iconMap\n}\n\nexport type JobHeaderProps = {\n title: string\n bannerSrc: string\n subtitles?: string[]\n standalone?: boolean\n avatarSrc?: string\n avatarName?: string\n avatarHref?: string\n backFallbackHref?: string\n backAcceptedRoutes?: string[]\n actions?: ReactNode\n tags?: JobHeaderTag[]\n}\n\nexport function JobHeader({\n title,\n subtitles,\n standalone,\n bannerSrc,\n avatarSrc,\n avatarName,\n avatarHref,\n backFallbackHref,\n backAcceptedRoutes,\n actions,\n tags,\n}: Readonly<JobHeaderProps>) {\n const renderIcon = (icon: JobHeaderTag['icon']) => {\n const Icon = iconMap[icon]\n return <Icon size={18} />\n }\n\n return (\n <div\n data-testid=\"job-header-root\"\n className={cn(\n '-mt-8 flex w-full flex-col items-center justify-between gap-6 md:-mt-0',\n !standalone && 'rounded-3xl'\n )}\n >\n {!standalone && (\n <div className=\"relative flex min-h-16 w-full items-center rounded-t-3xl bg-transparent md:min-h-24 md:flex-row lg:min-h-32\">\n <Image\n className=\"h-full w-full rounded-t-3xl object-cover\"\n src={bannerSrc}\n alt=\"job banner\"\n fill\n />\n <BackButton\n acceptedRoutes={backAcceptedRoutes}\n fallbackHref={backFallbackHref}\n className=\"absolute right-2 top-2 flex items-center justify-center text-white sm:hidden\"\n data-testid=\"job-header-back-button\"\n />\n <div\n className=\"absolute left-4 top-8 md:left-6 md:top-16 lg:top-24\"\n data-testid=\"job-header-avatar\"\n >\n <Avatar\n size=\"large\"\n target=\"_blank\"\n href={avatarHref}\n name={avatarName}\n src={avatarSrc}\n rel=\"noopener noreferrer\"\n />\n </div>\n </div>\n )}\n\n <div className=\"flex w-full flex-col items-start justify-start gap-4 px-6\">\n <div className=\"flex flex-col md:flex-row\">\n {standalone && (\n <div className=\"-mt-4 mr-4 md:mt-0\" data-testid=\"job-header-avatar\">\n <Avatar\n size=\"large\"\n target=\"_blank\"\n href={avatarHref}\n name={avatarName}\n src={avatarSrc}\n rel=\"noopener noreferrer\"\n />\n </div>\n )}\n\n <div className=\"prose mt-4 flex w-full items-center text-grey-80 lg:prose-lg\">\n {subtitles?.map((subtitle, i) => (\n <div\n key={subtitle}\n data-testid={`job-header-subtitle-${i}`}\n className=\"flex items-center\"\n >\n {subtitle}\n {i < subtitles.length - 1 && <Dot className=\"mx-1 shrink-0\" size={10} />}\n </div>\n ))}\n </div>\n </div>\n\n <div\n data-testid=\"job-header-content\"\n className=\"mt-2 flex w-full flex-row flex-wrap items-center justify-between gap-1\"\n >\n <h2\n data-testid=\"job-header-title\"\n className=\"break-word max-w-full text-2xl font-bold text-black sm:max-w-2xl md:max-w-lg\"\n >\n {title}\n </h2>\n\n {!!actions && (\n <div\n className=\"flex w-full justify-end gap-2 md:w-auto\"\n data-testid=\"job-header-actions\"\n >\n {actions}\n </div>\n )}\n </div>\n\n <div\n data-testid=\"job-header-tags\"\n className=\"flex flex-row flex-wrap items-center justify-start gap-2\"\n >\n {tags?.map(({ name, label, icon }) => (\n <Chip\n key={`${name}-${label}`}\n size=\"small\"\n variant=\"neutral\"\n aria-label={name}\n data-testid={`job-header-tag-${name}`}\n >\n {renderIcon(icon)}\n <span>{label}</span>\n </Chip>\n ))}\n </div>\n </div>\n </div>\n )\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { BackButton } from './chunk-IJQTUD3D.js';
|
|
1
2
|
import { Avatar } from './chunk-2TEFWPFS.js';
|
|
2
3
|
import { Chip_default } from './chunk-LQ4DG6ST.js';
|
|
3
|
-
import { BackButton } from './chunk-IJQTUD3D.js';
|
|
4
4
|
import { cn } from './chunk-2FGZQI42.js';
|
|
5
5
|
import { iconMap } from './chunk-PONUWUJ7.js';
|
|
6
6
|
import { Dot } from 'lucide-react';
|
|
@@ -150,5 +150,5 @@ function JobHeader({
|
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
export { JobHeader };
|
|
153
|
-
//# sourceMappingURL=chunk-
|
|
154
|
-
//# sourceMappingURL=chunk-
|
|
153
|
+
//# sourceMappingURL=chunk-VRYGJJ5K.js.map
|
|
154
|
+
//# sourceMappingURL=chunk-VRYGJJ5K.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/jobPost/JobHeader.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/jobPost/JobHeader.tsx"],"names":[],"mappings":"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","file":"chunk-VRYGJJ5K.js","sourcesContent":["'use client'\n\nimport { Dot } from 'lucide-react'\nimport Image from 'next/image'\nimport { type ReactNode } from 'react'\n\nimport { BackButton } from '@/components/buttons/BackButton'\nimport { Avatar } from '@/components/ui/Avatar'\nimport Chip from '@/components/ui/Chip'\nimport { iconMap } from '@/lib/icons'\nimport { cn } from '@/lib/utils'\n\nexport type JobHeaderTag = {\n name: string\n label: string\n icon: keyof typeof iconMap\n}\n\nexport type JobHeaderProps = {\n title: string\n bannerSrc: string\n subtitles?: string[]\n standalone?: boolean\n avatarSrc?: string\n avatarName?: string\n avatarHref?: string\n backFallbackHref?: string\n backAcceptedRoutes?: string[]\n actions?: ReactNode\n tags?: JobHeaderTag[]\n}\n\nexport function JobHeader({\n title,\n subtitles,\n standalone,\n bannerSrc,\n avatarSrc,\n avatarName,\n avatarHref,\n backFallbackHref,\n backAcceptedRoutes,\n actions,\n tags,\n}: Readonly<JobHeaderProps>) {\n const renderIcon = (icon: JobHeaderTag['icon']) => {\n const Icon = iconMap[icon]\n return <Icon size={18} />\n }\n\n return (\n <div\n data-testid=\"job-header-root\"\n className={cn(\n '-mt-8 flex w-full flex-col items-center justify-between gap-6 md:-mt-0',\n !standalone && 'rounded-3xl'\n )}\n >\n {!standalone && (\n <div className=\"relative flex min-h-16 w-full items-center rounded-t-3xl bg-transparent md:min-h-24 md:flex-row lg:min-h-32\">\n <Image\n className=\"h-full w-full rounded-t-3xl object-cover\"\n src={bannerSrc}\n alt=\"job banner\"\n fill\n />\n <BackButton\n acceptedRoutes={backAcceptedRoutes}\n fallbackHref={backFallbackHref}\n className=\"absolute right-2 top-2 flex items-center justify-center text-white sm:hidden\"\n data-testid=\"job-header-back-button\"\n />\n <div\n className=\"absolute left-4 top-8 md:left-6 md:top-16 lg:top-24\"\n data-testid=\"job-header-avatar\"\n >\n <Avatar\n size=\"large\"\n target=\"_blank\"\n href={avatarHref}\n name={avatarName}\n src={avatarSrc}\n rel=\"noopener noreferrer\"\n />\n </div>\n </div>\n )}\n\n <div className=\"flex w-full flex-col items-start justify-start gap-4 px-6\">\n <div className=\"flex flex-col md:flex-row\">\n {standalone && (\n <div className=\"-mt-4 mr-4 md:mt-0\" data-testid=\"job-header-avatar\">\n <Avatar\n size=\"large\"\n target=\"_blank\"\n href={avatarHref}\n name={avatarName}\n src={avatarSrc}\n rel=\"noopener noreferrer\"\n />\n </div>\n )}\n\n <div className=\"prose mt-4 flex w-full items-center text-grey-80 lg:prose-lg\">\n {subtitles?.map((subtitle, i) => (\n <div\n key={subtitle}\n data-testid={`job-header-subtitle-${i}`}\n className=\"flex items-center\"\n >\n {subtitle}\n {i < subtitles.length - 1 && <Dot className=\"mx-1 shrink-0\" size={10} />}\n </div>\n ))}\n </div>\n </div>\n\n <div\n data-testid=\"job-header-content\"\n className=\"mt-2 flex w-full flex-row flex-wrap items-center justify-between gap-1\"\n >\n <h2\n data-testid=\"job-header-title\"\n className=\"break-word max-w-full text-2xl font-bold text-black sm:max-w-2xl md:max-w-lg\"\n >\n {title}\n </h2>\n\n {!!actions && (\n <div\n className=\"flex w-full justify-end gap-2 md:w-auto\"\n data-testid=\"job-header-actions\"\n >\n {actions}\n </div>\n )}\n </div>\n\n <div\n data-testid=\"job-header-tags\"\n className=\"flex flex-row flex-wrap items-center justify-start gap-2\"\n >\n {tags?.map(({ name, label, icon }) => (\n <Chip\n key={`${name}-${label}`}\n size=\"small\"\n variant=\"neutral\"\n aria-label={name}\n data-testid={`job-header-tag-${name}`}\n >\n {renderIcon(icon)}\n <span>{label}</span>\n </Chip>\n ))}\n </div>\n </div>\n </div>\n )\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { MapContent } from './chunk-
|
|
2
|
-
import { useMapBounds, useZoomLevel, useClusters } from './chunk-
|
|
1
|
+
import { MapContent } from './chunk-Q6AKHW44.js';
|
|
2
|
+
import { useMapBounds, useZoomLevel, useClusters } from './chunk-Z77KENZ6.js';
|
|
3
3
|
import { getCenterForCoordinates, getZoomForCoordinates } from './chunk-5H35ZVLR.js';
|
|
4
4
|
import { DEFAULT_ZOOM, DEFAULT_POSITION } from './chunk-LQQ244AY.js';
|
|
5
5
|
import { APIProvider } from '@vis.gl/react-google-maps';
|
|
@@ -20,8 +20,8 @@ function MapComponent({
|
|
|
20
20
|
const { bounds, setBounds } = useMapBounds(coordinates);
|
|
21
21
|
const { zoomLevel, setZoomLevel } = useZoomLevel(zoom || DEFAULT_ZOOM);
|
|
22
22
|
const { clusters, supercluster } = useClusters(coordinates, bounds, zoomLevel);
|
|
23
|
-
const mapCenter = coordinates && coordinates.length > 0 ? getCenterForCoordinates(coordinates) :
|
|
24
|
-
const mapZoom = coordinates && coordinates.length > 1 ? getZoomForCoordinates(coordinates, zoom) :
|
|
23
|
+
const mapCenter = position ? position : coordinates && coordinates.length > 0 ? getCenterForCoordinates(coordinates) : DEFAULT_POSITION;
|
|
24
|
+
const mapZoom = position ? zoom : coordinates && coordinates.length > 1 ? getZoomForCoordinates(coordinates, zoom) : DEFAULT_ZOOM;
|
|
25
25
|
return /* @__PURE__ */ jsx(APIProvider, { apiKey, children: /* @__PURE__ */ jsx(
|
|
26
26
|
MapContent,
|
|
27
27
|
{
|
|
@@ -44,5 +44,5 @@ function MapComponent({
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
export { MapComponent };
|
|
47
|
-
//# sourceMappingURL=chunk-
|
|
48
|
-
//# sourceMappingURL=chunk-
|
|
47
|
+
//# sourceMappingURL=chunk-XTEZM6SY.js.map
|
|
48
|
+
//# sourceMappingURL=chunk-XTEZM6SY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/Map/MapComponent.tsx"],"names":[],"mappings":";;;;;;;AAUO,SAAS,YAA0B,CAAA;AAAA,EACxC,MAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,IAAO,GAAA;AACT,CAAmC,EAAA;AACjC,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAU,EAAA,GAAI,aAAa,WAAW,CAAA;AACtD,EAAA,MAAM,EAAE,SAAW,EAAA,YAAA,EAAiB,GAAA,YAAA,CAAa,QAAQ,YAAY,CAAA;AACrE,EAAA,MAAM,EAAE,QAAU,EAAA,YAAA,KAAiB,WAAY,CAAA,WAAA,EAAa,QAAQ,SAAS,CAAA;AAE7E,EAAM,MAAA,SAAA,GAAY,WACd,QACA,GAAA,WAAA,IAAe,YAAY,MAAS,GAAA,CAAA,GAClC,uBAAwB,CAAA,WAAW,CACnC,GAAA,gBAAA;AAEN,EAAM,MAAA,OAAA,GAAU,QACZ,GAAA,IAAA,GACA,WAAe,IAAA,WAAA,CAAY,SAAS,CAClC,GAAA,qBAAA,CAAsB,WAAa,EAAA,IAAI,CACvC,GAAA,YAAA;AAEN,EACE,uBAAA,GAAA,CAAC,eAAY,MACX,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA;AAAA,MACA,QAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA;AAAA,MACA,WAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA;AAAA,MACA;AAAA;AAAA,GAEJ,EAAA,CAAA;AAEJ","file":"chunk-XTEZM6SY.js","sourcesContent":["'use client'\n\nimport { APIProvider } from '@vis.gl/react-google-maps'\n\nimport { DEFAULT_POSITION, DEFAULT_ZOOM } from '@/components/ui/Map/constants'\nimport { useClusters, useMapBounds, useZoomLevel } from '@/components/ui/Map/hooks'\nimport { MapContent } from '@/components/ui/Map/MapContent'\nimport type { MapComponentProps, PinData } from '@/components/ui/Map/types'\nimport { getCenterForCoordinates, getZoomForCoordinates } from '@/components/ui/Map/utils'\n\nexport function MapComponent<T = PinData>({\n apiKey,\n mapId,\n position,\n coordinates,\n onPinHover,\n onPinClick,\n focusPoint,\n radiusMiles,\n className,\n zoom = 10,\n}: Readonly<MapComponentProps<T>>) {\n const { bounds, setBounds } = useMapBounds(coordinates)\n const { zoomLevel, setZoomLevel } = useZoomLevel(zoom || DEFAULT_ZOOM)\n const { clusters, supercluster } = useClusters(coordinates, bounds, zoomLevel)\n\n const mapCenter = position\n ? position\n : coordinates && coordinates.length > 0\n ? getCenterForCoordinates(coordinates)\n : DEFAULT_POSITION\n\n const mapZoom = position\n ? zoom\n : coordinates && coordinates.length > 1\n ? getZoomForCoordinates(coordinates, zoom)\n : DEFAULT_ZOOM\n\n return (\n <APIProvider apiKey={apiKey}>\n <MapContent\n mapId={mapId}\n mapCenter={mapCenter}\n mapZoom={mapZoom}\n position={position}\n coordinates={coordinates}\n clusters={clusters}\n supercluster={supercluster}\n onPinHover={onPinHover}\n onPinClick={onPinClick}\n focusPoint={focusPoint}\n radiusMiles={radiusMiles}\n className={className}\n setBounds={setBounds}\n setZoomLevel={setZoomLevel}\n />\n </APIProvider>\n )\n}\n"]}
|
|
@@ -47,6 +47,8 @@ var Select = forwardRef(
|
|
|
47
47
|
const chipLabels = selected?.map((s) => options?.find(({ value: value2 }) => value2 === s)).filter(Boolean);
|
|
48
48
|
function handleChange(newValue) {
|
|
49
49
|
if (newValue === "" && !multiselect) return;
|
|
50
|
+
const option = options?.find((opt) => opt.value === newValue);
|
|
51
|
+
if (option?.disabled) return;
|
|
50
52
|
let newSelected = [];
|
|
51
53
|
setSelected((prev) => {
|
|
52
54
|
newSelected = prev.includes(newValue) ? prev.filter((item) => item !== newValue) : [...prev, newValue];
|
|
@@ -157,7 +159,7 @@ var Select = forwardRef(
|
|
|
157
159
|
),
|
|
158
160
|
"data-state": selected.includes(value2) ? "checked" : "unchecked",
|
|
159
161
|
onKeyDown: (e) => setValueOnEnter(e, value2),
|
|
160
|
-
onClick: () => handleChange(value2),
|
|
162
|
+
onClick: () => !disabled && handleChange(value2),
|
|
161
163
|
children: [
|
|
162
164
|
/* @__PURE__ */ jsx(
|
|
163
165
|
CheckIcon,
|
|
@@ -218,5 +220,5 @@ var triggerVariants = cva(
|
|
|
218
220
|
var Select_default = Select;
|
|
219
221
|
|
|
220
222
|
export { Select_default };
|
|
221
|
-
//# sourceMappingURL=chunk-
|
|
222
|
-
//# sourceMappingURL=chunk-
|
|
223
|
+
//# sourceMappingURL=chunk-YJICO3OG.js.map
|
|
224
|
+
//# sourceMappingURL=chunk-YJICO3OG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/Select.tsx"],"names":["value","id","description"],"mappings":"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","file":"chunk-YJICO3OG.js","sourcesContent":["'use client'\n\nimport * as SelectPrimitive from '@radix-ui/react-select'\nimport { cva, type VariantProps } from 'cva'\nimport { CheckIcon, ChevronDownIcon, X } from 'lucide-react'\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type KeyboardEvent,\n useEffect,\n useRef,\n useState,\n} from 'react'\n\nimport { Separator } from '@/components/primitives/separator'\nimport Chip from '@/components/ui/Chip'\nimport ErrorMessage from '@/components/ui/ErrorMessage'\nimport Label from '@/components/ui/Label'\nimport { cn } from '@/lib/utils'\n\ntype SelectContentProps = React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\ntype RadixAlignType = SelectContentProps['align']\n\ntype TriggerVariants = VariantProps<typeof triggerVariants>\n\ninterface Props\n extends Omit<ComponentPropsWithoutRef<'select'>, 'value' | 'onChange' | 'size'>,\n TriggerVariants {\n label?: string\n value?: string | string[]\n options?: {\n id: string | number\n value: string\n title: string\n description?: string\n disabled?: boolean\n }[]\n placeholder?: string\n multiselect?: boolean\n description?: string\n error?: string\n classNames?: {\n label?: string\n trigger?: string\n content?: string\n item?: string\n checkmark?: string\n }\n dropdownAlign?: RadixAlignType\n useAnchor?: boolean\n onChange?: (value: string | string[]) => void\n onOpenChange?: (open: boolean) => void\n}\n\nconst Select = forwardRef<HTMLButtonElement, Props>(\n (\n {\n label,\n options,\n placeholder,\n multiselect,\n description,\n classNames,\n dropdownAlign = 'start',\n error,\n id,\n children: footer,\n useAnchor = true,\n size,\n ...props\n },\n ref\n ) => {\n const { value, defaultValue, dir, className, onChange, onOpenChange, ...rest } = props\n const [selected, setSelected] = useState<string[]>([])\n const [open, setOpen] = useState(false)\n const containerRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n if (!value) return setSelected([])\n setSelected(Array.isArray(value) ? value : [value])\n }, [value])\n\n const toggleOpen = () => setOpen((prev) => !prev)\n const closeOnEscape = (event: KeyboardEvent) => event.key === 'Escape' && setOpen(false)\n const handleOnOpenChange = (isOpen: boolean) => {\n const shouldUpdate = !multiselect || isOpen\n if (shouldUpdate) {\n setOpen(isOpen)\n onOpenChange?.(isOpen)\n }\n }\n const setValueOnEnter = (event: KeyboardEvent, value: string) =>\n event.key === 'Enter' && handleChange(value)\n const getLabel = () =>\n selected.map((o) => options?.find((option) => option.value === o)?.title).join(', ')\n\n const chipLabels = selected\n ?.map((s) => options?.find(({ value }) => value === s))\n .filter(Boolean)\n\n function handleChange(newValue: string) {\n if (newValue === '' && !multiselect) return // Prevent clearing single select\n // Check if the option is disabled\n const option = options?.find((opt) => opt.value === newValue)\n if (option?.disabled) return // Prevent selecting disabled options\n let newSelected: string[] = []\n setSelected((prev) => {\n newSelected = prev.includes(newValue)\n ? prev.filter((item) => item !== newValue)\n : [...prev, newValue]\n return multiselect ? newSelected : [newValue]\n })\n onChange?.(multiselect ? newSelected : newValue)\n }\n\n return (\n <div\n className={cn('flex w-full flex-col gap-1', className)}\n ref={containerRef}\n data-testid={`${(label ?? id)?.toLowerCase()}-select-element`}\n >\n <Label\n text={label}\n htmlFor={props.name}\n required={props.required}\n description={description}\n className={classNames?.label}\n />\n\n <SelectPrimitive.Root\n open={open}\n value={selected.join(',')}\n onOpenChange={handleOnOpenChange}\n onValueChange={multiselect ? undefined : handleChange}\n defaultValue={typeof defaultValue === 'string' ? defaultValue : undefined}\n dir={dir === 'rtl' ? 'rtl' : 'ltr'}\n {...rest}\n >\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(triggerVariants({ size }), classNames?.trigger)}\n >\n <span className=\"truncate\">\n <SelectPrimitive.Value\n placeholder={placeholder ?? 'Select an option'}\n aria-label={getLabel()}\n >\n {getLabel()}\n </SelectPrimitive.Value>\n </span>\n\n <ChevronDownIcon\n className=\"transform text-black group-data-[state=open]:rotate-180\"\n size=\"16\"\n />\n </SelectPrimitive.Trigger>\n\n <SelectPrimitive.Portal container={useAnchor ? containerRef.current : undefined}>\n <SelectPrimitive.Content\n hideWhenDetached\n className={cn(\n 'z-10 max-h-[var(--radix-select-content-available-height)] overflow-hidden rounded-md bg-white py-2 shadow-lg',\n 'w-[var(--radix-select-trigger-width)] min-w-[var(--radix-select-trigger-width)]',\n classNames?.content\n )}\n position=\"popper\"\n align={dropdownAlign}\n sideOffset={4}\n onPointerDownOutside={toggleOpen}\n onKeyDown={closeOnEscape}\n >\n <SelectPrimitive.Viewport>\n {multiselect && !!chipLabels?.length && (\n <>\n <SelectPrimitive.Group\n className=\"mb-2 flex flex-row flex-wrap gap-1 px-2\"\n data-testid=\"selected-labels\"\n >\n {chipLabels?.map(\n (chip) =>\n chip && (\n <Chip key={chip.title} size=\"small\" variant=\"primary\">\n <span>{chip.title}</span>\n <X\n size={18}\n data-testid={`chip-remove-${chip.value}`}\n className=\"cursor-pointer\"\n onClick={() => handleChange(chip.value)}\n />\n </Chip>\n )\n )}\n </SelectPrimitive.Group>\n <Separator />\n </>\n )}\n {options?.map(({ id, title, value, description, disabled }) => (\n <SelectPrimitive.Item\n key={id}\n value={value}\n disabled={disabled}\n className={cn(\n 'group relative cursor-pointer px-4 py-2 text-left text-sm hover:bg-purple-50 focus:bg-purple-50 focus:outline-none data-[state=checked]:bg-purple-50 data-[state=checked]:pr-10 data-[state=checked]:text-purple-100',\n disabled &&\n 'cursor-not-allowed opacity-50 hover:bg-transparent data-[state=checked]:bg-transparent',\n classNames?.item\n )}\n data-state={selected.includes(value) ? 'checked' : 'unchecked'}\n onKeyDown={(e) => setValueOnEnter(e, value)}\n onClick={() => !disabled && handleChange(value)}\n >\n <CheckIcon\n className={cn(\n 'absolute inset-y-0 right-3 my-auto hidden w-6 text-purple-100 group-data-[state=checked]:block',\n classNames?.checkmark\n )}\n size={16}\n />\n <SelectPrimitive.ItemText>{title}</SelectPrimitive.ItemText>\n {description && (\n <span className=\"block text-sm text-grey-70\">{description}</span>\n )}\n </SelectPrimitive.Item>\n ))}\n\n {!!footer && (\n <>\n <Separator />\n <SelectPrimitive.Group\n className=\"mt-2 flex flex-row flex-wrap gap-1 px-2\"\n data-testid=\"selected-labels\"\n >\n {footer}\n </SelectPrimitive.Group>\n </>\n )}\n </SelectPrimitive.Viewport>\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n </SelectPrimitive.Root>\n\n <ErrorMessage message={error} />\n </div>\n )\n }\n)\n\nSelect.displayName = 'Select'\n\nconst triggerVariants = cva(\n 'group flex w-full flex-row items-center justify-between gap-3 rounded-lg border border-grey-20 font-normal text-grey-80 focus:outline-purple-100 disabled:bg-grey-5 data-[placeholder]:text-grey-50 data-[placeholder]:disabled:text-grey-40',\n {\n variants: {\n size: {\n small: 'h-8 px-3 py-1 text-xs',\n normal: 'h-9 px-3 py-2 text-sm',\n large: 'h-10 px-4 py-2 text-base',\n xlarge: 'h-11 px-4 py-3 text-base',\n },\n },\n defaultVariants: {\n size: 'normal',\n },\n }\n)\n\nexport default Select\n"]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { convertCoordinatesToGeoJSON } from './chunk-EAFZZSYR.js';
|
|
2
|
+
import { CLUSTERING_CONFIG } from './chunk-LQQ244AY.js';
|
|
3
|
+
import { useState, useMemo } from 'react';
|
|
4
|
+
import useSupercluster from 'use-supercluster';
|
|
5
|
+
|
|
6
|
+
function useMapBounds(_coordinates) {
|
|
7
|
+
const [bounds, setBounds] = useState([
|
|
8
|
+
[-180, -85],
|
|
9
|
+
[180, 85]
|
|
10
|
+
]);
|
|
11
|
+
return { bounds, setBounds };
|
|
12
|
+
}
|
|
13
|
+
function useZoomLevel(initialZoom) {
|
|
14
|
+
const [zoomLevel, setZoomLevel] = useState(initialZoom);
|
|
15
|
+
return { zoomLevel, setZoomLevel };
|
|
16
|
+
}
|
|
17
|
+
function useClusters(coordinates, bounds, zoomLevel) {
|
|
18
|
+
const points = useMemo(() => {
|
|
19
|
+
if (!coordinates) return [];
|
|
20
|
+
return convertCoordinatesToGeoJSON(coordinates);
|
|
21
|
+
}, [coordinates]);
|
|
22
|
+
const superclusterBounds = useMemo(() => {
|
|
23
|
+
const isInitialBounds = bounds && bounds[0][0] === -180 && bounds[0][1] === -85 && bounds[1][0] === 180 && bounds[1][1] === 85;
|
|
24
|
+
if (!bounds || isInitialBounds) {
|
|
25
|
+
return [-180, -85, 180, 85];
|
|
26
|
+
}
|
|
27
|
+
const [[south, west], [north, east]] = bounds;
|
|
28
|
+
if (!isFinite(south) || !isFinite(west) || !isFinite(north) || !isFinite(east) || south >= north || west >= east) {
|
|
29
|
+
return [-180, -85, 180, 85];
|
|
30
|
+
}
|
|
31
|
+
const latRange = north - south;
|
|
32
|
+
const lngRange = east - west;
|
|
33
|
+
const latBuffer = latRange * 0.1;
|
|
34
|
+
const lngBuffer = lngRange * 0.1;
|
|
35
|
+
const bufferedSouth = Math.max(-85, south - latBuffer);
|
|
36
|
+
const bufferedWest = Math.max(-180, west - lngBuffer);
|
|
37
|
+
const bufferedNorth = Math.min(85, north + latBuffer);
|
|
38
|
+
const bufferedEast = Math.min(180, east + lngBuffer);
|
|
39
|
+
return [bufferedWest, bufferedSouth, bufferedEast, bufferedNorth];
|
|
40
|
+
}, [bounds]);
|
|
41
|
+
const { clusters, supercluster } = useSupercluster({
|
|
42
|
+
points,
|
|
43
|
+
bounds: superclusterBounds,
|
|
44
|
+
zoom: zoomLevel || 10,
|
|
45
|
+
options: CLUSTERING_CONFIG
|
|
46
|
+
});
|
|
47
|
+
return { clusters, supercluster };
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export { useClusters, useMapBounds, useZoomLevel };
|
|
51
|
+
//# sourceMappingURL=chunk-Z77KENZ6.js.map
|
|
52
|
+
//# sourceMappingURL=chunk-Z77KENZ6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/Map/hooks.ts"],"names":[],"mappings":";;;;;AAOO,SAAS,aAA0B,YAAgC,EAAA;AACxE,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,QAA+C,CAAA;AAAA,IACzE,CAAC,MAAM,GAAG,CAAA;AAAA,IACV,CAAC,KAAK,EAAE;AAAA,GACT,CAAA;AAID,EAAO,OAAA,EAAE,QAAQ,SAAU,EAAA;AAC7B;AAEO,SAAS,aAAa,WAAqB,EAAA;AAChD,EAAA,MAAM,CAAC,SAAA,EAAW,YAAY,CAAA,GAAI,SAAS,WAAW,CAAA;AACtD,EAAO,OAAA,EAAE,WAAW,YAAa,EAAA;AACnC;AAEO,SAAS,WAAA,CACd,WACA,EAAA,MAAA,EACA,SACA,EAAA;AACA,EAAM,MAAA,MAAA,GAAS,QAAQ,MAAM;AAC3B,IAAI,IAAA,CAAC,WAAa,EAAA,OAAO,EAAC;AAC1B,IAAA,OAAO,4BAA+B,WAAW,CAAA;AAAA,GACnD,EAAG,CAAC,WAAW,CAAC,CAAA;AAGhB,EAAM,MAAA,kBAAA,GAAqB,QAAQ,MAAM;AAEvC,IAAM,MAAA,eAAA,GACJ,MACA,IAAA,MAAA,CAAO,CAAC,CAAA,CAAE,CAAC,CAAM,KAAA,IAAA,IACjB,MAAO,CAAA,CAAC,CAAE,CAAA,CAAC,MAAM,GACjB,IAAA,MAAA,CAAO,CAAC,CAAA,CAAE,CAAC,CAAA,KAAM,OACjB,MAAO,CAAA,CAAC,CAAE,CAAA,CAAC,CAAM,KAAA,EAAA;AAGnB,IAAI,IAAA,CAAC,UAAU,eAAiB,EAAA;AAC9B,MAAA,OAAO,CAAC,IAAA,EAAM,GAAK,EAAA,GAAA,EAAK,EAAE,CAAA;AAAA;AAI5B,IAAM,MAAA,CAAC,CAAC,KAAO,EAAA,IAAI,GAAG,CAAC,KAAA,EAAO,IAAI,CAAC,CAAI,GAAA,MAAA;AAGvC,IAAA,IACE,CAAC,QAAS,CAAA,KAAK,KACf,CAAC,QAAA,CAAS,IAAI,CACd,IAAA,CAAC,SAAS,KAAK,CAAA,IACf,CAAC,QAAS,CAAA,IAAI,KACd,KAAS,IAAA,KAAA,IACT,QAAQ,IACR,EAAA;AACA,MAAA,OAAO,CAAC,IAAA,EAAM,GAAK,EAAA,GAAA,EAAK,EAAE,CAAA;AAAA;AAI5B,IAAA,MAAM,WAAW,KAAQ,GAAA,KAAA;AACzB,IAAA,MAAM,WAAW,IAAO,GAAA,IAAA;AACxB,IAAA,MAAM,YAAY,QAAW,GAAA,GAAA;AAC7B,IAAA,MAAM,YAAY,QAAW,GAAA,GAAA;AAG7B,IAAA,MAAM,aAAgB,GAAA,IAAA,CAAK,GAAI,CAAA,GAAA,EAAK,QAAQ,SAAS,CAAA;AACrD,IAAA,MAAM,YAAe,GAAA,IAAA,CAAK,GAAI,CAAA,IAAA,EAAM,OAAO,SAAS,CAAA;AACpD,IAAA,MAAM,aAAgB,GAAA,IAAA,CAAK,GAAI,CAAA,EAAA,EAAI,QAAQ,SAAS,CAAA;AACpD,IAAA,MAAM,YAAe,GAAA,IAAA,CAAK,GAAI,CAAA,GAAA,EAAK,OAAO,SAAS,CAAA;AAGnD,IAAA,OAAO,CAAC,YAAA,EAAc,aAAe,EAAA,YAAA,EAAc,aAAa,CAAA;AAAA,GAClE,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,MAAM,EAAE,QAAA,EAAU,YAAa,EAAA,GAAI,eAAgB,CAAA;AAAA,IACjD,MAAA;AAAA,IACA,MAAQ,EAAA,kBAAA;AAAA,IACR,MAAM,SAAa,IAAA,EAAA;AAAA,IACnB,OAAS,EAAA;AAAA,GACV,CAAA;AAED,EAAO,OAAA,EAAE,UAAU,YAAa,EAAA;AAClC","file":"chunk-Z77KENZ6.js","sourcesContent":["import { useMemo, useState } from 'react'\nimport useSupercluster from 'use-supercluster'\n\nimport { convertCoordinatesToGeoJSON } from '@/components/ui/Map/clustering'\nimport { CLUSTERING_CONFIG } from '@/components/ui/Map/constants'\nimport type { Coordinate, PinData } from '@/components/ui/Map/types'\n\nexport function useMapBounds<T = PinData>(_coordinates?: Coordinate<T>[]) {\n const [bounds, setBounds] = useState<[[number, number], [number, number]]>([\n [-180, -85],\n [180, 85],\n ])\n\n // Use global bounds for stability - let the map handle the actual bounds\n // This prevents constant recalculation that causes clustering instability\n return { bounds, setBounds }\n}\n\nexport function useZoomLevel(initialZoom: number) {\n const [zoomLevel, setZoomLevel] = useState(initialZoom)\n return { zoomLevel, setZoomLevel }\n}\n\nexport function useClusters<T = PinData>(\n coordinates?: Coordinate<T>[],\n bounds?: [[number, number], [number, number]],\n zoomLevel?: number\n) {\n const points = useMemo(() => {\n if (!coordinates) return []\n return convertCoordinatesToGeoJSON<T>(coordinates)\n }, [coordinates])\n\n // Convert bounds format and add buffer for smoother panning\n const superclusterBounds = useMemo(() => {\n // Check if bounds are still in initial global state\n const isInitialBounds =\n bounds &&\n bounds[0][0] === -180 &&\n bounds[0][1] === -85 &&\n bounds[1][0] === 180 &&\n bounds[1][1] === 85\n\n // If bounds are not set or still initial, use global bounds\n if (!bounds || isInitialBounds) {\n return [-180, -85, 180, 85]\n }\n\n // Extract bounds: [[south, west], [north, east]]\n const [[south, west], [north, east]] = bounds\n\n // Validate bounds\n if (\n !isFinite(south) ||\n !isFinite(west) ||\n !isFinite(north) ||\n !isFinite(east) ||\n south >= north ||\n west >= east\n ) {\n return [-180, -85, 180, 85]\n }\n\n // Calculate buffer (10% of the range in each direction)\n const latRange = north - south\n const lngRange = east - west\n const latBuffer = latRange * 0.1\n const lngBuffer = lngRange * 0.1\n\n // Apply buffer and clamp to valid geographic bounds\n const bufferedSouth = Math.max(-85, south - latBuffer)\n const bufferedWest = Math.max(-180, west - lngBuffer)\n const bufferedNorth = Math.min(85, north + latBuffer)\n const bufferedEast = Math.min(180, east + lngBuffer)\n\n // Convert to useSupercluster format: [west, south, east, north]\n return [bufferedWest, bufferedSouth, bufferedEast, bufferedNorth]\n }, [bounds])\n\n const { clusters, supercluster } = useSupercluster({\n points,\n bounds: superclusterBounds,\n zoom: zoomLevel || 10,\n options: CLUSTERING_CONFIG,\n })\n\n return { clusters, supercluster }\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var chunkXUTLQ573_cjs = require('./chunk-XUTLQ573.cjs');
|
|
4
3
|
var chunkJZVRCP3M_cjs = require('./chunk-JZVRCP3M.cjs');
|
|
4
|
+
var chunkXUTLQ573_cjs = require('./chunk-XUTLQ573.cjs');
|
|
5
5
|
|
|
6
6
|
// src/services/displayText.tsx
|
|
7
7
|
var DisplayTextService = class {
|
|
@@ -33,5 +33,5 @@ var DisplayTextService = class {
|
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
exports.DisplayTextService = DisplayTextService;
|
|
36
|
-
//# sourceMappingURL=chunk-
|
|
37
|
-
//# sourceMappingURL=chunk-
|
|
36
|
+
//# sourceMappingURL=chunk-ZZCTMR2F.cjs.map
|
|
37
|
+
//# sourceMappingURL=chunk-ZZCTMR2F.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/services/displayText.tsx"],"names":["defaultMappings","DisplayTextScopeNotFoundError","displayTexts","DisplayTextValueNotFoundError"],"mappings":";;;;;;AAiCO,IAAM,qBAAN,MAAwD;AAAA,EAI7D,YAAY,cAA2C,EAAA;AAHvD,IAAA,IAAA,CAAiB,eAAqC,GAAA,IAAA;AAIpD,IAAA,IAAA,CAAK,QAAW,GAAA;AAAA,MACd,GAAGA,iCAAA;AAAA;AAAA,MACH,GAAG;AAAA;AAAA,KACL;AAAA;AACF,EAEA,MAAM,cACJ,CAAA,KAAA,EACA,KACA,EAAA,QAAA,GAA8B,KAAK,eAClB,EAAA;AACjB,IAAM,MAAA,YAAA,GAAe,IAAK,CAAA,QAAA,CAAS,KAAK,CAAA;AAExC,IAAA,IAAI,CAAC,YAAc,EAAA;AACjB,MAAM,MAAA,IAAIC,gDAA8B,KAAK,CAAA;AAAA;AAG/C,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,KAAK,CAAG,EAAA;AACxB,MAAM,MAAA,mBAAA,GAAsB,KAAM,CAAA,GAAA,CAAI,CAAC,CAAA,KAAM,KAAK,cAAe,CAAA,KAAA,EAAO,CAAG,EAAA,QAAQ,CAAC,CAAA;AACpF,MAAA,MAAMC,aAAe,GAAA,MAAM,OAAQ,CAAA,GAAA,CAAI,mBAAmB,CAAA;AAC1D,MAAOA,OAAAA,aAAAA,CAAa,OAAO,CAAC,CAAA,KAAM,CAAC,CAAC,CAAC,CAAE,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA;AAGlD,IAAM,MAAA,YAAA,GAAe,aAAa,KAAK,CAAA;AAEvC,IAAA,IAAI,CAAC,YAAc,EAAA;AACjB,MAAM,MAAA,IAAIC,+CAA8B,CAAA,KAAA,EAAO,KAAK,CAAA;AAAA;AAGtD,IAAA,OAAO,aAAa,QAAQ,CAAA,IAAK,YAAa,CAAA,IAAA,CAAK,eAAe,CAAK,IAAA,KAAA;AAAA;AAE3E","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/services/displayText.tsx"],"names":["defaultMappings","DisplayTextScopeNotFoundError","displayTexts","DisplayTextValueNotFoundError"],"mappings":";;;;;;AAiCO,IAAM,qBAAN,MAAwD;AAAA,EAI7D,YAAY,cAA2C,EAAA;AAHvD,IAAA,IAAA,CAAiB,eAAqC,GAAA,IAAA;AAIpD,IAAA,IAAA,CAAK,QAAW,GAAA;AAAA,MACd,GAAGA,iCAAA;AAAA;AAAA,MACH,GAAG;AAAA;AAAA,KACL;AAAA;AACF,EAEA,MAAM,cACJ,CAAA,KAAA,EACA,KACA,EAAA,QAAA,GAA8B,KAAK,eAClB,EAAA;AACjB,IAAM,MAAA,YAAA,GAAe,IAAK,CAAA,QAAA,CAAS,KAAK,CAAA;AAExC,IAAA,IAAI,CAAC,YAAc,EAAA;AACjB,MAAM,MAAA,IAAIC,gDAA8B,KAAK,CAAA;AAAA;AAG/C,IAAI,IAAA,KAAA,CAAM,OAAQ,CAAA,KAAK,CAAG,EAAA;AACxB,MAAM,MAAA,mBAAA,GAAsB,KAAM,CAAA,GAAA,CAAI,CAAC,CAAA,KAAM,KAAK,cAAe,CAAA,KAAA,EAAO,CAAG,EAAA,QAAQ,CAAC,CAAA;AACpF,MAAA,MAAMC,aAAe,GAAA,MAAM,OAAQ,CAAA,GAAA,CAAI,mBAAmB,CAAA;AAC1D,MAAOA,OAAAA,aAAAA,CAAa,OAAO,CAAC,CAAA,KAAM,CAAC,CAAC,CAAC,CAAE,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA;AAGlD,IAAM,MAAA,YAAA,GAAe,aAAa,KAAK,CAAA;AAEvC,IAAA,IAAI,CAAC,YAAc,EAAA;AACjB,MAAM,MAAA,IAAIC,+CAA8B,CAAA,KAAA,EAAO,KAAK,CAAA;AAAA;AAGtD,IAAA,OAAO,aAAa,QAAQ,CAAA,IAAK,YAAa,CAAA,IAAA,CAAK,eAAe,CAAK,IAAA,KAAA;AAAA;AAE3E","file":"chunk-ZZCTMR2F.cjs","sourcesContent":["import { type z } from 'zod'\n\nimport { defaultMappings } from '@/lib/mappings'\nimport {\n DisplayTextScopeNotFoundError,\n DisplayTextValueNotFoundError,\n} from '@/types/displayText.errors'\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst SUPPORTED_LANGUAGES = ['en'] as const\ntype SupportedLanguage = (typeof SUPPORTED_LANGUAGES)[number]\n\n// Define the display text configuration type for Zod enums\nexport type ServiceMappings = typeof defaultMappings\n\ntype ZodEnumValue<T> = T extends z.ZodEnum<[string, ...string[]]> ? z.infer<T> : never\n\nexport type DisplayTextConfig<T = string> = {\n [K in T extends z.ZodEnum<[string, ...string[]]> ? ZodEnumValue<T> : string]: {\n [L in SupportedLanguage]: string\n }\n} & Record<string, { [L in SupportedLanguage]: string }>\n\n// Define the expected interface for the service\nexport interface IDisplayTextService {\n getDisplayText: (\n scope: keyof ServiceMappings,\n value: string | string[],\n language?: SupportedLanguage\n ) => Promise<string>\n}\n\n// define the service\nexport class DisplayTextService implements IDisplayTextService {\n private readonly defaultLanguage: SupportedLanguage = 'en'\n private readonly mappings: ServiceMappings\n\n constructor(customMappings?: Partial<ServiceMappings>) {\n this.mappings = {\n ...defaultMappings, // Use all pre-defined mappings as defaults\n ...customMappings, // Override with any custom mappings if provided\n }\n }\n\n async getDisplayText(\n scope: keyof ServiceMappings,\n value: string | string[],\n language: SupportedLanguage = this.defaultLanguage\n ): Promise<string> {\n const scopeMapping = this.mappings[scope]\n\n if (!scopeMapping) {\n throw new DisplayTextScopeNotFoundError(scope)\n }\n\n if (Array.isArray(value)) {\n const displayTextPromises = value.map((v) => this.getDisplayText(scope, v, language))\n const displayTexts = await Promise.all(displayTextPromises)\n return displayTexts.filter((v) => !!v).join(', ')\n }\n\n const displayTexts = scopeMapping[value]\n\n if (!displayTexts) {\n throw new DisplayTextValueNotFoundError(value, scope)\n }\n\n return displayTexts[language] || displayTexts[this.defaultLanguage] || value\n }\n}\n"]}
|