@phatvu/web-component-poc 1.0.7 → 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.
Files changed (50) hide show
  1. package/dist/cjs/{fast-input_4.cjs.entry.js → fast-button_6.cjs.entry.js} +112 -33
  2. package/dist/cjs/fast-carousel.cjs.entry.js +1 -1
  3. package/dist/cjs/{index-BEvZs91D.js → index-227GpI8K.js} +64 -0
  4. package/dist/cjs/job-card.cjs.entry.js +1 -1
  5. package/dist/cjs/loader.cjs.js +2 -2
  6. package/dist/cjs/web-component-poc.cjs.js +2 -2
  7. package/dist/collection/collection-manifest.json +1 -0
  8. package/dist/collection/components/button/button.css +14 -14
  9. package/dist/collection/components/button/button.js +12 -24
  10. package/dist/collection/components/fast-form/fast-form.css +5 -0
  11. package/dist/collection/components/fast-form/fast-form.js +99 -0
  12. package/dist/collection/components/fast-input/fast-input.css +3 -13
  13. package/dist/collection/components/fast-input/fast-input.js +57 -33
  14. package/dist/collection/components/jobs-list-only/jobs-list-only.js +1 -1
  15. package/dist/collection/components/jobs-list-reactive/jobs-list-reactive.js +1 -1
  16. package/dist/components/fast-button.js +1 -1
  17. package/dist/components/fast-carousel.js +1 -1
  18. package/dist/components/fast-form.d.ts +11 -0
  19. package/dist/components/fast-form.js +1 -0
  20. package/dist/components/fast-input.js +1 -1
  21. package/dist/components/index.js +1 -1
  22. package/dist/components/job-card.js +1 -1
  23. package/dist/components/jobs-item.js +1 -1
  24. package/dist/components/jobs-list-only.js +1 -1
  25. package/dist/components/jobs-list-reactive.js +1 -1
  26. package/dist/components/p-Bb27ylcX.js +1 -0
  27. package/dist/components/{p-DQiaLjLf.js → p-CzgtwPsc.js} +1 -1
  28. package/dist/esm/{fast-input_4.entry.js → fast-button_6.entry.js} +111 -34
  29. package/dist/esm/fast-carousel.entry.js +1 -1
  30. package/dist/esm/{index-C_ZLQIpp.js → index-BqjrT3zA.js} +64 -0
  31. package/dist/esm/job-card.entry.js +1 -1
  32. package/dist/esm/loader.js +3 -3
  33. package/dist/esm/web-component-poc.js +3 -3
  34. package/dist/types/components/button/button.d.ts +1 -13
  35. package/dist/types/components/fast-form/fast-form.d.ts +10 -0
  36. package/dist/types/components/fast-input/fast-input.d.ts +3 -5
  37. package/dist/types/components.d.ts +35 -13
  38. package/dist/web-component-poc/{p-bef7c8e2.entry.js → p-14247159.entry.js} +1 -1
  39. package/dist/web-component-poc/{p-7d45772f.entry.js → p-309a490b.entry.js} +1 -1
  40. package/dist/web-component-poc/p-7ea9a87f.entry.js +1 -0
  41. package/dist/web-component-poc/{p-C_ZLQIpp.js → p-BqjrT3zA.js} +2 -2
  42. package/dist/web-component-poc/web-component-poc.esm.js +1 -1
  43. package/hydrate/index.js +136 -54
  44. package/hydrate/index.mjs +136 -54
  45. package/package.json +3 -3
  46. package/dist/cjs/fast-button.cjs.entry.js +0 -46
  47. package/dist/components/p-BiaJAQXY.js +0 -1
  48. package/dist/esm/fast-button.entry.js +0 -44
  49. package/dist/web-component-poc/p-618fba28.entry.js +0 -1
  50. package/dist/web-component-poc/p-cfb9aed9.entry.js +0 -1
package/hydrate/index.js CHANGED
@@ -2099,6 +2099,13 @@ var dispatchHooks = (hostRef, isInitialLoad) => {
2099
2099
  hostRef.$deferredConnectedCallback$ = false;
2100
2100
  safeCall(instance, "connectedCallback", void 0, elm);
2101
2101
  }
2102
+ {
2103
+ hostRef.$flags$ |= 256 /* isListenReady */;
2104
+ if (hostRef.$queuedListeners$) {
2105
+ hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event, elm));
2106
+ hostRef.$queuedListeners$ = void 0;
2107
+ }
2108
+ }
2102
2109
  if (hostRef.$fetchedCbList$.length) {
2103
2110
  hostRef.$fetchedCbList$.forEach((cb) => cb(elm));
2104
2111
  }
@@ -2478,6 +2485,7 @@ var connectedCallback = (elm) => {
2478
2485
  initializeComponent(elm, hostRef, cmpMeta);
2479
2486
  }
2480
2487
  } else {
2488
+ addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
2481
2489
  if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
2482
2490
  fireConnectedCallback(hostRef.$lazyInstance$, elm);
2483
2491
  } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
@@ -2497,6 +2505,32 @@ var setContentReference = (elm) => {
2497
2505
  contentRefElm["s-cn"] = true;
2498
2506
  insertBefore(elm, contentRefElm, elm.firstChild);
2499
2507
  };
2508
+ var addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
2509
+ if (listeners && win.document) {
2510
+ listeners.map(([flags, name, method]) => {
2511
+ const target = elm;
2512
+ const handler = hostListenerProxy(hostRef, method);
2513
+ const opts = hostListenerOpts(flags);
2514
+ plt.ael(target, name, handler, opts);
2515
+ (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));
2516
+ });
2517
+ }
2518
+ };
2519
+ var hostListenerProxy = (hostRef, methodName) => (ev) => {
2520
+ var _a;
2521
+ try {
2522
+ {
2523
+ if (hostRef.$flags$ & 256 /* isListenReady */) {
2524
+ (_a = hostRef.$lazyInstance$) == null ? void 0 : _a[methodName](ev);
2525
+ } else {
2526
+ (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);
2527
+ }
2528
+ }
2529
+ } catch (e) {
2530
+ consoleError(e, hostRef.$hostElement$);
2531
+ }
2532
+ };
2533
+ var hostListenerOpts = (flags) => (flags & 2 /* Capture */) !== 0;
2500
2534
  function transformTag(tag) {
2501
2535
  return tag;
2502
2536
  }
@@ -4277,6 +4311,7 @@ async function hydrateComponent(win2, results, tagName, elm, waitingElements) {
4277
4311
  if (!hostRef) {
4278
4312
  return;
4279
4313
  }
4314
+ addHostEventListeners(this, hostRef, cmpMeta.$listeners$);
4280
4315
  try {
4281
4316
  connectedCallback(elm);
4282
4317
  await elm.componentOnReady();
@@ -6454,28 +6489,16 @@ class AppCarousel {
6454
6489
  }; }
6455
6490
  }
6456
6491
 
6457
- 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}`;
6492
+ const buttonCss = () => `:host{display:inline-block}.fast-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}.fast-button:focus{outline:2px solid var(--custom-button-focus-ring, #2563eb);outline-offset:2px}.fast-button:focus:not(:focus-visible){outline:none}.fast-button--primary{background-color:var(--custom-button-primary-bg, #2563eb);color:var(--custom-button-primary-color, #fff)}.fast-button--primary:hover:not(.fast-button--disabled){background-color:var(--custom-button-primary-hover-bg, #1d4ed8)}.fast-button--primary:active:not(.fast-button--disabled){background-color:var(--custom-button-primary-active-bg, #1e40af)}.fast-button--secondary{background-color:var(--custom-button-secondary-bg, #e5e7eb);color:var(--custom-button-secondary-color, #1f2937)}.fast-button--secondary:hover:not(.fast-button--disabled){background-color:var(--custom-button-secondary-hover-bg, #d1d5db)}.fast-button--secondary:active:not(.fast-button--disabled){background-color:var(--custom-button-secondary-active-bg, #9ca3af)}.fast-button--text{background-color:transparent;color:var(--custom-button-text-color, #2563eb)}.fast-button--text:hover:not(.fast-button--disabled){background-color:var(--custom-button-text-hover-bg, rgba(37, 99, 235, 0.08))}.fast-button--text:active:not(.fast-button--disabled){background-color:var(--custom-button-text-active-bg, rgba(37, 99, 235, 0.12))}.fast-button--disabled,.fast-button:disabled{opacity:0.6;cursor:not-allowed}`;
6458
6493
 
6459
- class CustomButton {
6494
+ class FastButton {
6460
6495
  constructor(hostRef) {
6461
6496
  registerInstance(this, hostRef);
6462
6497
  this.buttonClick = createEvent(this, "buttonClick");
6463
6498
  }
6464
- /**
6465
- * Visual variant of the button.
6466
- */
6467
6499
  variant = 'primary';
6468
- /**
6469
- * Native button type (button or submit).
6470
- */
6471
- type = 'button';
6472
- /**
6473
- * When true, the button is disabled and does not emit events.
6474
- */
6500
+ type = 'submit';
6475
6501
  disabled = false;
6476
- /**
6477
- * Emitted when the button is clicked (not emitted when disabled).
6478
- */
6479
6502
  buttonClick;
6480
6503
  handleClick = (e) => {
6481
6504
  if (this.disabled) {
@@ -6486,11 +6509,11 @@ class CustomButton {
6486
6509
  this.buttonClick.emit(e);
6487
6510
  };
6488
6511
  render() {
6489
- return (hAsync("button", { key: '3b74909afe4e305dfd38f0b07657202e3d5bfccd', type: this.type, class: {
6490
- 'custom-button': true,
6491
- [`custom-button--${this.variant}`]: true,
6492
- 'custom-button--disabled': this.disabled,
6493
- }, disabled: this.disabled, onClick: this.handleClick }, hAsync("slot", { key: '49845d350e4665c5c66e30bd9262f788eaaa1e20' })));
6512
+ return (hAsync("button", { key: 'b8e811748ade97c941bdf197a311d69d2801a120', type: this.type, class: {
6513
+ 'fast-button': true,
6514
+ [`fast-button--${this.variant}`]: true,
6515
+ 'fast-button--disabled': this.disabled,
6516
+ }, disabled: this.disabled, onClick: this.handleClick }, hAsync("slot", { key: 'a6b987059cc33799abd580ea11f0fe644a3973bf' })));
6494
6517
  }
6495
6518
  static get style() { return buttonCss(); }
6496
6519
  static get cmpMeta() { return {
@@ -6507,12 +6530,82 @@ class CustomButton {
6507
6530
  }; }
6508
6531
  }
6509
6532
 
6510
- const fastInputCss = () => `.fast-input{position:relative;display:inline-flex;gap:0.5rem}.fast-input__field{flex:1;padding:0.5rem 0.75rem;font-size:1rem;border:1px solid #ccc;border-radius:4px}.fast-input__button{padding:0.5rem 1rem;font-size:1rem;cursor:pointer;background:#0070f3;color:#fff;border:none;border-radius:4px}.fast-input__dropdown{position:absolute;top:100%;left:0;right:0;margin:0;padding:0;list-style:none;background:#fff;border:1px solid #ccc;border-top:none;border-radius:0 0 4px 4px;z-index:100;max-height:200px;overflow-y:auto}.fast-input__dropdown-item{padding:0.5rem 0.75rem;cursor:pointer}.fast-input__dropdown-item:hover{background:#f0f0f0}.fast-input__dropdown-loading{padding:0.5rem 0.75rem;color:#999;font-style:italic}`;
6533
+ const fastFormCss = () => `.fast-form{display:flex;gap:0.5rem;align-items:flex-start}`;
6511
6534
 
6512
- class FastInput {
6535
+ class FastForm {
6513
6536
  constructor(hostRef) {
6514
6537
  registerInstance(this, hostRef);
6515
6538
  this.searchExecuted = createEvent(this, "searchExecuted");
6539
+ }
6540
+ get el() { return getElement(this); }
6541
+ searchExecuted;
6542
+ handleInputSubmit() {
6543
+ this.submit();
6544
+ }
6545
+ async submit() {
6546
+ const inputs = this.el.querySelectorAll('fast-input');
6547
+ const params = {};
6548
+ for (const input of Array.from(inputs)) {
6549
+ const paramName = await input.getParamName();
6550
+ const value = await input.getValue();
6551
+ if (value) {
6552
+ params[paramName] = value;
6553
+ }
6554
+ }
6555
+ this.updateUrlParams(params);
6556
+ document.dispatchEvent(new CustomEvent('search-executed', {
6557
+ detail: params,
6558
+ bubbles: true,
6559
+ composed: true,
6560
+ }));
6561
+ this.searchExecuted.emit(params);
6562
+ }
6563
+ updateUrlParams(params) {
6564
+ const urlParams = new URLSearchParams(window.location.search);
6565
+ // Get all param names from inputs and clear them first
6566
+ const inputs = this.el.querySelectorAll('fast-input');
6567
+ for (const input of Array.from(inputs)) {
6568
+ const paramName = input.paramName;
6569
+ if (paramName) {
6570
+ urlParams.delete(paramName);
6571
+ }
6572
+ }
6573
+ // Set new values
6574
+ for (const [key, value] of Object.entries(params)) {
6575
+ if (value) {
6576
+ urlParams.set(key, value);
6577
+ }
6578
+ }
6579
+ const qs = urlParams.toString();
6580
+ const newUrl = qs
6581
+ ? `${window.location.pathname}?${qs}`
6582
+ : window.location.pathname;
6583
+ history.pushState({}, '', newUrl);
6584
+ }
6585
+ handleFormSubmit = (e) => {
6586
+ e.preventDefault();
6587
+ this.submit();
6588
+ };
6589
+ render() {
6590
+ return (hAsync("form", { key: '50436bb904e8b175ae0c23158812a4e4756544c0', class: "fast-form", onSubmit: this.handleFormSubmit }, hAsync("slot", { key: '2f76c4c42c15ebf389d6e0fdbcb9a2098bf1156a' })));
6591
+ }
6592
+ static get style() { return fastFormCss(); }
6593
+ static get cmpMeta() { return {
6594
+ "$flags$": 260,
6595
+ "$tagName$": "fast-form",
6596
+ "$members$": undefined,
6597
+ "$listeners$": [[0, "inputSubmit", "handleInputSubmit"]],
6598
+ "$lazyBundleId$": "-",
6599
+ "$attrsToReflect$": []
6600
+ }; }
6601
+ }
6602
+
6603
+ const fastInputCss = () => `.fast-input{position:relative;display:inline-block}.fast-input__field{padding:0.5rem 0.75rem;font-size:1rem;border:1px solid #ccc;border-radius:4px;width:100%;box-sizing:border-box}.fast-input__dropdown{position:absolute;top:100%;left:0;right:0;margin:0;padding:0;list-style:none;background:#fff;border:1px solid #ccc;border-top:none;border-radius:0 0 4px 4px;z-index:100;max-height:200px;overflow-y:auto}.fast-input__dropdown-item{padding:0.5rem 0.75rem;cursor:pointer}.fast-input__dropdown-item:hover{background:#f0f0f0}.fast-input__dropdown-loading{padding:0.5rem 0.75rem;color:#999;font-style:italic}`;
6604
+
6605
+ class FastInput {
6606
+ constructor(hostRef) {
6607
+ registerInstance(this, hostRef);
6608
+ this.inputSubmit = createEvent(this, "inputSubmit");
6516
6609
  this.inputChanged = createEvent(this, "inputChanged");
6517
6610
  }
6518
6611
  placeholder = 'Search...';
@@ -6523,7 +6616,7 @@ class FastInput {
6523
6616
  targetPath;
6524
6617
  debounceMs = 300;
6525
6618
  minChars = 3;
6526
- searchExecuted;
6619
+ inputSubmit;
6527
6620
  inputChanged;
6528
6621
  inputValue = '';
6529
6622
  suggestions = [];
@@ -6531,6 +6624,12 @@ class FastInput {
6531
6624
  autocompleteLoading = false;
6532
6625
  debounceTimer;
6533
6626
  popstateHandler;
6627
+ async getValue() {
6628
+ return this.inputValue;
6629
+ }
6630
+ async getParamName() {
6631
+ return this.paramName;
6632
+ }
6534
6633
  connectedCallback() {
6535
6634
  const urlValue = this.getUrlParam();
6536
6635
  this.inputValue = urlValue !== null ? urlValue : this.value;
@@ -6547,30 +6646,6 @@ class FastInput {
6547
6646
  const params = new URLSearchParams(window.location.search);
6548
6647
  return params.get(this.paramName);
6549
6648
  }
6550
- updateUrlParam(value) {
6551
- const params = new URLSearchParams(window.location.search);
6552
- if (value) {
6553
- params.set(this.paramName, value);
6554
- }
6555
- else {
6556
- params.delete(this.paramName);
6557
- }
6558
- const qs = params.toString();
6559
- const newUrl = qs
6560
- ? `${window.location.pathname}?${qs}`
6561
- : window.location.pathname;
6562
- history.pushState({}, '', newUrl);
6563
- }
6564
- submit() {
6565
- this.updateUrlParam(this.inputValue);
6566
- document.dispatchEvent(new CustomEvent('search-executed', {
6567
- detail: { keyword: this.inputValue },
6568
- bubbles: true,
6569
- composed: true,
6570
- }));
6571
- this.searchExecuted.emit({ keyword: this.inputValue });
6572
- this.showDropdown = false;
6573
- }
6574
6649
  handleInput = (e) => {
6575
6650
  const value = e.target.value;
6576
6651
  this.inputValue = value;
@@ -6581,7 +6656,9 @@ class FastInput {
6581
6656
  };
6582
6657
  handleKeydown = (e) => {
6583
6658
  if (e.key === 'Enter') {
6584
- this.submit();
6659
+ e.preventDefault();
6660
+ this.showDropdown = false;
6661
+ this.inputSubmit.emit();
6585
6662
  }
6586
6663
  else if (e.key === 'Escape') {
6587
6664
  this.showDropdown = false;
@@ -6627,10 +6704,12 @@ class FastInput {
6627
6704
  selectSuggestion(title) {
6628
6705
  this.inputValue = title;
6629
6706
  this.showDropdown = false;
6630
- this.submit();
6707
+ this.inputSubmit.emit();
6631
6708
  }
6632
6709
  render() {
6633
- return (hAsync("div", { key: '3a9d31c7b109205600addc326d63979585f10bcd', class: "fast-input" }, hAsync("input", { key: '8f238fe9e002f367d4939616be8c06d938d76045', type: "text", class: "fast-input__field", placeholder: this.placeholder, value: this.inputValue, onInput: this.handleInput, onKeyDown: this.handleKeydown, onBlur: this.handleBlur }), hAsync("button", { key: '7b7404f13432750ece669da8ce68be15179921de', class: "fast-input__button", type: "button", onClick: () => this.submit() }, "Search"), this.enableAutocomplete && this.showDropdown && (hAsync("ul", { key: '1438bacadc21c183842a8bdaa3f336bffb152e14', class: "fast-input__dropdown" }, this.autocompleteLoading ? (hAsync("li", { class: "fast-input__dropdown-loading" }, "Loading...")) : (this.suggestions.map(s => (hAsync("li", { class: "fast-input__dropdown-item", onMouseDown: e => { e.preventDefault(); }, onClick: () => this.selectSuggestion(s.title) }, s.title))))))));
6710
+ return (hAsync("div", { key: 'ea03f3dd68d0da4fc30cbc18a1ef66b5974a4f89', class: "fast-input" }, hAsync("input", { key: '31d85c4c90dde0e10ea9424b960c5e4f4a3ca54a', type: "text", class: "fast-input__field", placeholder: this.placeholder, value: this.inputValue, onInput: this.handleInput, onKeyDown: this.handleKeydown, onBlur: this.handleBlur }), this.enableAutocomplete && this.showDropdown && (hAsync("ul", { key: '0de6fd68709d906bafd2fec684f0a73045be3705', class: "fast-input__dropdown" }, this.autocompleteLoading ? (hAsync("li", { class: "fast-input__dropdown-loading" }, "Loading...")) : (this.suggestions.map(s => (hAsync("li", { class: "fast-input__dropdown-item", onMouseDown: e => {
6711
+ e.preventDefault();
6712
+ }, onClick: () => this.selectSuggestion(s.title) }, s.title))))))));
6634
6713
  }
6635
6714
  static get style() { return fastInputCss(); }
6636
6715
  static get cmpMeta() { return {
@@ -6648,7 +6727,9 @@ class FastInput {
6648
6727
  "inputValue": [32],
6649
6728
  "suggestions": [32],
6650
6729
  "showDropdown": [32],
6651
- "autocompleteLoading": [32]
6730
+ "autocompleteLoading": [32],
6731
+ "getValue": [64],
6732
+ "getParamName": [64]
6652
6733
  },
6653
6734
  "$listeners$": undefined,
6654
6735
  "$lazyBundleId$": "-",
@@ -7107,7 +7188,7 @@ class JobsListOnly {
7107
7188
  : (this.totalJob || jobsArray.length);
7108
7189
  const showNoResults = !loading && totalJob === 0 && !this.showSuggestions;
7109
7190
  const showSuggestionsBlock = !loading && totalJob === 0 && this.showSuggestions;
7110
- return (hAsync("div", { key: '1116855473d28d650641b9d962243bfcdcb434ec', class: `jobs-list-root ${this.rootClass}`.trim() }, hAsync("div", { key: 'fcef04f1da9ad4e150af9f59921688f5781d9d43', class: "results-container" }, this.autoFetch && this.fetchLoading && (hAsync("div", { key: '75b157c82c89691c7ce73d12ea0144b3b45485c3', class: "jobs-list-only__loading" }, "Loading...")), hAsync("div", { key: 'b09f9879e10ee4a93e32177611912da5f19f3526', class: loading ? 'loader' : 'loader hide', "aria-hidden": !loading }), totalJob > 0 && this.showCountText && (hAsync("p", { key: 'd10f800fb0a33d82531d5f1728bac4ceba2ed577', class: "jobs-list-only__count" }, this.renderCountText(jobsArray.length, totalJob))), totalJob > 0 && (hAsync("div", { key: '18153ed1338bd48f7be4f043b11ce15e3271f27b', class: "card" }, hAsync("ul", { key: '766e128b1fd5adb456530ae39e92ba8eb0b5d6cf', class: "results-list front" }, jobsArray.map((job, index) => this.renderJobItem(job, index))))), showNoResults && (hAsync("div", { key: 'ed6f3d2bd2bbedabd6e69d508ea1425580e6941f', class: "share-jobs__no-results" }, hAsync("h2", { key: '2302656e33340c69e84cb949afb7256b8f35f440' }, this.noResultsLine1), hAsync("h3", { key: '1c7e6642441a96c04ee26883fdec4f81b0fe6cec' }, this.noResultsLine2))), showSuggestionsBlock && (hAsync("div", { key: 'be7af85f64455918545e88952ca6ff00f0a970c5', class: "card primary-color" }, hAsync("h4", { key: '2f63deb8131190eff882308544b15f767b6f3edc', class: "result-suggestions-title" }, this.clearResultSuggestionsTitleText, ":"), hAsync("ul", { key: 'cb18daaa9e2c2c442c5b906ed370dcd653b5262d', class: "results-list front" }, hAsync("li", { key: 'ff1d5c6518b75c0daa35b43df7162b0dfecde25e', class: "result-suggestions-line" }, this.clearResultSuggestionsLine1), hAsync("li", { key: '4099fd7bf8dcf114eca28702a498ab0938f5de46', class: "result-suggestions-line" }, this.clearResultSuggestionsLine2), hAsync("li", { key: 'fb65b54c3c0b14bc58112977eb4c7c56c1246a45', class: "result-suggestions-line" }, this.clearResultSuggestionsLine3), this.clearResultSuggestionsLine4 && (hAsync("li", { key: '10f745e74cf68a2b1c42e6f49f810a8b59eb27b6', class: "result-suggestions-line" }, this.clearResultSuggestionsLine4))))))));
7191
+ return (hAsync("div", { key: '1974ecb7e1ded8237d851560fc4b20dd63b4e941', class: `jobs-list-root ${this.rootClass}`.trim() }, hAsync("div", { key: '3d80283e8508cbe9ec4aa4516a6f832479374e08', class: "results-container" }, this.autoFetch && this.fetchLoading && (hAsync("div", { key: 'c5d3c5362a10ce2442925093118d3436227e8058', class: "jobs-list-only__loading" }, "Loading...")), hAsync("div", { key: 'c68e5aebee17cce16947029031b63364ab25ecda', class: loading ? 'loader' : 'loader hide', "aria-hidden": !loading }), totalJob > 0 && this.showCountText && (hAsync("p", { key: 'e353fa146040fed1aed050ed3ed833903efcdf41', class: "jobs-list-only__count" }, this.renderCountText(jobsArray.length, totalJob))), totalJob > 0 && (hAsync("div", { key: 'e38346f641a1e776a7e70525bf8f3a6a38b6eea5', class: "card" }, hAsync("ul", { key: 'db82d99df76e33ad6041d4ec8dd7908cdf8b89d7', class: "results-list front" }, jobsArray.map((job, index) => this.renderJobItem(job, index))))), showNoResults && (hAsync("div", { key: '8bd8f45ddb9fcd534c7f386919c1e6cd7a4fb6f3', class: "share-jobs__no-results" }, hAsync("h2", { key: '228d32e9dd38f61bcec9f522d3bc4207e17b5365' }, this.noResultsLine1), hAsync("h3", { key: '4289b10974936669a00afba6f1d55e33874198b1' }, this.noResultsLine2))), showSuggestionsBlock && (hAsync("div", { key: '949e1fe01b2db39a69729a9fbc2eebaf2ea461ba', class: "card primary-color" }, hAsync("h4", { key: 'af3361f98987a3a19d45afc1174a99fc4174a65a', class: "result-suggestions-title" }, this.clearResultSuggestionsTitleText, ":"), hAsync("ul", { key: 'd7b9236dbbeb9f9596d642aa588d1c1305ed658b', class: "results-list front" }, hAsync("li", { key: '0e65c9b985e5708096c8a4b0ea1455b6696db6dd', class: "result-suggestions-line" }, this.clearResultSuggestionsLine1), hAsync("li", { key: 'a7fe8459960af60acc81822b48436a32c0e4ad0c', class: "result-suggestions-line" }, this.clearResultSuggestionsLine2), hAsync("li", { key: '1e41d5730de755d6b2cb9e5fbda33704816f9096', class: "result-suggestions-line" }, this.clearResultSuggestionsLine3), this.clearResultSuggestionsLine4 && (hAsync("li", { key: '9ab1bee87135bfda9996b2c99134597475bfaecb', class: "result-suggestions-line" }, this.clearResultSuggestionsLine4))))))));
7111
7192
  }
7112
7193
  static get style() { return jobsListOnlyCss(); }
7113
7194
  static get cmpMeta() { return {
@@ -7248,7 +7329,7 @@ class JobsListReactive {
7248
7329
  });
7249
7330
  }
7250
7331
  render() {
7251
- return hAsync("slot", { key: '30a6fe9727eb877b6aafb99072c40811df121ba6' });
7332
+ return hAsync("slot", { key: '9f3ab802e19a298a790cfb5e86a4f4888e466804' });
7252
7333
  }
7253
7334
  static get style() { return jobsListReactiveCss(); }
7254
7335
  static get cmpMeta() { return {
@@ -7268,7 +7349,8 @@ class JobsListReactive {
7268
7349
 
7269
7350
  registerComponents([
7270
7351
  AppCarousel,
7271
- CustomButton,
7352
+ FastButton,
7353
+ FastForm,
7272
7354
  FastInput,
7273
7355
  JobCard,
7274
7356
  JobsItem,
package/hydrate/index.mjs CHANGED
@@ -2097,6 +2097,13 @@ var dispatchHooks = (hostRef, isInitialLoad) => {
2097
2097
  hostRef.$deferredConnectedCallback$ = false;
2098
2098
  safeCall(instance, "connectedCallback", void 0, elm);
2099
2099
  }
2100
+ {
2101
+ hostRef.$flags$ |= 256 /* isListenReady */;
2102
+ if (hostRef.$queuedListeners$) {
2103
+ hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event, elm));
2104
+ hostRef.$queuedListeners$ = void 0;
2105
+ }
2106
+ }
2100
2107
  if (hostRef.$fetchedCbList$.length) {
2101
2108
  hostRef.$fetchedCbList$.forEach((cb) => cb(elm));
2102
2109
  }
@@ -2476,6 +2483,7 @@ var connectedCallback = (elm) => {
2476
2483
  initializeComponent(elm, hostRef, cmpMeta);
2477
2484
  }
2478
2485
  } else {
2486
+ addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
2479
2487
  if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
2480
2488
  fireConnectedCallback(hostRef.$lazyInstance$, elm);
2481
2489
  } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
@@ -2495,6 +2503,32 @@ var setContentReference = (elm) => {
2495
2503
  contentRefElm["s-cn"] = true;
2496
2504
  insertBefore(elm, contentRefElm, elm.firstChild);
2497
2505
  };
2506
+ var addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
2507
+ if (listeners && win.document) {
2508
+ listeners.map(([flags, name, method]) => {
2509
+ const target = elm;
2510
+ const handler = hostListenerProxy(hostRef, method);
2511
+ const opts = hostListenerOpts(flags);
2512
+ plt.ael(target, name, handler, opts);
2513
+ (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));
2514
+ });
2515
+ }
2516
+ };
2517
+ var hostListenerProxy = (hostRef, methodName) => (ev) => {
2518
+ var _a;
2519
+ try {
2520
+ {
2521
+ if (hostRef.$flags$ & 256 /* isListenReady */) {
2522
+ (_a = hostRef.$lazyInstance$) == null ? void 0 : _a[methodName](ev);
2523
+ } else {
2524
+ (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);
2525
+ }
2526
+ }
2527
+ } catch (e) {
2528
+ consoleError(e, hostRef.$hostElement$);
2529
+ }
2530
+ };
2531
+ var hostListenerOpts = (flags) => (flags & 2 /* Capture */) !== 0;
2498
2532
  function transformTag(tag) {
2499
2533
  return tag;
2500
2534
  }
@@ -4275,6 +4309,7 @@ async function hydrateComponent(win2, results, tagName, elm, waitingElements) {
4275
4309
  if (!hostRef) {
4276
4310
  return;
4277
4311
  }
4312
+ addHostEventListeners(this, hostRef, cmpMeta.$listeners$);
4278
4313
  try {
4279
4314
  connectedCallback(elm);
4280
4315
  await elm.componentOnReady();
@@ -6452,28 +6487,16 @@ class AppCarousel {
6452
6487
  }; }
6453
6488
  }
6454
6489
 
6455
- 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}`;
6490
+ const buttonCss = () => `:host{display:inline-block}.fast-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}.fast-button:focus{outline:2px solid var(--custom-button-focus-ring, #2563eb);outline-offset:2px}.fast-button:focus:not(:focus-visible){outline:none}.fast-button--primary{background-color:var(--custom-button-primary-bg, #2563eb);color:var(--custom-button-primary-color, #fff)}.fast-button--primary:hover:not(.fast-button--disabled){background-color:var(--custom-button-primary-hover-bg, #1d4ed8)}.fast-button--primary:active:not(.fast-button--disabled){background-color:var(--custom-button-primary-active-bg, #1e40af)}.fast-button--secondary{background-color:var(--custom-button-secondary-bg, #e5e7eb);color:var(--custom-button-secondary-color, #1f2937)}.fast-button--secondary:hover:not(.fast-button--disabled){background-color:var(--custom-button-secondary-hover-bg, #d1d5db)}.fast-button--secondary:active:not(.fast-button--disabled){background-color:var(--custom-button-secondary-active-bg, #9ca3af)}.fast-button--text{background-color:transparent;color:var(--custom-button-text-color, #2563eb)}.fast-button--text:hover:not(.fast-button--disabled){background-color:var(--custom-button-text-hover-bg, rgba(37, 99, 235, 0.08))}.fast-button--text:active:not(.fast-button--disabled){background-color:var(--custom-button-text-active-bg, rgba(37, 99, 235, 0.12))}.fast-button--disabled,.fast-button:disabled{opacity:0.6;cursor:not-allowed}`;
6456
6491
 
6457
- class CustomButton {
6492
+ class FastButton {
6458
6493
  constructor(hostRef) {
6459
6494
  registerInstance(this, hostRef);
6460
6495
  this.buttonClick = createEvent(this, "buttonClick");
6461
6496
  }
6462
- /**
6463
- * Visual variant of the button.
6464
- */
6465
6497
  variant = 'primary';
6466
- /**
6467
- * Native button type (button or submit).
6468
- */
6469
- type = 'button';
6470
- /**
6471
- * When true, the button is disabled and does not emit events.
6472
- */
6498
+ type = 'submit';
6473
6499
  disabled = false;
6474
- /**
6475
- * Emitted when the button is clicked (not emitted when disabled).
6476
- */
6477
6500
  buttonClick;
6478
6501
  handleClick = (e) => {
6479
6502
  if (this.disabled) {
@@ -6484,11 +6507,11 @@ class CustomButton {
6484
6507
  this.buttonClick.emit(e);
6485
6508
  };
6486
6509
  render() {
6487
- return (hAsync("button", { key: '3b74909afe4e305dfd38f0b07657202e3d5bfccd', type: this.type, class: {
6488
- 'custom-button': true,
6489
- [`custom-button--${this.variant}`]: true,
6490
- 'custom-button--disabled': this.disabled,
6491
- }, disabled: this.disabled, onClick: this.handleClick }, hAsync("slot", { key: '49845d350e4665c5c66e30bd9262f788eaaa1e20' })));
6510
+ return (hAsync("button", { key: 'b8e811748ade97c941bdf197a311d69d2801a120', type: this.type, class: {
6511
+ 'fast-button': true,
6512
+ [`fast-button--${this.variant}`]: true,
6513
+ 'fast-button--disabled': this.disabled,
6514
+ }, disabled: this.disabled, onClick: this.handleClick }, hAsync("slot", { key: 'a6b987059cc33799abd580ea11f0fe644a3973bf' })));
6492
6515
  }
6493
6516
  static get style() { return buttonCss(); }
6494
6517
  static get cmpMeta() { return {
@@ -6505,12 +6528,82 @@ class CustomButton {
6505
6528
  }; }
6506
6529
  }
6507
6530
 
6508
- const fastInputCss = () => `.fast-input{position:relative;display:inline-flex;gap:0.5rem}.fast-input__field{flex:1;padding:0.5rem 0.75rem;font-size:1rem;border:1px solid #ccc;border-radius:4px}.fast-input__button{padding:0.5rem 1rem;font-size:1rem;cursor:pointer;background:#0070f3;color:#fff;border:none;border-radius:4px}.fast-input__dropdown{position:absolute;top:100%;left:0;right:0;margin:0;padding:0;list-style:none;background:#fff;border:1px solid #ccc;border-top:none;border-radius:0 0 4px 4px;z-index:100;max-height:200px;overflow-y:auto}.fast-input__dropdown-item{padding:0.5rem 0.75rem;cursor:pointer}.fast-input__dropdown-item:hover{background:#f0f0f0}.fast-input__dropdown-loading{padding:0.5rem 0.75rem;color:#999;font-style:italic}`;
6531
+ const fastFormCss = () => `.fast-form{display:flex;gap:0.5rem;align-items:flex-start}`;
6509
6532
 
6510
- class FastInput {
6533
+ class FastForm {
6511
6534
  constructor(hostRef) {
6512
6535
  registerInstance(this, hostRef);
6513
6536
  this.searchExecuted = createEvent(this, "searchExecuted");
6537
+ }
6538
+ get el() { return getElement(this); }
6539
+ searchExecuted;
6540
+ handleInputSubmit() {
6541
+ this.submit();
6542
+ }
6543
+ async submit() {
6544
+ const inputs = this.el.querySelectorAll('fast-input');
6545
+ const params = {};
6546
+ for (const input of Array.from(inputs)) {
6547
+ const paramName = await input.getParamName();
6548
+ const value = await input.getValue();
6549
+ if (value) {
6550
+ params[paramName] = value;
6551
+ }
6552
+ }
6553
+ this.updateUrlParams(params);
6554
+ document.dispatchEvent(new CustomEvent('search-executed', {
6555
+ detail: params,
6556
+ bubbles: true,
6557
+ composed: true,
6558
+ }));
6559
+ this.searchExecuted.emit(params);
6560
+ }
6561
+ updateUrlParams(params) {
6562
+ const urlParams = new URLSearchParams(window.location.search);
6563
+ // Get all param names from inputs and clear them first
6564
+ const inputs = this.el.querySelectorAll('fast-input');
6565
+ for (const input of Array.from(inputs)) {
6566
+ const paramName = input.paramName;
6567
+ if (paramName) {
6568
+ urlParams.delete(paramName);
6569
+ }
6570
+ }
6571
+ // Set new values
6572
+ for (const [key, value] of Object.entries(params)) {
6573
+ if (value) {
6574
+ urlParams.set(key, value);
6575
+ }
6576
+ }
6577
+ const qs = urlParams.toString();
6578
+ const newUrl = qs
6579
+ ? `${window.location.pathname}?${qs}`
6580
+ : window.location.pathname;
6581
+ history.pushState({}, '', newUrl);
6582
+ }
6583
+ handleFormSubmit = (e) => {
6584
+ e.preventDefault();
6585
+ this.submit();
6586
+ };
6587
+ render() {
6588
+ return (hAsync("form", { key: '50436bb904e8b175ae0c23158812a4e4756544c0', class: "fast-form", onSubmit: this.handleFormSubmit }, hAsync("slot", { key: '2f76c4c42c15ebf389d6e0fdbcb9a2098bf1156a' })));
6589
+ }
6590
+ static get style() { return fastFormCss(); }
6591
+ static get cmpMeta() { return {
6592
+ "$flags$": 260,
6593
+ "$tagName$": "fast-form",
6594
+ "$members$": undefined,
6595
+ "$listeners$": [[0, "inputSubmit", "handleInputSubmit"]],
6596
+ "$lazyBundleId$": "-",
6597
+ "$attrsToReflect$": []
6598
+ }; }
6599
+ }
6600
+
6601
+ const fastInputCss = () => `.fast-input{position:relative;display:inline-block}.fast-input__field{padding:0.5rem 0.75rem;font-size:1rem;border:1px solid #ccc;border-radius:4px;width:100%;box-sizing:border-box}.fast-input__dropdown{position:absolute;top:100%;left:0;right:0;margin:0;padding:0;list-style:none;background:#fff;border:1px solid #ccc;border-top:none;border-radius:0 0 4px 4px;z-index:100;max-height:200px;overflow-y:auto}.fast-input__dropdown-item{padding:0.5rem 0.75rem;cursor:pointer}.fast-input__dropdown-item:hover{background:#f0f0f0}.fast-input__dropdown-loading{padding:0.5rem 0.75rem;color:#999;font-style:italic}`;
6602
+
6603
+ class FastInput {
6604
+ constructor(hostRef) {
6605
+ registerInstance(this, hostRef);
6606
+ this.inputSubmit = createEvent(this, "inputSubmit");
6514
6607
  this.inputChanged = createEvent(this, "inputChanged");
6515
6608
  }
6516
6609
  placeholder = 'Search...';
@@ -6521,7 +6614,7 @@ class FastInput {
6521
6614
  targetPath;
6522
6615
  debounceMs = 300;
6523
6616
  minChars = 3;
6524
- searchExecuted;
6617
+ inputSubmit;
6525
6618
  inputChanged;
6526
6619
  inputValue = '';
6527
6620
  suggestions = [];
@@ -6529,6 +6622,12 @@ class FastInput {
6529
6622
  autocompleteLoading = false;
6530
6623
  debounceTimer;
6531
6624
  popstateHandler;
6625
+ async getValue() {
6626
+ return this.inputValue;
6627
+ }
6628
+ async getParamName() {
6629
+ return this.paramName;
6630
+ }
6532
6631
  connectedCallback() {
6533
6632
  const urlValue = this.getUrlParam();
6534
6633
  this.inputValue = urlValue !== null ? urlValue : this.value;
@@ -6545,30 +6644,6 @@ class FastInput {
6545
6644
  const params = new URLSearchParams(window.location.search);
6546
6645
  return params.get(this.paramName);
6547
6646
  }
6548
- updateUrlParam(value) {
6549
- const params = new URLSearchParams(window.location.search);
6550
- if (value) {
6551
- params.set(this.paramName, value);
6552
- }
6553
- else {
6554
- params.delete(this.paramName);
6555
- }
6556
- const qs = params.toString();
6557
- const newUrl = qs
6558
- ? `${window.location.pathname}?${qs}`
6559
- : window.location.pathname;
6560
- history.pushState({}, '', newUrl);
6561
- }
6562
- submit() {
6563
- this.updateUrlParam(this.inputValue);
6564
- document.dispatchEvent(new CustomEvent('search-executed', {
6565
- detail: { keyword: this.inputValue },
6566
- bubbles: true,
6567
- composed: true,
6568
- }));
6569
- this.searchExecuted.emit({ keyword: this.inputValue });
6570
- this.showDropdown = false;
6571
- }
6572
6647
  handleInput = (e) => {
6573
6648
  const value = e.target.value;
6574
6649
  this.inputValue = value;
@@ -6579,7 +6654,9 @@ class FastInput {
6579
6654
  };
6580
6655
  handleKeydown = (e) => {
6581
6656
  if (e.key === 'Enter') {
6582
- this.submit();
6657
+ e.preventDefault();
6658
+ this.showDropdown = false;
6659
+ this.inputSubmit.emit();
6583
6660
  }
6584
6661
  else if (e.key === 'Escape') {
6585
6662
  this.showDropdown = false;
@@ -6625,10 +6702,12 @@ class FastInput {
6625
6702
  selectSuggestion(title) {
6626
6703
  this.inputValue = title;
6627
6704
  this.showDropdown = false;
6628
- this.submit();
6705
+ this.inputSubmit.emit();
6629
6706
  }
6630
6707
  render() {
6631
- return (hAsync("div", { key: '3a9d31c7b109205600addc326d63979585f10bcd', class: "fast-input" }, hAsync("input", { key: '8f238fe9e002f367d4939616be8c06d938d76045', type: "text", class: "fast-input__field", placeholder: this.placeholder, value: this.inputValue, onInput: this.handleInput, onKeyDown: this.handleKeydown, onBlur: this.handleBlur }), hAsync("button", { key: '7b7404f13432750ece669da8ce68be15179921de', class: "fast-input__button", type: "button", onClick: () => this.submit() }, "Search"), this.enableAutocomplete && this.showDropdown && (hAsync("ul", { key: '1438bacadc21c183842a8bdaa3f336bffb152e14', class: "fast-input__dropdown" }, this.autocompleteLoading ? (hAsync("li", { class: "fast-input__dropdown-loading" }, "Loading...")) : (this.suggestions.map(s => (hAsync("li", { class: "fast-input__dropdown-item", onMouseDown: e => { e.preventDefault(); }, onClick: () => this.selectSuggestion(s.title) }, s.title))))))));
6708
+ return (hAsync("div", { key: 'ea03f3dd68d0da4fc30cbc18a1ef66b5974a4f89', class: "fast-input" }, hAsync("input", { key: '31d85c4c90dde0e10ea9424b960c5e4f4a3ca54a', type: "text", class: "fast-input__field", placeholder: this.placeholder, value: this.inputValue, onInput: this.handleInput, onKeyDown: this.handleKeydown, onBlur: this.handleBlur }), this.enableAutocomplete && this.showDropdown && (hAsync("ul", { key: '0de6fd68709d906bafd2fec684f0a73045be3705', class: "fast-input__dropdown" }, this.autocompleteLoading ? (hAsync("li", { class: "fast-input__dropdown-loading" }, "Loading...")) : (this.suggestions.map(s => (hAsync("li", { class: "fast-input__dropdown-item", onMouseDown: e => {
6709
+ e.preventDefault();
6710
+ }, onClick: () => this.selectSuggestion(s.title) }, s.title))))))));
6632
6711
  }
6633
6712
  static get style() { return fastInputCss(); }
6634
6713
  static get cmpMeta() { return {
@@ -6646,7 +6725,9 @@ class FastInput {
6646
6725
  "inputValue": [32],
6647
6726
  "suggestions": [32],
6648
6727
  "showDropdown": [32],
6649
- "autocompleteLoading": [32]
6728
+ "autocompleteLoading": [32],
6729
+ "getValue": [64],
6730
+ "getParamName": [64]
6650
6731
  },
6651
6732
  "$listeners$": undefined,
6652
6733
  "$lazyBundleId$": "-",
@@ -7105,7 +7186,7 @@ class JobsListOnly {
7105
7186
  : (this.totalJob || jobsArray.length);
7106
7187
  const showNoResults = !loading && totalJob === 0 && !this.showSuggestions;
7107
7188
  const showSuggestionsBlock = !loading && totalJob === 0 && this.showSuggestions;
7108
- return (hAsync("div", { key: '1116855473d28d650641b9d962243bfcdcb434ec', class: `jobs-list-root ${this.rootClass}`.trim() }, hAsync("div", { key: 'fcef04f1da9ad4e150af9f59921688f5781d9d43', class: "results-container" }, this.autoFetch && this.fetchLoading && (hAsync("div", { key: '75b157c82c89691c7ce73d12ea0144b3b45485c3', class: "jobs-list-only__loading" }, "Loading...")), hAsync("div", { key: 'b09f9879e10ee4a93e32177611912da5f19f3526', class: loading ? 'loader' : 'loader hide', "aria-hidden": !loading }), totalJob > 0 && this.showCountText && (hAsync("p", { key: 'd10f800fb0a33d82531d5f1728bac4ceba2ed577', class: "jobs-list-only__count" }, this.renderCountText(jobsArray.length, totalJob))), totalJob > 0 && (hAsync("div", { key: '18153ed1338bd48f7be4f043b11ce15e3271f27b', class: "card" }, hAsync("ul", { key: '766e128b1fd5adb456530ae39e92ba8eb0b5d6cf', class: "results-list front" }, jobsArray.map((job, index) => this.renderJobItem(job, index))))), showNoResults && (hAsync("div", { key: 'ed6f3d2bd2bbedabd6e69d508ea1425580e6941f', class: "share-jobs__no-results" }, hAsync("h2", { key: '2302656e33340c69e84cb949afb7256b8f35f440' }, this.noResultsLine1), hAsync("h3", { key: '1c7e6642441a96c04ee26883fdec4f81b0fe6cec' }, this.noResultsLine2))), showSuggestionsBlock && (hAsync("div", { key: 'be7af85f64455918545e88952ca6ff00f0a970c5', class: "card primary-color" }, hAsync("h4", { key: '2f63deb8131190eff882308544b15f767b6f3edc', class: "result-suggestions-title" }, this.clearResultSuggestionsTitleText, ":"), hAsync("ul", { key: 'cb18daaa9e2c2c442c5b906ed370dcd653b5262d', class: "results-list front" }, hAsync("li", { key: 'ff1d5c6518b75c0daa35b43df7162b0dfecde25e', class: "result-suggestions-line" }, this.clearResultSuggestionsLine1), hAsync("li", { key: '4099fd7bf8dcf114eca28702a498ab0938f5de46', class: "result-suggestions-line" }, this.clearResultSuggestionsLine2), hAsync("li", { key: 'fb65b54c3c0b14bc58112977eb4c7c56c1246a45', class: "result-suggestions-line" }, this.clearResultSuggestionsLine3), this.clearResultSuggestionsLine4 && (hAsync("li", { key: '10f745e74cf68a2b1c42e6f49f810a8b59eb27b6', class: "result-suggestions-line" }, this.clearResultSuggestionsLine4))))))));
7189
+ return (hAsync("div", { key: '1974ecb7e1ded8237d851560fc4b20dd63b4e941', class: `jobs-list-root ${this.rootClass}`.trim() }, hAsync("div", { key: '3d80283e8508cbe9ec4aa4516a6f832479374e08', class: "results-container" }, this.autoFetch && this.fetchLoading && (hAsync("div", { key: 'c5d3c5362a10ce2442925093118d3436227e8058', class: "jobs-list-only__loading" }, "Loading...")), hAsync("div", { key: 'c68e5aebee17cce16947029031b63364ab25ecda', class: loading ? 'loader' : 'loader hide', "aria-hidden": !loading }), totalJob > 0 && this.showCountText && (hAsync("p", { key: 'e353fa146040fed1aed050ed3ed833903efcdf41', class: "jobs-list-only__count" }, this.renderCountText(jobsArray.length, totalJob))), totalJob > 0 && (hAsync("div", { key: 'e38346f641a1e776a7e70525bf8f3a6a38b6eea5', class: "card" }, hAsync("ul", { key: 'db82d99df76e33ad6041d4ec8dd7908cdf8b89d7', class: "results-list front" }, jobsArray.map((job, index) => this.renderJobItem(job, index))))), showNoResults && (hAsync("div", { key: '8bd8f45ddb9fcd534c7f386919c1e6cd7a4fb6f3', class: "share-jobs__no-results" }, hAsync("h2", { key: '228d32e9dd38f61bcec9f522d3bc4207e17b5365' }, this.noResultsLine1), hAsync("h3", { key: '4289b10974936669a00afba6f1d55e33874198b1' }, this.noResultsLine2))), showSuggestionsBlock && (hAsync("div", { key: '949e1fe01b2db39a69729a9fbc2eebaf2ea461ba', class: "card primary-color" }, hAsync("h4", { key: 'af3361f98987a3a19d45afc1174a99fc4174a65a', class: "result-suggestions-title" }, this.clearResultSuggestionsTitleText, ":"), hAsync("ul", { key: 'd7b9236dbbeb9f9596d642aa588d1c1305ed658b', class: "results-list front" }, hAsync("li", { key: '0e65c9b985e5708096c8a4b0ea1455b6696db6dd', class: "result-suggestions-line" }, this.clearResultSuggestionsLine1), hAsync("li", { key: 'a7fe8459960af60acc81822b48436a32c0e4ad0c', class: "result-suggestions-line" }, this.clearResultSuggestionsLine2), hAsync("li", { key: '1e41d5730de755d6b2cb9e5fbda33704816f9096', class: "result-suggestions-line" }, this.clearResultSuggestionsLine3), this.clearResultSuggestionsLine4 && (hAsync("li", { key: '9ab1bee87135bfda9996b2c99134597475bfaecb', class: "result-suggestions-line" }, this.clearResultSuggestionsLine4))))))));
7109
7190
  }
7110
7191
  static get style() { return jobsListOnlyCss(); }
7111
7192
  static get cmpMeta() { return {
@@ -7246,7 +7327,7 @@ class JobsListReactive {
7246
7327
  });
7247
7328
  }
7248
7329
  render() {
7249
- return hAsync("slot", { key: '30a6fe9727eb877b6aafb99072c40811df121ba6' });
7330
+ return hAsync("slot", { key: '9f3ab802e19a298a790cfb5e86a4f4888e466804' });
7250
7331
  }
7251
7332
  static get style() { return jobsListReactiveCss(); }
7252
7333
  static get cmpMeta() { return {
@@ -7266,7 +7347,8 @@ class JobsListReactive {
7266
7347
 
7267
7348
  registerComponents([
7268
7349
  AppCarousel,
7269
- CustomButton,
7350
+ FastButton,
7351
+ FastForm,
7270
7352
  FastInput,
7271
7353
  JobCard,
7272
7354
  JobsItem,