@next-degree/pickle-shared-js 0.5.31 → 0.6.43
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/company_service_latest-Dwf4Fkjr.d.cts +2641 -0
- package/dist/company_service_latest-Dwf4Fkjr.d.ts +2641 -0
- package/dist/components/buttons/BackButton.cjs +161 -0
- package/dist/components/buttons/BackButton.cjs.map +1 -0
- package/dist/components/buttons/BackButton.d.cts +9 -0
- package/dist/components/buttons/BackButton.d.ts +9 -0
- package/dist/components/buttons/BackButton.js +137 -0
- package/dist/components/buttons/BackButton.js.map +1 -0
- package/dist/components/company/CompanyBenefits.cjs +38 -0
- package/dist/components/company/CompanyBenefits.cjs.map +1 -0
- package/dist/components/company/CompanyBenefits.d.cts +8 -0
- package/dist/components/company/CompanyBenefits.d.ts +8 -0
- package/dist/components/company/CompanyBenefits.js +13 -0
- package/dist/components/company/CompanyBenefits.js.map +1 -0
- package/dist/components/company/CompanyInformation.cjs +112 -0
- package/dist/components/company/CompanyInformation.cjs.map +1 -0
- package/dist/components/company/CompanyInformation.d.cts +12 -0
- package/dist/components/company/CompanyInformation.d.ts +12 -0
- package/dist/components/company/CompanyInformation.js +75 -0
- package/dist/components/company/CompanyInformation.js.map +1 -0
- package/dist/components/company/CompanyTake.cjs +140 -0
- package/dist/components/company/CompanyTake.cjs.map +1 -0
- package/dist/components/company/CompanyTake.d.cts +9 -0
- package/dist/components/company/CompanyTake.d.ts +9 -0
- package/dist/components/company/CompanyTake.js +104 -0
- package/dist/components/company/CompanyTake.js.map +1 -0
- package/dist/components/jobPost/JobDescription.cjs +205 -0
- package/dist/components/jobPost/JobDescription.cjs.map +1 -0
- package/dist/components/jobPost/JobDescription.d.cts +8 -0
- package/dist/components/jobPost/JobDescription.d.ts +8 -0
- package/dist/components/jobPost/JobDescription.js +168 -0
- package/dist/components/jobPost/JobDescription.js.map +1 -0
- package/dist/components/jobPost/JobHeader.cjs +436 -0
- package/dist/components/jobPost/JobHeader.cjs.map +1 -0
- package/dist/components/jobPost/JobHeader.d.cts +26 -0
- package/dist/components/jobPost/JobHeader.d.ts +26 -0
- package/dist/components/jobPost/JobHeader.js +423 -0
- package/dist/components/jobPost/JobHeader.js.map +1 -0
- package/dist/components/jobPost/JobPost.cjs +1349 -0
- package/dist/components/jobPost/JobPost.cjs.map +1 -0
- package/dist/components/jobPost/JobPost.d.cts +16 -0
- package/dist/components/jobPost/JobPost.d.ts +16 -0
- package/dist/components/jobPost/JobPost.js +1336 -0
- package/dist/components/jobPost/JobPost.js.map +1 -0
- package/dist/components/primitives/avatar.cjs +88 -0
- package/dist/components/primitives/avatar.cjs.map +1 -0
- package/dist/components/primitives/avatar.d.cts +13 -0
- package/dist/components/primitives/avatar.d.ts +13 -0
- package/dist/components/primitives/avatar.js +52 -0
- package/dist/components/primitives/avatar.js.map +1 -0
- package/dist/components/primitives/command.d.cts +3 -3
- package/dist/components/primitives/command.d.ts +3 -3
- package/dist/components/ui/Avatar.cjs +117 -0
- package/dist/components/ui/Avatar.cjs.map +1 -0
- package/dist/components/ui/Avatar.d.cts +16 -0
- package/dist/components/ui/Avatar.d.ts +16 -0
- package/dist/components/ui/Avatar.js +79 -0
- package/dist/components/ui/Avatar.js.map +1 -0
- package/dist/components/ui/Icon.cjs +114 -0
- package/dist/components/ui/Icon.cjs.map +1 -0
- package/dist/components/ui/Icon.d.cts +15 -0
- package/dist/components/ui/Icon.d.ts +15 -0
- package/dist/components/ui/Icon.js +89 -0
- package/dist/components/ui/Icon.js.map +1 -0
- package/dist/{app/layout.cjs → components/ui/LinkButton.cjs} +25 -35
- package/dist/components/ui/LinkButton.cjs.map +1 -0
- package/dist/components/ui/LinkButton.d.cts +29 -0
- package/dist/components/ui/LinkButton.d.ts +29 -0
- package/dist/components/ui/LinkButton.js +26 -0
- package/dist/components/ui/LinkButton.js.map +1 -0
- package/dist/components/ui/ReadMore.cjs +194 -0
- package/dist/components/ui/ReadMore.cjs.map +1 -0
- package/dist/components/ui/ReadMore.d.cts +9 -0
- package/dist/components/ui/ReadMore.d.ts +9 -0
- package/dist/components/ui/ReadMore.js +160 -0
- package/dist/components/ui/ReadMore.js.map +1 -0
- package/dist/contexts/WindowHistoryProvider.cjs +48 -0
- package/dist/contexts/WindowHistoryProvider.cjs.map +1 -0
- package/dist/contexts/WindowHistoryProvider.d.cts +11 -0
- package/dist/contexts/WindowHistoryProvider.d.ts +11 -0
- package/dist/contexts/WindowHistoryProvider.js +23 -0
- package/dist/contexts/WindowHistoryProvider.js.map +1 -0
- package/dist/displayText-C1qKqRYc.d.cts +48 -0
- package/dist/displayText-D-OzRlJf.d.ts +48 -0
- package/dist/hooks/useDisplayText.cjs +502 -0
- package/dist/hooks/useDisplayText.cjs.map +1 -0
- package/dist/hooks/useDisplayText.d.cts +8 -0
- package/dist/hooks/useDisplayText.d.ts +8 -0
- package/dist/hooks/useDisplayText.js +477 -0
- package/dist/hooks/useDisplayText.js.map +1 -0
- package/dist/hooks/useWindowHistory.cjs +46 -0
- package/dist/hooks/useWindowHistory.cjs.map +1 -0
- package/dist/hooks/useWindowHistory.d.cts +7 -0
- package/dist/hooks/useWindowHistory.d.ts +7 -0
- package/dist/hooks/useWindowHistory.js +21 -0
- package/dist/hooks/useWindowHistory.js.map +1 -0
- package/dist/index.cjs +1434 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +21 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.js +1443 -1
- package/dist/index.js.map +1 -1
- package/dist/job_posting_service_latest-D0AsiA4a.d.cts +2789 -0
- package/dist/job_posting_service_latest-D0AsiA4a.d.ts +2789 -0
- package/dist/lib/icons.cjs +53 -0
- package/dist/lib/icons.cjs.map +1 -0
- package/dist/lib/icons.d.cts +27 -0
- package/dist/lib/icons.d.ts +27 -0
- package/dist/lib/icons.js +49 -0
- package/dist/lib/icons.js.map +1 -0
- package/dist/lib/locations.cjs +45 -0
- package/dist/lib/locations.cjs.map +1 -0
- package/dist/lib/locations.d.cts +8 -0
- package/dist/lib/locations.d.ts +8 -0
- package/dist/lib/locations.js +19 -0
- package/dist/lib/locations.js.map +1 -0
- package/dist/lib/mappings.cjs +443 -0
- package/dist/lib/mappings.cjs.map +1 -0
- package/dist/lib/mappings.d.cts +4 -0
- package/dist/lib/mappings.d.ts +4 -0
- package/dist/lib/mappings.js +409 -0
- package/dist/lib/mappings.js.map +1 -0
- package/dist/lib/salaryRange.cjs +90 -0
- package/dist/lib/salaryRange.cjs.map +1 -0
- package/dist/lib/salaryRange.d.cts +6 -0
- package/dist/lib/salaryRange.d.ts +6 -0
- package/dist/lib/salaryRange.js +63 -0
- package/dist/lib/salaryRange.js.map +1 -0
- package/dist/services/displayText.cjs +470 -0
- package/dist/services/displayText.cjs.map +1 -0
- package/dist/services/displayText.d.cts +4 -0
- package/dist/services/displayText.d.ts +4 -0
- package/dist/services/displayText.js +443 -0
- package/dist/services/displayText.js.map +1 -0
- package/dist/shared_pickle_output_latest-DX6GQoVn.d.cts +194 -0
- package/dist/shared_pickle_output_latest-DX6GQoVn.d.ts +194 -0
- package/dist/styles/globals.css +817 -0
- package/dist/styles/globals.css.map +1 -1
- package/dist/types/data/company_service_latest.cjs +228 -0
- package/dist/types/data/company_service_latest.cjs.map +1 -0
- package/dist/types/data/company_service_latest.d.cts +2 -0
- package/dist/types/data/company_service_latest.d.ts +2 -0
- package/dist/types/data/company_service_latest.js +186 -0
- package/dist/types/data/company_service_latest.js.map +1 -0
- package/dist/types/data/job_posting_service_latest.cjs +266 -0
- package/dist/types/data/job_posting_service_latest.cjs.map +1 -0
- package/dist/types/data/job_posting_service_latest.d.cts +2 -0
- package/dist/types/data/job_posting_service_latest.d.ts +2 -0
- package/dist/types/data/job_posting_service_latest.js +230 -0
- package/dist/types/data/job_posting_service_latest.js.map +1 -0
- package/dist/types/data/shared_pickle_output_latest.cjs +82 -0
- package/dist/types/data/shared_pickle_output_latest.cjs.map +1 -0
- package/dist/types/data/shared_pickle_output_latest.d.cts +2 -0
- package/dist/types/data/shared_pickle_output_latest.d.ts +2 -0
- package/dist/types/data/shared_pickle_output_latest.js +50 -0
- package/dist/types/data/shared_pickle_output_latest.js.map +1 -0
- package/dist/types/displayText.errors.cjs +44 -0
- package/dist/types/displayText.errors.cjs.map +1 -0
- package/dist/types/displayText.errors.d.cts +8 -0
- package/dist/types/displayText.errors.d.ts +8 -0
- package/dist/types/displayText.errors.js +18 -0
- package/dist/types/displayText.errors.js.map +1 -0
- package/package.json +19 -7
- package/dist/AmbitBold-3SZZPYLH.otf +0 -0
- package/dist/AmbitBoldItalic-JSHFTN4A.otf +0 -0
- package/dist/AmbitRegular-MB5U7O3L.otf +0 -0
- package/dist/app/layout.cjs.map +0 -1
- package/dist/app/layout.css +0 -1423
- package/dist/app/layout.css.map +0 -1
- package/dist/app/layout.d.cts +0 -11
- package/dist/app/layout.d.ts +0 -11
- package/dist/app/layout.js +0 -36
- package/dist/app/layout.js.map +0 -1
- package/dist/app/page.cjs +0 -1607
- package/dist/app/page.cjs.map +0 -1
- package/dist/app/page.d.cts +0 -5
- package/dist/app/page.d.ts +0 -5
- package/dist/app/page.js +0 -1581
- package/dist/app/page.js.map +0 -1
- package/dist/assets/fonts/AmbitBold.cjs +0 -3
- package/dist/assets/fonts/AmbitBold.cjs.map +0 -1
- package/dist/assets/fonts/AmbitBold.d.cts +0 -2
- package/dist/assets/fonts/AmbitBold.d.ts +0 -2
- package/dist/assets/fonts/AmbitBold.js +0 -6
- package/dist/assets/fonts/AmbitBold.js.map +0 -1
- package/dist/assets/fonts/AmbitBoldItalic.cjs +0 -3
- package/dist/assets/fonts/AmbitBoldItalic.cjs.map +0 -1
- package/dist/assets/fonts/AmbitBoldItalic.d.cts +0 -2
- package/dist/assets/fonts/AmbitBoldItalic.d.ts +0 -2
- package/dist/assets/fonts/AmbitBoldItalic.js +0 -6
- package/dist/assets/fonts/AmbitBoldItalic.js.map +0 -1
- package/dist/assets/fonts/AmbitRegular.cjs +0 -3
- package/dist/assets/fonts/AmbitRegular.cjs.map +0 -1
- package/dist/assets/fonts/AmbitRegular.d.cts +0 -2
- package/dist/assets/fonts/AmbitRegular.d.ts +0 -2
- package/dist/assets/fonts/AmbitRegular.js +0 -6
- package/dist/assets/fonts/AmbitRegular.js.map +0 -1
- package/dist/components/demos/ComboboxDemo.cjs +0 -814
- package/dist/components/demos/ComboboxDemo.cjs.map +0 -1
- package/dist/components/demos/ComboboxDemo.d.cts +0 -5
- package/dist/components/demos/ComboboxDemo.d.ts +0 -5
- package/dist/components/demos/ComboboxDemo.js +0 -786
- package/dist/components/demos/ComboboxDemo.js.map +0 -1
- package/dist/components/demos/CounterDemo.cjs +0 -270
- package/dist/components/demos/CounterDemo.cjs.map +0 -1
- package/dist/components/demos/CounterDemo.d.cts +0 -5
- package/dist/components/demos/CounterDemo.d.ts +0 -5
- package/dist/components/demos/CounterDemo.js +0 -238
- package/dist/components/demos/CounterDemo.js.map +0 -1
- package/dist/components/demos/InputDemo.cjs +0 -225
- package/dist/components/demos/InputDemo.cjs.map +0 -1
- package/dist/components/demos/InputDemo.d.cts +0 -5
- package/dist/components/demos/InputDemo.d.ts +0 -5
- package/dist/components/demos/InputDemo.js +0 -192
- package/dist/components/demos/InputDemo.js.map +0 -1
- package/dist/components/demos/MapComponentDemo.cjs +0 -129
- package/dist/components/demos/MapComponentDemo.cjs.map +0 -1
- package/dist/components/demos/MapComponentDemo.d.cts +0 -5
- package/dist/components/demos/MapComponentDemo.d.ts +0 -5
- package/dist/components/demos/MapComponentDemo.js +0 -107
- package/dist/components/demos/MapComponentDemo.js.map +0 -1
- package/dist/components/demos/PlacesQueryInputDemo.cjs +0 -341
- package/dist/components/demos/PlacesQueryInputDemo.cjs.map +0 -1
- package/dist/components/demos/PlacesQueryInputDemo.d.cts +0 -5
- package/dist/components/demos/PlacesQueryInputDemo.d.ts +0 -5
- package/dist/components/demos/PlacesQueryInputDemo.js +0 -309
- package/dist/components/demos/PlacesQueryInputDemo.js.map +0 -1
- package/dist/components/demos/SelectDemo.cjs +0 -365
- package/dist/components/demos/SelectDemo.cjs.map +0 -1
- package/dist/components/demos/SelectDemo.d.cts +0 -5
- package/dist/components/demos/SelectDemo.d.ts +0 -5
- package/dist/components/demos/SelectDemo.js +0 -337
- package/dist/components/demos/SelectDemo.js.map +0 -1
- package/dist/components/demos/index.cjs +0 -1600
- package/dist/components/demos/index.cjs.map +0 -1
- package/dist/components/demos/index.d.cts +0 -5
- package/dist/components/demos/index.d.ts +0 -5
- package/dist/components/demos/index.js +0 -1574
- package/dist/components/demos/index.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __export = (target, all) => {
|
|
3
|
+
for (var name in all)
|
|
4
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
5
|
+
};
|
|
6
|
+
|
|
1
7
|
// src/components/ui/Select.tsx
|
|
2
8
|
import * as SelectPrimitive from "@radix-ui/react-select";
|
|
3
9
|
import { CheckIcon, ChevronDownIcon, X } from "lucide-react";
|
|
@@ -1311,20 +1317,1456 @@ var counterVariants = cva6(
|
|
|
1311
1317
|
}
|
|
1312
1318
|
}
|
|
1313
1319
|
);
|
|
1320
|
+
|
|
1321
|
+
// src/components/primitives/avatar.tsx
|
|
1322
|
+
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
1323
|
+
import * as React7 from "react";
|
|
1324
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
1325
|
+
var AvatarBase = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
1326
|
+
AvatarPrimitive.Root,
|
|
1327
|
+
{
|
|
1328
|
+
ref,
|
|
1329
|
+
className: cn("relative flex shrink-0 overflow-hidden rounded-full", className),
|
|
1330
|
+
...props
|
|
1331
|
+
}
|
|
1332
|
+
));
|
|
1333
|
+
AvatarBase.displayName = AvatarPrimitive.Root.displayName;
|
|
1334
|
+
var AvatarImage = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
1335
|
+
AvatarPrimitive.Image,
|
|
1336
|
+
{
|
|
1337
|
+
ref,
|
|
1338
|
+
className: cn("aspect-square h-full w-full", className),
|
|
1339
|
+
"data-testid": "job-card-avatar",
|
|
1340
|
+
...props
|
|
1341
|
+
}
|
|
1342
|
+
));
|
|
1343
|
+
AvatarImage.displayName = AvatarPrimitive.Image.displayName;
|
|
1344
|
+
var AvatarFallback = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
|
|
1345
|
+
AvatarPrimitive.Fallback,
|
|
1346
|
+
{
|
|
1347
|
+
ref,
|
|
1348
|
+
className: cn(
|
|
1349
|
+
"flex h-full w-full items-center justify-center rounded-full bg-pumpkin-100 py-2 text-sm font-bold capitalize leading-normal text-white md:text-lg",
|
|
1350
|
+
className
|
|
1351
|
+
),
|
|
1352
|
+
...props
|
|
1353
|
+
}
|
|
1354
|
+
));
|
|
1355
|
+
AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
|
|
1356
|
+
|
|
1357
|
+
// src/components/ui/Avatar.tsx
|
|
1358
|
+
import { cva as cva7 } from "cva";
|
|
1359
|
+
import Link from "next/link";
|
|
1360
|
+
import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1361
|
+
function Avatar({ size, src, href, name, ...linkProps }) {
|
|
1362
|
+
const fallbackShort = name?.slice(0, 2);
|
|
1363
|
+
const fallbackWords = name?.split(" ").map((n) => n[0]).join("").slice(0, 2);
|
|
1364
|
+
const fallback = fallbackWords && fallbackWords.length > 1 ? fallbackWords : fallbackShort;
|
|
1365
|
+
const renderAvatar = () => /* @__PURE__ */ jsxs11(AvatarBase, { className: avatarVariants({ size }), children: [
|
|
1366
|
+
/* @__PURE__ */ jsx20(AvatarImage, { src, alt: name }),
|
|
1367
|
+
/* @__PURE__ */ jsx20(AvatarFallback, { children: fallback?.toUpperCase() })
|
|
1368
|
+
] });
|
|
1369
|
+
if (href) {
|
|
1370
|
+
return /* @__PURE__ */ jsx20(Link, { href, ...linkProps, children: renderAvatar() });
|
|
1371
|
+
}
|
|
1372
|
+
return renderAvatar();
|
|
1373
|
+
}
|
|
1374
|
+
var avatarVariants = cva7("ring ring-white ring-2", {
|
|
1375
|
+
variants: {
|
|
1376
|
+
size: {
|
|
1377
|
+
large: "h-16 w-16",
|
|
1378
|
+
medium: "h-10 w-10",
|
|
1379
|
+
small: "h-8 w-8"
|
|
1380
|
+
}
|
|
1381
|
+
},
|
|
1382
|
+
defaultVariants: {
|
|
1383
|
+
size: "medium"
|
|
1384
|
+
}
|
|
1385
|
+
});
|
|
1386
|
+
|
|
1387
|
+
// src/components/ui/Icon.tsx
|
|
1388
|
+
import { Slot as Slot2 } from "@radix-ui/react-slot";
|
|
1389
|
+
import { cva as cva8 } from "cva";
|
|
1390
|
+
import { forwardRef as forwardRef13 } from "react";
|
|
1391
|
+
import { twMerge as twMerge3 } from "tailwind-merge";
|
|
1392
|
+
import { jsx as jsx21 } from "react/jsx-runtime";
|
|
1393
|
+
var Icon = forwardRef13(
|
|
1394
|
+
({ variant, size, active = false, readonly = false, className, ...props }, ref) => {
|
|
1395
|
+
const Component = readonly ? Slot2 : "button";
|
|
1396
|
+
return /* @__PURE__ */ jsx21(
|
|
1397
|
+
Component,
|
|
1398
|
+
{
|
|
1399
|
+
className: cn(
|
|
1400
|
+
twMerge3(iconVariants({ variant: active ? "active" : variant, size })),
|
|
1401
|
+
className
|
|
1402
|
+
),
|
|
1403
|
+
...props,
|
|
1404
|
+
ref
|
|
1405
|
+
}
|
|
1406
|
+
);
|
|
1407
|
+
}
|
|
1408
|
+
);
|
|
1409
|
+
Icon.displayName = "Icon";
|
|
1410
|
+
var iconVariants = cva8(
|
|
1411
|
+
[
|
|
1412
|
+
"inline-flex",
|
|
1413
|
+
"items-center",
|
|
1414
|
+
"rounded-full",
|
|
1415
|
+
"outline-2",
|
|
1416
|
+
"outline-offset-2",
|
|
1417
|
+
"outline-dashed",
|
|
1418
|
+
"outline-transparent",
|
|
1419
|
+
"disabled:text-grey-40",
|
|
1420
|
+
"disabled:bg-transparent",
|
|
1421
|
+
"disabled:pointer-events-none"
|
|
1422
|
+
],
|
|
1423
|
+
{
|
|
1424
|
+
variants: {
|
|
1425
|
+
variant: {
|
|
1426
|
+
filled: [
|
|
1427
|
+
"border",
|
|
1428
|
+
"border-green-80",
|
|
1429
|
+
"bg-green-90",
|
|
1430
|
+
"text-white",
|
|
1431
|
+
"hover:bg-green-80",
|
|
1432
|
+
"active:bg-green-80",
|
|
1433
|
+
"focus:outline-pickle-100",
|
|
1434
|
+
"disabled:bg-green-70"
|
|
1435
|
+
],
|
|
1436
|
+
transparent: [
|
|
1437
|
+
"text-black",
|
|
1438
|
+
"hover:bg-grey-5",
|
|
1439
|
+
"active:bg-grey-10",
|
|
1440
|
+
"focus:outline-purple-100"
|
|
1441
|
+
],
|
|
1442
|
+
tonal: [
|
|
1443
|
+
"border",
|
|
1444
|
+
"border-grey-5",
|
|
1445
|
+
"hover:border-grey-10",
|
|
1446
|
+
"active:border-grey-20",
|
|
1447
|
+
"focus:outline-purple-100"
|
|
1448
|
+
],
|
|
1449
|
+
active: ["text-black", "bg-pickle-100"]
|
|
1450
|
+
},
|
|
1451
|
+
size: {
|
|
1452
|
+
small: ["h-10", "w-10", "p-3"],
|
|
1453
|
+
medium: ["h-12", "w-12", "p-4"],
|
|
1454
|
+
large: ["h-14", "w-14", "p-4"]
|
|
1455
|
+
}
|
|
1456
|
+
},
|
|
1457
|
+
defaultVariants: {
|
|
1458
|
+
variant: "filled",
|
|
1459
|
+
size: "medium"
|
|
1460
|
+
}
|
|
1461
|
+
}
|
|
1462
|
+
);
|
|
1463
|
+
|
|
1464
|
+
// src/components/ui/LinkButton.tsx
|
|
1465
|
+
import Link2 from "next/link";
|
|
1466
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
1467
|
+
var LinkButton = ({
|
|
1468
|
+
disabled = false,
|
|
1469
|
+
useAnchor = false,
|
|
1470
|
+
children,
|
|
1471
|
+
href,
|
|
1472
|
+
...props
|
|
1473
|
+
}) => {
|
|
1474
|
+
const Component = useAnchor ? "a" : Link2;
|
|
1475
|
+
return /* @__PURE__ */ jsx22(
|
|
1476
|
+
Component,
|
|
1477
|
+
{
|
|
1478
|
+
href,
|
|
1479
|
+
className: `inline-flex items-center justify-center gap-2 rounded-full text-sm font-bold leading-tight text-black underline outline-dashed outline-2 outline-offset-2 outline-transparent hover:text-purple-100 focus:text-black focus:outline-purple-100 active:text-purple-80 ${disabled ? "pointer-events-none text-grey-40" : ""} `,
|
|
1480
|
+
...disabled && { "aria-disabled": true, tabIndex: -1 },
|
|
1481
|
+
...props,
|
|
1482
|
+
children
|
|
1483
|
+
}
|
|
1484
|
+
);
|
|
1485
|
+
};
|
|
1486
|
+
|
|
1487
|
+
// src/components/ui/ReadMore.tsx
|
|
1488
|
+
import { useEffect as useEffect5, useState as useState5 } from "react";
|
|
1489
|
+
import Markdown from "react-markdown";
|
|
1490
|
+
import { jsx as jsx23, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1491
|
+
function ReadMore({ text, ...props }) {
|
|
1492
|
+
const [isExpanded, setIsExpanded] = useState5(false);
|
|
1493
|
+
const [maxWords, setMaxWords] = useState5(160);
|
|
1494
|
+
useEffect5(() => {
|
|
1495
|
+
const updateMaxWords = () => {
|
|
1496
|
+
const windowWidth = window.innerWidth;
|
|
1497
|
+
if (windowWidth <= 768) {
|
|
1498
|
+
setMaxWords(50);
|
|
1499
|
+
} else {
|
|
1500
|
+
setMaxWords(160);
|
|
1501
|
+
}
|
|
1502
|
+
};
|
|
1503
|
+
updateMaxWords();
|
|
1504
|
+
window.addEventListener("resize", updateMaxWords);
|
|
1505
|
+
return () => window.removeEventListener("resize", updateMaxWords);
|
|
1506
|
+
}, []);
|
|
1507
|
+
function createReadMoreText(text2, maxWords2, isExpanded2) {
|
|
1508
|
+
const words = text2.split(" ");
|
|
1509
|
+
const snippet2 = isExpanded2 ? text2 : words.slice(0, maxWords2).join(" ");
|
|
1510
|
+
const readMoreText = isExpanded2 ? "" : "...";
|
|
1511
|
+
return `${snippet2} ${readMoreText}`;
|
|
1512
|
+
}
|
|
1513
|
+
const toggleText = () => setIsExpanded(!isExpanded);
|
|
1514
|
+
const snippet = createReadMoreText(text, maxWords, isExpanded);
|
|
1515
|
+
return /* @__PURE__ */ jsxs12("div", { ...props, children: [
|
|
1516
|
+
/* @__PURE__ */ jsx23("div", { "data-testid": "read-more-text", className: "prose lg:prose-lg", children: /* @__PURE__ */ jsx23(Markdown, { children: snippet }) }),
|
|
1517
|
+
/* @__PURE__ */ jsx23(Button, { className: "mt-2 flex items-center justify-center", variant: "link", onClick: toggleText, children: /* @__PURE__ */ jsxs12("p", { className: "text-sm font-bold underline underline-offset-2", children: [
|
|
1518
|
+
"Read ",
|
|
1519
|
+
isExpanded ? "less" : "more"
|
|
1520
|
+
] }) })
|
|
1521
|
+
] });
|
|
1522
|
+
}
|
|
1523
|
+
|
|
1524
|
+
// src/components/company/CompanyBenefits.tsx
|
|
1525
|
+
import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1526
|
+
function CompanyBenefits({ benefits }) {
|
|
1527
|
+
if (!benefits) return null;
|
|
1528
|
+
return /* @__PURE__ */ jsxs13("div", { className: "flex flex-col gap-2", "data-testid": "company-benefits", children: [
|
|
1529
|
+
/* @__PURE__ */ jsx24("h2", { className: "break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg", children: "Company benefits" }),
|
|
1530
|
+
/* @__PURE__ */ jsx24("ul", { className: "flex flex-col gap-3", children: benefits.map((benefit, i) => /* @__PURE__ */ jsx24("li", { className: "text-base text-grey-80", children: benefit }, `${benefit}-${i}`)) })
|
|
1531
|
+
] });
|
|
1532
|
+
}
|
|
1533
|
+
|
|
1534
|
+
// src/components/company/CompanyInformation.tsx
|
|
1535
|
+
import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
1536
|
+
function CompanyInformation({
|
|
1537
|
+
name,
|
|
1538
|
+
how,
|
|
1539
|
+
mission,
|
|
1540
|
+
wow,
|
|
1541
|
+
website
|
|
1542
|
+
}) {
|
|
1543
|
+
return /* @__PURE__ */ jsxs14("div", { className: "flex flex-col gap-2", children: [
|
|
1544
|
+
/* @__PURE__ */ jsxs14(
|
|
1545
|
+
"h2",
|
|
1546
|
+
{
|
|
1547
|
+
"data-testid": "company-name",
|
|
1548
|
+
className: "break-word max-w-full text-xl font-bold text-black sm:max-w-2xl md:max-w-lg",
|
|
1549
|
+
children: [
|
|
1550
|
+
"About ",
|
|
1551
|
+
name
|
|
1552
|
+
]
|
|
1553
|
+
}
|
|
1554
|
+
),
|
|
1555
|
+
how && /* @__PURE__ */ jsx25("p", { "data-testid": "company-information", className: "text-base text-grey-80", children: how }),
|
|
1556
|
+
mission && /* @__PURE__ */ jsxs14("div", { className: "flex gap-2", children: [
|
|
1557
|
+
/* @__PURE__ */ jsx25("span", { children: "\u{1F680}" }),
|
|
1558
|
+
/* @__PURE__ */ jsxs14("p", { className: "text-base text-grey-80", children: [
|
|
1559
|
+
/* @__PURE__ */ jsx25("span", { className: "pr-1 font-bold", children: "Mission" }),
|
|
1560
|
+
mission
|
|
1561
|
+
] })
|
|
1562
|
+
] }),
|
|
1563
|
+
wow && /* @__PURE__ */ jsxs14("div", { className: "flex gap-2", children: [
|
|
1564
|
+
/* @__PURE__ */ jsx25("span", { children: "\u{1F31F}" }),
|
|
1565
|
+
/* @__PURE__ */ jsxs14("p", { className: "text-base text-grey-80", children: [
|
|
1566
|
+
/* @__PURE__ */ jsx25("span", { className: "pr-1 font-bold", children: "Wow Factor" }),
|
|
1567
|
+
wow
|
|
1568
|
+
] })
|
|
1569
|
+
] }),
|
|
1570
|
+
website && /* @__PURE__ */ jsx25("div", { className: "pt-2", children: /* @__PURE__ */ jsx25(
|
|
1571
|
+
LinkButton,
|
|
1572
|
+
{
|
|
1573
|
+
"data-testid": "company-website-link",
|
|
1574
|
+
href: website,
|
|
1575
|
+
target: "_blank",
|
|
1576
|
+
rel: "noopener noreferrer",
|
|
1577
|
+
children: "Website"
|
|
1578
|
+
}
|
|
1579
|
+
) })
|
|
1580
|
+
] });
|
|
1581
|
+
}
|
|
1582
|
+
|
|
1583
|
+
// src/components/company/CompanyTake.tsx
|
|
1584
|
+
import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1585
|
+
function CompanyTake({ content, avatarSrc }) {
|
|
1586
|
+
if (!content) return null;
|
|
1587
|
+
return /* @__PURE__ */ jsxs15(
|
|
1588
|
+
"div",
|
|
1589
|
+
{
|
|
1590
|
+
"data-testid": "company-take",
|
|
1591
|
+
className: "align-center w-full justify-start rounded-2xl bg-green-90 p-6",
|
|
1592
|
+
children: [
|
|
1593
|
+
/* @__PURE__ */ jsx26("p", { className: "text-lg font-bold text-white sm:text-xl", children: "The Real Dill \u2618\uFE0F" }),
|
|
1594
|
+
/* @__PURE__ */ jsx26("div", { className: "mt-2 flex items-center justify-start", children: /* @__PURE__ */ jsx26("p", { className: "text-sm font-normal text-grey-10", children: content }) }),
|
|
1595
|
+
/* @__PURE__ */ jsxs15("div", { className: "mt-8 flex w-full items-center gap-3", children: [
|
|
1596
|
+
/* @__PURE__ */ jsx26(Avatar, { name: "Jon Lee", src: avatarSrc }),
|
|
1597
|
+
/* @__PURE__ */ jsxs15("div", { className: "flex flex-col flex-wrap items-start", children: [
|
|
1598
|
+
/* @__PURE__ */ jsx26("p", { className: "text-sm font-bold text-white", children: "Jon Lee, PT, DPT, OCS, FAAOMPT, MBA" }),
|
|
1599
|
+
/* @__PURE__ */ jsx26("p", { className: "text-xs font-normal text-grey-30", children: "Pickle co-founder" })
|
|
1600
|
+
] })
|
|
1601
|
+
] })
|
|
1602
|
+
]
|
|
1603
|
+
}
|
|
1604
|
+
);
|
|
1605
|
+
}
|
|
1606
|
+
|
|
1607
|
+
// src/components/jobPost/JobDescription.tsx
|
|
1608
|
+
import { jsx as jsx27, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
1609
|
+
function JobDescription({ description }) {
|
|
1610
|
+
if (!description) return null;
|
|
1611
|
+
return /* @__PURE__ */ jsxs16("div", { className: "flex w-full flex-col gap-2", children: [
|
|
1612
|
+
/* @__PURE__ */ jsx27("h3", { className: "text-xl font-bold", children: "Job Description" }),
|
|
1613
|
+
/* @__PURE__ */ jsx27(ReadMore, { text: description })
|
|
1614
|
+
] });
|
|
1615
|
+
}
|
|
1616
|
+
|
|
1617
|
+
// src/components/jobPost/JobHeader.tsx
|
|
1618
|
+
import { Dot } from "lucide-react";
|
|
1619
|
+
import Image2 from "next/image";
|
|
1620
|
+
|
|
1621
|
+
// src/components/buttons/BackButton.tsx
|
|
1622
|
+
import { X as X4 } from "lucide-react";
|
|
1623
|
+
import { useRouter } from "next/navigation";
|
|
1624
|
+
|
|
1625
|
+
// src/hooks/useWindowHistory.ts
|
|
1626
|
+
import { useContext } from "react";
|
|
1627
|
+
|
|
1628
|
+
// src/contexts/WindowHistoryProvider.tsx
|
|
1629
|
+
import { useSearchParams } from "next/navigation";
|
|
1630
|
+
import { createContext, useEffect as useEffect6, useMemo, useState as useState6 } from "react";
|
|
1631
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
1632
|
+
var WindowHistoryContext = createContext({});
|
|
1633
|
+
function WindowHistoryProvider({ children }) {
|
|
1634
|
+
const [history, setHistory] = useState6([]);
|
|
1635
|
+
const searchParams = useSearchParams();
|
|
1636
|
+
useEffect6(() => {
|
|
1637
|
+
setHistory(
|
|
1638
|
+
(prev) => prev.at(-1) === window.location.href ? prev : [...prev, window.location.href]
|
|
1639
|
+
);
|
|
1640
|
+
}, [searchParams]);
|
|
1641
|
+
const contextValue = useMemo(() => ({ history }), [history]);
|
|
1642
|
+
return /* @__PURE__ */ jsx28(WindowHistoryContext.Provider, { value: contextValue, children });
|
|
1643
|
+
}
|
|
1644
|
+
|
|
1645
|
+
// src/hooks/useWindowHistory.ts
|
|
1646
|
+
function useWindowHistory() {
|
|
1647
|
+
const windowHistoryContext = useContext(WindowHistoryContext);
|
|
1648
|
+
if (Object.keys(windowHistoryContext).length === 0) {
|
|
1649
|
+
throw new Error("useWindowHistory was used outside of its WindowHistoryContext");
|
|
1650
|
+
}
|
|
1651
|
+
return windowHistoryContext;
|
|
1652
|
+
}
|
|
1653
|
+
|
|
1654
|
+
// src/components/buttons/BackButton.tsx
|
|
1655
|
+
import { jsx as jsx29 } from "react/jsx-runtime";
|
|
1656
|
+
function BackButton({ acceptedRoutes, fallbackHref, className, ...props }) {
|
|
1657
|
+
const { history } = useWindowHistory();
|
|
1658
|
+
const router = useRouter();
|
|
1659
|
+
const isAcceptedRoute = (r) => !!acceptedRoutes?.find((route) => new RegExp("^" + route + "$", "i").test(r));
|
|
1660
|
+
const goBack = () => {
|
|
1661
|
+
const previous = history[history.length - 2];
|
|
1662
|
+
history.length > 1 && isAcceptedRoute(previous) ? router.back() : router.push(fallbackHref ?? "/");
|
|
1663
|
+
};
|
|
1664
|
+
return /* @__PURE__ */ jsx29(
|
|
1665
|
+
Icon,
|
|
1666
|
+
{
|
|
1667
|
+
"aria-label": "back button",
|
|
1668
|
+
variant: "transparent",
|
|
1669
|
+
size: "small",
|
|
1670
|
+
onClick: goBack,
|
|
1671
|
+
className,
|
|
1672
|
+
...props,
|
|
1673
|
+
children: /* @__PURE__ */ jsx29(X4, {})
|
|
1674
|
+
}
|
|
1675
|
+
);
|
|
1676
|
+
}
|
|
1677
|
+
|
|
1678
|
+
// src/lib/icons.ts
|
|
1679
|
+
import {
|
|
1680
|
+
Banknote,
|
|
1681
|
+
Bell,
|
|
1682
|
+
BriefcaseBusiness,
|
|
1683
|
+
Building,
|
|
1684
|
+
Building2,
|
|
1685
|
+
CircleUser,
|
|
1686
|
+
CircleUserRound,
|
|
1687
|
+
Clock2,
|
|
1688
|
+
Contact,
|
|
1689
|
+
GalleryVerticalEnd,
|
|
1690
|
+
Home,
|
|
1691
|
+
KeyRound,
|
|
1692
|
+
Layers,
|
|
1693
|
+
LifeBuoy,
|
|
1694
|
+
MapPin,
|
|
1695
|
+
MessageSquareDot,
|
|
1696
|
+
Settings,
|
|
1697
|
+
SquareKanban,
|
|
1698
|
+
Users,
|
|
1699
|
+
Wallet
|
|
1700
|
+
} from "lucide-react";
|
|
1701
|
+
var iconMap = {
|
|
1702
|
+
house: Home,
|
|
1703
|
+
layers: Layers,
|
|
1704
|
+
users: Users,
|
|
1705
|
+
settings: Settings,
|
|
1706
|
+
building: Building,
|
|
1707
|
+
bell: Bell,
|
|
1708
|
+
wallet: Wallet,
|
|
1709
|
+
contact: Contact,
|
|
1710
|
+
banknote: Banknote,
|
|
1711
|
+
"message-square-dot": MessageSquareDot,
|
|
1712
|
+
"life-buoy": LifeBuoy,
|
|
1713
|
+
"building-2": Building2,
|
|
1714
|
+
"gallery-vertical-end": GalleryVerticalEnd,
|
|
1715
|
+
"square-kanban": SquareKanban,
|
|
1716
|
+
"briefcase-business": BriefcaseBusiness,
|
|
1717
|
+
"circle-user": CircleUser,
|
|
1718
|
+
"key-round": KeyRound,
|
|
1719
|
+
"clock-2": Clock2,
|
|
1720
|
+
"circle-user-round": CircleUserRound,
|
|
1721
|
+
"map-pin": MapPin
|
|
1722
|
+
};
|
|
1723
|
+
|
|
1724
|
+
// src/components/jobPost/JobHeader.tsx
|
|
1725
|
+
import { jsx as jsx30, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
1726
|
+
function JobHeader({
|
|
1727
|
+
title,
|
|
1728
|
+
subtitles,
|
|
1729
|
+
standalone,
|
|
1730
|
+
bannerSrc,
|
|
1731
|
+
avatarSrc,
|
|
1732
|
+
avatarName,
|
|
1733
|
+
avatarHref,
|
|
1734
|
+
backFallbackHref,
|
|
1735
|
+
backAcceptedRoutes,
|
|
1736
|
+
actions,
|
|
1737
|
+
tags
|
|
1738
|
+
}) {
|
|
1739
|
+
const renderIcon = (icon) => {
|
|
1740
|
+
const Icon2 = iconMap[icon];
|
|
1741
|
+
return /* @__PURE__ */ jsx30(Icon2, { size: 18 });
|
|
1742
|
+
};
|
|
1743
|
+
return /* @__PURE__ */ jsxs17(
|
|
1744
|
+
"div",
|
|
1745
|
+
{
|
|
1746
|
+
"data-testid": "job-header-root",
|
|
1747
|
+
className: cn(
|
|
1748
|
+
"-mt-8 flex w-full flex-col items-center justify-between gap-6 md:-mt-0",
|
|
1749
|
+
!standalone && "rounded-3xl"
|
|
1750
|
+
),
|
|
1751
|
+
children: [
|
|
1752
|
+
!standalone && /* @__PURE__ */ jsxs17("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", children: [
|
|
1753
|
+
/* @__PURE__ */ jsx30(
|
|
1754
|
+
Image2,
|
|
1755
|
+
{
|
|
1756
|
+
className: "h-full w-full rounded-t-3xl object-cover",
|
|
1757
|
+
src: bannerSrc,
|
|
1758
|
+
alt: "job banner",
|
|
1759
|
+
fill: true
|
|
1760
|
+
}
|
|
1761
|
+
),
|
|
1762
|
+
/* @__PURE__ */ jsx30(
|
|
1763
|
+
BackButton,
|
|
1764
|
+
{
|
|
1765
|
+
acceptedRoutes: backAcceptedRoutes,
|
|
1766
|
+
fallbackHref: backFallbackHref,
|
|
1767
|
+
className: "absolute right-2 top-2 flex items-center justify-center text-white sm:hidden",
|
|
1768
|
+
"data-testid": "job-header-back-button"
|
|
1769
|
+
}
|
|
1770
|
+
),
|
|
1771
|
+
/* @__PURE__ */ jsx30(
|
|
1772
|
+
"div",
|
|
1773
|
+
{
|
|
1774
|
+
className: "absolute left-4 top-8 md:left-6 md:top-16 lg:top-24",
|
|
1775
|
+
"data-testid": "job-header-avatar",
|
|
1776
|
+
children: /* @__PURE__ */ jsx30(
|
|
1777
|
+
Avatar,
|
|
1778
|
+
{
|
|
1779
|
+
size: "large",
|
|
1780
|
+
target: "_blank",
|
|
1781
|
+
href: avatarHref,
|
|
1782
|
+
name: avatarName,
|
|
1783
|
+
src: avatarSrc,
|
|
1784
|
+
rel: "noopener noreferrer"
|
|
1785
|
+
}
|
|
1786
|
+
)
|
|
1787
|
+
}
|
|
1788
|
+
)
|
|
1789
|
+
] }),
|
|
1790
|
+
/* @__PURE__ */ jsxs17("div", { className: "flex w-full flex-col items-start justify-start gap-4 px-6", children: [
|
|
1791
|
+
/* @__PURE__ */ jsxs17("div", { className: "flex flex-col md:flex-row", children: [
|
|
1792
|
+
standalone && /* @__PURE__ */ jsx30("div", { className: "-mt-4 mr-4 md:mt-0", "data-testid": "job-header-avatar", children: /* @__PURE__ */ jsx30(
|
|
1793
|
+
Avatar,
|
|
1794
|
+
{
|
|
1795
|
+
size: "large",
|
|
1796
|
+
target: "_blank",
|
|
1797
|
+
href: avatarHref,
|
|
1798
|
+
name: avatarName,
|
|
1799
|
+
src: avatarSrc,
|
|
1800
|
+
rel: "noopener noreferrer"
|
|
1801
|
+
}
|
|
1802
|
+
) }),
|
|
1803
|
+
/* @__PURE__ */ jsx30("div", { className: "prose mt-4 flex w-full items-center text-grey-80 lg:prose-lg", children: subtitles?.map((subtitle, i) => /* @__PURE__ */ jsxs17(
|
|
1804
|
+
"div",
|
|
1805
|
+
{
|
|
1806
|
+
"data-testid": `job-header-subtitle-${i}`,
|
|
1807
|
+
className: "flex items-center",
|
|
1808
|
+
children: [
|
|
1809
|
+
subtitle,
|
|
1810
|
+
i < subtitles.length - 1 && /* @__PURE__ */ jsx30(Dot, { className: "mx-1 shrink-0", size: 10 })
|
|
1811
|
+
]
|
|
1812
|
+
},
|
|
1813
|
+
subtitle
|
|
1814
|
+
)) })
|
|
1815
|
+
] }),
|
|
1816
|
+
/* @__PURE__ */ jsxs17(
|
|
1817
|
+
"div",
|
|
1818
|
+
{
|
|
1819
|
+
"data-testid": "job-header-content",
|
|
1820
|
+
className: "mt-2 flex w-full flex-row flex-wrap items-center justify-between gap-1",
|
|
1821
|
+
children: [
|
|
1822
|
+
/* @__PURE__ */ jsx30(
|
|
1823
|
+
"h2",
|
|
1824
|
+
{
|
|
1825
|
+
"data-testid": "job-header-title",
|
|
1826
|
+
className: "break-word max-w-full text-2xl font-bold text-black sm:max-w-2xl md:max-w-lg",
|
|
1827
|
+
children: title
|
|
1828
|
+
}
|
|
1829
|
+
),
|
|
1830
|
+
!!actions && /* @__PURE__ */ jsx30(
|
|
1831
|
+
"div",
|
|
1832
|
+
{
|
|
1833
|
+
className: "flex w-full justify-end gap-2 md:w-auto",
|
|
1834
|
+
"data-testid": "job-header-actions",
|
|
1835
|
+
children: actions
|
|
1836
|
+
}
|
|
1837
|
+
)
|
|
1838
|
+
]
|
|
1839
|
+
}
|
|
1840
|
+
),
|
|
1841
|
+
/* @__PURE__ */ jsx30(
|
|
1842
|
+
"div",
|
|
1843
|
+
{
|
|
1844
|
+
"data-testid": "job-header-tags",
|
|
1845
|
+
className: "flex flex-row flex-wrap items-center justify-start gap-2",
|
|
1846
|
+
children: tags?.map(({ name, label, icon }) => /* @__PURE__ */ jsxs17(
|
|
1847
|
+
Chip_default,
|
|
1848
|
+
{
|
|
1849
|
+
size: "small",
|
|
1850
|
+
variant: "neutral",
|
|
1851
|
+
"aria-label": name,
|
|
1852
|
+
"data-testid": `job-header-tag-${name}`,
|
|
1853
|
+
children: [
|
|
1854
|
+
renderIcon(icon),
|
|
1855
|
+
/* @__PURE__ */ jsx30("span", { children: label })
|
|
1856
|
+
]
|
|
1857
|
+
},
|
|
1858
|
+
name
|
|
1859
|
+
))
|
|
1860
|
+
}
|
|
1861
|
+
)
|
|
1862
|
+
] })
|
|
1863
|
+
]
|
|
1864
|
+
}
|
|
1865
|
+
);
|
|
1866
|
+
}
|
|
1867
|
+
|
|
1868
|
+
// src/components/jobPost/JobPost.tsx
|
|
1869
|
+
import * as DateFns from "date-fns";
|
|
1870
|
+
|
|
1871
|
+
// src/types/data/shared_pickle_output_latest.ts
|
|
1872
|
+
var shared_pickle_output_latest_exports = {};
|
|
1873
|
+
__export(shared_pickle_output_latest_exports, {
|
|
1874
|
+
CurrencyEnum: () => CurrencyEnum,
|
|
1875
|
+
DetailLevelEnum: () => DetailLevelEnum,
|
|
1876
|
+
TypeEnum: () => TypeEnum,
|
|
1877
|
+
UnitTextEnum: () => UnitTextEnum,
|
|
1878
|
+
monetaryAmountSchema: () => monetaryAmountSchema,
|
|
1879
|
+
placeSchema: () => placeSchema,
|
|
1880
|
+
postalAddressSchema: () => postalAddressSchema,
|
|
1881
|
+
quantitativeValueSchema: () => quantitativeValueSchema
|
|
1882
|
+
});
|
|
1883
|
+
import { z } from "zod";
|
|
1884
|
+
var TypeEnum = z.enum(["MONETARY_AMOUNT"]);
|
|
1885
|
+
var DetailLevelEnum = z.enum(["COUNTRY", "GEO", "LOCALITY", "POSTAL_CODE", "REGION"]);
|
|
1886
|
+
var UnitTextEnum = z.enum(["DAY", "HOUR", "MONTH", "PER_ACTIVITY", "WEEK", "YEAR"]);
|
|
1887
|
+
var CurrencyEnum = z.enum(["EUR", "GBP", "USD"]);
|
|
1888
|
+
var postalAddressSchema = z.object({
|
|
1889
|
+
version: z.literal("1.0.0").default("1.0.0"),
|
|
1890
|
+
type: z.string().describe("Document type used within sanity"),
|
|
1891
|
+
addressCountry: z.string().describe("The physical country as defined in ISO 3166 Alpha-2"),
|
|
1892
|
+
addressRegion: z.optional(z.string()).describe("The region in which the locality is, and which is in the country."),
|
|
1893
|
+
addressLocality: z.optional(z.string()).describe("The locality in which the street address is, and which is in the region. In the US this would be city."),
|
|
1894
|
+
streetAddress: z.optional(z.string()).describe("The street address within the locality."),
|
|
1895
|
+
postalCode: z.optional(z.string()).describe("The postal code")
|
|
1896
|
+
});
|
|
1897
|
+
var placeSchema = z.object({
|
|
1898
|
+
version: z.literal("1.0.0").default("1.0.0"),
|
|
1899
|
+
detailLevel: z.optional(DetailLevelEnum),
|
|
1900
|
+
latitude: z.optional(z.number()).describe("The latitude of a location."),
|
|
1901
|
+
longitude: z.optional(z.number()).describe("The longitude of a location."),
|
|
1902
|
+
address: z.optional(postalAddressSchema).describe("The physical place of the location")
|
|
1903
|
+
});
|
|
1904
|
+
var quantitativeValueSchema = z.object({
|
|
1905
|
+
version: z.literal("1.0.0").default("1.0.0"),
|
|
1906
|
+
type: z.string().describe("Document type used within sanity"),
|
|
1907
|
+
value: z.optional(z.number()).describe("The single value for some quantity e.g 5000, if a range is needed use minValue and maxValue. Typically used for a single salary."),
|
|
1908
|
+
minValue: z.optional(z.number()).describe("The single minium value in a range for a quantitative_value, requires a maximum value."),
|
|
1909
|
+
maxValue: z.optional(z.number()).describe("The maximum value in a range for a quantitative_value, requires a minimum value."),
|
|
1910
|
+
unitText: UnitTextEnum
|
|
1911
|
+
});
|
|
1912
|
+
var monetaryAmountSchema = z.object({
|
|
1913
|
+
version: z.literal("1.0.0").default("1.0.0"),
|
|
1914
|
+
type: z.string().describe("Document type used within sanity"),
|
|
1915
|
+
singleValue: z.optional(z.number()).describe("The annualized single value for some quantity e.g 5000, if a range is needed use minValue and maxValue. Deprecated - use value.value instead."),
|
|
1916
|
+
minValue: z.optional(z.number()).describe("The annualized single minium value in a range for a quantitative_value. Deprecated use value.minValue"),
|
|
1917
|
+
maxValue: z.optional(z.number()).describe("The annualized maximum value in a range for a quantitative_value. Deprecated use value.maxValue"),
|
|
1918
|
+
value: z.optional(quantitativeValueSchema).describe("The quantitative_value for a given salary"),
|
|
1919
|
+
currency: z.optional(CurrencyEnum)
|
|
1920
|
+
});
|
|
1921
|
+
|
|
1922
|
+
// src/lib/salaryRange.ts
|
|
1923
|
+
function salaryRange(salary) {
|
|
1924
|
+
if (!salary) return null;
|
|
1925
|
+
const min = salary.minValue;
|
|
1926
|
+
const max = salary.maxValue;
|
|
1927
|
+
const single = salary.singleValue;
|
|
1928
|
+
const signs = {
|
|
1929
|
+
[CurrencyEnum.Values.USD]: "$",
|
|
1930
|
+
[CurrencyEnum.Values.GBP]: "\xA3",
|
|
1931
|
+
[CurrencyEnum.Values.EUR]: "\u20AC"
|
|
1932
|
+
};
|
|
1933
|
+
const sign = signs[salary.currency ?? CurrencyEnum.Values.USD];
|
|
1934
|
+
if (min == null && max == null && single == null) return null;
|
|
1935
|
+
if (single != null) return sign + single.toLocaleString();
|
|
1936
|
+
if (min === max) return sign + min?.toLocaleString();
|
|
1937
|
+
if (min != null && max != null)
|
|
1938
|
+
return sign + min?.toLocaleString() + " - " + sign + max?.toLocaleString();
|
|
1939
|
+
return null;
|
|
1940
|
+
}
|
|
1941
|
+
|
|
1942
|
+
// src/hooks/useDisplayText.ts
|
|
1943
|
+
import { useEffect as useEffect7, useMemo as useMemo2, useState as useState7 } from "react";
|
|
1944
|
+
|
|
1945
|
+
// src/lib/mappings.ts
|
|
1946
|
+
var employmentTypeDisplayText = {
|
|
1947
|
+
FULL_TIME: {
|
|
1948
|
+
en: "Full Time"
|
|
1949
|
+
},
|
|
1950
|
+
INTERNSHIP: {
|
|
1951
|
+
en: "Internship"
|
|
1952
|
+
},
|
|
1953
|
+
OTHER: {
|
|
1954
|
+
en: "Other"
|
|
1955
|
+
},
|
|
1956
|
+
PART_TIME: {
|
|
1957
|
+
en: "Part Time"
|
|
1958
|
+
},
|
|
1959
|
+
PER_DIEM: {
|
|
1960
|
+
en: "Per-Diem"
|
|
1961
|
+
},
|
|
1962
|
+
TEMPORARY: {
|
|
1963
|
+
en: "Temporary"
|
|
1964
|
+
},
|
|
1965
|
+
CONTRACT: {
|
|
1966
|
+
en: "Contract"
|
|
1967
|
+
}
|
|
1968
|
+
};
|
|
1969
|
+
var unitTextDisplayText = {
|
|
1970
|
+
DAY: {
|
|
1971
|
+
en: "Day"
|
|
1972
|
+
},
|
|
1973
|
+
HOUR: {
|
|
1974
|
+
en: "Hour"
|
|
1975
|
+
},
|
|
1976
|
+
MONTH: {
|
|
1977
|
+
en: "Month"
|
|
1978
|
+
},
|
|
1979
|
+
PER_ACTIVITY: {
|
|
1980
|
+
en: "Per Activity"
|
|
1981
|
+
},
|
|
1982
|
+
WEEK: {
|
|
1983
|
+
en: "Week"
|
|
1984
|
+
},
|
|
1985
|
+
YEAR: {
|
|
1986
|
+
en: "Year"
|
|
1987
|
+
}
|
|
1988
|
+
};
|
|
1989
|
+
var currencyDisplayText = {
|
|
1990
|
+
EUR: {
|
|
1991
|
+
en: "\u20AC"
|
|
1992
|
+
},
|
|
1993
|
+
GBP: {
|
|
1994
|
+
en: "\xA3"
|
|
1995
|
+
},
|
|
1996
|
+
USD: {
|
|
1997
|
+
en: "$"
|
|
1998
|
+
}
|
|
1999
|
+
};
|
|
2000
|
+
var employmentLevelDisplayText = {
|
|
2001
|
+
DIRECTOR: {
|
|
2002
|
+
en: "Director"
|
|
2003
|
+
},
|
|
2004
|
+
ENTRY_LEVEL: {
|
|
2005
|
+
en: "Entry Level"
|
|
2006
|
+
},
|
|
2007
|
+
EXECUTIVE: {
|
|
2008
|
+
en: "Executive"
|
|
2009
|
+
},
|
|
2010
|
+
EXPERIENCED: {
|
|
2011
|
+
en: "Experienced"
|
|
2012
|
+
},
|
|
2013
|
+
INTERN: {
|
|
2014
|
+
en: "Intern"
|
|
2015
|
+
},
|
|
2016
|
+
MANAGER: {
|
|
2017
|
+
en: "Manager"
|
|
2018
|
+
}
|
|
2019
|
+
};
|
|
2020
|
+
var jobFunctionDisplayText = {
|
|
2021
|
+
CLINICAL_RESEARCH: {
|
|
2022
|
+
en: "Clinical Research"
|
|
2023
|
+
},
|
|
2024
|
+
CUSTOMER_SUCCESS: {
|
|
2025
|
+
en: "Customer Success"
|
|
2026
|
+
},
|
|
2027
|
+
DATA_ANALYTICS: {
|
|
2028
|
+
en: "Data Analytics"
|
|
2029
|
+
},
|
|
2030
|
+
FINANCE_AND_AUDIT: {
|
|
2031
|
+
en: "Finance and Audit"
|
|
2032
|
+
},
|
|
2033
|
+
MARKETING: {
|
|
2034
|
+
en: "Marketing"
|
|
2035
|
+
},
|
|
2036
|
+
OPERATIONS: {
|
|
2037
|
+
en: "Operations"
|
|
2038
|
+
},
|
|
2039
|
+
PEOPLE_HUMAN_RESOURCES: {
|
|
2040
|
+
en: "People Human Resources"
|
|
2041
|
+
},
|
|
2042
|
+
PRODUCT_AND_TECH: {
|
|
2043
|
+
en: "Product and Tech"
|
|
2044
|
+
},
|
|
2045
|
+
QUALITY_ASSURANCE_AND_OUTCOMES: {
|
|
2046
|
+
en: "Quality Assurance and Outcomes"
|
|
2047
|
+
},
|
|
2048
|
+
SALES_AND_BUSINESS_DEVELOPMENT: {
|
|
2049
|
+
en: "Sales and Business Development"
|
|
2050
|
+
},
|
|
2051
|
+
STRATEGY_AND_CONSULTING: {
|
|
2052
|
+
en: "Strategy and Consulting"
|
|
2053
|
+
}
|
|
2054
|
+
};
|
|
2055
|
+
var bestFitDisplayText = {
|
|
2056
|
+
DENTIST: {
|
|
2057
|
+
en: "Dentist"
|
|
2058
|
+
},
|
|
2059
|
+
DIETICIAN: {
|
|
2060
|
+
en: "Dietician"
|
|
2061
|
+
},
|
|
2062
|
+
DOULA: {
|
|
2063
|
+
en: "Doula"
|
|
2064
|
+
},
|
|
2065
|
+
MEDICAL_ASSISTANT: {
|
|
2066
|
+
en: "Medical Assistant"
|
|
2067
|
+
},
|
|
2068
|
+
MIDWIFE: {
|
|
2069
|
+
en: "Midwife"
|
|
2070
|
+
},
|
|
2071
|
+
NURSE: {
|
|
2072
|
+
en: "Nurse"
|
|
2073
|
+
},
|
|
2074
|
+
OCCUPATIONAL_THERAPIST: {
|
|
2075
|
+
en: "Occupational Therapist"
|
|
2076
|
+
},
|
|
2077
|
+
PHARMACIST: {
|
|
2078
|
+
en: "Pharmacist"
|
|
2079
|
+
},
|
|
2080
|
+
PHYSICAL_THERAPIST: {
|
|
2081
|
+
en: "Physical Therapist"
|
|
2082
|
+
},
|
|
2083
|
+
PHYSICIAN: {
|
|
2084
|
+
en: "Physician"
|
|
2085
|
+
},
|
|
2086
|
+
PHYSICIAN_ASSISTANT: {
|
|
2087
|
+
en: "Physician Assistant"
|
|
2088
|
+
},
|
|
2089
|
+
PSYCHOLOGIST: {
|
|
2090
|
+
en: "Psychologist"
|
|
2091
|
+
},
|
|
2092
|
+
RADIOLOGIST: {
|
|
2093
|
+
en: "Radiologist"
|
|
2094
|
+
},
|
|
2095
|
+
SOCIAL_WORKER: {
|
|
2096
|
+
en: "Social Worker"
|
|
2097
|
+
},
|
|
2098
|
+
SPEECH_LANGUAGE_PATHOLOGIST: {
|
|
2099
|
+
en: "Speech Language Pathologist"
|
|
2100
|
+
},
|
|
2101
|
+
SURGEON: {
|
|
2102
|
+
en: "Surgeon"
|
|
2103
|
+
}
|
|
2104
|
+
};
|
|
2105
|
+
var clinicalSpecialtyDisplayText = {
|
|
2106
|
+
ANESTHESIOLOGY: {
|
|
2107
|
+
en: "Anesthesiology"
|
|
2108
|
+
},
|
|
2109
|
+
CARDIOLOGY: {
|
|
2110
|
+
en: "Cardiology"
|
|
2111
|
+
},
|
|
2112
|
+
CARDIOVASCULAR_AND_PULMONARY: {
|
|
2113
|
+
en: "Cardiovascular and Pulmonary"
|
|
2114
|
+
},
|
|
2115
|
+
CASE_MANAGEMENT: {
|
|
2116
|
+
en: "Case Management"
|
|
2117
|
+
},
|
|
2118
|
+
CHRONIC_PAIN: {
|
|
2119
|
+
en: "Chronic Pain"
|
|
2120
|
+
},
|
|
2121
|
+
CLINICAL_ELECTROPHYSIOLOGY: {
|
|
2122
|
+
en: "Clinical Electrophysiology"
|
|
2123
|
+
},
|
|
2124
|
+
CRITICAL_AND_ACUTE_CARE: {
|
|
2125
|
+
en: "Critical and Acute Care"
|
|
2126
|
+
},
|
|
2127
|
+
DERMATOLOGY: {
|
|
2128
|
+
en: "Dermatology"
|
|
2129
|
+
},
|
|
2130
|
+
DIALYSIS: {
|
|
2131
|
+
en: "Dialysis"
|
|
2132
|
+
},
|
|
2133
|
+
EMERGENCY_MEDICINE: {
|
|
2134
|
+
en: "Emergency Medicine"
|
|
2135
|
+
},
|
|
2136
|
+
ENDOCRINOLOGY: {
|
|
2137
|
+
en: "Endocrinology"
|
|
2138
|
+
},
|
|
2139
|
+
ERGONOMICS: {
|
|
2140
|
+
en: "Ergonomics"
|
|
2141
|
+
},
|
|
2142
|
+
FEEDING_EATING_AND_SWALLOWING: {
|
|
2143
|
+
en: "Feeding, Eating, and Swallowing"
|
|
2144
|
+
},
|
|
2145
|
+
GASTROENTEROLOGY: {
|
|
2146
|
+
en: "Gastroenterology"
|
|
2147
|
+
},
|
|
2148
|
+
GERIATRICS: {
|
|
2149
|
+
en: "Geriatrics"
|
|
2150
|
+
},
|
|
2151
|
+
HAND_THERAPY: {
|
|
2152
|
+
en: "Hand Therapy"
|
|
2153
|
+
},
|
|
2154
|
+
HEMATOLOGY: {
|
|
2155
|
+
en: "Hematology"
|
|
2156
|
+
},
|
|
2157
|
+
HOLISTIC_MEDICINE: {
|
|
2158
|
+
en: "Holistic Medicine"
|
|
2159
|
+
},
|
|
2160
|
+
INFORMATICS: {
|
|
2161
|
+
en: "Informatics"
|
|
2162
|
+
},
|
|
2163
|
+
INTERNAL_MEDICINE: {
|
|
2164
|
+
en: "Internal Medicine"
|
|
2165
|
+
},
|
|
2166
|
+
LABOR_AND_DELIVERY: {
|
|
2167
|
+
en: "Labor and Delivery"
|
|
2168
|
+
},
|
|
2169
|
+
MANUAL_THERAPY: {
|
|
2170
|
+
en: "Manual Therapy"
|
|
2171
|
+
},
|
|
2172
|
+
MED_SURG: {
|
|
2173
|
+
en: "Medical-Surgical"
|
|
2174
|
+
},
|
|
2175
|
+
MENTAL_HEALTH: {
|
|
2176
|
+
en: "Mental Health"
|
|
2177
|
+
},
|
|
2178
|
+
NEPHROLOGY: {
|
|
2179
|
+
en: "Nephrology"
|
|
2180
|
+
},
|
|
2181
|
+
NEUROLOGY: {
|
|
2182
|
+
en: "Neurology"
|
|
2183
|
+
},
|
|
2184
|
+
ONCOLOGY: {
|
|
2185
|
+
en: "Oncology"
|
|
2186
|
+
},
|
|
2187
|
+
ORTHOPEDICS: {
|
|
2188
|
+
en: "Orthopedics"
|
|
2189
|
+
},
|
|
2190
|
+
OTOLARYNGOLOGY: {
|
|
2191
|
+
en: "Otolaryngology"
|
|
2192
|
+
},
|
|
2193
|
+
PEDIATRICS: {
|
|
2194
|
+
en: "Pediatrics"
|
|
2195
|
+
},
|
|
2196
|
+
PHYSICAL_AND_REHABILITATION_MEDICINE: {
|
|
2197
|
+
en: "Physical and Rehabilitation Medicine"
|
|
2198
|
+
},
|
|
2199
|
+
PLASTIC_SURGERY: {
|
|
2200
|
+
en: "Plastic Surgery"
|
|
2201
|
+
},
|
|
2202
|
+
PRIMARY_CARE: {
|
|
2203
|
+
en: "Primary Care"
|
|
2204
|
+
},
|
|
2205
|
+
PSYCHIATRY: {
|
|
2206
|
+
en: "Psychiatry"
|
|
2207
|
+
},
|
|
2208
|
+
PULMONOLOGY: {
|
|
2209
|
+
en: "Pulmonology"
|
|
2210
|
+
},
|
|
2211
|
+
RADIOLOGY: {
|
|
2212
|
+
en: "Radiology"
|
|
2213
|
+
},
|
|
2214
|
+
SENSORY: {
|
|
2215
|
+
en: "Sensory"
|
|
2216
|
+
},
|
|
2217
|
+
SPORTS: {
|
|
2218
|
+
en: "Sports"
|
|
2219
|
+
},
|
|
2220
|
+
SURGERY: {
|
|
2221
|
+
en: "Surgery"
|
|
2222
|
+
},
|
|
2223
|
+
TRANSPLANT_SURGERY: {
|
|
2224
|
+
en: "Transplant Surgery"
|
|
2225
|
+
},
|
|
2226
|
+
TRAUMA_MEDICINE: {
|
|
2227
|
+
en: "Trauma Medicine"
|
|
2228
|
+
},
|
|
2229
|
+
URGENT_CARE: {
|
|
2230
|
+
en: "Urgent Care"
|
|
2231
|
+
},
|
|
2232
|
+
UROLOGY: {
|
|
2233
|
+
en: "Urology"
|
|
2234
|
+
},
|
|
2235
|
+
VISION: {
|
|
2236
|
+
en: "Vision"
|
|
2237
|
+
},
|
|
2238
|
+
WOMENS_HEALTH: {
|
|
2239
|
+
en: "Women's Health"
|
|
2240
|
+
},
|
|
2241
|
+
WOUND_AND_BURN_CARE: {
|
|
2242
|
+
en: "Wound and Burn Care"
|
|
2243
|
+
},
|
|
2244
|
+
WOUND_MANAGEMENT: {
|
|
2245
|
+
en: "Wound Management"
|
|
2246
|
+
}
|
|
2247
|
+
};
|
|
2248
|
+
var shiftDisplayText = {
|
|
2249
|
+
TEN_HOUR: {
|
|
2250
|
+
en: "10 Hour"
|
|
2251
|
+
},
|
|
2252
|
+
TWELVE_HOUR: {
|
|
2253
|
+
en: "12 Hour"
|
|
2254
|
+
},
|
|
2255
|
+
EIGHT_HOUR: {
|
|
2256
|
+
en: "8 Hour"
|
|
2257
|
+
},
|
|
2258
|
+
DAY: {
|
|
2259
|
+
en: "Day"
|
|
2260
|
+
},
|
|
2261
|
+
EVENING: {
|
|
2262
|
+
en: "Evening"
|
|
2263
|
+
},
|
|
2264
|
+
FLEXIBLE: {
|
|
2265
|
+
en: "Flexible"
|
|
2266
|
+
},
|
|
2267
|
+
MID_SHIFT: {
|
|
2268
|
+
en: "Mid Shift"
|
|
2269
|
+
},
|
|
2270
|
+
MONDAY_TO_FRIDAY: {
|
|
2271
|
+
en: "Monday to Friday"
|
|
2272
|
+
},
|
|
2273
|
+
NIGHT: {
|
|
2274
|
+
en: "Night"
|
|
2275
|
+
},
|
|
2276
|
+
ON_CALL: {
|
|
2277
|
+
en: "On Call"
|
|
2278
|
+
},
|
|
2279
|
+
WEEKENDS: {
|
|
2280
|
+
en: "Weekends"
|
|
2281
|
+
}
|
|
2282
|
+
};
|
|
2283
|
+
var clinicalSettingDisplayText = {
|
|
2284
|
+
ACUTE_CARE: {
|
|
2285
|
+
en: "Acute Care"
|
|
2286
|
+
},
|
|
2287
|
+
AMBULATORY_SURGERY_CENTER: {
|
|
2288
|
+
en: "Ambulatory Surgery Center"
|
|
2289
|
+
},
|
|
2290
|
+
CLINIC: {
|
|
2291
|
+
en: "Clinic"
|
|
2292
|
+
},
|
|
2293
|
+
HOME_HEALTH: {
|
|
2294
|
+
en: "Home Health"
|
|
2295
|
+
},
|
|
2296
|
+
HOSPITAL: {
|
|
2297
|
+
en: "Hospital"
|
|
2298
|
+
},
|
|
2299
|
+
INPATIENT: {
|
|
2300
|
+
en: "Inpatient"
|
|
2301
|
+
},
|
|
2302
|
+
LONG_TERM_CARE: {
|
|
2303
|
+
en: "Long Term Care"
|
|
2304
|
+
},
|
|
2305
|
+
MED_SPA: {
|
|
2306
|
+
en: "Med Spa"
|
|
2307
|
+
},
|
|
2308
|
+
NURSING_HOME: {
|
|
2309
|
+
en: "Nursing Home"
|
|
2310
|
+
},
|
|
2311
|
+
OFFICE: {
|
|
2312
|
+
en: "Office"
|
|
2313
|
+
},
|
|
2314
|
+
OUTPATIENT: {
|
|
2315
|
+
en: "Outpatient"
|
|
2316
|
+
},
|
|
2317
|
+
PRIVATE_PRACTICE: {
|
|
2318
|
+
en: "Private Practice"
|
|
2319
|
+
},
|
|
2320
|
+
REHAB_CENTER: {
|
|
2321
|
+
en: "Rehab Center"
|
|
2322
|
+
},
|
|
2323
|
+
SCHOOL: {
|
|
2324
|
+
en: "School"
|
|
2325
|
+
},
|
|
2326
|
+
SKILLED_NURSING_FACILITY: {
|
|
2327
|
+
en: "Skilled Nursing Facility"
|
|
2328
|
+
}
|
|
2329
|
+
};
|
|
2330
|
+
var defaultMappings = {
|
|
2331
|
+
employmentType: employmentTypeDisplayText,
|
|
2332
|
+
unitText: unitTextDisplayText,
|
|
2333
|
+
currency: currencyDisplayText,
|
|
2334
|
+
employmentLevel: employmentLevelDisplayText,
|
|
2335
|
+
jobFunction: jobFunctionDisplayText,
|
|
2336
|
+
bestFit: bestFitDisplayText,
|
|
2337
|
+
clinicalSpecialty: clinicalSpecialtyDisplayText,
|
|
2338
|
+
clinicalSetting: clinicalSettingDisplayText,
|
|
2339
|
+
shift: shiftDisplayText
|
|
2340
|
+
};
|
|
2341
|
+
|
|
2342
|
+
// src/types/displayText.errors.tsx
|
|
2343
|
+
var DisplayTextScopeNotFoundError = class extends Error {
|
|
2344
|
+
constructor(scope) {
|
|
2345
|
+
super(`No display text mapping found for scope: ${scope}`);
|
|
2346
|
+
this.name = "DisplayTextScopeNotFoundError";
|
|
2347
|
+
}
|
|
2348
|
+
};
|
|
2349
|
+
var DisplayTextValueNotFoundError = class extends Error {
|
|
2350
|
+
constructor(value, scope) {
|
|
2351
|
+
super(`No display text found for value: '${value}' in scope: '${scope}'`);
|
|
2352
|
+
this.name = "DisplayTextValueNotFoundError";
|
|
2353
|
+
}
|
|
2354
|
+
};
|
|
2355
|
+
|
|
2356
|
+
// src/services/displayText.tsx
|
|
2357
|
+
var DisplayTextService = class {
|
|
2358
|
+
constructor(customMappings) {
|
|
2359
|
+
this.defaultLanguage = "en";
|
|
2360
|
+
this.mappings = {
|
|
2361
|
+
...defaultMappings,
|
|
2362
|
+
// Use all pre-defined mappings as defaults
|
|
2363
|
+
...customMappings
|
|
2364
|
+
// Override with any custom mappings if provided
|
|
2365
|
+
};
|
|
2366
|
+
}
|
|
2367
|
+
async getDisplayText(scope, value, language = this.defaultLanguage) {
|
|
2368
|
+
const scopeMapping = this.mappings[scope];
|
|
2369
|
+
if (!scopeMapping) {
|
|
2370
|
+
throw new DisplayTextScopeNotFoundError(scope);
|
|
2371
|
+
}
|
|
2372
|
+
if (Array.isArray(value)) {
|
|
2373
|
+
const displayTextPromises = value.map((v) => this.getDisplayText(scope, v, language));
|
|
2374
|
+
const displayTexts2 = await Promise.all(displayTextPromises);
|
|
2375
|
+
return displayTexts2.filter((v) => !!v).join(", ");
|
|
2376
|
+
}
|
|
2377
|
+
const displayTexts = scopeMapping[value];
|
|
2378
|
+
if (!displayTexts) {
|
|
2379
|
+
throw new DisplayTextValueNotFoundError(value, scope);
|
|
2380
|
+
}
|
|
2381
|
+
return displayTexts[language] || displayTexts[this.defaultLanguage] || value;
|
|
2382
|
+
}
|
|
2383
|
+
};
|
|
2384
|
+
|
|
2385
|
+
// src/hooks/useDisplayText.ts
|
|
2386
|
+
var useDisplayText = (scope, value) => {
|
|
2387
|
+
const [displayText, setDisplayText] = useState7("");
|
|
2388
|
+
const displayService = useMemo2(() => new DisplayTextService(), []);
|
|
2389
|
+
useEffect7(() => {
|
|
2390
|
+
if (!displayService || !value) {
|
|
2391
|
+
setDisplayText("");
|
|
2392
|
+
return;
|
|
2393
|
+
}
|
|
2394
|
+
void (async () => {
|
|
2395
|
+
try {
|
|
2396
|
+
const result = await displayService.getDisplayText(scope, value);
|
|
2397
|
+
if (typeof result === "string") {
|
|
2398
|
+
setDisplayText(result);
|
|
2399
|
+
} else {
|
|
2400
|
+
console.error("Expected a string result, but got:", result);
|
|
2401
|
+
}
|
|
2402
|
+
} catch (error) {
|
|
2403
|
+
if (error instanceof DisplayTextValueNotFoundError) {
|
|
2404
|
+
console.warn("Display text value not found:", value);
|
|
2405
|
+
setDisplayText(String(value));
|
|
2406
|
+
} else {
|
|
2407
|
+
console.error("Unexpected error formatting text:", error);
|
|
2408
|
+
setDisplayText(String(value));
|
|
2409
|
+
}
|
|
2410
|
+
}
|
|
2411
|
+
})();
|
|
2412
|
+
}, [scope, value, displayService]);
|
|
2413
|
+
return displayText;
|
|
2414
|
+
};
|
|
2415
|
+
|
|
2416
|
+
// src/lib/locations.ts
|
|
2417
|
+
function formattedAddress(address) {
|
|
2418
|
+
const { addressLocality, addressRegion, addressCountry } = address;
|
|
2419
|
+
if (addressLocality && addressRegion) return `${addressLocality}, ${addressRegion}`;
|
|
2420
|
+
if (addressRegion && addressCountry) return `${addressRegion}, ${addressCountry}`;
|
|
2421
|
+
if (addressRegion) return addressRegion;
|
|
2422
|
+
if (addressCountry) return addressCountry;
|
|
2423
|
+
return null;
|
|
2424
|
+
}
|
|
2425
|
+
function formattedJobLocation(job) {
|
|
2426
|
+
const address = job.jobLocation && formattedAddress(job.jobLocation);
|
|
2427
|
+
const remote = job.isRemote ? "Remote" : "";
|
|
2428
|
+
return [address, remote].filter(Boolean).join(" | ");
|
|
2429
|
+
}
|
|
2430
|
+
|
|
2431
|
+
// src/components/jobPost/JobPost.tsx
|
|
2432
|
+
import { jsx as jsx31, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2433
|
+
function JobPost({
|
|
2434
|
+
job,
|
|
2435
|
+
bannerSrc,
|
|
2436
|
+
avatarSrc,
|
|
2437
|
+
standalone,
|
|
2438
|
+
fallbackHref,
|
|
2439
|
+
actions
|
|
2440
|
+
}) {
|
|
2441
|
+
const formattedEmploymentType = useDisplayText("employmentType", job.employmentType);
|
|
2442
|
+
const formattedEmploymentLevel = useDisplayText("employmentLevel", job.employmentLevel);
|
|
2443
|
+
const formattedJobFunction = useDisplayText("jobFunction", job.jobFunction);
|
|
2444
|
+
const formattedLocation = formattedJobLocation(job);
|
|
2445
|
+
const formattedSalary = salaryRange(job.estimatedSalary);
|
|
2446
|
+
const formattedDate = DateFns.formatDistanceToNow(new Date(job.datePosted), {
|
|
2447
|
+
addSuffix: true
|
|
2448
|
+
});
|
|
2449
|
+
const tags = [
|
|
2450
|
+
!!formattedSalary && {
|
|
2451
|
+
icon: "banknote",
|
|
2452
|
+
name: "salary",
|
|
2453
|
+
label: `${formattedSalary} a year`
|
|
2454
|
+
},
|
|
2455
|
+
!!formattedEmploymentType && {
|
|
2456
|
+
icon: "briefcase-business",
|
|
2457
|
+
name: "employmentType",
|
|
2458
|
+
label: formattedEmploymentType
|
|
2459
|
+
},
|
|
2460
|
+
!!formattedEmploymentLevel && {
|
|
2461
|
+
icon: "circle-user",
|
|
2462
|
+
name: "level",
|
|
2463
|
+
label: formattedEmploymentLevel
|
|
2464
|
+
},
|
|
2465
|
+
!!formattedJobFunction && {
|
|
2466
|
+
icon: "briefcase-business",
|
|
2467
|
+
name: "jobFunction",
|
|
2468
|
+
label: formattedJobFunction
|
|
2469
|
+
},
|
|
2470
|
+
!!formattedLocation && {
|
|
2471
|
+
icon: "map-pin",
|
|
2472
|
+
name: "location",
|
|
2473
|
+
label: formattedLocation
|
|
2474
|
+
}
|
|
2475
|
+
].filter((t) => !!t);
|
|
2476
|
+
return /* @__PURE__ */ jsxs18(
|
|
2477
|
+
"div",
|
|
2478
|
+
{
|
|
2479
|
+
className: cn(
|
|
2480
|
+
"flex flex-col gap-10 pb-4",
|
|
2481
|
+
!standalone && "border-1 rounded-3xl border-grey-5"
|
|
2482
|
+
),
|
|
2483
|
+
children: [
|
|
2484
|
+
/* @__PURE__ */ jsx31(
|
|
2485
|
+
JobHeader,
|
|
2486
|
+
{
|
|
2487
|
+
title: job.title,
|
|
2488
|
+
bannerSrc,
|
|
2489
|
+
avatarName: job.hiringOrganization?.companyName,
|
|
2490
|
+
subtitles: [job.hiringOrganization?.companyName ?? "", `Posted ${formattedDate}`],
|
|
2491
|
+
actions,
|
|
2492
|
+
standalone,
|
|
2493
|
+
backFallbackHref: fallbackHref,
|
|
2494
|
+
tags
|
|
2495
|
+
}
|
|
2496
|
+
),
|
|
2497
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex flex-col gap-8 px-6", children: [
|
|
2498
|
+
/* @__PURE__ */ jsx31(JobDescription, { description: job.description }),
|
|
2499
|
+
/* @__PURE__ */ jsx31(
|
|
2500
|
+
CompanyTake,
|
|
2501
|
+
{
|
|
2502
|
+
avatarSrc,
|
|
2503
|
+
content: job.hiringOrganization?.companyNDG?.companyNDGTake
|
|
2504
|
+
}
|
|
2505
|
+
),
|
|
2506
|
+
/* @__PURE__ */ jsx31(
|
|
2507
|
+
CompanyInformation,
|
|
2508
|
+
{
|
|
2509
|
+
name: job.hiringOrganization?.companyName ?? "",
|
|
2510
|
+
how: job.hiringOrganization?.companyPhilosophy?.companyHow,
|
|
2511
|
+
mission: job.hiringOrganization?.companyPhilosophy?.mission,
|
|
2512
|
+
wow: job.hiringOrganization?.companyNDG?.companyWow,
|
|
2513
|
+
website: job.hiringOrganization?.companyWebsite
|
|
2514
|
+
}
|
|
2515
|
+
),
|
|
2516
|
+
/* @__PURE__ */ jsx31(
|
|
2517
|
+
CompanyBenefits,
|
|
2518
|
+
{
|
|
2519
|
+
benefits: job.hiringOrganization?.companyCareers?.companyBenefits?.map((b) => b.description).filter((d) => d !== void 0)
|
|
2520
|
+
}
|
|
2521
|
+
)
|
|
2522
|
+
] })
|
|
2523
|
+
]
|
|
2524
|
+
}
|
|
2525
|
+
);
|
|
2526
|
+
}
|
|
2527
|
+
|
|
2528
|
+
// src/types/data/job_posting_service_latest.ts
|
|
2529
|
+
var job_posting_service_latest_exports = {};
|
|
2530
|
+
__export(job_posting_service_latest_exports, {
|
|
2531
|
+
BestFitEnum: () => BestFitEnum,
|
|
2532
|
+
ClinicalLicenseEnum: () => ClinicalLicenseEnum,
|
|
2533
|
+
ClinicalSettingEnum: () => ClinicalSettingEnum,
|
|
2534
|
+
ClinicalSpecialtyEnum: () => ClinicalSpecialtyEnum,
|
|
2535
|
+
EmploymentLevelEnum: () => EmploymentLevelEnum,
|
|
2536
|
+
EmploymentTypeEnum: () => EmploymentTypeEnum,
|
|
2537
|
+
JobFunctionEnum: () => JobFunctionEnum,
|
|
2538
|
+
JobLocationTypeEnum: () => JobLocationTypeEnum,
|
|
2539
|
+
PublishStatusEnum: () => PublishStatusEnum2,
|
|
2540
|
+
ShiftEnum: () => ShiftEnum,
|
|
2541
|
+
TypeEnum: () => TypeEnum3,
|
|
2542
|
+
jobPostSchema: () => jobPostSchema
|
|
2543
|
+
});
|
|
2544
|
+
import { z as z3 } from "zod";
|
|
2545
|
+
|
|
2546
|
+
// src/types/data/company_service_latest.ts
|
|
2547
|
+
var company_service_latest_exports = {};
|
|
2548
|
+
__export(company_service_latest_exports, {
|
|
2549
|
+
CategoryEnum: () => CategoryEnum,
|
|
2550
|
+
OfficeTypeEnum: () => OfficeTypeEnum,
|
|
2551
|
+
PublishStatusEnum: () => PublishStatusEnum,
|
|
2552
|
+
TitleEnum: () => TitleEnum,
|
|
2553
|
+
TypeEnum: () => TypeEnum2,
|
|
2554
|
+
companyBenefitsSchema: () => companyBenefitsSchema,
|
|
2555
|
+
companyCareersPageSchema: () => companyCareersPageSchema,
|
|
2556
|
+
companyNdgSchema: () => companyNdgSchema,
|
|
2557
|
+
companyPhilosophySchema: () => companyPhilosophySchema,
|
|
2558
|
+
companySchema: () => companySchema,
|
|
2559
|
+
foundingInformationSchema: () => foundingInformationSchema,
|
|
2560
|
+
imageSchema: () => imageSchema,
|
|
2561
|
+
industrySchema: () => industrySchema,
|
|
2562
|
+
jobBoardSchema: () => jobBoardSchema,
|
|
2563
|
+
ngdMetadataSchema: () => ngdMetadataSchema,
|
|
2564
|
+
officeSchema: () => officeSchema,
|
|
2565
|
+
personSchema: () => personSchema,
|
|
2566
|
+
socialMediaSchema: () => socialMediaSchema
|
|
2567
|
+
});
|
|
2568
|
+
import { z as z2 } from "zod";
|
|
2569
|
+
var TypeEnum2 = z2.enum(["OFFICE"]);
|
|
2570
|
+
var CategoryEnum = z2.enum(["FINANCIAL", "HEALTH", "PROFESSIONAL_DEVELOPMENT", "WORK_LIFE_BALANCE"]);
|
|
2571
|
+
var TitleEnum = z2.enum(["DMD", "JD", "MBA", "MD", "MHA", "MPH", "PT", "PH_D", "RN"]);
|
|
2572
|
+
var PublishStatusEnum = z2.enum(["DRAFT", "IN_REVIEW", "PUBLISHED", "REMOVED"]);
|
|
2573
|
+
var OfficeTypeEnum = z2.enum(["BRANCH", "HEADQUARTERS", "SATELLITE"]);
|
|
2574
|
+
var imageSchema = z2.object({
|
|
2575
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2576
|
+
url: z2.string()
|
|
2577
|
+
});
|
|
2578
|
+
var socialMediaSchema = z2.object({
|
|
2579
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2580
|
+
url: z2.string().describe("The link to the social media platform"),
|
|
2581
|
+
type: z2.string().describe("The type of social media link")
|
|
2582
|
+
});
|
|
2583
|
+
var companyBenefitsSchema = z2.object({
|
|
2584
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2585
|
+
type: z2.string().describe("Document type used within sanity"),
|
|
2586
|
+
name: z2.string(),
|
|
2587
|
+
description: z2.optional(z2.string()),
|
|
2588
|
+
category: CategoryEnum
|
|
2589
|
+
});
|
|
2590
|
+
var industrySchema = z2.lazy(() => z2.object({
|
|
2591
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2592
|
+
type: z2.string().describe("Document type used within sanity"),
|
|
2593
|
+
name: z2.string(),
|
|
2594
|
+
description: z2.optional(z2.string()).describe("A brief description of the industry"),
|
|
2595
|
+
onetIndustryId: z2.optional(z2.string()).describe("ONET industry ID"),
|
|
2596
|
+
parent: z2.optional(industrySchema)
|
|
2597
|
+
}));
|
|
2598
|
+
var jobBoardSchema = z2.object({
|
|
2599
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2600
|
+
type: z2.string().describe("Document type used within sanity"),
|
|
2601
|
+
name: z2.string().describe("The name of the job board"),
|
|
2602
|
+
description: z2.string().describe("A brief description of the job board"),
|
|
2603
|
+
logo: z2.optional(imageSchema).describe("The logo of the job board"),
|
|
2604
|
+
baseUrl: z2.optional(z2.string()).describe("The base URL of the job board")
|
|
2605
|
+
});
|
|
2606
|
+
var personSchema = z2.object({
|
|
2607
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2608
|
+
type: z2.string().describe("Document type used within sanity"),
|
|
2609
|
+
firstName: z2.string().describe("The first name of the person"),
|
|
2610
|
+
lastName: z2.string().describe("The last name of the person"),
|
|
2611
|
+
title: z2.optional(z2.array(z2.string())).describe("The titles of the degree of the person"),
|
|
2612
|
+
slug: z2.string().describe("person slug - should be familyname-givenname-title(s)"),
|
|
2613
|
+
jobTitle: z2.optional(z2.string()).describe("The job title of the person"),
|
|
2614
|
+
isDoctor: z2.optional(z2.boolean()).describe("Is the person a doctor"),
|
|
2615
|
+
isMedical: z2.optional(z2.boolean()).describe("Are they of a medical background?"),
|
|
2616
|
+
isScientist: z2.optional(z2.boolean()).describe("Are they a scientist?"),
|
|
2617
|
+
image: z2.optional(imageSchema).describe("The image of the person"),
|
|
2618
|
+
email: z2.optional(z2.string()).describe("The email of the person"),
|
|
2619
|
+
socialMedia: z2.optional(z2.array(socialMediaSchema)).describe("The social media links of the person"),
|
|
2620
|
+
telephone: z2.optional(z2.string()).describe("The telephone number of the person"),
|
|
2621
|
+
url: z2.optional(z2.string()).describe("The URL of the person"),
|
|
2622
|
+
address: z2.optional(placeSchema).describe("The address of the person")
|
|
2623
|
+
});
|
|
2624
|
+
var companyCareersPageSchema = z2.object({
|
|
2625
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2626
|
+
companyCareersUrl: z2.string().describe("The URL of the company careers page"),
|
|
2627
|
+
companyJobBoard: z2.optional(jobBoardSchema),
|
|
2628
|
+
jobBoardSlug: z2.array(z2.string()),
|
|
2629
|
+
companyBenefits: z2.optional(z2.array(companyBenefitsSchema)).describe("What are the specific benefits of that company. The benefit is generic.")
|
|
2630
|
+
});
|
|
2631
|
+
var companyPhilosophySchema = z2.object({
|
|
2632
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2633
|
+
mission: z2.optional(z2.string()).describe("The mission statement of the company."),
|
|
2634
|
+
companyHow: z2.optional(z2.string()).describe("How does the company achieve its mission"),
|
|
2635
|
+
companyCulture: z2.optional(z2.array(z2.string())).describe("What are some of the culture aspects of this company?")
|
|
2636
|
+
});
|
|
2637
|
+
var companyNdgSchema = z2.object({
|
|
2638
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2639
|
+
companyWow: z2.optional(z2.string()).describe("What is the wow of this company?"),
|
|
2640
|
+
companyNDGTake: z2.optional(z2.string()).describe("What is the NDG POV on this company?"),
|
|
2641
|
+
// Manually edited due to a different naming convention
|
|
2642
|
+
companyBestFit: z2.optional(z2.array(z2.string())),
|
|
2643
|
+
companyInterests: z2.optional(z2.array(z2.string()))
|
|
2644
|
+
});
|
|
2645
|
+
var foundingInformationSchema = z2.object({
|
|
2646
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2647
|
+
foundedYear: z2.optional(z2.string()),
|
|
2648
|
+
foundingCountry: z2.optional(z2.string()),
|
|
2649
|
+
foundingCity: z2.optional(z2.string()),
|
|
2650
|
+
founders: z2.optional(z2.array(personSchema))
|
|
2651
|
+
});
|
|
2652
|
+
var ngdMetadataSchema = z2.object({
|
|
2653
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2654
|
+
lastScraped: z2.optional(z2.string()).describe("Date the last entity was scraped, if applicable"),
|
|
2655
|
+
scraperVersion: z2.optional(z2.string()),
|
|
2656
|
+
postProcessorVersion: z2.optional(z2.string()),
|
|
2657
|
+
uniqueRunId: z2.optional(z2.string()),
|
|
2658
|
+
postProcessorUniqueRunId: z2.optional(z2.string()),
|
|
2659
|
+
shouldThisDocumentBeScraped: z2.optional(z2.boolean())
|
|
2660
|
+
});
|
|
2661
|
+
var companySchema = z2.object({
|
|
2662
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2663
|
+
companyName: z2.string().describe("The name of the company"),
|
|
2664
|
+
slug: z2.string().describe("The NDG specific slug for a company."),
|
|
2665
|
+
type: z2.string().describe("Document type used within sanity"),
|
|
2666
|
+
logo: z2.optional(imageSchema).describe("The logo of the company"),
|
|
2667
|
+
companyWebsite: z2.optional(z2.string()).describe("The website of the company"),
|
|
2668
|
+
socialMedia: z2.optional(z2.array(socialMediaSchema)).describe("The social media links of the company"),
|
|
2669
|
+
brandColor: z2.optional(z2.string()).describe("The brand color of the company"),
|
|
2670
|
+
companyCareers: z2.optional(companyCareersPageSchema).describe("Career Specific Information for the company."),
|
|
2671
|
+
companyPhilosophy: z2.optional(companyPhilosophySchema).describe("Company mission,values and how the company achieves its mission."),
|
|
2672
|
+
companyNDG: z2.optional(companyNdgSchema).describe("Next Degree specific information for the company."),
|
|
2673
|
+
// Manually edited due to a different naming convention
|
|
2674
|
+
foundingInfo: z2.optional(foundingInformationSchema),
|
|
2675
|
+
headquartersLocation: z2.optional(placeSchema),
|
|
2676
|
+
employeeEstimate: z2.optional(z2.string()),
|
|
2677
|
+
publishStatus: z2.optional(z2.string()),
|
|
2678
|
+
ngdMetadata: z2.optional(ngdMetadataSchema)
|
|
2679
|
+
});
|
|
2680
|
+
var officeSchema = z2.object({
|
|
2681
|
+
version: z2.literal("1.0.0").default("1.0.0"),
|
|
2682
|
+
type: z2.string().describe("Document type used within sanity"),
|
|
2683
|
+
name: z2.string().describe("Name or nickname for the office (e.g., 'NYC HQ', 'West Coast Branch')"),
|
|
2684
|
+
officeType: OfficeTypeEnum,
|
|
2685
|
+
companyId: z2.optional(companySchema),
|
|
2686
|
+
geoLocation: z2.optional(placeSchema).describe("Geographical location details: coordinates + postal address"),
|
|
2687
|
+
createdAt: z2.optional(z2.string()),
|
|
2688
|
+
updatedAt: z2.optional(z2.string())
|
|
2689
|
+
});
|
|
2690
|
+
|
|
2691
|
+
// src/types/data/job_posting_service_latest.ts
|
|
2692
|
+
var TypeEnum3 = z3.enum(["JOB_POST"]);
|
|
2693
|
+
var JobLocationTypeEnum = z3.enum(["FLOAT", "HYBRID", "ONSITE", "REMOTE"]);
|
|
2694
|
+
var EmploymentTypeEnum = z3.enum(["CONTRACT", "FULL_TIME", "INTERNSHIP", "OTHER", "PART_TIME", "PER_DIEM", "TEMPORARY"]);
|
|
2695
|
+
var EmploymentLevelEnum = z3.enum(["DIRECTOR", "ENTRY_LEVEL", "EXECUTIVE", "EXPERIENCED", "INTERN", "MANAGER"]);
|
|
2696
|
+
var JobFunctionEnum = z3.enum(["CLINICAL_RESEARCH", "CUSTOMER_SUCCESS", "DATA_ANALYTICS", "FINANCE_AND_AUDIT", "MARKETING", "OPERATIONS", "PEOPLE_HUMAN_RESOURCES", "PRODUCT_AND_TECH", "QUALITY_ASSURANCE_AND_OUTCOMES", "SALES_AND_BUSINESS_DEVELOPMENT", "STRATEGY_AND_CONSULTING"]);
|
|
2697
|
+
var PublishStatusEnum2 = z3.enum(["DRAFT", "IN_REVIEW", "PUBLISHED", "REMOVED"]);
|
|
2698
|
+
var BestFitEnum = z3.enum(["DENTIST", "DIETICIAN", "DOULA", "MEDICAL_ASSISTANT", "MIDWIFE", "NURSE", "OCCUPATIONAL_THERAPIST", "PHARMACIST", "PHYSICAL_THERAPIST", "PHYSICIAN", "PHYSICIAN_ASSISTANT", "PSYCHOLOGIST", "RADIOLOGIST", "SOCIAL_WORKER", "SPEECH_LANGUAGE_PATHOLOGIST", "SURGEON"]);
|
|
2699
|
+
var ClinicalLicenseEnum = z3.enum(["CNA", "CNM", "CNS", "COTA", "CRNA", "LPN", "LVN", "NP", "OT", "PT", "PTA", "RN"]);
|
|
2700
|
+
var ShiftEnum = z3.enum(["DAY", "EIGHT_HOUR", "EVENING", "FLEXIBLE", "MID_SHIFT", "MONDAY_TO_FRIDAY", "NIGHT", "ON_CALL", "TEN_HOUR", "TWELVE_HOUR", "WEEKENDS"]);
|
|
2701
|
+
var ClinicalSettingEnum = z3.enum(["ACUTE_CARE", "AMBULATORY_SURGERY_CENTER", "CLINIC", "HOME_HEALTH", "HOSPITAL", "INPATIENT", "LONG_TERM_CARE", "MED_SPA", "NURSING_HOME", "OFFICE", "OUTPATIENT", "PRIVATE_PRACTICE", "REHAB_CENTER", "SCHOOL", "SKILLED_NURSING_FACILITY"]);
|
|
2702
|
+
var ClinicalSpecialtyEnum = z3.enum(["ANESTHESIOLOGY", "CARDIOLOGY", "CASE_MANAGEMENT", "CHRONIC_PAIN", "CLINICAL_ELECTROPHYSIOLOGY", "CRITICAL_AND_ACUTE_CARE", "DERMATOLOGY", "DIALYSIS", "EMERGENCY_MEDICINE", "ENDOCRINOLOGY", "ERGONOMICS", "FEEDING_EATING_AND_SWALLOWING", "GASTROENTEROLOGY", "GERIATRICS", "HAND_THERAPY", "HEMATOLOGY", "HOLISTIC_MEDICINE", "INFORMATICS", "INTERNAL_MEDICINE", "LABOR_AND_DELIVERY", "MANUAL_THERAPY", "MED_SURG", "MENTAL_HEALTH", "NEPHROLOGY", "NEUROLOGY", "ONCOLOGY", "ORTHOPEDICS", "OTOLARYNGOLOGY", "PEDIATRICS", "PHYSICAL_AND_REHABILITATION_MEDICINE", "PLASTIC_SURGERY", "PRIMARY_CARE", "PSYCHIATRY", "PULMONOLOGY", "RADIOLOGY", "SENSORY", "SPORTS", "SURGERY", "TRAUMA_MEDICINE", "URGENT_CARE", "UROLOGY", "VISION", "WOMENS_HEALTH", "WOUND_AND_BURN_CARE"]);
|
|
2703
|
+
var jobPostSchema = z3.object({
|
|
2704
|
+
version: z3.literal("1.0.0").default("1.0.0"),
|
|
2705
|
+
id: z3.string().describe("The NDG specific id for a job posting in form of ndg-<company_slug>-<unique-job-id>. Serves as unique identifier. Cannot be changed."),
|
|
2706
|
+
type: z3.string().describe("Document type used within sanity"),
|
|
2707
|
+
createdAt: z3.string().datetime().describe("Time document was created. Autoset by Sanity"),
|
|
2708
|
+
updatedAt: z3.string().datetime().describe("Time document was created. Autoset by Sanity"),
|
|
2709
|
+
dateAdded: z3.optional(z3.string().datetime()).describe("The date the job was added to the platform"),
|
|
2710
|
+
datePosted: z3.optional(z3.string().datetime()).describe("The date the job was published for public viewing"),
|
|
2711
|
+
dateRemoved: z3.optional(z3.string().datetime()).describe("The date the job was removed from public viewing"),
|
|
2712
|
+
validThrough: z3.optional(z3.string().datetime()).describe("The date the job posting is valid through. After this date it will be removed from public viewing"),
|
|
2713
|
+
vacancyCount: z3.optional(z3.number().int()).describe("The number of vacancies for a given job posting"),
|
|
2714
|
+
clientId: z3.string().describe("The ID assigned by the client to a job - normally the same as the GH / Lever / Ashby ID or internal ID"),
|
|
2715
|
+
url: z3.string().describe("The URL of the job to be displayed for users to apply with. Direct job link."),
|
|
2716
|
+
title: z3.string().describe("The title of the job post"),
|
|
2717
|
+
description: z3.string().describe("The description of the job post saved as markdown. Used for rendering the job description."),
|
|
2718
|
+
richTextDescription: z3.optional(z3.string()).describe("The description of the job post saved as rich text"),
|
|
2719
|
+
isClinical: z3.boolean().default(false).describe("Denotes if a job posting is clinical in nature or not. A role is clinical if it requires direct clinical patient care."),
|
|
2720
|
+
isRemote: z3.boolean().default(false).describe("Denotes if a job posting is remote in nature. For a posting to be 'remote' it must be 100% remote (e.g hybrid roles would denote this to false)."),
|
|
2721
|
+
isVerified: z3.boolean().default(false).describe("Denotes if a job posting has been manually verified - and thus ALL fields can be considered accurate. Can be used for DS training."),
|
|
2722
|
+
isDirectApply: z3.boolean().default(false).describe("Denotes if a job posting url is direct apply. To be direct apply a user must be able to apply to the role without logging in and under 2 clicks."),
|
|
2723
|
+
jobLocationType: z3.optional(z3.array(JobLocationTypeEnum)),
|
|
2724
|
+
employmentType: z3.optional(z3.array(EmploymentTypeEnum)),
|
|
2725
|
+
employmentLevel: z3.optional(EmploymentLevelEnum),
|
|
2726
|
+
jobFunction: z3.optional(JobFunctionEnum),
|
|
2727
|
+
publishStatus: PublishStatusEnum2,
|
|
2728
|
+
bestFit: z3.optional(z3.array(BestFitEnum)),
|
|
2729
|
+
clinicalLicense: z3.optional(z3.array(ClinicalLicenseEnum)),
|
|
2730
|
+
shift: z3.optional(z3.array(ShiftEnum)),
|
|
2731
|
+
clinicalSetting: z3.optional(z3.array(ClinicalSettingEnum)),
|
|
2732
|
+
clinicalSpecialty: z3.optional(z3.array(ClinicalSpecialtyEnum)),
|
|
2733
|
+
estimatedSalary: z3.optional(monetaryAmountSchema).describe("Determines the estimated salary for a given job posting"),
|
|
2734
|
+
jobLocation: z3.optional(postalAddressSchema).describe("Determines the primary physical location where the job is to be performed. For remote roles, use applicantLocationRequirements"),
|
|
2735
|
+
applicableOffices: z3.optional(z3.array(officeSchema)).describe("The physical location(s) in which employees may be located for to be eligible for the job. Used in conjunction with job_location_type."),
|
|
2736
|
+
applicantLocationRequirements: z3.optional(z3.array(placeSchema)).describe("The geographic location(s) in which employees may be located for to be eligible for the job. The job description must clearly state that the applicant may be located in certain geographical location(s). This property is required if applicants may be located in one or more geographic locations and the job is 100% remote."),
|
|
2737
|
+
hiringOrganization: z3.optional(companySchema).describe("The organization that is hiring for the role")
|
|
2738
|
+
});
|
|
1314
2739
|
export {
|
|
2740
|
+
Avatar,
|
|
2741
|
+
BackButton,
|
|
1315
2742
|
Badge,
|
|
1316
2743
|
Button,
|
|
1317
2744
|
Checkbox_default as Checkbox,
|
|
1318
2745
|
Chip_default as Chip,
|
|
1319
2746
|
Combobox,
|
|
2747
|
+
CompanyBenefits,
|
|
2748
|
+
CompanyInformation,
|
|
2749
|
+
company_service_latest_exports as CompanyService,
|
|
2750
|
+
CompanyTake,
|
|
1320
2751
|
Counter,
|
|
2752
|
+
Icon,
|
|
1321
2753
|
Input_default as Input,
|
|
2754
|
+
JobDescription,
|
|
2755
|
+
JobHeader,
|
|
2756
|
+
JobPost,
|
|
2757
|
+
job_posting_service_latest_exports as JobPostService,
|
|
1322
2758
|
Label_default as Label,
|
|
2759
|
+
LinkButton,
|
|
1323
2760
|
ListItem_default as ListItem,
|
|
1324
2761
|
MapComponent_default as MapComponent,
|
|
1325
2762
|
PlacesQueryInput_default as PlacesQueryInput,
|
|
2763
|
+
ReadMore,
|
|
1326
2764
|
Select_default as Select,
|
|
2765
|
+
shared_pickle_output_latest_exports as SharedService,
|
|
2766
|
+
WindowHistoryProvider,
|
|
1327
2767
|
cn,
|
|
1328
|
-
fetchLocation
|
|
2768
|
+
fetchLocation,
|
|
2769
|
+
useDisplayText,
|
|
2770
|
+
useWindowHistory
|
|
1329
2771
|
};
|
|
1330
2772
|
//# sourceMappingURL=index.js.map
|