@inploi/plugin-job-search 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cdn/index.js +2707 -7
- package/cdn/style.css +1 -1
- package/dist/components/filter-content.active.d.ts +3 -4
- package/dist/components/filter-section.d.ts +4 -2
- package/dist/components/filter.d.ts +3 -60
- package/dist/components/geo-search.d.ts +12 -1
- package/dist/components/icon.d.ts +2 -0
- package/dist/components/job-card.d.ts +2 -1
- package/dist/components/map.d.ts +12 -0
- package/dist/components/results-list.d.ts +23 -0
- package/dist/components/results-map.d.ts +19 -0
- package/dist/components/{results-section.d.ts → results.d.ts} +5 -3
- package/dist/components/view-switch.d.ts +6 -0
- package/dist/index.cjs +2 -5
- package/dist/index.js +991 -1051
- package/dist/job-search.api.d.ts +467 -2
- package/dist/job-search.d.ts +12 -1
- package/dist/job-search.schemas.d.ts +45 -1
- package/dist/lib/i18n.d.ts +42 -6
- package/dist/map-0adad3f3.cjs +2661 -0
- package/dist/map-bbae3d5f.js +36392 -0
- package/dist/mocks/handlers.d.ts +11 -0
- package/dist/style/theme.d.ts +4 -0
- package/dist/style/tokens.d.ts +2 -3
- package/dist/style.css +1 -1
- package/dist/utils-42905933.js +7036 -0
- package/dist/utils-72219653.cjs +60 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +1 -1
- package/package.json +17 -15
- package/dist/components/current-value-tag.d.ts +0 -10
- package/dist/components/mode-switch.d.ts +0 -9
- package/dist/utils-1b5170d4.js +0 -3870
- package/dist/utils-80049d4b.cjs +0 -17
package/dist/job-search.api.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ApiClient, Logger } from '@inploi/sdk';
|
|
2
2
|
import { SWRResponse } from 'swr';
|
|
3
3
|
import { Input, Output } from 'valibot';
|
|
4
|
+
import { GeoBounds } from './components/geo-search';
|
|
4
5
|
import { JobSearchState } from './components/job-search';
|
|
5
6
|
import { TFunction } from './lib/i18n';
|
|
6
7
|
|
|
@@ -19,7 +20,7 @@ declare const getJobSearchResponseSchema: (t: import('@inploi/i18n/translation')
|
|
|
19
20
|
readonly clear: "Clear";
|
|
20
21
|
readonly selected: "selected";
|
|
21
22
|
readonly done: "Done";
|
|
22
|
-
readonly
|
|
23
|
+
readonly close: "Close";
|
|
23
24
|
readonly new: "NEW";
|
|
24
25
|
readonly posted: "Posted";
|
|
25
26
|
readonly retry: "Retry";
|
|
@@ -51,6 +52,12 @@ declare const getJobSearchResponseSchema: (t: import('@inploi/i18n/translation')
|
|
|
51
52
|
readonly geo_range_label: "Within";
|
|
52
53
|
readonly geo_suggestions_error: "Could not get the suggested locations.";
|
|
53
54
|
readonly feedback: "How was your search experience?";
|
|
55
|
+
readonly list: "List";
|
|
56
|
+
readonly map: "Map";
|
|
57
|
+
readonly loading_jobs: "Loading jobs…";
|
|
58
|
+
readonly map_jobs_error: "We’re having trouble loading jobs in the area";
|
|
59
|
+
readonly map_has_more_title: "Not showing all the jobs in this area";
|
|
60
|
+
readonly map_has_more_description: "Zoom in to refine your search further";
|
|
54
61
|
}>) => import('valibot').SchemaWithTransform<import('valibot').ObjectSchema<{
|
|
55
62
|
data: import('valibot').ArraySchema<import('valibot').SchemaWithTransform<import('valibot').ObjectSchema<{
|
|
56
63
|
id: import('valibot').NumberSchema<number>;
|
|
@@ -82,6 +89,19 @@ declare const getJobSearchResponseSchema: (t: import('@inploi/i18n/translation')
|
|
|
82
89
|
city: import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>;
|
|
83
90
|
country: import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>;
|
|
84
91
|
vector_distance: import('valibot').OptionalSchema<import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>, undefined, string | null | undefined>;
|
|
92
|
+
coordinates: import('valibot').OptionalSchema<import('valibot').NullableSchema<import('valibot').ObjectSchema<{
|
|
93
|
+
lat: import('valibot').NumberSchema<number>;
|
|
94
|
+
lng: import('valibot').NumberSchema<number>;
|
|
95
|
+
}, undefined, {
|
|
96
|
+
lat: number;
|
|
97
|
+
lng: number;
|
|
98
|
+
}>, undefined, {
|
|
99
|
+
lat: number;
|
|
100
|
+
lng: number;
|
|
101
|
+
} | null>, undefined, {
|
|
102
|
+
lat: number;
|
|
103
|
+
lng: number;
|
|
104
|
+
} | null | undefined>;
|
|
85
105
|
}, undefined, {
|
|
86
106
|
id: number;
|
|
87
107
|
company_name: string;
|
|
@@ -110,6 +130,10 @@ declare const getJobSearchResponseSchema: (t: import('@inploi/i18n/translation')
|
|
|
110
130
|
skills?: string | undefined;
|
|
111
131
|
town?: string | undefined;
|
|
112
132
|
vector_distance?: string | null | undefined;
|
|
133
|
+
coordinates?: {
|
|
134
|
+
lat: number;
|
|
135
|
+
lng: number;
|
|
136
|
+
} | null | undefined;
|
|
113
137
|
}>, {
|
|
114
138
|
id: number;
|
|
115
139
|
createdAt: string | null;
|
|
@@ -156,6 +180,10 @@ declare const getJobSearchResponseSchema: (t: import('@inploi/i18n/translation')
|
|
|
156
180
|
skills?: string | undefined;
|
|
157
181
|
town?: string | undefined;
|
|
158
182
|
vector_distance?: string | null | undefined;
|
|
183
|
+
coordinates?: {
|
|
184
|
+
lat: number;
|
|
185
|
+
lng: number;
|
|
186
|
+
} | null | undefined;
|
|
159
187
|
};
|
|
160
188
|
match: string | null;
|
|
161
189
|
}>, {
|
|
@@ -204,6 +232,10 @@ declare const getJobSearchResponseSchema: (t: import('@inploi/i18n/translation')
|
|
|
204
232
|
skills?: string | undefined;
|
|
205
233
|
town?: string | undefined;
|
|
206
234
|
vector_distance?: string | null | undefined;
|
|
235
|
+
coordinates?: {
|
|
236
|
+
lat: number;
|
|
237
|
+
lng: number;
|
|
238
|
+
} | null | undefined;
|
|
207
239
|
};
|
|
208
240
|
match: string | null;
|
|
209
241
|
}[]>;
|
|
@@ -265,6 +297,10 @@ declare const getJobSearchResponseSchema: (t: import('@inploi/i18n/translation')
|
|
|
265
297
|
skills?: string | undefined;
|
|
266
298
|
town?: string | undefined;
|
|
267
299
|
vector_distance?: string | null | undefined;
|
|
300
|
+
coordinates?: {
|
|
301
|
+
lat: number;
|
|
302
|
+
lng: number;
|
|
303
|
+
} | null | undefined;
|
|
268
304
|
};
|
|
269
305
|
match: string | null;
|
|
270
306
|
}[];
|
|
@@ -327,6 +363,10 @@ declare const getJobSearchResponseSchema: (t: import('@inploi/i18n/translation')
|
|
|
327
363
|
skills?: string | undefined;
|
|
328
364
|
town?: string | undefined;
|
|
329
365
|
vector_distance?: string | null | undefined;
|
|
366
|
+
coordinates?: {
|
|
367
|
+
lat: number;
|
|
368
|
+
lng: number;
|
|
369
|
+
} | null | undefined;
|
|
330
370
|
};
|
|
331
371
|
match: string | null;
|
|
332
372
|
}[];
|
|
@@ -339,7 +379,7 @@ type GeoSearchApiParams = {
|
|
|
339
379
|
lng?: number;
|
|
340
380
|
radius?: number;
|
|
341
381
|
type?: 'provided' | 'ip';
|
|
342
|
-
};
|
|
382
|
+
} | GeoBounds;
|
|
343
383
|
export declare const filtersToPayload: (state: JobSearchState) => Record<string, string | string[] | GeoSearchApiParams | null | undefined>;
|
|
344
384
|
export declare const getAvailableFilters: ({ apiClient, state, logger, signal, }: {
|
|
345
385
|
apiClient: ApiClient;
|
|
@@ -414,11 +454,436 @@ export declare const getJobSearchResults: ({ apiClient, logger, signal, state, p
|
|
|
414
454
|
skills?: string | undefined;
|
|
415
455
|
town?: string | undefined;
|
|
416
456
|
vector_distance?: string | null | undefined;
|
|
457
|
+
coordinates?: {
|
|
458
|
+
lat: number;
|
|
459
|
+
lng: number;
|
|
460
|
+
} | null | undefined;
|
|
417
461
|
};
|
|
418
462
|
match: string | null;
|
|
419
463
|
}[];
|
|
420
464
|
}>;
|
|
421
465
|
export type GetJobSearchResponse = Awaited<ReturnType<typeof getJobSearchResults>>;
|
|
466
|
+
declare const getJobSearchMapSchema: (t: import('@inploi/i18n/translation').TFn<{
|
|
467
|
+
readonly type_to_search_jobs: "Type to search jobs";
|
|
468
|
+
readonly type_to_search: "Type to search";
|
|
469
|
+
readonly jobs_found: {
|
|
470
|
+
readonly one: "{{count}} job found";
|
|
471
|
+
readonly other: "{{count}} jobs found";
|
|
472
|
+
};
|
|
473
|
+
readonly no_jobs_found: "No jobs found";
|
|
474
|
+
readonly no_jobs_found_description: "We could not find any jobs matching your filtering criteria.";
|
|
475
|
+
readonly jobs_loading_error: "We’re having trouble loading available jobs.";
|
|
476
|
+
readonly filters_loading_error: "We’re having trouble loading available filters.";
|
|
477
|
+
readonly no_filter_options_available: "No filter options available.";
|
|
478
|
+
readonly clear: "Clear";
|
|
479
|
+
readonly selected: "selected";
|
|
480
|
+
readonly done: "Done";
|
|
481
|
+
readonly close: "Close";
|
|
482
|
+
readonly new: "NEW";
|
|
483
|
+
readonly posted: "Posted";
|
|
484
|
+
readonly retry: "Retry";
|
|
485
|
+
readonly widget_unavailable: "Sorry, this widget is unavailable at the moment.";
|
|
486
|
+
readonly load_more_count: "Load {{count}} more";
|
|
487
|
+
readonly of_remaining_count: "of {{count}} remaining";
|
|
488
|
+
readonly today: "today";
|
|
489
|
+
readonly over_30_days_ago: "over 30 days ago";
|
|
490
|
+
readonly in_over_30_days: "in over 30 days";
|
|
491
|
+
readonly up_to: "Up to";
|
|
492
|
+
readonly from: "From";
|
|
493
|
+
readonly invalid_salary: "Invalid salary";
|
|
494
|
+
readonly competitive: "Competitive";
|
|
495
|
+
readonly natural_language_input: "Type anything";
|
|
496
|
+
readonly great_match: "Great match";
|
|
497
|
+
readonly advanced_mode: "Filters";
|
|
498
|
+
readonly simple_mode: "Hide filters";
|
|
499
|
+
readonly ai_disclaimer: "Results may not be perfect. AI-powered search can occasionally suggest unrelated content.";
|
|
500
|
+
readonly geo_error_timeout: "Timed out. Please type your location manually.";
|
|
501
|
+
readonly geo_error_permission_denied: "Please allow location access to use this feature.";
|
|
502
|
+
readonly geo_error_position_unavailable: "Could not locate you. Please type your location manually.";
|
|
503
|
+
readonly geo_my_location: "My location";
|
|
504
|
+
readonly geo_locating: "Locating you...";
|
|
505
|
+
readonly geo_search_placeholder: "Search for a location";
|
|
506
|
+
readonly geo_clear_search: "Clear location search";
|
|
507
|
+
readonly location_provided: "Provided location";
|
|
508
|
+
readonly search_label: "What";
|
|
509
|
+
readonly geo_label: "Where";
|
|
510
|
+
readonly geo_range_label: "Within";
|
|
511
|
+
readonly geo_suggestions_error: "Could not get the suggested locations.";
|
|
512
|
+
readonly feedback: "How was your search experience?";
|
|
513
|
+
readonly list: "List";
|
|
514
|
+
readonly map: "Map";
|
|
515
|
+
readonly loading_jobs: "Loading jobs…";
|
|
516
|
+
readonly map_jobs_error: "We’re having trouble loading jobs in the area";
|
|
517
|
+
readonly map_has_more_title: "Not showing all the jobs in this area";
|
|
518
|
+
readonly map_has_more_description: "Zoom in to refine your search further";
|
|
519
|
+
}>) => import('valibot').SchemaWithTransform<import('valibot').ObjectSchema<{
|
|
520
|
+
data: import('valibot').ArraySchema<import('valibot').SchemaWithTransform<import('valibot').ObjectSchema<{
|
|
521
|
+
id: import('valibot').NumberSchema<number>;
|
|
522
|
+
company_name: import('valibot').StringSchema<string>;
|
|
523
|
+
company_logo: import('valibot').NullableSchema<import('valibot').OptionalSchema<import('valibot').StringSchema<string>, undefined, string | undefined>, undefined, string | undefined>;
|
|
524
|
+
employment_type: import('valibot').StringSchema<string>;
|
|
525
|
+
location_type: import('valibot').UnionSchema<[import('valibot').LiteralSchema<"LOCATION", "LOCATION">, import('valibot').LiteralSchema<"REMOTE", "REMOTE">, import('valibot').LiteralSchema<"HYBRID", "HYBRID">], "LOCATION" | "REMOTE" | "HYBRID">;
|
|
526
|
+
pay_type: import('valibot').NullableSchema<import('valibot').UnionSchema<[import('valibot').LiteralSchema<"ANNUALLY", "ANNUALLY">, import('valibot').LiteralSchema<"HOURLY", "HOURLY">, import('valibot').LiteralSchema<"MONTHLY", "MONTHLY">, import('valibot').LiteralSchema<"WEEKLY", "WEEKLY">, import('valibot').LiteralSchema<"DAILY", "DAILY">], "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY">, undefined, "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY" | null>;
|
|
527
|
+
pay_currency: import('valibot').StringSchema<string>;
|
|
528
|
+
pay_mask: import('valibot').BooleanSchema<boolean>;
|
|
529
|
+
pay_display: import('valibot').BooleanSchema<boolean>;
|
|
530
|
+
pay: import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>;
|
|
531
|
+
pay_min: import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>;
|
|
532
|
+
pay_max: import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>;
|
|
533
|
+
description: import('valibot').StringSchema<string>;
|
|
534
|
+
title: import('valibot').StringSchema<string>;
|
|
535
|
+
contract_type: import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>;
|
|
536
|
+
created_at: import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>;
|
|
537
|
+
custom_data: import('valibot').NullableSchema<import('valibot').RecordSchema<import('valibot').StringSchema<string>, import('valibot').AnySchema<any>, {
|
|
538
|
+
[x: string]: any;
|
|
539
|
+
}>, undefined, {
|
|
540
|
+
[x: string]: any;
|
|
541
|
+
} | null>;
|
|
542
|
+
href: import('valibot').StringSchema<string>;
|
|
543
|
+
industry: import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>;
|
|
544
|
+
category: import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>;
|
|
545
|
+
skills: import('valibot').OptionalSchema<import('valibot').StringSchema<string>, undefined, string | undefined>;
|
|
546
|
+
town: import('valibot').OptionalSchema<import('valibot').StringSchema<string>, undefined, string | undefined>;
|
|
547
|
+
city: import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>;
|
|
548
|
+
country: import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>;
|
|
549
|
+
vector_distance: import('valibot').OptionalSchema<import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>, undefined, string | null | undefined>;
|
|
550
|
+
coordinates: import('valibot').OptionalSchema<import('valibot').NullableSchema<import('valibot').ObjectSchema<{
|
|
551
|
+
lat: import('valibot').NumberSchema<number>;
|
|
552
|
+
lng: import('valibot').NumberSchema<number>;
|
|
553
|
+
}, undefined, {
|
|
554
|
+
lat: number;
|
|
555
|
+
lng: number;
|
|
556
|
+
}>, undefined, {
|
|
557
|
+
lat: number;
|
|
558
|
+
lng: number;
|
|
559
|
+
} | null>, undefined, {
|
|
560
|
+
lat: number;
|
|
561
|
+
lng: number;
|
|
562
|
+
} | null | undefined>;
|
|
563
|
+
}, undefined, {
|
|
564
|
+
id: number;
|
|
565
|
+
company_name: string;
|
|
566
|
+
employment_type: string;
|
|
567
|
+
location_type: "LOCATION" | "REMOTE" | "HYBRID";
|
|
568
|
+
pay_type: "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY" | null;
|
|
569
|
+
pay_currency: string;
|
|
570
|
+
pay_mask: boolean;
|
|
571
|
+
pay_display: boolean;
|
|
572
|
+
pay: string | null;
|
|
573
|
+
pay_min: string | null;
|
|
574
|
+
pay_max: string | null;
|
|
575
|
+
description: string;
|
|
576
|
+
title: string;
|
|
577
|
+
contract_type: string | null;
|
|
578
|
+
created_at: string | null;
|
|
579
|
+
custom_data: {
|
|
580
|
+
[x: string]: any;
|
|
581
|
+
} | null;
|
|
582
|
+
href: string;
|
|
583
|
+
industry: string | null;
|
|
584
|
+
category: string | null;
|
|
585
|
+
city: string | null;
|
|
586
|
+
country: string | null;
|
|
587
|
+
company_logo?: string | undefined;
|
|
588
|
+
skills?: string | undefined;
|
|
589
|
+
town?: string | undefined;
|
|
590
|
+
vector_distance?: string | null | undefined;
|
|
591
|
+
coordinates?: {
|
|
592
|
+
lat: number;
|
|
593
|
+
lng: number;
|
|
594
|
+
} | null | undefined;
|
|
595
|
+
}>, {
|
|
596
|
+
id: number;
|
|
597
|
+
createdAt: string | null;
|
|
598
|
+
company: {
|
|
599
|
+
name: string;
|
|
600
|
+
logo: string | null;
|
|
601
|
+
};
|
|
602
|
+
employmentType: string;
|
|
603
|
+
locationType: "LOCATION" | "REMOTE" | "HYBRID";
|
|
604
|
+
pay: string | null;
|
|
605
|
+
description: string;
|
|
606
|
+
title: string;
|
|
607
|
+
contractType: string | null;
|
|
608
|
+
href: string;
|
|
609
|
+
relativePostedDate: string;
|
|
610
|
+
customData: {
|
|
611
|
+
[x: string]: any;
|
|
612
|
+
} | null;
|
|
613
|
+
raw: {
|
|
614
|
+
id: number;
|
|
615
|
+
company_name: string;
|
|
616
|
+
employment_type: string;
|
|
617
|
+
location_type: "LOCATION" | "REMOTE" | "HYBRID";
|
|
618
|
+
pay_type: "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY" | null;
|
|
619
|
+
pay_currency: string;
|
|
620
|
+
pay_mask: boolean;
|
|
621
|
+
pay_display: boolean;
|
|
622
|
+
pay: string | null;
|
|
623
|
+
pay_min: string | null;
|
|
624
|
+
pay_max: string | null;
|
|
625
|
+
description: string;
|
|
626
|
+
title: string;
|
|
627
|
+
contract_type: string | null;
|
|
628
|
+
created_at: string | null;
|
|
629
|
+
custom_data: {
|
|
630
|
+
[x: string]: any;
|
|
631
|
+
} | null;
|
|
632
|
+
href: string;
|
|
633
|
+
industry: string | null;
|
|
634
|
+
category: string | null;
|
|
635
|
+
city: string | null;
|
|
636
|
+
country: string | null;
|
|
637
|
+
company_logo?: string | undefined;
|
|
638
|
+
skills?: string | undefined;
|
|
639
|
+
town?: string | undefined;
|
|
640
|
+
vector_distance?: string | null | undefined;
|
|
641
|
+
coordinates?: {
|
|
642
|
+
lat: number;
|
|
643
|
+
lng: number;
|
|
644
|
+
} | null | undefined;
|
|
645
|
+
};
|
|
646
|
+
match: string | null;
|
|
647
|
+
}>, {
|
|
648
|
+
id: number;
|
|
649
|
+
createdAt: string | null;
|
|
650
|
+
company: {
|
|
651
|
+
name: string;
|
|
652
|
+
logo: string | null;
|
|
653
|
+
};
|
|
654
|
+
employmentType: string;
|
|
655
|
+
locationType: "LOCATION" | "REMOTE" | "HYBRID";
|
|
656
|
+
pay: string | null;
|
|
657
|
+
description: string;
|
|
658
|
+
title: string;
|
|
659
|
+
contractType: string | null;
|
|
660
|
+
href: string;
|
|
661
|
+
relativePostedDate: string;
|
|
662
|
+
customData: {
|
|
663
|
+
[x: string]: any;
|
|
664
|
+
} | null;
|
|
665
|
+
raw: {
|
|
666
|
+
id: number;
|
|
667
|
+
company_name: string;
|
|
668
|
+
employment_type: string;
|
|
669
|
+
location_type: "LOCATION" | "REMOTE" | "HYBRID";
|
|
670
|
+
pay_type: "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY" | null;
|
|
671
|
+
pay_currency: string;
|
|
672
|
+
pay_mask: boolean;
|
|
673
|
+
pay_display: boolean;
|
|
674
|
+
pay: string | null;
|
|
675
|
+
pay_min: string | null;
|
|
676
|
+
pay_max: string | null;
|
|
677
|
+
description: string;
|
|
678
|
+
title: string;
|
|
679
|
+
contract_type: string | null;
|
|
680
|
+
created_at: string | null;
|
|
681
|
+
custom_data: {
|
|
682
|
+
[x: string]: any;
|
|
683
|
+
} | null;
|
|
684
|
+
href: string;
|
|
685
|
+
industry: string | null;
|
|
686
|
+
category: string | null;
|
|
687
|
+
city: string | null;
|
|
688
|
+
country: string | null;
|
|
689
|
+
company_logo?: string | undefined;
|
|
690
|
+
skills?: string | undefined;
|
|
691
|
+
town?: string | undefined;
|
|
692
|
+
vector_distance?: string | null | undefined;
|
|
693
|
+
coordinates?: {
|
|
694
|
+
lat: number;
|
|
695
|
+
lng: number;
|
|
696
|
+
} | null | undefined;
|
|
697
|
+
};
|
|
698
|
+
match: string | null;
|
|
699
|
+
}[]>;
|
|
700
|
+
pagination: import('valibot').ObjectSchema<{
|
|
701
|
+
has_more: import('valibot').BooleanSchema<boolean>;
|
|
702
|
+
}, undefined, {
|
|
703
|
+
has_more: boolean;
|
|
704
|
+
}>;
|
|
705
|
+
}, undefined, {
|
|
706
|
+
data: {
|
|
707
|
+
id: number;
|
|
708
|
+
createdAt: string | null;
|
|
709
|
+
company: {
|
|
710
|
+
name: string;
|
|
711
|
+
logo: string | null;
|
|
712
|
+
};
|
|
713
|
+
employmentType: string;
|
|
714
|
+
locationType: "LOCATION" | "REMOTE" | "HYBRID";
|
|
715
|
+
pay: string | null;
|
|
716
|
+
description: string;
|
|
717
|
+
title: string;
|
|
718
|
+
contractType: string | null;
|
|
719
|
+
href: string;
|
|
720
|
+
relativePostedDate: string;
|
|
721
|
+
customData: {
|
|
722
|
+
[x: string]: any;
|
|
723
|
+
} | null;
|
|
724
|
+
raw: {
|
|
725
|
+
id: number;
|
|
726
|
+
company_name: string;
|
|
727
|
+
employment_type: string;
|
|
728
|
+
location_type: "LOCATION" | "REMOTE" | "HYBRID";
|
|
729
|
+
pay_type: "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY" | null;
|
|
730
|
+
pay_currency: string;
|
|
731
|
+
pay_mask: boolean;
|
|
732
|
+
pay_display: boolean;
|
|
733
|
+
pay: string | null;
|
|
734
|
+
pay_min: string | null;
|
|
735
|
+
pay_max: string | null;
|
|
736
|
+
description: string;
|
|
737
|
+
title: string;
|
|
738
|
+
contract_type: string | null;
|
|
739
|
+
created_at: string | null;
|
|
740
|
+
custom_data: {
|
|
741
|
+
[x: string]: any;
|
|
742
|
+
} | null;
|
|
743
|
+
href: string;
|
|
744
|
+
industry: string | null;
|
|
745
|
+
category: string | null;
|
|
746
|
+
city: string | null;
|
|
747
|
+
country: string | null;
|
|
748
|
+
company_logo?: string | undefined;
|
|
749
|
+
skills?: string | undefined;
|
|
750
|
+
town?: string | undefined;
|
|
751
|
+
vector_distance?: string | null | undefined;
|
|
752
|
+
coordinates?: {
|
|
753
|
+
lat: number;
|
|
754
|
+
lng: number;
|
|
755
|
+
} | null | undefined;
|
|
756
|
+
};
|
|
757
|
+
match: string | null;
|
|
758
|
+
}[];
|
|
759
|
+
pagination: {
|
|
760
|
+
has_more: boolean;
|
|
761
|
+
};
|
|
762
|
+
}>, {
|
|
763
|
+
results: {
|
|
764
|
+
id: number;
|
|
765
|
+
createdAt: string | null;
|
|
766
|
+
company: {
|
|
767
|
+
name: string;
|
|
768
|
+
logo: string | null;
|
|
769
|
+
};
|
|
770
|
+
employmentType: string;
|
|
771
|
+
locationType: "LOCATION" | "REMOTE" | "HYBRID";
|
|
772
|
+
pay: string | null;
|
|
773
|
+
description: string;
|
|
774
|
+
title: string;
|
|
775
|
+
contractType: string | null;
|
|
776
|
+
href: string;
|
|
777
|
+
relativePostedDate: string;
|
|
778
|
+
customData: {
|
|
779
|
+
[x: string]: any;
|
|
780
|
+
} | null;
|
|
781
|
+
raw: {
|
|
782
|
+
id: number;
|
|
783
|
+
company_name: string;
|
|
784
|
+
employment_type: string;
|
|
785
|
+
location_type: "LOCATION" | "REMOTE" | "HYBRID";
|
|
786
|
+
pay_type: "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY" | null;
|
|
787
|
+
pay_currency: string;
|
|
788
|
+
pay_mask: boolean;
|
|
789
|
+
pay_display: boolean;
|
|
790
|
+
pay: string | null;
|
|
791
|
+
pay_min: string | null;
|
|
792
|
+
pay_max: string | null;
|
|
793
|
+
description: string;
|
|
794
|
+
title: string;
|
|
795
|
+
contract_type: string | null;
|
|
796
|
+
created_at: string | null;
|
|
797
|
+
custom_data: {
|
|
798
|
+
[x: string]: any;
|
|
799
|
+
} | null;
|
|
800
|
+
href: string;
|
|
801
|
+
industry: string | null;
|
|
802
|
+
category: string | null;
|
|
803
|
+
city: string | null;
|
|
804
|
+
country: string | null;
|
|
805
|
+
company_logo?: string | undefined;
|
|
806
|
+
skills?: string | undefined;
|
|
807
|
+
town?: string | undefined;
|
|
808
|
+
vector_distance?: string | null | undefined;
|
|
809
|
+
coordinates?: {
|
|
810
|
+
lat: number;
|
|
811
|
+
lng: number;
|
|
812
|
+
} | null | undefined;
|
|
813
|
+
};
|
|
814
|
+
match: string | null;
|
|
815
|
+
}[];
|
|
816
|
+
pagination: {
|
|
817
|
+
has_more: boolean;
|
|
818
|
+
};
|
|
819
|
+
}>;
|
|
820
|
+
export type JobSearchMapPayloadInput = Input<ReturnType<typeof getJobSearchMapSchema>>;
|
|
821
|
+
export type JobSearchMapPayloadOutput = Output<ReturnType<typeof getJobSearchMapSchema>>;
|
|
822
|
+
export declare const getJobSearchMapResults: ({ apiClient, logger, signal, state, t, }: {
|
|
823
|
+
apiClient: ApiClient;
|
|
824
|
+
logger: Logger;
|
|
825
|
+
signal?: AbortSignal;
|
|
826
|
+
state: JobSearchState;
|
|
827
|
+
t: TFunction;
|
|
828
|
+
}) => Promise<{
|
|
829
|
+
results: {
|
|
830
|
+
id: number;
|
|
831
|
+
createdAt: string | null;
|
|
832
|
+
company: {
|
|
833
|
+
name: string;
|
|
834
|
+
logo: string | null;
|
|
835
|
+
};
|
|
836
|
+
employmentType: string;
|
|
837
|
+
locationType: "LOCATION" | "REMOTE" | "HYBRID";
|
|
838
|
+
pay: string | null;
|
|
839
|
+
description: string;
|
|
840
|
+
title: string;
|
|
841
|
+
contractType: string | null;
|
|
842
|
+
href: string;
|
|
843
|
+
relativePostedDate: string;
|
|
844
|
+
customData: {
|
|
845
|
+
[x: string]: any;
|
|
846
|
+
} | null;
|
|
847
|
+
raw: {
|
|
848
|
+
id: number;
|
|
849
|
+
company_name: string;
|
|
850
|
+
employment_type: string;
|
|
851
|
+
location_type: "LOCATION" | "REMOTE" | "HYBRID";
|
|
852
|
+
pay_type: "ANNUALLY" | "HOURLY" | "MONTHLY" | "WEEKLY" | "DAILY" | null;
|
|
853
|
+
pay_currency: string;
|
|
854
|
+
pay_mask: boolean;
|
|
855
|
+
pay_display: boolean;
|
|
856
|
+
pay: string | null;
|
|
857
|
+
pay_min: string | null;
|
|
858
|
+
pay_max: string | null;
|
|
859
|
+
description: string;
|
|
860
|
+
title: string;
|
|
861
|
+
contract_type: string | null;
|
|
862
|
+
created_at: string | null;
|
|
863
|
+
custom_data: {
|
|
864
|
+
[x: string]: any;
|
|
865
|
+
} | null;
|
|
866
|
+
href: string;
|
|
867
|
+
industry: string | null;
|
|
868
|
+
category: string | null;
|
|
869
|
+
city: string | null;
|
|
870
|
+
country: string | null;
|
|
871
|
+
company_logo?: string | undefined;
|
|
872
|
+
skills?: string | undefined;
|
|
873
|
+
town?: string | undefined;
|
|
874
|
+
vector_distance?: string | null | undefined;
|
|
875
|
+
coordinates?: {
|
|
876
|
+
lat: number;
|
|
877
|
+
lng: number;
|
|
878
|
+
} | null | undefined;
|
|
879
|
+
};
|
|
880
|
+
match: string | null;
|
|
881
|
+
}[];
|
|
882
|
+
pagination: {
|
|
883
|
+
has_more: boolean;
|
|
884
|
+
};
|
|
885
|
+
}>;
|
|
886
|
+
export type GetJobSearchMapResponse = Awaited<ReturnType<typeof getJobSearchMapResults>>;
|
|
422
887
|
export type QueryState<T> = {
|
|
423
888
|
queryState: 'idle';
|
|
424
889
|
data?: never;
|
package/dist/job-search.d.ts
CHANGED
|
@@ -168,6 +168,13 @@ export type JobSearchPluginParams = {
|
|
|
168
168
|
theme: Partial<FeedbackPluginParams['theme']>;
|
|
169
169
|
};
|
|
170
170
|
};
|
|
171
|
+
map?: {
|
|
172
|
+
enabled: boolean;
|
|
173
|
+
accessToken?: string;
|
|
174
|
+
style?: string;
|
|
175
|
+
pinColor?: string;
|
|
176
|
+
defaultCenter?: [number, number];
|
|
177
|
+
};
|
|
171
178
|
};
|
|
172
179
|
export interface PrerenderJobSearchPluginParams extends JobSearchPluginParams {
|
|
173
180
|
/** If true, the data needed to display the first page of results
|
|
@@ -220,7 +227,7 @@ export declare const jobSearchPlugin: () => ({ apiClient, logger, analytics }: {
|
|
|
220
227
|
pay: string | null;
|
|
221
228
|
description: string;
|
|
222
229
|
title: string;
|
|
223
|
-
contractType: string | null;
|
|
230
|
+
contractType: string | null;
|
|
224
231
|
href: string;
|
|
225
232
|
relativePostedDate: string;
|
|
226
233
|
customData: {
|
|
@@ -254,6 +261,10 @@ export declare const jobSearchPlugin: () => ({ apiClient, logger, analytics }: {
|
|
|
254
261
|
skills?: string | undefined;
|
|
255
262
|
town?: string | undefined;
|
|
256
263
|
vector_distance?: string | null | undefined;
|
|
264
|
+
coordinates?: {
|
|
265
|
+
lat: number;
|
|
266
|
+
lng: number;
|
|
267
|
+
} | null | undefined;
|
|
257
268
|
};
|
|
258
269
|
match: string | null;
|
|
259
270
|
}[];
|
|
@@ -63,6 +63,19 @@ export declare const JobPayloadSchema: import('valibot').ObjectSchema<{
|
|
|
63
63
|
city: import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>;
|
|
64
64
|
country: import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>;
|
|
65
65
|
vector_distance: import('valibot').OptionalSchema<import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>, undefined, string | null | undefined>;
|
|
66
|
+
coordinates: import('valibot').OptionalSchema<import('valibot').NullableSchema<import('valibot').ObjectSchema<{
|
|
67
|
+
lat: import('valibot').NumberSchema<number>;
|
|
68
|
+
lng: import('valibot').NumberSchema<number>;
|
|
69
|
+
}, undefined, {
|
|
70
|
+
lat: number;
|
|
71
|
+
lng: number;
|
|
72
|
+
}>, undefined, {
|
|
73
|
+
lat: number;
|
|
74
|
+
lng: number;
|
|
75
|
+
} | null>, undefined, {
|
|
76
|
+
lat: number;
|
|
77
|
+
lng: number;
|
|
78
|
+
} | null | undefined>;
|
|
66
79
|
}, undefined, {
|
|
67
80
|
id: number;
|
|
68
81
|
company_name: string;
|
|
@@ -91,6 +104,10 @@ export declare const JobPayloadSchema: import('valibot').ObjectSchema<{
|
|
|
91
104
|
skills?: string | undefined;
|
|
92
105
|
town?: string | undefined;
|
|
93
106
|
vector_distance?: string | null | undefined;
|
|
107
|
+
coordinates?: {
|
|
108
|
+
lat: number;
|
|
109
|
+
lng: number;
|
|
110
|
+
} | null | undefined;
|
|
94
111
|
}>;
|
|
95
112
|
export type JobPayloadSchema = Output<typeof JobPayloadSchema>;
|
|
96
113
|
export declare const getJobSchema: (t: import('@inploi/i18n/translation').TFn<{
|
|
@@ -108,7 +125,7 @@ export declare const getJobSchema: (t: import('@inploi/i18n/translation').TFn<{
|
|
|
108
125
|
readonly clear: "Clear";
|
|
109
126
|
readonly selected: "selected";
|
|
110
127
|
readonly done: "Done";
|
|
111
|
-
readonly
|
|
128
|
+
readonly close: "Close";
|
|
112
129
|
readonly new: "NEW";
|
|
113
130
|
readonly posted: "Posted";
|
|
114
131
|
readonly retry: "Retry";
|
|
@@ -140,6 +157,12 @@ export declare const getJobSchema: (t: import('@inploi/i18n/translation').TFn<{
|
|
|
140
157
|
readonly geo_range_label: "Within";
|
|
141
158
|
readonly geo_suggestions_error: "Could not get the suggested locations.";
|
|
142
159
|
readonly feedback: "How was your search experience?";
|
|
160
|
+
readonly list: "List";
|
|
161
|
+
readonly map: "Map";
|
|
162
|
+
readonly loading_jobs: "Loading jobs…";
|
|
163
|
+
readonly map_jobs_error: "We’re having trouble loading jobs in the area";
|
|
164
|
+
readonly map_has_more_title: "Not showing all the jobs in this area";
|
|
165
|
+
readonly map_has_more_description: "Zoom in to refine your search further";
|
|
143
166
|
}>) => import('valibot').SchemaWithTransform<import('valibot').ObjectSchema<{
|
|
144
167
|
id: import('valibot').NumberSchema<number>;
|
|
145
168
|
company_name: import('valibot').StringSchema<string>;
|
|
@@ -170,6 +193,19 @@ export declare const getJobSchema: (t: import('@inploi/i18n/translation').TFn<{
|
|
|
170
193
|
city: import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>;
|
|
171
194
|
country: import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>;
|
|
172
195
|
vector_distance: import('valibot').OptionalSchema<import('valibot').NullableSchema<import('valibot').StringSchema<string>, undefined, string | null>, undefined, string | null | undefined>;
|
|
196
|
+
coordinates: import('valibot').OptionalSchema<import('valibot').NullableSchema<import('valibot').ObjectSchema<{
|
|
197
|
+
lat: import('valibot').NumberSchema<number>;
|
|
198
|
+
lng: import('valibot').NumberSchema<number>;
|
|
199
|
+
}, undefined, {
|
|
200
|
+
lat: number;
|
|
201
|
+
lng: number;
|
|
202
|
+
}>, undefined, {
|
|
203
|
+
lat: number;
|
|
204
|
+
lng: number;
|
|
205
|
+
} | null>, undefined, {
|
|
206
|
+
lat: number;
|
|
207
|
+
lng: number;
|
|
208
|
+
} | null | undefined>;
|
|
173
209
|
}, undefined, {
|
|
174
210
|
id: number;
|
|
175
211
|
company_name: string;
|
|
@@ -198,6 +234,10 @@ export declare const getJobSchema: (t: import('@inploi/i18n/translation').TFn<{
|
|
|
198
234
|
skills?: string | undefined;
|
|
199
235
|
town?: string | undefined;
|
|
200
236
|
vector_distance?: string | null | undefined;
|
|
237
|
+
coordinates?: {
|
|
238
|
+
lat: number;
|
|
239
|
+
lng: number;
|
|
240
|
+
} | null | undefined;
|
|
201
241
|
}>, {
|
|
202
242
|
id: number;
|
|
203
243
|
createdAt: string | null;
|
|
@@ -244,6 +284,10 @@ export declare const getJobSchema: (t: import('@inploi/i18n/translation').TFn<{
|
|
|
244
284
|
skills?: string | undefined;
|
|
245
285
|
town?: string | undefined;
|
|
246
286
|
vector_distance?: string | null | undefined;
|
|
287
|
+
coordinates?: {
|
|
288
|
+
lat: number;
|
|
289
|
+
lng: number;
|
|
290
|
+
} | null | undefined;
|
|
247
291
|
};
|
|
248
292
|
match: string | null;
|
|
249
293
|
}>;
|