@phatvu/web-component-poc 1.0.6 → 1.0.8
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/cjs/fast-button_6.cjs.entry.js +578 -0
- package/dist/cjs/{fast-button_4.cjs.entry.js → fast-carousel.cjs.entry.js} +1 -231
- package/dist/cjs/{index-B2BTpdbN.js → index-227GpI8K.js} +66 -2
- package/dist/cjs/job-card.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/web-component-poc.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +4 -1
- package/dist/collection/components/button/button.css +14 -14
- package/dist/collection/components/button/button.js +12 -24
- package/dist/collection/components/fast-form/fast-form.css +5 -0
- package/dist/collection/components/fast-form/fast-form.js +99 -0
- package/dist/collection/components/fast-input/fast-input.css +45 -0
- package/dist/collection/components/fast-input/fast-input.js +359 -0
- package/dist/collection/components/jobs-list-only/jobs-list-only.js +180 -3
- package/dist/collection/components/jobs-list-reactive/jobs-list-reactive.css +8 -0
- package/dist/collection/components/jobs-list-reactive/jobs-list-reactive.js +203 -0
- package/dist/components/fast-button.js +1 -1
- package/dist/components/fast-carousel.js +1 -1
- package/dist/components/fast-form.d.ts +11 -0
- package/dist/components/fast-form.js +1 -0
- package/dist/components/fast-input.d.ts +11 -0
- package/dist/components/fast-input.js +1 -0
- package/dist/components/index.js +1 -1
- package/dist/components/job-card.js +1 -1
- package/dist/components/jobs-item.js +1 -1
- package/dist/components/jobs-list-only.js +1 -1
- package/dist/components/jobs-list-reactive.d.ts +11 -0
- package/dist/components/jobs-list-reactive.js +1 -0
- package/dist/components/p-Bb27ylcX.js +1 -0
- package/dist/components/{p-ClQDwJJB.js → p-CzgtwPsc.js} +1 -1
- package/dist/esm/fast-button_6.entry.js +571 -0
- package/dist/esm/{fast-button_4.entry.js → fast-carousel.entry.js} +2 -229
- package/dist/esm/{index-Dk5CvWmb.js → index-BqjrT3zA.js} +66 -2
- package/dist/esm/job-card.entry.js +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/web-component-poc.js +3 -3
- package/dist/types/components/button/button.d.ts +1 -13
- package/dist/types/components/fast-form/fast-form.d.ts +10 -0
- package/dist/types/components/fast-input/fast-input.d.ts +35 -0
- package/dist/types/components/jobs-list-only/jobs-list-only.d.ts +22 -0
- package/dist/types/components/jobs-list-reactive/jobs-list-reactive.d.ts +26 -0
- package/dist/types/components.d.ts +256 -11
- package/dist/web-component-poc/{p-52c85341.entry.js → p-14247159.entry.js} +1 -1
- package/dist/web-component-poc/p-309a490b.entry.js +1 -0
- package/dist/web-component-poc/p-7ea9a87f.entry.js +1 -0
- package/dist/web-component-poc/{p-Dk5CvWmb.js → p-BqjrT3zA.js} +2 -2
- package/dist/web-component-poc/web-component-poc.esm.js +1 -1
- package/hydrate/index.js +457 -27
- package/hydrate/index.mjs +457 -27
- package/package.json +7 -3
- package/dist/components/p-UM9TUfe3.js +0 -1
- package/dist/web-component-poc/p-96761988.entry.js +0 -1
|
@@ -1,45 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance,
|
|
2
|
-
|
|
3
|
-
const buttonCss = () => `:host{display:inline-block}.custom-button{display:inline-flex;align-items:center;justify-content:center;padding:0.5rem 1rem;font-family:inherit;font-size:0.875rem;font-weight:500;line-height:1.25;border:none;border-radius:0.375rem;cursor:pointer;transition:background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease}.custom-button:focus{outline:2px solid var(--custom-button-focus-ring, #2563eb);outline-offset:2px}.custom-button:focus:not(:focus-visible){outline:none}.custom-button--primary{background-color:var(--custom-button-primary-bg, #2563eb);color:var(--custom-button-primary-color, #fff)}.custom-button--primary:hover:not(.custom-button--disabled){background-color:var(--custom-button-primary-hover-bg, #1d4ed8)}.custom-button--primary:active:not(.custom-button--disabled){background-color:var(--custom-button-primary-active-bg, #1e40af)}.custom-button--secondary{background-color:var(--custom-button-secondary-bg, #e5e7eb);color:var(--custom-button-secondary-color, #1f2937)}.custom-button--secondary:hover:not(.custom-button--disabled){background-color:var(--custom-button-secondary-hover-bg, #d1d5db)}.custom-button--secondary:active:not(.custom-button--disabled){background-color:var(--custom-button-secondary-active-bg, #9ca3af)}.custom-button--text{background-color:transparent;color:var(--custom-button-text-color, #2563eb)}.custom-button--text:hover:not(.custom-button--disabled){background-color:var(--custom-button-text-hover-bg, rgba(37, 99, 235, 0.08))}.custom-button--text:active:not(.custom-button--disabled){background-color:var(--custom-button-text-active-bg, rgba(37, 99, 235, 0.12))}.custom-button--disabled,.custom-button:disabled{opacity:0.6;cursor:not-allowed}`;
|
|
4
|
-
|
|
5
|
-
const CustomButton = class {
|
|
6
|
-
constructor(hostRef) {
|
|
7
|
-
registerInstance(this, hostRef);
|
|
8
|
-
this.buttonClick = createEvent(this, "buttonClick");
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Visual variant of the button.
|
|
12
|
-
*/
|
|
13
|
-
variant = 'primary';
|
|
14
|
-
/**
|
|
15
|
-
* Native button type (button or submit).
|
|
16
|
-
*/
|
|
17
|
-
type = 'button';
|
|
18
|
-
/**
|
|
19
|
-
* When true, the button is disabled and does not emit events.
|
|
20
|
-
*/
|
|
21
|
-
disabled = false;
|
|
22
|
-
/**
|
|
23
|
-
* Emitted when the button is clicked (not emitted when disabled).
|
|
24
|
-
*/
|
|
25
|
-
buttonClick;
|
|
26
|
-
handleClick = (e) => {
|
|
27
|
-
if (this.disabled) {
|
|
28
|
-
e.preventDefault();
|
|
29
|
-
e.stopPropagation();
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
this.buttonClick.emit(e);
|
|
33
|
-
};
|
|
34
|
-
render() {
|
|
35
|
-
return (h("button", { key: '3b74909afe4e305dfd38f0b07657202e3d5bfccd', type: this.type, class: {
|
|
36
|
-
'custom-button': true,
|
|
37
|
-
[`custom-button--${this.variant}`]: true,
|
|
38
|
-
'custom-button--disabled': this.disabled,
|
|
39
|
-
}, disabled: this.disabled, onClick: this.handleClick }, h("slot", { key: '49845d350e4665c5c66e30bd9262f788eaaa1e20' })));
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
CustomButton.style = buttonCss();
|
|
1
|
+
import { r as registerInstance, g as getElement, h } from './index-BqjrT3zA.js';
|
|
43
2
|
|
|
44
3
|
function isNumber(subject) {
|
|
45
4
|
return typeof subject === 'number';
|
|
@@ -1945,190 +1904,4 @@ const AppCarousel = class {
|
|
|
1945
1904
|
};
|
|
1946
1905
|
AppCarousel.style = carouselCss();
|
|
1947
1906
|
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
function getLocationLabel(loc) {
|
|
1951
|
-
if (loc.cityStateAbbr)
|
|
1952
|
-
return loc.cityStateAbbr;
|
|
1953
|
-
const parts = [loc.streetAddress, loc.city, loc.stateAbbr || loc.state, loc.countryAbbr || loc.country].filter(Boolean);
|
|
1954
|
-
return parts.join(', ') || loc.locationText || '';
|
|
1955
|
-
}
|
|
1956
|
-
function getFirstLocation(job) {
|
|
1957
|
-
const locs = job.locations;
|
|
1958
|
-
if (!locs?.length)
|
|
1959
|
-
return undefined;
|
|
1960
|
-
return locs[0];
|
|
1961
|
-
}
|
|
1962
|
-
const JobsItem = class {
|
|
1963
|
-
constructor(hostRef) {
|
|
1964
|
-
registerInstance(this, hostRef);
|
|
1965
|
-
}
|
|
1966
|
-
job;
|
|
1967
|
-
index = 0;
|
|
1968
|
-
applyButtonText = 'Apply Now';
|
|
1969
|
-
showBrand = true;
|
|
1970
|
-
showReference = false;
|
|
1971
|
-
showEmploymentType = true;
|
|
1972
|
-
multiLocationText = 'More locations';
|
|
1973
|
-
remoteLocationText = 'Remote';
|
|
1974
|
-
enableKilometers = false;
|
|
1975
|
-
formatDistance(distance) {
|
|
1976
|
-
const value = this.enableKilometers ? distance * 1.60934 : distance;
|
|
1977
|
-
const unit = this.enableKilometers ? 'Km' : 'Miles';
|
|
1978
|
-
const str = `${value.toFixed(1)} ${unit}`.replace('.0', '');
|
|
1979
|
-
return str;
|
|
1980
|
-
}
|
|
1981
|
-
render() {
|
|
1982
|
-
if (!this.job)
|
|
1983
|
-
return null;
|
|
1984
|
-
const firstLoc = getFirstLocation(this.job);
|
|
1985
|
-
const locationLabel = firstLoc ? getLocationLabel(firstLoc) : '';
|
|
1986
|
-
const distance = firstLoc?.distance ?? 0;
|
|
1987
|
-
const distanceLabel = distance > 0 ? this.formatDistance(distance) : '';
|
|
1988
|
-
const applyHref = this.job.applyURL ||
|
|
1989
|
-
(this.job.originalURL ? `${typeof window !== 'undefined' ? window.location.origin : ''}${this.job.originalURL}` : '#');
|
|
1990
|
-
const applyLabel = `${this.applyButtonText}, ${this.job.title || ''}`;
|
|
1991
|
-
const locs = this.job.locations ?? [];
|
|
1992
|
-
const hasMultipleLocations = locs.length > 1;
|
|
1993
|
-
return (h("li", { class: "results-list__item" }, h("div", { class: "results-list__item-header" }, h("h3", { class: "results-list__item-title" }, h("a", { class: "results-list__item-title--link", href: applyHref, target: "_blank", rel: "noopener noreferrer" }, this.job.title || ''), this.showReference && (h("span", { class: `reference ${this.job.reference ? '' : 'empty'}` }, this.job.reference || '')), this.job.isRemote && (h("span", { class: this.remoteLocationText ? 'remote' : 'remote remote--empty' }, this.remoteLocationText))), distanceLabel && (h("div", { class: "results-list__item-distance" }, h("span", { class: "results-list__item-distance--icon" }, h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18z" }), h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M12 8v4l2 2" }))), h("span", { class: "results-list__item-distance--label" }, distanceLabel)))), h("div", { class: "results-list__item-content" }, h("div", { class: "results-list__item-info" }, h("div", { class: locs.length
|
|
1994
|
-
? 'results-list__item-street'
|
|
1995
|
-
: 'results-list__item-street results-list__item-street--empty' }, h("div", { class: "results-list__item-street--label__wrapper" }, h("span", { class: "results-list__item-street--icon" }, h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0z" }), h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1 1 15 0z" }))), h("span", { class: "results-list__item-street--label" }, locationLabel || '—')), hasMultipleLocations && (h("div", { class: "results-list__item-street--more-locations__wrapper" }, h("span", { class: "results-list__item-street--amount" }, "+", locs.length - 1), h("span", { class: "results-list__item-street--more-locations" }, this.multiLocationText)))), this.showBrand && (h("div", { class: this.job.brandName
|
|
1996
|
-
? 'results-list__item-brand'
|
|
1997
|
-
: 'results-list__item-brand results-list__item-brand--empty' }, h("span", { class: "results-list__item-brand--icon" }, h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M2.25 21h19.5m-18-18v18m10.5-18v18m6-13.5V21M6.75 6.75h.75m-.75 3h.75m-.75 3h.75m3-6h.75m-.75 3h.75m-.75 3h.75M6.75 21v-3.375c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21M3 3h12m-.75 4.5H21m-3.75 3.75h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008zm0 3h.008v.008h-.008v-.008z" }))), h("span", { class: "results-list__item-brand--label" }, this.job.brandName || '—'))), this.showEmploymentType && (h("div", { class: this.job.employmentType?.length
|
|
1998
|
-
? 'results-list__item-employment-type'
|
|
1999
|
-
: 'results-list__item-employment-type results-list__item-employment-type--empty' }, h("span", { class: "results-list__item-employment-type--icon" }, h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0z" }))), (this.job.employmentType?.length ? this.job.employmentType : ['—']).map((type) => (h("span", { key: type, class: "results-list__item-employment-type--label" }, type))))), (this.job.jobCardExtraFields ?? []).map((field, i) => (h("div", { key: i, class: (Array.isArray(field.value) ? field.value.length : field.value)
|
|
2000
|
-
? field.classname
|
|
2001
|
-
: `${field.classname}--empty` }, Array.isArray(field.value)
|
|
2002
|
-
? field.value.map((v, j) => (h("span", { key: j, class: `${field.classname}--label` }, v)))
|
|
2003
|
-
: (h("span", { class: `${field.classname}--label` }, String(field.value))))))), h("a", { class: "results-list__item-apply", href: applyHref, target: "_blank", rel: "noopener noreferrer", "aria-label": applyLabel }, h("span", { class: "results-list__item-apply--label" }, this.applyButtonText), h("span", { class: "results-list__item-apply--icon" }, h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2" }, h("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M13 7l5 5m0 0l-5 5m5-5H6" })))))));
|
|
2004
|
-
}
|
|
2005
|
-
};
|
|
2006
|
-
JobsItem.style = jobsItemCss();
|
|
2007
|
-
|
|
2008
|
-
/**
|
|
2009
|
-
* Mock jobs for local development and docs.
|
|
2010
|
-
* Use in www or static HTML: jobs='...' (JSON.stringify(mockJobs)).
|
|
2011
|
-
*/
|
|
2012
|
-
const mockJobsListOnly = [
|
|
2013
|
-
{
|
|
2014
|
-
title: 'Senior Software Engineer',
|
|
2015
|
-
reference: 'REF-001',
|
|
2016
|
-
originalURL: '/jobs/senior-software-engineer',
|
|
2017
|
-
applyURL: 'https://apply.example.com/1',
|
|
2018
|
-
brandName: 'Engineering',
|
|
2019
|
-
isRemote: false,
|
|
2020
|
-
locations: [
|
|
2021
|
-
{
|
|
2022
|
-
city: 'San Francisco',
|
|
2023
|
-
stateAbbr: 'CA',
|
|
2024
|
-
countryAbbr: 'US',
|
|
2025
|
-
distance: 5.2,
|
|
2026
|
-
streetAddress: '123 Market St',
|
|
2027
|
-
cityStateAbbr: 'San Francisco, CA',
|
|
2028
|
-
},
|
|
2029
|
-
],
|
|
2030
|
-
employmentType: ['Full-time', 'Permanent'],
|
|
2031
|
-
},
|
|
2032
|
-
{
|
|
2033
|
-
title: 'Product Manager',
|
|
2034
|
-
reference: '',
|
|
2035
|
-
originalURL: '/jobs/product-manager',
|
|
2036
|
-
brandName: 'Product',
|
|
2037
|
-
isRemote: true,
|
|
2038
|
-
locations: [],
|
|
2039
|
-
employmentType: ['Full-time'],
|
|
2040
|
-
},
|
|
2041
|
-
{
|
|
2042
|
-
title: 'UX Designer',
|
|
2043
|
-
reference: 'REF-003',
|
|
2044
|
-
originalURL: '/jobs/ux-designer',
|
|
2045
|
-
brandName: 'Design',
|
|
2046
|
-
isRemote: false,
|
|
2047
|
-
locations: [
|
|
2048
|
-
{
|
|
2049
|
-
city: 'New York',
|
|
2050
|
-
stateAbbr: 'NY',
|
|
2051
|
-
countryAbbr: 'US',
|
|
2052
|
-
distance: 0,
|
|
2053
|
-
cityStateAbbr: 'New York, NY',
|
|
2054
|
-
},
|
|
2055
|
-
{
|
|
2056
|
-
city: 'Boston',
|
|
2057
|
-
stateAbbr: 'MA',
|
|
2058
|
-
countryAbbr: 'US',
|
|
2059
|
-
cityStateAbbr: 'Boston, MA',
|
|
2060
|
-
},
|
|
2061
|
-
],
|
|
2062
|
-
employmentType: ['Full-time', 'Contract'],
|
|
2063
|
-
},
|
|
2064
|
-
];
|
|
2065
|
-
|
|
2066
|
-
const jobsListOnlyCss = () => `:host{display:block}.jobs-list-root{list-style:none}.results-container{position:relative}.loader{display:inline-block;width:24px;height:24px;border:2px solid #ddd;border-top-color:#1f9755;border-radius:50%;animation:jobs-list-spin 0.8s linear infinite}.loader.hide{display:none}@keyframes jobs-list-spin{to{transform:rotate(360deg)}}.card{border:0}.results-list{list-style:none;margin:0;padding:0;display:block}.results-list.front{margin:3px 0}.share-jobs__no-results{padding:24px;text-align:center}.share-jobs__no-results h2,.share-jobs__no-results h3{margin:8px 0;font-weight:600}.card.primary-color{padding:16px;border-radius:4px;background:#f8f9fa}.result-suggestions-title{margin:0 0 12px 0;font-size:16px}.results-list .result-suggestions-line{list-style:none;margin:4px 0}`;
|
|
2067
|
-
|
|
2068
|
-
const defaultNoResultsLine1 = "Sorry, we're not able to load results for your search.";
|
|
2069
|
-
const defaultNoResultsLine2 = 'Please refine your keywords in the search bar above and try again.';
|
|
2070
|
-
const JobsListOnly = class {
|
|
2071
|
-
constructor(hostRef) {
|
|
2072
|
-
registerInstance(this, hostRef);
|
|
2073
|
-
}
|
|
2074
|
-
/**
|
|
2075
|
-
* When "true", use built-in mock data (for local/dev/docs). Otherwise use `jobs` from API/parent.
|
|
2076
|
-
*/
|
|
2077
|
-
mockData = false;
|
|
2078
|
-
/** List of jobs to display. Pass as JSON string from attribute or as array via property (e.g. from React). Ignored when mock-data="true". */
|
|
2079
|
-
jobs = [];
|
|
2080
|
-
/** Show loading spinner. Ignored when mock-data="true" (mock shows data immediately). */
|
|
2081
|
-
loading = false;
|
|
2082
|
-
/** Total job count (for screen readers / schema). */
|
|
2083
|
-
totalJob = 0;
|
|
2084
|
-
noResultsLine1 = defaultNoResultsLine1;
|
|
2085
|
-
noResultsLine2 = defaultNoResultsLine2;
|
|
2086
|
-
applyButtonText = 'Apply Now';
|
|
2087
|
-
showBrand = true;
|
|
2088
|
-
showReference = false;
|
|
2089
|
-
showEmploymentType = true;
|
|
2090
|
-
streetFormat = '{street}, {city_state_abbr}';
|
|
2091
|
-
multiLocationText = 'More locations';
|
|
2092
|
-
remoteLocationText = 'Remote';
|
|
2093
|
-
enableKilometers = false;
|
|
2094
|
-
/** Extra CSS class on the root element (avoid prop name "class" / "classname" reserved). */
|
|
2095
|
-
rootClass = '';
|
|
2096
|
-
showSuggestions = false;
|
|
2097
|
-
clearResultSuggestionsTitleText = 'Suggestions';
|
|
2098
|
-
clearResultSuggestionsLine1 = 'Try different keywords';
|
|
2099
|
-
clearResultSuggestionsLine2 = 'Make sure everything is spelled correctly';
|
|
2100
|
-
clearResultSuggestionsLine3 = 'Try other locations';
|
|
2101
|
-
clearResultSuggestionsLine4 = '';
|
|
2102
|
-
getJobsArray() {
|
|
2103
|
-
if (this.mockData) {
|
|
2104
|
-
return mockJobsListOnly;
|
|
2105
|
-
}
|
|
2106
|
-
const j = this.jobs;
|
|
2107
|
-
if (Array.isArray(j))
|
|
2108
|
-
return j;
|
|
2109
|
-
if (typeof j === 'string') {
|
|
2110
|
-
try {
|
|
2111
|
-
const parsed = JSON.parse(j);
|
|
2112
|
-
return Array.isArray(parsed) ? parsed : [];
|
|
2113
|
-
}
|
|
2114
|
-
catch {
|
|
2115
|
-
return [];
|
|
2116
|
-
}
|
|
2117
|
-
}
|
|
2118
|
-
return [];
|
|
2119
|
-
}
|
|
2120
|
-
renderJobItem(job, index) {
|
|
2121
|
-
return (h("jobs-item", { job: job, index: index, applyButtonText: this.applyButtonText, showBrand: this.showBrand, showReference: this.showReference, showEmploymentType: this.showEmploymentType, multiLocationText: this.multiLocationText, remoteLocationText: this.remoteLocationText, enableKilometers: this.enableKilometers }));
|
|
2122
|
-
}
|
|
2123
|
-
render() {
|
|
2124
|
-
const jobsArray = this.getJobsArray();
|
|
2125
|
-
const loading = this.mockData ? false : this.loading;
|
|
2126
|
-
const totalJob = this.mockData ? jobsArray.length : (this.totalJob || jobsArray.length);
|
|
2127
|
-
const showNoResults = !loading && totalJob === 0 && !this.showSuggestions;
|
|
2128
|
-
const showSuggestionsBlock = !loading && totalJob === 0 && this.showSuggestions;
|
|
2129
|
-
return (h("div", { key: 'c22b59e35668df06633c8c11ae8a51b463e06b19', class: `jobs-list-root ${this.rootClass}`.trim() }, h("div", { key: 'e2b5b1bf68b75dd958b906c18c258faa8f4e1e25', class: "results-container" }, h("div", { key: '923d2402d2951d9de47a69c5fd87a80fda382b6e', class: loading ? 'loader' : 'loader hide', "aria-hidden": !loading }), totalJob > 0 && (h("div", { key: '000c2c2d512f1b48999d628a2517701fc061dd11', class: "card" }, h("ul", { key: '7028fc4f1b007eb9ff9bc205201af986c6d0a9ae', class: "results-list front" }, jobsArray.map((job, index) => this.renderJobItem(job, index))))), showNoResults && (h("div", { key: '4f567c7ddbf7d393469886ce3b4865dcb9f4e761', class: "share-jobs__no-results" }, h("h2", { key: '5f1ae77afeca0c37183dc681a9cc42eebaf0e510' }, this.noResultsLine1), h("h3", { key: '6f8a754181cabf1befc6a9a4cf811417075af918' }, this.noResultsLine2))), showSuggestionsBlock && (h("div", { key: 'a09cc45fbed615bb8672f8e77c2a8793efec2dc5', class: "card primary-color" }, h("h4", { key: '9e53bb60ec086f42845d90c807dbd1cb6a88721d', class: "result-suggestions-title" }, this.clearResultSuggestionsTitleText, ":"), h("ul", { key: '0769ebd6367255dad56e688cd36a65cc41f1f366', class: "results-list front" }, h("li", { key: '7032fc1d77ca040be7d2c949c7bc755c62ef4df3', class: "result-suggestions-line" }, this.clearResultSuggestionsLine1), h("li", { key: '49e0c6d4cad62448abc42124708472d8c268c7d9', class: "result-suggestions-line" }, this.clearResultSuggestionsLine2), h("li", { key: 'ad76dbdad20e8de716613baa2bd1e745b6749fa7', class: "result-suggestions-line" }, this.clearResultSuggestionsLine3), this.clearResultSuggestionsLine4 && (h("li", { key: 'b141b94ceeacd5de8fd430cc9e5e05063953130a', class: "result-suggestions-line" }, this.clearResultSuggestionsLine4))))))));
|
|
2130
|
-
}
|
|
2131
|
-
};
|
|
2132
|
-
JobsListOnly.style = jobsListOnlyCss();
|
|
2133
|
-
|
|
2134
|
-
export { CustomButton as fast_button, AppCarousel as fast_carousel, JobsItem as jobs_item, JobsListOnly as jobs_list_only };
|
|
1907
|
+
export { AppCarousel as fast_carousel };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const NAMESPACE = 'web-component-poc';
|
|
2
|
-
const BUILD = /* web-component-poc */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", lazyLoad: true,
|
|
2
|
+
const BUILD = /* web-component-poc */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", lazyLoad: true, propChangeCallback: false, shadowDom: false, slotRelocation: true, state: true, updatable: true};
|
|
3
3
|
|
|
4
4
|
/*
|
|
5
5
|
Stencil Client Platform v4.43.2 | MIT Licensed | https://stenciljs.com
|
|
@@ -86,7 +86,7 @@ var registerInstance = (lazyInstance, hostRef) => {
|
|
|
86
86
|
if (!hostRef) return;
|
|
87
87
|
lazyInstance.__stencil__getHostRef = () => hostRef;
|
|
88
88
|
hostRef.$lazyInstance$ = lazyInstance;
|
|
89
|
-
if (hostRef.$cmpMeta$.$flags$ & 512 /* hasModernPropertyDecls */ && (BUILD.
|
|
89
|
+
if (hostRef.$cmpMeta$.$flags$ & 512 /* hasModernPropertyDecls */ && (BUILD.state)) {
|
|
90
90
|
reWireGetterSetter(lazyInstance, hostRef);
|
|
91
91
|
}
|
|
92
92
|
};
|
|
@@ -173,6 +173,23 @@ var plt = {
|
|
|
173
173
|
ce: (eventName, opts) => new CustomEvent(eventName, opts)
|
|
174
174
|
};
|
|
175
175
|
var supportsShadow = BUILD.shadowDom;
|
|
176
|
+
var supportsListenerOptions = /* @__PURE__ */ (() => {
|
|
177
|
+
var _a;
|
|
178
|
+
let supportsListenerOptions2 = false;
|
|
179
|
+
try {
|
|
180
|
+
(_a = win.document) == null ? void 0 : _a.addEventListener(
|
|
181
|
+
"e",
|
|
182
|
+
null,
|
|
183
|
+
Object.defineProperty({}, "passive", {
|
|
184
|
+
get() {
|
|
185
|
+
supportsListenerOptions2 = true;
|
|
186
|
+
}
|
|
187
|
+
})
|
|
188
|
+
);
|
|
189
|
+
} catch (e) {
|
|
190
|
+
}
|
|
191
|
+
return supportsListenerOptions2;
|
|
192
|
+
})();
|
|
176
193
|
var promiseResolve = (v) => Promise.resolve(v);
|
|
177
194
|
var supportsConstructableStylesheets = /* @__PURE__ */ (() => {
|
|
178
195
|
try {
|
|
@@ -1859,6 +1876,13 @@ var dispatchHooks = (hostRef, isInitialLoad) => {
|
|
|
1859
1876
|
hostRef.$deferredConnectedCallback$ = false;
|
|
1860
1877
|
safeCall(instance, "connectedCallback", void 0, elm);
|
|
1861
1878
|
}
|
|
1879
|
+
{
|
|
1880
|
+
hostRef.$flags$ |= 256 /* isListenReady */;
|
|
1881
|
+
if (hostRef.$queuedListeners$) {
|
|
1882
|
+
hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event, elm));
|
|
1883
|
+
hostRef.$queuedListeners$ = void 0;
|
|
1884
|
+
}
|
|
1885
|
+
}
|
|
1862
1886
|
if (hostRef.$fetchedCbList$.length) {
|
|
1863
1887
|
hostRef.$fetchedCbList$.forEach((cb) => cb(elm));
|
|
1864
1888
|
}
|
|
@@ -2301,6 +2325,7 @@ var connectedCallback = (elm) => {
|
|
|
2301
2325
|
initializeComponent(elm, hostRef, cmpMeta);
|
|
2302
2326
|
}
|
|
2303
2327
|
} else {
|
|
2328
|
+
addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
|
|
2304
2329
|
if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
|
|
2305
2330
|
fireConnectedCallback(hostRef.$lazyInstance$, elm);
|
|
2306
2331
|
} else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
|
|
@@ -2328,6 +2353,12 @@ var disconnectInstance = (instance, elm) => {
|
|
|
2328
2353
|
var disconnectedCallback = async (elm) => {
|
|
2329
2354
|
if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
|
|
2330
2355
|
const hostRef = getHostRef(elm);
|
|
2356
|
+
{
|
|
2357
|
+
if (hostRef == null ? void 0 : hostRef.$rmListeners$) {
|
|
2358
|
+
hostRef.$rmListeners$.map((rmListener) => rmListener());
|
|
2359
|
+
hostRef.$rmListeners$ = void 0;
|
|
2360
|
+
}
|
|
2361
|
+
}
|
|
2331
2362
|
if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
|
|
2332
2363
|
disconnectInstance(hostRef.$lazyInstance$, elm);
|
|
2333
2364
|
} else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
|
|
@@ -2379,6 +2410,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
2379
2410
|
{
|
|
2380
2411
|
cmpMeta.$members$ = compactMeta[2];
|
|
2381
2412
|
}
|
|
2413
|
+
{
|
|
2414
|
+
cmpMeta.$listeners$ = compactMeta[3];
|
|
2415
|
+
}
|
|
2382
2416
|
const tagName = transformTag(cmpMeta.$tagName$);
|
|
2383
2417
|
const HostElement = class extends HTMLElement {
|
|
2384
2418
|
["s-p"];
|
|
@@ -2397,6 +2431,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
2397
2431
|
}
|
|
2398
2432
|
if (!this.hasRegisteredEventListeners) {
|
|
2399
2433
|
this.hasRegisteredEventListeners = true;
|
|
2434
|
+
addHostEventListeners(this, hostRef, cmpMeta.$listeners$);
|
|
2400
2435
|
}
|
|
2401
2436
|
if (appLoadFallback) {
|
|
2402
2437
|
clearTimeout(appLoadFallback);
|
|
@@ -2466,6 +2501,35 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
|
|
|
2466
2501
|
}
|
|
2467
2502
|
endBootstrap();
|
|
2468
2503
|
};
|
|
2504
|
+
var addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
|
|
2505
|
+
if (listeners && win.document) {
|
|
2506
|
+
listeners.map(([flags, name, method]) => {
|
|
2507
|
+
const target = elm;
|
|
2508
|
+
const handler = hostListenerProxy(hostRef, method);
|
|
2509
|
+
const opts = hostListenerOpts(flags);
|
|
2510
|
+
plt.ael(target, name, handler, opts);
|
|
2511
|
+
(hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));
|
|
2512
|
+
});
|
|
2513
|
+
}
|
|
2514
|
+
};
|
|
2515
|
+
var hostListenerProxy = (hostRef, methodName) => (ev) => {
|
|
2516
|
+
var _a;
|
|
2517
|
+
try {
|
|
2518
|
+
{
|
|
2519
|
+
if (hostRef.$flags$ & 256 /* isListenReady */) {
|
|
2520
|
+
(_a = hostRef.$lazyInstance$) == null ? void 0 : _a[methodName](ev);
|
|
2521
|
+
} else {
|
|
2522
|
+
(hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);
|
|
2523
|
+
}
|
|
2524
|
+
}
|
|
2525
|
+
} catch (e) {
|
|
2526
|
+
consoleError(e, hostRef.$hostElement$);
|
|
2527
|
+
}
|
|
2528
|
+
};
|
|
2529
|
+
var hostListenerOpts = (flags) => supportsListenerOptions ? {
|
|
2530
|
+
passive: (flags & 1 /* Passive */) !== 0,
|
|
2531
|
+
capture: (flags & 2 /* Capture */) !== 0
|
|
2532
|
+
} : (flags & 2 /* Capture */) !== 0;
|
|
2469
2533
|
|
|
2470
2534
|
// src/runtime/nonce.ts
|
|
2471
2535
|
var setNonce = (nonce) => plt.$nonce$ = nonce;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, h } from './index-
|
|
1
|
+
import { r as registerInstance, h } from './index-BqjrT3zA.js';
|
|
2
2
|
|
|
3
3
|
const jobCardCss = () => `.job-card{display:block;padding:16px;border:1px solid #e0e0e0;border-radius:8px;background-color:#fff;box-shadow:0 2px 4px rgba(0, 0, 0, 0.08);transition:box-shadow 0.2s ease, border-color 0.2s ease}.job-card:hover{box-shadow:0 4px 8px rgba(0, 0, 0, 0.12);border-color:#d0d0d0}.job-card__header{margin-bottom:12px}.job-card__title{margin:0;font-size:18px;font-weight:700;display:flex;align-items:center;flex-wrap:wrap;gap:8px}.job-card__title--link{text-decoration:none;color:#1f9755;transition:color 0.2s ease}.job-card__title--link:hover{text-decoration:underline;color:#1a7a43}.job-card__reference{font-size:0.875em;color:#666;background-color:#f5f5f5;padding:2px 6px;border-radius:3px}.job-card__reference--empty{display:none}.job-card__remote{background:#e8f5e9;color:#2e7d32;border-radius:100px;padding:4px 12px;text-transform:uppercase;font-size:11px;font-weight:700;line-height:1.5;white-space:nowrap}.job-card__remote--empty{display:none}.job-card__distance{display:inline-flex;align-items:center;gap:4px;margin-top:6px;font-size:13px;font-weight:500;color:#555}.job-card__distance--icon{display:inline-flex;align-items:center}.job-card__distance--icon svg{width:16px;height:16px;color:#1f9755}.job-card__content{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.job-card__info{flex:1;display:flex;flex-direction:column;gap:8px}.job-card__street,.job-card__brand,.job-card__employment-type{display:flex;align-items:center;flex-wrap:wrap;gap:4px 6px;font-size:14px}.job-card__street--empty,.job-card__brand--empty,.job-card__employment-type--empty{color:#999}.job-card__street--icon,.job-card__brand--icon,.job-card__employment-type--icon{display:inline-flex;align-items:center;flex-shrink:0}.job-card__street--icon svg,.job-card__brand--icon svg,.job-card__employment-type--icon svg{width:16px;height:16px;color:#666}.job-card__street--label,.job-card__brand--label,.job-card__employment-type--label{color:#333}.job-card__street--label__wrapper{display:flex;align-items:center;gap:6px}.job-card__street--more-locations__wrapper{display:flex;align-items:center;gap:2px;font-size:12px;margin-left:2px}.job-card__street--amount{font-weight:600;color:#1f9755}.job-card__street--more-locations{color:#999}.job-card__apply{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;background-color:#198754;color:#fff;border-radius:4px;text-decoration:none;font-weight:600;font-size:14px;transition:background-color 0.2s ease, transform 0.1s ease;white-space:nowrap;flex-shrink:0}.job-card__apply:hover{background-color:#1a6f47;transform:translateY(-1px)}.job-card__apply:active{transform:translateY(0)}.job-card__apply--icon{display:inline-flex;align-items:center}.job-card__apply--icon svg{width:14px;height:14px}@media (max-width: 768px){.job-card{padding:12px}.job-card__content{flex-direction:column;gap:10px}.job-card__apply{width:100%;justify-content:center}.job-card__title{font-size:16px}}@media (max-width: 480px){.job-card{padding:10px}.job-card__title{font-size:15px}.job-card__distance{font-size:12px}.job-card__street,.job-card__brand,.job-card__employment-type{font-size:13px}}`;
|
|
4
4
|
|
package/dist/esm/loader.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { b as bootstrapLazy } from './index-
|
|
2
|
-
export { s as setNonce } from './index-
|
|
1
|
+
import { b as bootstrapLazy } from './index-BqjrT3zA.js';
|
|
2
|
+
export { s as setNonce } from './index-BqjrT3zA.js';
|
|
3
3
|
import { g as globalScripts } from './app-globals-DQuL1Twl.js';
|
|
4
4
|
|
|
5
5
|
const defineCustomElements = async (win, options) => {
|
|
6
6
|
if (typeof window === 'undefined') return undefined;
|
|
7
7
|
await globalScripts();
|
|
8
|
-
return bootstrapLazy([["job-card",[[512,"job-card",{"job":[1],"index":[2],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"],"showCommuteTime":[4,"show-commute-time"],"streetFormat":[1,"street-format"],"rootClass":[1,"root-class"],"extraFieldsConfig":[16]}]]],["fast-
|
|
8
|
+
return bootstrapLazy([["fast-carousel",[[772,"fast-carousel",{"items":[1],"loop":[4],"class":[1],"controlClass":[1,"control-class"],"slideClass":[1,"slide-class"],"itemClass":[1,"item-class"],"scrollPrev":[64],"scrollNext":[64],"goToSlide":[64],"getEmbla":[64]}]]],["job-card",[[512,"job-card",{"job":[1],"index":[2],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"],"showCommuteTime":[4,"show-commute-time"],"streetFormat":[1,"street-format"],"rootClass":[1,"root-class"],"extraFieldsConfig":[16]}]]],["fast-button_6",[[512,"jobs-list-only",{"mockData":[4,"mock-data"],"jobs":[1],"loading":[4],"totalJob":[2,"total-job"],"noResultsLine1":[1,"no-results-line-1"],"noResultsLine2":[1,"no-results-line-2"],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"streetFormat":[1,"street-format"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"],"rootClass":[1,"root-class"],"showCountText":[1,"show-count-text"],"showSuggestions":[4,"show-suggestions"],"clearResultSuggestionsTitleText":[1,"clear-result-suggestions-title-text"],"clearResultSuggestionsLine1":[1,"clear-result-suggestions-line-1"],"clearResultSuggestionsLine2":[1,"clear-result-suggestions-line-2"],"clearResultSuggestionsLine3":[1,"clear-result-suggestions-line-3"],"clearResultSuggestionsLine4":[1,"clear-result-suggestions-line-4"],"autoFetch":[4,"auto-fetch"],"apiUrl":[1,"api-url"],"watchParams":[1,"watch-params"],"fetchedJobs":[32],"fetchedTotal":[32],"fetchLoading":[32]}],[772,"fast-button",{"variant":[1],"type":[1],"disabled":[4]}],[260,"fast-form",null,[[0,"inputSubmit","handleInputSubmit"]]],[512,"fast-input",{"placeholder":[1],"value":[1],"paramName":[1,"param-name"],"enableAutocomplete":[4,"enable-autocomplete"],"autocompleteUrl":[1,"autocomplete-url"],"targetPath":[1,"target-path"],"debounceMs":[2,"debounce-ms"],"minChars":[2,"min-chars"],"inputValue":[32],"suggestions":[32],"showDropdown":[32],"autocompleteLoading":[32],"getValue":[64],"getParamName":[64]}],[772,"jobs-list-reactive",{"apiUrl":[1,"api-url"],"watchParams":[1,"watch-params"],"loadingClass":[1,"loading-class"],"isLoading":[32]}],[512,"jobs-item",{"job":[16],"index":[2],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"]}]]]], options);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
export { defineCustomElements };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as promiseResolve, b as bootstrapLazy } from './index-
|
|
2
|
-
export { s as setNonce } from './index-
|
|
1
|
+
import { p as promiseResolve, b as bootstrapLazy } from './index-BqjrT3zA.js';
|
|
2
|
+
export { s as setNonce } from './index-BqjrT3zA.js';
|
|
3
3
|
import { g as globalScripts } from './app-globals-DQuL1Twl.js';
|
|
4
4
|
|
|
5
5
|
/*
|
|
@@ -17,5 +17,5 @@ var patchBrowser = () => {
|
|
|
17
17
|
|
|
18
18
|
patchBrowser().then(async (options) => {
|
|
19
19
|
await globalScripts();
|
|
20
|
-
return bootstrapLazy([["job-card",[[512,"job-card",{"job":[1],"index":[2],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"],"showCommuteTime":[4,"show-commute-time"],"streetFormat":[1,"street-format"],"rootClass":[1,"root-class"],"extraFieldsConfig":[16]}]]],["fast-
|
|
20
|
+
return bootstrapLazy([["fast-carousel",[[772,"fast-carousel",{"items":[1],"loop":[4],"class":[1],"controlClass":[1,"control-class"],"slideClass":[1,"slide-class"],"itemClass":[1,"item-class"],"scrollPrev":[64],"scrollNext":[64],"goToSlide":[64],"getEmbla":[64]}]]],["job-card",[[512,"job-card",{"job":[1],"index":[2],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"],"showCommuteTime":[4,"show-commute-time"],"streetFormat":[1,"street-format"],"rootClass":[1,"root-class"],"extraFieldsConfig":[16]}]]],["fast-button_6",[[512,"jobs-list-only",{"mockData":[4,"mock-data"],"jobs":[1],"loading":[4],"totalJob":[2,"total-job"],"noResultsLine1":[1,"no-results-line-1"],"noResultsLine2":[1,"no-results-line-2"],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"streetFormat":[1,"street-format"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"],"rootClass":[1,"root-class"],"showCountText":[1,"show-count-text"],"showSuggestions":[4,"show-suggestions"],"clearResultSuggestionsTitleText":[1,"clear-result-suggestions-title-text"],"clearResultSuggestionsLine1":[1,"clear-result-suggestions-line-1"],"clearResultSuggestionsLine2":[1,"clear-result-suggestions-line-2"],"clearResultSuggestionsLine3":[1,"clear-result-suggestions-line-3"],"clearResultSuggestionsLine4":[1,"clear-result-suggestions-line-4"],"autoFetch":[4,"auto-fetch"],"apiUrl":[1,"api-url"],"watchParams":[1,"watch-params"],"fetchedJobs":[32],"fetchedTotal":[32],"fetchLoading":[32]}],[772,"fast-button",{"variant":[1],"type":[1],"disabled":[4]}],[260,"fast-form",null,[[0,"inputSubmit","handleInputSubmit"]]],[512,"fast-input",{"placeholder":[1],"value":[1],"paramName":[1,"param-name"],"enableAutocomplete":[4,"enable-autocomplete"],"autocompleteUrl":[1,"autocomplete-url"],"targetPath":[1,"target-path"],"debounceMs":[2,"debounce-ms"],"minChars":[2,"min-chars"],"inputValue":[32],"suggestions":[32],"showDropdown":[32],"autocompleteLoading":[32],"getValue":[64],"getParamName":[64]}],[772,"jobs-list-reactive",{"apiUrl":[1,"api-url"],"watchParams":[1,"watch-params"],"loadingClass":[1,"loading-class"],"isLoading":[32]}],[512,"jobs-item",{"job":[16],"index":[2],"applyButtonText":[1,"apply-button-text"],"showBrand":[4,"show-brand"],"showReference":[4,"show-reference"],"showEmploymentType":[4,"show-employment-type"],"multiLocationText":[1,"multi-location-text"],"remoteLocationText":[1,"remote-location-text"],"enableKilometers":[4,"enable-kilometers"]}]]]], options);
|
|
21
21
|
});
|
|
@@ -1,22 +1,10 @@
|
|
|
1
1
|
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
2
|
export type ButtonVariant = 'primary' | 'secondary' | 'text';
|
|
3
3
|
export type ButtonType = 'button' | 'submit';
|
|
4
|
-
export declare class
|
|
5
|
-
/**
|
|
6
|
-
* Visual variant of the button.
|
|
7
|
-
*/
|
|
4
|
+
export declare class FastButton {
|
|
8
5
|
variant: ButtonVariant;
|
|
9
|
-
/**
|
|
10
|
-
* Native button type (button or submit).
|
|
11
|
-
*/
|
|
12
6
|
type: ButtonType;
|
|
13
|
-
/**
|
|
14
|
-
* When true, the button is disabled and does not emit events.
|
|
15
|
-
*/
|
|
16
7
|
disabled: boolean;
|
|
17
|
-
/**
|
|
18
|
-
* Emitted when the button is clicked (not emitted when disabled).
|
|
19
|
-
*/
|
|
20
8
|
buttonClick: EventEmitter<MouseEvent>;
|
|
21
9
|
private handleClick;
|
|
22
10
|
render(): any;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
export declare class FastForm {
|
|
3
|
+
el: HTMLElement;
|
|
4
|
+
searchExecuted: EventEmitter<Record<string, string>>;
|
|
5
|
+
handleInputSubmit(): void;
|
|
6
|
+
private submit;
|
|
7
|
+
private updateUrlParams;
|
|
8
|
+
private handleFormSubmit;
|
|
9
|
+
render(): any;
|
|
10
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
export declare class FastInput {
|
|
3
|
+
placeholder: string;
|
|
4
|
+
value: string;
|
|
5
|
+
paramName: string;
|
|
6
|
+
enableAutocomplete: boolean;
|
|
7
|
+
autocompleteUrl: string;
|
|
8
|
+
targetPath: string | undefined;
|
|
9
|
+
debounceMs: number;
|
|
10
|
+
minChars: number;
|
|
11
|
+
inputSubmit: EventEmitter<void>;
|
|
12
|
+
inputChanged: EventEmitter<{
|
|
13
|
+
value: string;
|
|
14
|
+
}>;
|
|
15
|
+
inputValue: string;
|
|
16
|
+
suggestions: Array<{
|
|
17
|
+
title: string;
|
|
18
|
+
}>;
|
|
19
|
+
showDropdown: boolean;
|
|
20
|
+
autocompleteLoading: boolean;
|
|
21
|
+
private debounceTimer;
|
|
22
|
+
private popstateHandler;
|
|
23
|
+
getValue(): Promise<string>;
|
|
24
|
+
getParamName(): Promise<string>;
|
|
25
|
+
connectedCallback(): void;
|
|
26
|
+
disconnectedCallback(): void;
|
|
27
|
+
private getUrlParam;
|
|
28
|
+
private handleInput;
|
|
29
|
+
private handleKeydown;
|
|
30
|
+
private handleBlur;
|
|
31
|
+
private scheduleAutocomplete;
|
|
32
|
+
private fetchSuggestions;
|
|
33
|
+
private selectSuggestion;
|
|
34
|
+
render(): any;
|
|
35
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
1
2
|
import type { Job } from '../../types/jobs-list';
|
|
2
3
|
export declare class JobsListOnly {
|
|
3
4
|
/**
|
|
@@ -22,12 +23,33 @@ export declare class JobsListOnly {
|
|
|
22
23
|
enableKilometers: boolean;
|
|
23
24
|
/** Extra CSS class on the root element (avoid prop name "class" / "classname" reserved). */
|
|
24
25
|
rootClass: string;
|
|
26
|
+
/** Template string for count display. Tokens: {count} = jobs on page, {total} = total from API. */
|
|
27
|
+
showCountText: string;
|
|
25
28
|
showSuggestions: boolean;
|
|
26
29
|
clearResultSuggestionsTitleText: string;
|
|
27
30
|
clearResultSuggestionsLine1: string;
|
|
28
31
|
clearResultSuggestionsLine2: string;
|
|
29
32
|
clearResultSuggestionsLine3: string;
|
|
30
33
|
clearResultSuggestionsLine4: string;
|
|
34
|
+
/** When true, component manages its own data fetching */
|
|
35
|
+
autoFetch: boolean;
|
|
36
|
+
/** Jobs search endpoint */
|
|
37
|
+
apiUrl: string;
|
|
38
|
+
/** Comma-separated URL param names to watch and forward to the API */
|
|
39
|
+
watchParams: string;
|
|
40
|
+
fetchedJobs: any[];
|
|
41
|
+
fetchedTotal: number;
|
|
42
|
+
fetchLoading: boolean;
|
|
43
|
+
fetchComplete: EventEmitter<{
|
|
44
|
+
jobs: any[];
|
|
45
|
+
totalJob: number;
|
|
46
|
+
}>;
|
|
47
|
+
private searchExecutedHandler;
|
|
48
|
+
private popstateHandler;
|
|
49
|
+
connectedCallback(): void;
|
|
50
|
+
disconnectedCallback(): void;
|
|
51
|
+
private fetchJobs;
|
|
52
|
+
private renderCountText;
|
|
31
53
|
private getJobsArray;
|
|
32
54
|
private renderJobItem;
|
|
33
55
|
render(): any;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
import type { Job } from '../../types/jobs-list';
|
|
3
|
+
export declare class JobsListReactive {
|
|
4
|
+
el: HTMLElement;
|
|
5
|
+
/** Jobs search endpoint */
|
|
6
|
+
apiUrl: string;
|
|
7
|
+
/** Comma-separated URL param names to watch and forward to the API */
|
|
8
|
+
watchParams: string;
|
|
9
|
+
/** CSS class added to container while fetching */
|
|
10
|
+
loadingClass: string;
|
|
11
|
+
isLoading: boolean;
|
|
12
|
+
fetchComplete: EventEmitter<{
|
|
13
|
+
jobs: Job[];
|
|
14
|
+
totalJob: number;
|
|
15
|
+
}>;
|
|
16
|
+
private templateEl;
|
|
17
|
+
private searchExecutedHandler;
|
|
18
|
+
private popstateHandler;
|
|
19
|
+
connectedCallback(): void;
|
|
20
|
+
disconnectedCallback(): void;
|
|
21
|
+
private buildQueryString;
|
|
22
|
+
private fetchJobs;
|
|
23
|
+
private renderJobs;
|
|
24
|
+
private updateCountElements;
|
|
25
|
+
render(): any;
|
|
26
|
+
}
|