@phatvu/web-component-poc 1.0.2 → 1.0.4

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 (43) hide show
  1. package/dist/cjs/{fast-carousel.cjs.entry.js → fast-button_4.cjs.entry.js} +233 -3
  2. package/dist/cjs/{index-C756SOR-.js → index-B2BTpdbN.js} +373 -114
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/web-component-poc.cjs.js +2 -2
  5. package/dist/collection/collection-manifest.json +2 -1
  6. package/dist/collection/components/button/button.js +2 -3
  7. package/dist/collection/components/fast-carousel/carousel.js +2 -3
  8. package/dist/collection/components/{jobs-list-only-ui/jobs-list-only-ui.css → jobs-item/jobs-item.css} +1 -75
  9. package/dist/collection/components/jobs-item/jobs-item.js +253 -0
  10. package/dist/collection/components/jobs-list-only/jobs-list-only.css +75 -0
  11. package/dist/collection/components/{jobs-list-only-ui/jobs-list-only-ui.js → jobs-list-only/jobs-list-only.js} +7 -45
  12. package/dist/components/fast-button.js +1 -1
  13. package/dist/components/fast-carousel.js +1 -1
  14. package/dist/components/index.js +1 -1
  15. package/dist/components/{jobs-list-only-ui.d.ts → jobs-item.d.ts} +4 -4
  16. package/dist/components/jobs-item.js +1 -0
  17. package/dist/components/jobs-list-only.d.ts +11 -0
  18. package/dist/components/jobs-list-only.js +1 -0
  19. package/dist/components/p-ClQDwJJB.js +1 -0
  20. package/dist/components/p-UM9TUfe3.js +1 -0
  21. package/dist/esm/{fast-carousel.entry.js → fast-button_4.entry.js} +231 -4
  22. package/dist/esm/{index-D7_MJBO8.js → index-Dk5CvWmb.js} +373 -114
  23. package/dist/esm/loader.js +3 -3
  24. package/dist/esm/web-component-poc.js +3 -3
  25. package/dist/types/components/jobs-item/jobs-item.d.ts +14 -0
  26. package/dist/types/components/{jobs-list-only-ui/jobs-list-only-ui.d.ts → jobs-list-only/jobs-list-only.d.ts} +1 -2
  27. package/dist/types/components.d.ts +99 -10
  28. package/dist/types/types/jobs-list.d.ts +2 -2
  29. package/dist/web-component-poc/{index-xE9n11HX.js.map → index-pJKMKO-T.js.map} +1 -1
  30. package/dist/web-component-poc/p-Dk5CvWmb.js +2 -0
  31. package/dist/web-component-poc/p-df843533.entry.js +1 -0
  32. package/dist/web-component-poc/web-component-poc.esm.js +1 -1
  33. package/hydrate/index.js +102 -552
  34. package/hydrate/index.mjs +102 -552
  35. package/package.json +9 -1
  36. package/readme.md +11 -0
  37. package/dist/cjs/fast-button_2.cjs.entry.js +0 -211
  38. package/dist/components/jobs-list-only-ui.js +0 -1
  39. package/dist/components/p-Cw2MJ5l2.js +0 -1
  40. package/dist/esm/fast-button_2.entry.js +0 -208
  41. package/dist/web-component-poc/p-0bc6d45d.entry.js +0 -1
  42. package/dist/web-component-poc/p-8ab359cc.entry.js +0 -1
  43. package/dist/web-component-poc/p-D7_MJBO8.js +0 -2
package/hydrate/index.js CHANGED
@@ -132,7 +132,7 @@ function hydrateFactory($stencilWindow, $stencilHydrateOpts, $stencilHydrateResu
132
132
 
133
133
 
134
134
  const NAMESPACE = 'web-component-poc';
135
- const BUILD = /* web-component-poc */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", prop: true, propChangeCallback: false, slotRelocation: true, updatable: true};
135
+ const BUILD = /* web-component-poc */ { hotModuleReplacement: false, hydratedSelectorName: "hydrated", prop: true, propChangeCallback: false, shadowDom: false, slotRelocation: true, updatable: true};
136
136
 
137
137
  /*
138
138
  Stencil Hydrate Platform v4.43.2 | MIT Licensed | https://stenciljs.com
@@ -732,21 +732,13 @@ var addStyle = (styleContainerNode, cmpMeta, mode) => {
732
732
  var attachStyles = (hostRef) => {
733
733
  const cmpMeta = hostRef.$cmpMeta$;
734
734
  const elm = hostRef.$hostElement$;
735
- const flags = cmpMeta.$flags$;
736
735
  const endAttachStyles = createTime("attachStyles", cmpMeta.$tagName$);
737
- const scopeId2 = addStyle(
738
- elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(),
736
+ addStyle(
737
+ elm.getRootNode(),
739
738
  cmpMeta);
740
- if (flags & 10 /* needsScopedEncapsulation */) {
741
- elm["s-sc"] = scopeId2;
742
- elm.classList.add(scopeId2 + "-h");
743
- }
744
739
  endAttachStyles();
745
740
  };
746
741
  var getScopeId = (cmp, mode) => "sc-" + (cmp.$tagName$);
747
-
748
- // src/utils/helpers.ts
749
- var isDef = (v) => v != null && v !== void 0;
750
742
  var isComplexType = (o) => {
751
743
  o = typeof o;
752
744
  return o === "object" || o === "function";
@@ -840,7 +832,7 @@ var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
840
832
  const childRenderNodes = [];
841
833
  const slotNodes = [];
842
834
  const slottedNodes = [];
843
- const shadowRootNodes = shadowRoot ? [] : null;
835
+ const shadowRootNodes = null;
844
836
  const vnode = newVNode(tagName, null);
845
837
  vnode.$elm$ = hostElm;
846
838
  if (win.document && (!plt.$orgLocNodes$ || !plt.$orgLocNodes$.size)) {
@@ -948,27 +940,6 @@ var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
948
940
  currentPos = (slottedItem.node["s-oo"] || currentPos) + 1;
949
941
  }
950
942
  }
951
- if (shadowRoot && !shadowRoot.childNodes.length) {
952
- let rnIdex = 0;
953
- const rnLen = shadowRootNodes.length;
954
- if (rnLen) {
955
- for (rnIdex; rnIdex < rnLen; rnIdex++) {
956
- const node = shadowRootNodes[rnIdex];
957
- if (node) {
958
- shadowRoot.appendChild(node);
959
- }
960
- }
961
- Array.from(hostElm.childNodes).forEach((node) => {
962
- if (typeof node["s-en"] !== "string" && typeof node["s-sn"] !== "string") {
963
- if (node.nodeType === 1 /* ElementNode */ && node.slot && node.hidden) {
964
- node.removeAttribute("hidden");
965
- } else if (node.nodeType === 8 /* CommentNode */ && !node.nodeValue) {
966
- node.parentNode.removeChild(node);
967
- }
968
- }
969
- });
970
- }
971
- }
972
943
  hostRef.$hostElement$ = hostElm;
973
944
  endHydrate();
974
945
  };
@@ -1021,9 +992,6 @@ var clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes,
1021
992
  parentVNode.$children$[childVNode.$index$] = childVNode;
1022
993
  }
1023
994
  parentVNode = childVNode;
1024
- if (shadowRootNodes && childVNode.$depth$ === "0") {
1025
- shadowRootNodes[childVNode.$index$] = childVNode.$elm$;
1026
- }
1027
995
  }
1028
996
  }
1029
997
  if (node.shadowRoot) {
@@ -1082,9 +1050,6 @@ var clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes,
1082
1050
  }
1083
1051
  parentVNode.$children$[childVNode.$index$] = childVNode;
1084
1052
  }
1085
- if (shadowRootNodes && childVNode.$depth$ === "0") {
1086
- shadowRootNodes[childVNode.$index$] = childVNode.$elm$;
1087
- }
1088
1053
  }
1089
1054
  } else if (childNodeType === COMMENT_NODE_ID) {
1090
1055
  childVNode.$elm$ = findCorrespondingNode(node, 8 /* CommentNode */);
@@ -1107,9 +1072,7 @@ var clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes,
1107
1072
  slottedNodes
1108
1073
  );
1109
1074
  } else if (childNodeType === CONTENT_REF_ID) {
1110
- if (shadowRootNodes) {
1111
- node.remove();
1112
- } else {
1075
+ {
1113
1076
  hostElm["s-cr"] = node;
1114
1077
  node["s-cn"] = true;
1115
1078
  }
@@ -1171,22 +1134,7 @@ function addSlot(slotName, slotId, childVNode, node, parentVNode, childRenderNod
1171
1134
  childVNode.$name$ = slotName || null;
1172
1135
  childVNode.$tag$ = "slot";
1173
1136
  const parentNodeId = (parentVNode == null ? void 0 : parentVNode.$elm$) ? parentVNode.$elm$["s-id"] || parentVNode.$elm$.getAttribute("s-id") : "";
1174
- if (shadowRootNodes && win.document) {
1175
- const slot = childVNode.$elm$ = win.document.createElement(childVNode.$tag$);
1176
- if (childVNode.$name$) {
1177
- childVNode.$elm$.setAttribute("name", slotName);
1178
- }
1179
- if (parentVNode.$elm$.shadowRoot && parentNodeId && parentNodeId !== childVNode.$hostId$) {
1180
- internalCall(parentVNode.$elm$, "insertBefore")(slot, internalCall(parentVNode.$elm$, "children")[0]);
1181
- } else {
1182
- internalCall(internalCall(node, "parentNode"), "insertBefore")(slot, node);
1183
- }
1184
- addSlottedNodes(slottedNodes, slotId, slotName, node, childVNode.$hostId$);
1185
- node.remove();
1186
- if (childVNode.$depth$ === "0") {
1187
- shadowRootNodes[childVNode.$index$] = childVNode.$elm$;
1188
- }
1189
- } else {
1137
+ {
1190
1138
  const slot = childVNode.$elm$;
1191
1139
  const shouldMove = parentNodeId && parentNodeId !== childVNode.$hostId$ && parentVNode.$elm$.shadowRoot;
1192
1140
  addSlottedNodes(slottedNodes, slotId, slotName, node, shouldMove ? parentNodeId : childVNode.$hostId$);
@@ -1223,417 +1171,6 @@ var findCorrespondingNode = (node, type) => {
1223
1171
  return sibling;
1224
1172
  };
1225
1173
 
1226
- // src/utils/regular-expression.ts
1227
- var escapeRegExpSpecialCharacters = (text) => {
1228
- return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
1229
- };
1230
-
1231
- // src/utils/shadow-css.ts
1232
- /**
1233
- * @license
1234
- * Copyright Google Inc. All Rights Reserved.
1235
- *
1236
- * Use of this source code is governed by an MIT-style license that can be
1237
- * found in the LICENSE file at https://angular.io/license
1238
- *
1239
- * This file is a port of shadowCSS from `webcomponents.js` to TypeScript.
1240
- * https://github.com/webcomponents/webcomponentsjs/blob/4efecd7e0e/src/ShadowCSS/ShadowCSS.js
1241
- * https://github.com/angular/angular/blob/master/packages/compiler/src/shadow_css.ts
1242
- */
1243
- var safeSelector = (selector) => {
1244
- const placeholders = [];
1245
- let index = 0;
1246
- selector = selector.replace(/(\[\s*part~=\s*("[^"]*"|'[^']*')\s*\])/g, (_, keep) => {
1247
- const replaceBy = `__part-${index}__`;
1248
- placeholders.push(keep);
1249
- index++;
1250
- return replaceBy;
1251
- });
1252
- selector = selector.replace(/(\[[^\]]*\])/g, (_, keep) => {
1253
- const replaceBy = `__ph-${index}__`;
1254
- placeholders.push(keep);
1255
- index++;
1256
- return replaceBy;
1257
- });
1258
- const content = selector.replace(/(:nth-[-\w]+)(\([^)]+\))/g, (_, pseudo, exp) => {
1259
- const replaceBy = `__ph-${index}__`;
1260
- placeholders.push(exp);
1261
- index++;
1262
- return pseudo + replaceBy;
1263
- });
1264
- const ss = {
1265
- content,
1266
- placeholders
1267
- };
1268
- return ss;
1269
- };
1270
- var restoreSafeSelector = (placeholders, content) => {
1271
- content = content.replace(/__part-(\d+)__/g, (_, index) => placeholders[+index]);
1272
- return content.replace(/__ph-(\d+)__/g, (_, index) => placeholders[+index]);
1273
- };
1274
- var _polyfillHost = "-shadowcsshost";
1275
- var _polyfillSlotted = "-shadowcssslotted";
1276
- var _polyfillHostContext = "-shadowcsscontext";
1277
- var _parenSuffix = ")(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)";
1278
- var _cssColonHostRe = new RegExp("(" + _polyfillHost + _parenSuffix, "gim");
1279
- var _cssColonHostContextRe = new RegExp("(" + _polyfillHostContext + _parenSuffix, "gim");
1280
- var _cssColonSlottedRe = new RegExp("(" + _polyfillSlotted + _parenSuffix, "gim");
1281
- var _polyfillHostNoCombinator = _polyfillHost + "-no-combinator";
1282
- var _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\s]*)/;
1283
- var _shadowDOMSelectorsRe = [/::shadow/g, /::content/g];
1284
- var _safePartRe = /__part-(\d+)__/g;
1285
- var _selectorReSuffix = "([>\\s~+[.,{:][\\s\\S]*)?$";
1286
- var _polyfillHostRe = /-shadowcsshost/gim;
1287
- var createSupportsRuleRe = (selector) => {
1288
- const safeSelector2 = escapeRegExpSpecialCharacters(selector);
1289
- return new RegExp(
1290
- // First capture group: match any context before the selector that's not inside @supports selector()
1291
- // Using negative lookahead to avoid matching inside @supports selector(...) condition
1292
- `(^|[^@]|@(?!supports\\s+selector\\s*\\([^{]*?${safeSelector2}))(${safeSelector2}\\b)`,
1293
- "g"
1294
- );
1295
- };
1296
- var _commentRe = /\/\*\s*[\s\S]*?\*\//g;
1297
- var stripComments = (input) => {
1298
- return input.replace(_commentRe, "");
1299
- };
1300
- var _commentWithHashRe = /\/\*\s*#\s*source(Mapping)?URL=[\s\S]+?\*\//g;
1301
- var extractCommentsWithHash = (input) => {
1302
- return input.match(_commentWithHashRe) || [];
1303
- };
1304
- var _ruleRe = /(\s*)([^;\{\}]+?)(\s*)((?:{%BLOCK%}?\s*;?)|(?:\s*;))/g;
1305
- var _curlyRe = /([{}])/g;
1306
- var _selectorPartsRe = /(^.*?[^\\])??((:+)(.*)|$)/;
1307
- var OPEN_CURLY = "{";
1308
- var CLOSE_CURLY = "}";
1309
- var BLOCK_PLACEHOLDER = "%BLOCK%";
1310
- var processRules = (input, ruleCallback) => {
1311
- const inputWithEscapedBlocks = escapeBlocks(input);
1312
- let nextBlockIndex = 0;
1313
- return inputWithEscapedBlocks.escapedString.replace(_ruleRe, (...m) => {
1314
- const selector = m[2];
1315
- let content = "";
1316
- let suffix = m[4];
1317
- let contentPrefix = "";
1318
- if (suffix && suffix.startsWith("{" + BLOCK_PLACEHOLDER)) {
1319
- content = inputWithEscapedBlocks.blocks[nextBlockIndex++];
1320
- suffix = suffix.substring(BLOCK_PLACEHOLDER.length + 1);
1321
- contentPrefix = "{";
1322
- }
1323
- const cssRule = {
1324
- selector,
1325
- content
1326
- };
1327
- const rule = ruleCallback(cssRule);
1328
- return `${m[1]}${rule.selector}${m[3]}${contentPrefix}${rule.content}${suffix}`;
1329
- });
1330
- };
1331
- var escapeBlocks = (input) => {
1332
- const inputParts = input.split(_curlyRe);
1333
- const resultParts = [];
1334
- const escapedBlocks = [];
1335
- let bracketCount = 0;
1336
- let currentBlockParts = [];
1337
- for (let partIndex = 0; partIndex < inputParts.length; partIndex++) {
1338
- const part = inputParts[partIndex];
1339
- if (part === CLOSE_CURLY) {
1340
- bracketCount--;
1341
- }
1342
- if (bracketCount > 0) {
1343
- currentBlockParts.push(part);
1344
- } else {
1345
- if (currentBlockParts.length > 0) {
1346
- escapedBlocks.push(currentBlockParts.join(""));
1347
- resultParts.push(BLOCK_PLACEHOLDER);
1348
- currentBlockParts = [];
1349
- }
1350
- resultParts.push(part);
1351
- }
1352
- if (part === OPEN_CURLY) {
1353
- bracketCount++;
1354
- }
1355
- }
1356
- if (currentBlockParts.length > 0) {
1357
- escapedBlocks.push(currentBlockParts.join(""));
1358
- resultParts.push(BLOCK_PLACEHOLDER);
1359
- }
1360
- const strEscapedBlocks = {
1361
- escapedString: resultParts.join(""),
1362
- blocks: escapedBlocks
1363
- };
1364
- return strEscapedBlocks;
1365
- };
1366
- var insertPolyfillHostInCssText = (cssText) => {
1367
- const supportsBlocks = [];
1368
- cssText = cssText.replace(/@supports\s+selector\s*\(\s*([^)]*)\s*\)/g, (_, selectorContent) => {
1369
- const placeholder = `__supports_${supportsBlocks.length}__`;
1370
- supportsBlocks.push(selectorContent);
1371
- return `@supports selector(${placeholder})`;
1372
- });
1373
- const _colonSlottedRe = createSupportsRuleRe("::slotted");
1374
- const _colonHostRe = createSupportsRuleRe(":host");
1375
- const _colonHostContextRe = createSupportsRuleRe(":host-context");
1376
- cssText = cssText.replace(_colonHostContextRe, `$1${_polyfillHostContext}`).replace(_colonHostRe, `$1${_polyfillHost}`).replace(_colonSlottedRe, `$1${_polyfillSlotted}`);
1377
- supportsBlocks.forEach((originalSelector, index) => {
1378
- cssText = cssText.replace(`__supports_${index}__`, originalSelector);
1379
- });
1380
- return cssText;
1381
- };
1382
- var convertColonRule = (cssText, regExp, partReplacer) => {
1383
- return cssText.replace(regExp, (...m) => {
1384
- if (m[2]) {
1385
- const parts = m[2].split(",");
1386
- const r = [];
1387
- for (let i2 = 0; i2 < parts.length; i2++) {
1388
- const p = parts[i2].trim();
1389
- if (!p) break;
1390
- r.push(partReplacer(_polyfillHostNoCombinator, p, m[3]));
1391
- }
1392
- return r.join(",");
1393
- } else {
1394
- return _polyfillHostNoCombinator + m[3];
1395
- }
1396
- });
1397
- };
1398
- var colonHostPartReplacer = (host, part, suffix) => {
1399
- return host + part.replace(_polyfillHost, "") + suffix;
1400
- };
1401
- var convertColonHost = (cssText) => {
1402
- return convertColonRule(cssText, _cssColonHostRe, colonHostPartReplacer);
1403
- };
1404
- var colonHostContextPartReplacer = (host, part, suffix) => {
1405
- if (part.indexOf(_polyfillHost) > -1) {
1406
- return colonHostPartReplacer(host, part, suffix);
1407
- } else {
1408
- return host + part + suffix + ", " + part + " " + host + suffix;
1409
- }
1410
- };
1411
- var convertColonSlotted = (cssText, slotScopeId) => {
1412
- const slotClass = "." + slotScopeId + " > ";
1413
- const selectors = [];
1414
- cssText = cssText.replace(_cssColonSlottedRe, (...m) => {
1415
- if (m[2]) {
1416
- const compound = m[2].trim();
1417
- const suffix = m[3];
1418
- const slottedSelector = slotClass + compound + suffix;
1419
- let prefixSelector = "";
1420
- for (let i2 = m[4] - 1; i2 >= 0; i2--) {
1421
- const char = m[5][i2];
1422
- if (char === "}" || char === ",") {
1423
- break;
1424
- }
1425
- prefixSelector = char + prefixSelector;
1426
- }
1427
- const orgSelector = (prefixSelector + slottedSelector).trim();
1428
- const addedSelector = `${prefixSelector.trimEnd()}${slottedSelector.trim()}`.trim();
1429
- if (orgSelector !== addedSelector) {
1430
- const updatedSelector = `${addedSelector}, ${orgSelector}`;
1431
- selectors.push({
1432
- orgSelector,
1433
- updatedSelector
1434
- });
1435
- }
1436
- return slottedSelector;
1437
- } else {
1438
- return _polyfillHostNoCombinator + m[3];
1439
- }
1440
- });
1441
- return {
1442
- selectors,
1443
- cssText
1444
- };
1445
- };
1446
- var convertColonHostContext = (cssText) => {
1447
- return convertColonRule(cssText, _cssColonHostContextRe, colonHostContextPartReplacer);
1448
- };
1449
- var convertShadowDOMSelectors = (cssText) => {
1450
- return _shadowDOMSelectorsRe.reduce((result, pattern) => result.replace(pattern, " "), cssText);
1451
- };
1452
- var makeScopeMatcher = (scopeSelector2) => {
1453
- const lre = /\[/g;
1454
- const rre = /\]/g;
1455
- scopeSelector2 = scopeSelector2.replace(lre, "\\[").replace(rre, "\\]");
1456
- return new RegExp("^(" + scopeSelector2 + ")" + _selectorReSuffix, "m");
1457
- };
1458
- var selectorNeedsScoping = (selector, scopeSelector2) => {
1459
- const re = makeScopeMatcher(scopeSelector2);
1460
- return !re.test(selector);
1461
- };
1462
- var injectScopingSelector = (selector, scopingSelector) => {
1463
- return selector.replace(_selectorPartsRe, (_, before = "", _colonGroup, colon = "", after = "") => {
1464
- return before + scopingSelector + colon + after;
1465
- });
1466
- };
1467
- var applySimpleSelectorScope = (selector, scopeSelector2, hostSelector) => {
1468
- _polyfillHostRe.lastIndex = 0;
1469
- if (_polyfillHostRe.test(selector)) {
1470
- const replaceBy = `.${hostSelector}`;
1471
- return selector.replace(_polyfillHostNoCombinatorRe, (_, selector2) => injectScopingSelector(selector2, replaceBy)).replace(_polyfillHostRe, replaceBy + " ");
1472
- }
1473
- return scopeSelector2 + " " + selector;
1474
- };
1475
- var applyStrictSelectorScope = (selector, scopeSelector2, hostSelector) => {
1476
- const isRe = /\[is=([^\]]*)\]/g;
1477
- scopeSelector2 = scopeSelector2.replace(isRe, (_, ...parts) => parts[0]);
1478
- const className = "." + scopeSelector2;
1479
- const _scopeSelectorPart = (p) => {
1480
- let scopedP = p.trim();
1481
- if (!scopedP) {
1482
- return "";
1483
- }
1484
- if (p.indexOf(_polyfillHostNoCombinator) > -1) {
1485
- scopedP = applySimpleSelectorScope(p, scopeSelector2, hostSelector);
1486
- } else {
1487
- const t = p.replace(_polyfillHostRe, "");
1488
- if (t.length > 0) {
1489
- scopedP = injectScopingSelector(t, className);
1490
- }
1491
- }
1492
- return scopedP;
1493
- };
1494
- const safeContent = safeSelector(selector);
1495
- selector = safeContent.content;
1496
- let scopedSelector = "";
1497
- let startIndex = 0;
1498
- let res;
1499
- const sep2 = /( |>|\+|~(?!=))(?=(?:[^()]*\([^()]*\))*[^()]*$)\s*/g;
1500
- const hasHost = selector.indexOf(_polyfillHostNoCombinator) > -1;
1501
- let shouldScope = !hasHost;
1502
- while ((res = sep2.exec(selector)) !== null) {
1503
- const separator = res[1];
1504
- const part2 = selector.slice(startIndex, res.index).trim();
1505
- shouldScope = shouldScope || part2.indexOf(_polyfillHostNoCombinator) > -1;
1506
- const scopedPart = shouldScope ? _scopeSelectorPart(part2) : part2;
1507
- scopedSelector += `${scopedPart} ${separator} `;
1508
- startIndex = sep2.lastIndex;
1509
- }
1510
- const part = selector.substring(startIndex);
1511
- shouldScope = !part.match(_safePartRe) && (shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1);
1512
- scopedSelector += shouldScope ? _scopeSelectorPart(part) : part;
1513
- return restoreSafeSelector(safeContent.placeholders, scopedSelector);
1514
- };
1515
- var scopeSelector = (selector, scopeSelectorText, hostSelector, slotSelector) => {
1516
- return selector.split(",").map((shallowPart) => {
1517
- if (slotSelector && shallowPart.indexOf("." + slotSelector) > -1) {
1518
- return shallowPart.trim();
1519
- }
1520
- if (selectorNeedsScoping(shallowPart, scopeSelectorText)) {
1521
- return applyStrictSelectorScope(shallowPart, scopeSelectorText, hostSelector).trim();
1522
- } else {
1523
- return shallowPart.trim();
1524
- }
1525
- }).join(", ");
1526
- };
1527
- var scopeSelectors = (cssText, scopeSelectorText, hostSelector, slotSelector, commentOriginalSelector) => {
1528
- return processRules(cssText, (rule) => {
1529
- let selector = rule.selector;
1530
- let content = rule.content;
1531
- if (rule.selector[0] !== "@") {
1532
- selector = scopeSelector(rule.selector, scopeSelectorText, hostSelector, slotSelector);
1533
- } else if (rule.selector.startsWith("@media") || rule.selector.startsWith("@supports") || rule.selector.startsWith("@page") || rule.selector.startsWith("@document")) {
1534
- content = scopeSelectors(rule.content, scopeSelectorText, hostSelector, slotSelector);
1535
- }
1536
- const cssRule = {
1537
- selector: selector.replace(/\s{2,}/g, " ").trim(),
1538
- content
1539
- };
1540
- return cssRule;
1541
- });
1542
- };
1543
- var scopeCssText = (cssText, scopeId2, hostScopeId, slotScopeId, commentOriginalSelector) => {
1544
- cssText = insertPolyfillHostInCssText(cssText);
1545
- cssText = convertColonHost(cssText);
1546
- cssText = convertColonHostContext(cssText);
1547
- const slotted = convertColonSlotted(cssText, slotScopeId);
1548
- cssText = slotted.cssText;
1549
- cssText = convertShadowDOMSelectors(cssText);
1550
- if (scopeId2) {
1551
- cssText = scopeSelectors(cssText, scopeId2, hostScopeId, slotScopeId);
1552
- }
1553
- cssText = replaceShadowCssHost(cssText, hostScopeId);
1554
- cssText = cssText.replace(/>\s*\*\s+([^{, ]+)/gm, " $1 ");
1555
- return {
1556
- cssText: cssText.trim(),
1557
- // We need to replace the shadow CSS host string in each of these selectors since we created
1558
- // them prior to the replacement happening in the components CSS text.
1559
- slottedSelectors: slotted.selectors.map((ref) => ({
1560
- orgSelector: replaceShadowCssHost(ref.orgSelector, hostScopeId),
1561
- updatedSelector: replaceShadowCssHost(ref.updatedSelector, hostScopeId)
1562
- }))
1563
- };
1564
- };
1565
- var replaceShadowCssHost = (cssText, hostScopeId) => {
1566
- return cssText.replace(/-shadowcsshost-no-combinator/g, `.${hostScopeId}`);
1567
- };
1568
- var expandPartSelectors = (cssText) => {
1569
- const partSelectorRe = /([^\s,{][^,{]*?)::part\(\s*([^)]+?)\s*\)((?:[:.][^,{]*)*)/g;
1570
- return processRules(cssText, (rule) => {
1571
- if (rule.selector[0] === "@") {
1572
- return rule;
1573
- }
1574
- const selectors = rule.selector.split(",").map((sel) => {
1575
- const out = [sel.trim()];
1576
- let m;
1577
- while ((m = partSelectorRe.exec(sel)) !== null) {
1578
- const before = m[1].trimEnd();
1579
- const partNames = m[2].trim().split(/\s+/);
1580
- const after = m[3] || "";
1581
- const partAttr = partNames.flatMap((p) => {
1582
- if (!rule.selector.includes(`[part~="${p}"]`)) {
1583
- return [`[part~="${p}"]`];
1584
- }
1585
- return [];
1586
- }).join("");
1587
- const expanded = `${before} ${partAttr}${after}`;
1588
- if (!!partAttr && expanded !== sel.trim()) {
1589
- out.push(expanded);
1590
- }
1591
- }
1592
- return out.join(", ");
1593
- });
1594
- rule.selector = selectors.join(", ");
1595
- return rule;
1596
- });
1597
- };
1598
- var scopeCss = (cssText, scopeId2, commentOriginalSelector) => {
1599
- const hostScopeId = scopeId2 + "-h";
1600
- const slotScopeId = scopeId2 + "-s";
1601
- const commentsWithHash = extractCommentsWithHash(cssText);
1602
- cssText = stripComments(cssText);
1603
- const orgSelectors = [];
1604
- {
1605
- const processCommentedSelector = (rule) => {
1606
- const placeholder = `/*!@___${orgSelectors.length}___*/`;
1607
- const comment = `/*!@${rule.selector}*/`;
1608
- orgSelectors.push({ placeholder, comment });
1609
- rule.selector = placeholder + rule.selector;
1610
- return rule;
1611
- };
1612
- cssText = processRules(cssText, (rule) => {
1613
- if (rule.selector[0] !== "@") {
1614
- return processCommentedSelector(rule);
1615
- } else if (rule.selector.startsWith("@media") || rule.selector.startsWith("@supports") || rule.selector.startsWith("@page") || rule.selector.startsWith("@document")) {
1616
- rule.content = processRules(rule.content, processCommentedSelector);
1617
- return rule;
1618
- }
1619
- return rule;
1620
- });
1621
- }
1622
- const scoped = scopeCssText(cssText, scopeId2, hostScopeId, slotScopeId);
1623
- cssText = [scoped.cssText, ...commentsWithHash].join("\n");
1624
- {
1625
- orgSelectors.forEach(({ placeholder, comment }) => {
1626
- cssText = cssText.replace(placeholder, comment);
1627
- });
1628
- }
1629
- scoped.slottedSelectors.forEach((slottedSelector) => {
1630
- const regex = new RegExp(escapeRegExpSpecialCharacters(slottedSelector.orgSelector) + "(?=\\s*[,{]|$)", "g");
1631
- cssText = cssText.replace(regex, slottedSelector.updatedSelector);
1632
- });
1633
- cssText = expandPartSelectors(cssText);
1634
- return cssText;
1635
- };
1636
-
1637
1174
  // src/utils/remote-value.ts
1638
1175
  var RemoteValue = class _RemoteValue {
1639
1176
  /**
@@ -1963,9 +1500,6 @@ function sortedAttrNames(attrNames) {
1963
1500
  attrNames
1964
1501
  );
1965
1502
  }
1966
-
1967
- // src/runtime/vdom/vdom-render.ts
1968
- var scopeId;
1969
1503
  var contentRef;
1970
1504
  var hostTagName;
1971
1505
  var useNativeShadowDom = false;
@@ -2020,9 +1554,6 @@ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
2020
1554
  {
2021
1555
  updateElement(null, newVNode2, isSvgMode);
2022
1556
  }
2023
- if (isDef(scopeId) && elm["s-si"] !== scopeId) {
2024
- elm.classList.add(elm["s-si"] = scopeId);
2025
- }
2026
1557
  if (newVNode2.$children$) {
2027
1558
  const appendTarget = newVNode2.$tag$ === "template" ? elm.content : elm;
2028
1559
  for (i2 = 0; i2 < newVNode2.$children$.length; ++i2) {
@@ -2108,9 +1639,6 @@ var putBackInOriginalLocation = (parentElm, recursive) => {
2108
1639
  var addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
2109
1640
  let containerElm = parentElm["s-cr"] && parentElm["s-cr"].parentNode || parentElm;
2110
1641
  let childNode;
2111
- if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {
2112
- containerElm = containerElm.shadowRoot;
2113
- }
2114
1642
  if (parentVNode.$tag$ === "template") {
2115
1643
  containerElm = containerElm.content;
2116
1644
  }
@@ -2424,11 +1952,8 @@ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
2424
1952
  rootVnode.$tag$ = null;
2425
1953
  rootVnode.$flags$ |= 4 /* isHost */;
2426
1954
  hostRef.$vnode$ = rootVnode;
2427
- rootVnode.$elm$ = oldVNode.$elm$ = hostElm.shadowRoot || hostElm ;
2428
- {
2429
- scopeId = hostElm["s-sc"];
2430
- }
2431
- useNativeShadowDom = !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) && !(cmpMeta.$flags$ & 128 /* shadowNeedsScopedCss */);
1955
+ rootVnode.$elm$ = oldVNode.$elm$ = hostElm;
1956
+ useNativeShadowDom = supportsShadow;
2432
1957
  {
2433
1958
  contentRef = hostElm["s-cr"];
2434
1959
  checkSlotFallbackVisibility = false;
@@ -2886,13 +2411,6 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
2886
2411
  const scopeId2 = getScopeId(cmpMeta);
2887
2412
  if (!styles.has(scopeId2) || BUILD.hotModuleReplacement) {
2888
2413
  const endRegisterStyles = createTime("registerStyles", cmpMeta.$tagName$);
2889
- {
2890
- if (cmpMeta.$flags$ & 128 /* shadowNeedsScopedCss */) {
2891
- style = scopeCss(style, scopeId2);
2892
- } else if (needsScopedSSR()) {
2893
- style = expandPartSelectors(style);
2894
- }
2895
- }
2896
2414
  registerStyle(scopeId2, style);
2897
2415
  endRegisterStyles();
2898
2416
  }
@@ -2937,10 +2455,6 @@ var connectedCallback = (elm) => {
2937
2455
  {
2938
2456
  hostId = elm.getAttribute(HYDRATE_ID);
2939
2457
  if (hostId) {
2940
- if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {
2941
- const scopeId2 = addStyle(elm.shadowRoot, cmpMeta);
2942
- elm.classList.remove(scopeId2 + "-h", scopeId2 + "-s");
2943
- }
2944
2458
  initializeClientHydrate(elm, cmpMeta.$tagName$, hostId, hostRef);
2945
2459
  }
2946
2460
  }
@@ -4653,7 +4167,6 @@ function hydrateApp(win2, opts, results, afterHydrate, resolve) {
4653
4167
  const orgDocumentCreateElement = win2.document.createElement;
4654
4168
  const orgDocumentCreateElementNS = win2.document.createElementNS;
4655
4169
  const resolved2 = Promise.resolve();
4656
- setScopedSSR(opts);
4657
4170
  let tmrId;
4658
4171
  let ranCompleted = false;
4659
4172
  function hydratedComplete() {
@@ -4983,6 +4496,7 @@ var plt = {
4983
4496
  rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),
4984
4497
  ce: (eventName, opts) => new win.CustomEvent(eventName, opts)
4985
4498
  };
4499
+ var supportsShadow = BUILD.shadowDom;
4986
4500
  var getHostRef = (ref) => {
4987
4501
  if (ref.__stencil__getHostRef) {
4988
4502
  return ref.__stencil__getHostRef();
@@ -5016,11 +4530,6 @@ var registerHost = (elm, cmpMeta) => {
5016
4530
  return hostRef;
5017
4531
  };
5018
4532
  var styles = /* @__PURE__ */ new Map();
5019
- var setScopedSSR = (opts) => {
5020
- scopedSSR = opts.serializeShadowRoot !== false && opts.serializeShadowRoot !== "declarative-shadow-dom";
5021
- };
5022
- var needsScopedSSR = () => scopedSSR;
5023
- var scopedSSR = false;
5024
4533
 
5025
4534
  function isNumber(subject) {
5026
4535
  return typeof subject === 'number';
@@ -6915,17 +6424,17 @@ class AppCarousel {
6915
6424
  render() {
6916
6425
  const itemsArray = this.getItemsArray();
6917
6426
  const useItems = itemsArray !== undefined && itemsArray.length > 0;
6918
- return (hAsync("div", { key: '313c58e9c1ea3b9c0d0fd4b9d6354336682d9353', class: `carousel ${this.class || ''}`.trim() }, hAsync("div", { key: '14ad75526a24ed38df053fa221e2fafef6d532ed', class: `carousel__viewport ${this.slideClass || ''}`.trim(), ref: (el) => (this.viewportRef = el) }, hAsync("div", { key: '1d3a771598c382592b789289494f2439fea56918', class: "carousel__container", ref: (el) => (this.containerRef = el) }, useItems && itemsArray
6427
+ return (hAsync("div", { key: '3a2ea6c339bf0fe656e5a333789df7a37156b5dc', class: `carousel ${this.class || ''}`.trim() }, hAsync("div", { key: '0a73b925095ae3188e5e40b024bc250e4c183894', class: `carousel__viewport ${this.slideClass || ''}`.trim(), ref: (el) => (this.viewportRef = el) }, hAsync("div", { key: '7fc3b5a72e386f7fa21702aeb363e08da1b728cf', class: "carousel__container", ref: (el) => (this.containerRef = el) }, useItems && itemsArray
6919
6428
  ? itemsArray.map((item, i) => (hAsync("div", { key: i, class: `carousel__slide ${this.itemClass || ''}`.trim() }, typeof item === 'object' &&
6920
6429
  item !== null &&
6921
6430
  'content' in item
6922
6431
  ? item.content
6923
6432
  : String(item))))
6924
- : null)), !useItems && (hAsync("div", { key: 'cdecd3275ac3c5ffe7a0f46153d3e59ad0d4ba9d', style: { display: 'none' }, "aria-hidden": "true" }, hAsync("slot", { key: '450dd5b90f20166a4d6ef4a0d46d208ad47bbf4b', ref: (el) => (this.slotRef = el) }))), hAsync("div", { key: 'ad4eab3f45204170308d8021799d227eaff36d71', class: `carousel__controls ${this.controlClass || ''}`.trim() }, hAsync("button", { key: '1a4ef7209ea768a55892f4d928da3f6100faab4b', type: "button", "aria-label": "Previous", class: "carousel__prev", ref: (el) => (this.prevBtnRef = el) }, hAsync("svg", { key: '7d579cb030149947791db565bc1520ef2707c360', class: "carousel__icon", "stroke-width": "1.5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", "aria-hidden": "true" }, hAsync("path", { key: 'fdca1a876d4967c39286bddba6122351fbf0d925', "stroke-linecap": "round", "stroke-linejoin": "round", d: "M15.75 19.5L8.25 12l7.5-7.5" }))), hAsync("div", { key: '4d9a30f1988f2ce04f271967f1dd39c5287273f2', class: "carousel__dots", ref: (el) => (this.dotsRef = el) }), hAsync("button", { key: 'c8bc7787821f3277c6d038e3ff1240b3ce936825', type: "button", "aria-label": "Next", class: "carousel__next", ref: (el) => (this.nextBtnRef = el) }, hAsync("svg", { key: 'e6e4eff954b1b08711cc843de558e00a8257e9f8', class: "carousel__icon", "stroke-width": "1.5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", "aria-hidden": "true" }, hAsync("path", { key: '37b394093f327bdc46f8da1dcf78ec609a585a0a', "stroke-linecap": "round", "stroke-linejoin": "round", d: "M8.25 4.5l7.5 7.5-7.5 7.5" }))))));
6433
+ : null)), !useItems && (hAsync("div", { key: 'dee2fc91470728c136c9853cd74ae350ad3c5676', style: { display: 'none' }, "aria-hidden": "true" }, hAsync("slot", { key: '35dd47c03a1b9b6b73d845252c3d0482590f7da2', ref: (el) => (this.slotRef = el) }))), hAsync("div", { key: 'df639ad86ae8533f1dc15eed30afb70d99e36e1a', class: `carousel__controls ${this.controlClass || ''}`.trim() }, hAsync("button", { key: 'c17c0ea9bf023b5d2621e558c957d92b13425584', type: "button", "aria-label": "Previous", class: "carousel__prev", ref: (el) => (this.prevBtnRef = el) }, hAsync("svg", { key: '5125abcae0b08ee72106d511b4c24c2d0f24187b', class: "carousel__icon", "stroke-width": "1.5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", "aria-hidden": "true" }, hAsync("path", { key: '9b7f28be56f451ad14de226d7163a5587a1cd9e6', "stroke-linecap": "round", "stroke-linejoin": "round", d: "M15.75 19.5L8.25 12l7.5-7.5" }))), hAsync("div", { key: '9939d3496092a3f319efac9132cec8097c83b497', class: "carousel__dots", ref: (el) => (this.dotsRef = el) }), hAsync("button", { key: 'a0b1228f6df0065885f1d272386283926e78464b', type: "button", "aria-label": "Next", class: "carousel__next", ref: (el) => (this.nextBtnRef = el) }, hAsync("svg", { key: 'e00c92cc0485f41a30e97d5d0466aaee48a64998', class: "carousel__icon", "stroke-width": "1.5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", "aria-hidden": "true" }, hAsync("path", { key: 'a35c46fdbd1cd333d3e6f76590f45dd837546165', "stroke-linecap": "round", "stroke-linejoin": "round", d: "M8.25 4.5l7.5 7.5-7.5 7.5" }))))));
6925
6434
  }
6926
6435
  static get style() { return carouselCss(); }
6927
6436
  static get cmpMeta() { return {
6928
- "$flags$": 777,
6437
+ "$flags$": 772,
6929
6438
  "$tagName$": "fast-carousel",
6930
6439
  "$members$": {
6931
6440
  "items": [1],
@@ -6977,15 +6486,15 @@ class CustomButton {
6977
6486
  this.buttonClick.emit(e);
6978
6487
  };
6979
6488
  render() {
6980
- return (hAsync("button", { key: 'b373f44e11e651d0371ce3cade98b4650ccdd727', type: this.type, class: {
6489
+ return (hAsync("button", { key: '3b74909afe4e305dfd38f0b07657202e3d5bfccd', type: this.type, class: {
6981
6490
  'custom-button': true,
6982
6491
  [`custom-button--${this.variant}`]: true,
6983
6492
  'custom-button--disabled': this.disabled,
6984
- }, disabled: this.disabled, onClick: this.handleClick }, hAsync("slot", { key: '2a046bc70af051c04f4549def87dac7044b41e04' })));
6493
+ }, disabled: this.disabled, onClick: this.handleClick }, hAsync("slot", { key: '49845d350e4665c5c66e30bd9262f788eaaa1e20' })));
6985
6494
  }
6986
6495
  static get style() { return buttonCss(); }
6987
6496
  static get cmpMeta() { return {
6988
- "$flags$": 777,
6497
+ "$flags$": 772,
6989
6498
  "$tagName$": "fast-button",
6990
6499
  "$members$": {
6991
6500
  "variant": [1],
@@ -6998,6 +6507,84 @@ class CustomButton {
6998
6507
  }; }
6999
6508
  }
7000
6509
 
6510
+ const jobsItemCss = () => `.results-list__item{list-style:none;padding:10px 0;border-bottom:1px solid #ddd;margin:15px 0;display:inline-block;width:100%;position:relative}.results-list__item:last-child{border-bottom:none}.results-list__item-header{margin:10px 0;font-size:18px;font-weight:700;display:flex;flex-direction:column}.results-list__item-title{margin:0}.results-list__item-title--link{text-decoration:none;color:#1f9755}.results-list__item-title--link:hover{text-decoration:underline}.reference{margin-left:8px;font-size:0.9em;color:#666}.reference.empty{display:none}.remote{background:#f3f3f3;color:#808285;border-radius:100px;padding:6px 16px;text-transform:uppercase;font-size:12px;font-weight:700;line-height:24px;margin-left:8px}.remote--empty{display:none}.results-list__item-distance{display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-size:14px;font-weight:400}.results-list__item-distance--icon{display:inline-flex}.results-list__item-distance--icon svg{width:16px;height:16px}.results-list__item-content{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-top:8px}.results-list__item-info{flex:1}.results-list__item-street,.results-list__item-brand,.results-list__item-employment-type{margin:10px 0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.results-list__item-street--empty,.results-list__item-brand--empty,.results-list__item-employment-type--empty{color:#999}.results-list__item-street--icon,.results-list__item-brand--icon,.results-list__item-employment-type--icon{margin-right:6px;display:inline-flex}.results-list__item-street--icon svg,.results-list__item-brand--icon svg,.results-list__item-employment-type--icon svg{width:16px;height:16px}.results-list__item-street--more-locations__wrapper{margin-left:8px}.results-list__item-street--amount{font-weight:600}.results-list__item-apply{margin:10px 0;padding:10px 20px;display:inline-flex;align-items:center;gap:8px;background-color:#198754;color:#fff;border-radius:3px;text-decoration:none;font-weight:600;flex-shrink:0}.results-list__item-apply:hover{background-color:#1f9755;color:#fff}.results-list__item-apply--icon svg{width:14px;height:14px}`;
6511
+
6512
+ function getLocationLabel(loc) {
6513
+ if (loc.cityStateAbbr)
6514
+ return loc.cityStateAbbr;
6515
+ const parts = [loc.streetAddress, loc.city, loc.stateAbbr || loc.state, loc.countryAbbr || loc.country].filter(Boolean);
6516
+ return parts.join(', ') || loc.locationText || '';
6517
+ }
6518
+ function getFirstLocation(job) {
6519
+ const locs = job.locations;
6520
+ if (!locs?.length)
6521
+ return undefined;
6522
+ return locs[0];
6523
+ }
6524
+ class JobsItem {
6525
+ constructor(hostRef) {
6526
+ registerInstance(this, hostRef);
6527
+ }
6528
+ job;
6529
+ index = 0;
6530
+ applyButtonText = 'Apply Now';
6531
+ showBrand = true;
6532
+ showReference = false;
6533
+ showEmploymentType = true;
6534
+ multiLocationText = 'More locations';
6535
+ remoteLocationText = 'Remote';
6536
+ enableKilometers = false;
6537
+ formatDistance(distance) {
6538
+ const value = this.enableKilometers ? distance * 1.60934 : distance;
6539
+ const unit = this.enableKilometers ? 'Km' : 'Miles';
6540
+ const str = `${value.toFixed(1)} ${unit}`.replace('.0', '');
6541
+ return str;
6542
+ }
6543
+ render() {
6544
+ if (!this.job)
6545
+ return null;
6546
+ const firstLoc = getFirstLocation(this.job);
6547
+ const locationLabel = firstLoc ? getLocationLabel(firstLoc) : '';
6548
+ const distance = firstLoc?.distance ?? 0;
6549
+ const distanceLabel = distance > 0 ? this.formatDistance(distance) : '';
6550
+ const applyHref = this.job.applyURL ||
6551
+ (this.job.originalURL ? `${typeof window !== 'undefined' ? window.location.origin : ''}${this.job.originalURL}` : '#');
6552
+ const applyLabel = `${this.applyButtonText}, ${this.job.title || ''}`;
6553
+ const locs = this.job.locations ?? [];
6554
+ const hasMultipleLocations = locs.length > 1;
6555
+ return (hAsync("li", { class: "results-list__item" }, hAsync("div", { class: "results-list__item-header" }, hAsync("h3", { class: "results-list__item-title" }, hAsync("a", { class: "results-list__item-title--link", href: applyHref, target: "_blank", rel: "noopener noreferrer" }, this.job.title || ''), this.showReference && (hAsync("span", { class: `reference ${this.job.reference ? '' : 'empty'}` }, this.job.reference || '')), this.job.isRemote && (hAsync("span", { class: this.remoteLocationText ? 'remote' : 'remote remote--empty' }, this.remoteLocationText))), distanceLabel && (hAsync("div", { class: "results-list__item-distance" }, hAsync("span", { class: "results-list__item-distance--icon" }, hAsync("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, hAsync("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18z" }), hAsync("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M12 8v4l2 2" }))), hAsync("span", { class: "results-list__item-distance--label" }, distanceLabel)))), hAsync("div", { class: "results-list__item-content" }, hAsync("div", { class: "results-list__item-info" }, hAsync("div", { class: locs.length
6556
+ ? 'results-list__item-street'
6557
+ : 'results-list__item-street results-list__item-street--empty' }, hAsync("div", { class: "results-list__item-street--label__wrapper" }, hAsync("span", { class: "results-list__item-street--icon" }, hAsync("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, hAsync("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0z" }), hAsync("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" }))), hAsync("span", { class: "results-list__item-street--label" }, locationLabel || '—')), hasMultipleLocations && (hAsync("div", { class: "results-list__item-street--more-locations__wrapper" }, hAsync("span", { class: "results-list__item-street--amount" }, "+", locs.length - 1), hAsync("span", { class: "results-list__item-street--more-locations" }, this.multiLocationText)))), this.showBrand && (hAsync("div", { class: this.job.brandName
6558
+ ? 'results-list__item-brand'
6559
+ : 'results-list__item-brand results-list__item-brand--empty' }, hAsync("span", { class: "results-list__item-brand--icon" }, hAsync("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, hAsync("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" }))), hAsync("span", { class: "results-list__item-brand--label" }, this.job.brandName || '—'))), this.showEmploymentType && (hAsync("div", { class: this.job.employmentType?.length
6560
+ ? 'results-list__item-employment-type'
6561
+ : 'results-list__item-employment-type results-list__item-employment-type--empty' }, hAsync("span", { class: "results-list__item-employment-type--icon" }, hAsync("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, hAsync("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) => (hAsync("span", { key: type, class: "results-list__item-employment-type--label" }, type))))), (this.job.jobCardExtraFields ?? []).map((field, i) => (hAsync("div", { key: i, class: (Array.isArray(field.value) ? field.value.length : field.value)
6562
+ ? field.classname
6563
+ : `${field.classname}--empty` }, Array.isArray(field.value)
6564
+ ? field.value.map((v, j) => (hAsync("span", { key: j, class: `${field.classname}--label` }, v)))
6565
+ : (hAsync("span", { class: `${field.classname}--label` }, String(field.value))))))), hAsync("a", { class: "results-list__item-apply", href: applyHref, target: "_blank", rel: "noopener noreferrer", "aria-label": applyLabel }, hAsync("span", { class: "results-list__item-apply--label" }, this.applyButtonText), hAsync("span", { class: "results-list__item-apply--icon" }, hAsync("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2" }, hAsync("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M13 7l5 5m0 0l-5 5m5-5H6" })))))));
6566
+ }
6567
+ static get style() { return jobsItemCss(); }
6568
+ static get cmpMeta() { return {
6569
+ "$flags$": 512,
6570
+ "$tagName$": "jobs-item",
6571
+ "$members$": {
6572
+ "job": [16],
6573
+ "index": [2],
6574
+ "applyButtonText": [1, "apply-button-text"],
6575
+ "showBrand": [4, "show-brand"],
6576
+ "showReference": [4, "show-reference"],
6577
+ "showEmploymentType": [4, "show-employment-type"],
6578
+ "multiLocationText": [1, "multi-location-text"],
6579
+ "remoteLocationText": [1, "remote-location-text"],
6580
+ "enableKilometers": [4, "enable-kilometers"]
6581
+ },
6582
+ "$listeners$": undefined,
6583
+ "$lazyBundleId$": "-",
6584
+ "$attrsToReflect$": []
6585
+ }; }
6586
+ }
6587
+
7001
6588
  /**
7002
6589
  * Mock jobs for local development and docs.
7003
6590
  * Use in www or static HTML: jobs='...' (JSON.stringify(mockJobs)).
@@ -7056,23 +6643,11 @@ const mockJobsListOnly = [
7056
6643
  },
7057
6644
  ];
7058
6645
 
7059
- const jobsListOnlyUiCss = () => `: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}.results-list__item{list-style:none;padding:10px 0;border-bottom:1px solid #ddd;margin:15px 0;display:inline-block;width:100%;position:relative}.results-list__item:last-child{border-bottom:none}.results-list__item-header{margin:10px 0;font-size:18px;font-weight:700;display:flex;flex-direction:column}.results-list__item-title{margin:0}.results-list__item-title--link{text-decoration:none;color:#1f9755}.results-list__item-title--link:hover{text-decoration:underline}.reference{margin-left:8px;font-size:0.9em;color:#666}.reference.empty{display:none}.remote{background:#f3f3f3;color:#808285;border-radius:100px;padding:6px 16px;text-transform:uppercase;font-size:12px;font-weight:700;line-height:24px;margin-left:8px}.remote--empty{display:none}.results-list__item-distance{display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-size:14px;font-weight:400}.results-list__item-distance--icon{display:inline-flex}.results-list__item-distance--icon svg{width:16px;height:16px}.results-list__item-content{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-top:8px}.results-list__item-info{flex:1}.results-list__item-street,.results-list__item-brand,.results-list__item-employment-type{margin:10px 0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.results-list__item-street--empty,.results-list__item-brand--empty,.results-list__item-employment-type--empty{color:#999}.results-list__item-street--icon,.results-list__item-brand--icon,.results-list__item-employment-type--icon{margin-right:6px;display:inline-flex}.results-list__item-street--icon svg,.results-list__item-brand--icon svg,.results-list__item-employment-type--icon svg{width:16px;height:16px}.results-list__item-street--more-locations__wrapper{margin-left:8px}.results-list__item-street--amount{font-weight:600}.results-list__item-apply{margin:10px 0;padding:10px 20px;display:inline-flex;align-items:center;gap:8px;background-color:#198754;color:#fff;border-radius:3px;text-decoration:none;font-weight:600;flex-shrink:0}.results-list__item-apply:hover{background-color:#1f9755;color:#fff}.results-list__item-apply--icon svg{width:14px;height:14px}.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}`;
6646
+ 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}`;
7060
6647
 
7061
6648
  const defaultNoResultsLine1 = "Sorry, we're not able to load results for your search.";
7062
6649
  const defaultNoResultsLine2 = 'Please refine your keywords in the search bar above and try again.';
7063
- function getLocationLabel(loc) {
7064
- if (loc.cityStateAbbr)
7065
- return loc.cityStateAbbr;
7066
- const parts = [loc.streetAddress, loc.city, loc.stateAbbr || loc.state, loc.countryAbbr || loc.country].filter(Boolean);
7067
- return parts.join(', ') || loc.locationText || '';
7068
- }
7069
- function getFirstLocation(job) {
7070
- const locs = job.locations;
7071
- if (!locs?.length)
7072
- return undefined;
7073
- return locs[0];
7074
- }
7075
- class JobsListOnlyUI {
6650
+ class JobsListOnly {
7076
6651
  constructor(hostRef) {
7077
6652
  registerInstance(this, hostRef);
7078
6653
  }
@@ -7122,34 +6697,8 @@ class JobsListOnlyUI {
7122
6697
  }
7123
6698
  return [];
7124
6699
  }
7125
- formatDistance(distance) {
7126
- const value = this.enableKilometers ? distance * 1.60934 : distance;
7127
- const unit = this.enableKilometers ? 'Km' : 'Miles';
7128
- const str = `${value.toFixed(1)} ${unit}`.replace('.0', '');
7129
- return str;
7130
- }
7131
- renderJobItem(job, _index) {
7132
- const firstLoc = getFirstLocation(job);
7133
- const locationLabel = firstLoc ? getLocationLabel(firstLoc) : '';
7134
- const distance = firstLoc?.distance ?? 0;
7135
- const distanceLabel = distance > 0 ? this.formatDistance(distance) : '';
7136
- const applyHref = job.applyURL || (job.originalURL ? `${typeof window !== 'undefined' ? window.location.origin : ''}${job.originalURL}` : '#');
7137
- const applyLabel = `${this.applyButtonText}, ${job.title || ''}`;
7138
- const locs = job.locations ?? [];
7139
- const hasMultipleLocations = locs.length > 1;
7140
- return (hAsync("li", { class: "results-list__item" }, hAsync("div", { class: "results-list__item-header" }, hAsync("h3", { class: "results-list__item-title" }, hAsync("a", { class: "results-list__item-title--link", href: applyHref, target: "_blank", rel: "noopener noreferrer" }, job.title || ''), this.showReference && (hAsync("span", { class: `reference ${job.reference ? '' : 'empty'}` }, job.reference || '')), job.isRemote && (hAsync("span", { class: this.remoteLocationText ? 'remote' : 'remote remote--empty' }, this.remoteLocationText))), distanceLabel && (hAsync("div", { class: "results-list__item-distance" }, hAsync("span", { class: "results-list__item-distance--icon" }, hAsync("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, hAsync("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18z" }), hAsync("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M12 8v4l2 2" }))), hAsync("span", { class: "results-list__item-distance--label" }, distanceLabel)))), hAsync("div", { class: "results-list__item-content" }, hAsync("div", { class: "results-list__item-info" }, hAsync("div", { class: locs.length
7141
- ? 'results-list__item-street'
7142
- : 'results-list__item-street results-list__item-street--empty' }, hAsync("div", { class: "results-list__item-street--label__wrapper" }, hAsync("span", { class: "results-list__item-street--icon" }, hAsync("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, hAsync("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M15 10.5a3 3 0 1 1-6 0 3 3 0 0 1 6 0z" }), hAsync("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" }))), hAsync("span", { class: "results-list__item-street--label" }, locationLabel || '—')), hasMultipleLocations && (hAsync("div", { class: "results-list__item-street--more-locations__wrapper" }, hAsync("span", { class: "results-list__item-street--amount" }, "+", locs.length - 1), hAsync("span", { class: "results-list__item-street--more-locations" }, this.multiLocationText)))), this.showBrand && (hAsync("div", { class: job.brandName
7143
- ? 'results-list__item-brand'
7144
- : 'results-list__item-brand results-list__item-brand--empty' }, hAsync("span", { class: "results-list__item-brand--icon" }, hAsync("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, hAsync("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" }))), hAsync("span", { class: "results-list__item-brand--label" }, job.brandName || '—'))), this.showEmploymentType && (hAsync("div", { class: job.employmentType?.length
7145
- ? 'results-list__item-employment-type'
7146
- : 'results-list__item-employment-type results-list__item-employment-type--empty' }, hAsync("span", { class: "results-list__item-employment-type--icon" }, hAsync("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.5" }, hAsync("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" }))), (job.employmentType?.length
7147
- ? job.employmentType
7148
- : ['—']).map((type) => (hAsync("span", { key: type, class: "results-list__item-employment-type--label" }, type))))), (job.jobCardExtraFields ?? []).map((field, i) => (hAsync("div", { key: i, class: (Array.isArray(field.value) ? field.value.length : field.value)
7149
- ? field.classname
7150
- : `${field.classname}--empty` }, Array.isArray(field.value)
7151
- ? field.value.map((v, j) => (hAsync("span", { key: j, class: `${field.classname}--label` }, v)))
7152
- : (hAsync("span", { class: `${field.classname}--label` }, String(field.value))))))), hAsync("a", { class: "results-list__item-apply", href: applyHref, target: "_blank", rel: "noopener noreferrer", "aria-label": applyLabel }, hAsync("span", { class: "results-list__item-apply--label" }, this.applyButtonText), hAsync("span", { class: "results-list__item-apply--icon" }, hAsync("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2" }, hAsync("path", { "stroke-linecap": "round", "stroke-linejoin": "round", d: "M13 7l5 5m0 0l-5 5m5-5H6" })))))));
6700
+ renderJobItem(job, index) {
6701
+ return (hAsync("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 }));
7153
6702
  }
7154
6703
  render() {
7155
6704
  const jobsArray = this.getJobsArray();
@@ -7157,12 +6706,12 @@ class JobsListOnlyUI {
7157
6706
  const totalJob = this.mockData ? jobsArray.length : (this.totalJob || jobsArray.length);
7158
6707
  const showNoResults = !loading && totalJob === 0 && !this.showSuggestions;
7159
6708
  const showSuggestionsBlock = !loading && totalJob === 0 && this.showSuggestions;
7160
- return (hAsync("div", { key: 'c2e9c9146a24f0869cbd75588b2718c94f62bbbc', class: `jobs-list-root ${this.rootClass}`.trim() }, hAsync("div", { key: 'b2f3dffe7e17797b378bd648f54e46bb31e2d374', class: "results-container" }, hAsync("div", { key: '4733870b035ec307b6e691f1d62ed8568e93fd1f', class: loading ? 'loader' : 'loader hide', "aria-hidden": !loading }), totalJob > 0 && (hAsync("div", { key: 'a9438f079041e0121fafdcb42089f27482475491', class: "card" }, hAsync("ul", { key: '3bd7dcc64f46aec24945a25df7345766606a51bd', class: "results-list front" }, jobsArray.map((job, index) => this.renderJobItem(job, index))))), showNoResults && (hAsync("div", { key: '1996476568c745e0ada31b47bb1a1be2efaf6917', class: "share-jobs__no-results" }, hAsync("h2", { key: '8d2a79881428d89d783b05f26d06abbef94f5c2e' }, this.noResultsLine1), hAsync("h3", { key: '855704ea47b06a701c0e59a8bb43fb405ad3bb96' }, this.noResultsLine2))), showSuggestionsBlock && (hAsync("div", { key: '74da6e8243423dc9770f4dc67f46f5627c352349', class: "card primary-color" }, hAsync("h4", { key: 'd3fb2ef03a656331f97afe3692b05bbe064ed124', class: "result-suggestions-title" }, this.clearResultSuggestionsTitleText, ":"), hAsync("ul", { key: '63914647653930e6c686a38d779af20e7e5c17d5', class: "results-list front" }, hAsync("li", { key: '82063c023701d0c42ca2787f382d42a80f569b6a', class: "result-suggestions-line" }, this.clearResultSuggestionsLine1), hAsync("li", { key: '7645d7a7435f76854b8eeb0d693a883fc341764e', class: "result-suggestions-line" }, this.clearResultSuggestionsLine2), hAsync("li", { key: '060675d017137e8b23342c92efadc769e2bae1c2', class: "result-suggestions-line" }, this.clearResultSuggestionsLine3), this.clearResultSuggestionsLine4 && (hAsync("li", { key: '0f6ef00a4f6267dc9ad2441e16f02c82b0994d03', class: "result-suggestions-line" }, this.clearResultSuggestionsLine4))))))));
6709
+ return (hAsync("div", { key: '9e69d40c649b4f16617f522c89bc87d4cbffe1e3', class: `jobs-list-root ${this.rootClass}`.trim() }, hAsync("div", { key: '7daf1c09dd1d5553a335f3c81c894a331964ee96', class: "results-container" }, hAsync("div", { key: '9ab3db2b834359a64faee61f8c3dc2daca8211d9', class: loading ? 'loader' : 'loader hide', "aria-hidden": !loading }), totalJob > 0 && (hAsync("div", { key: 'c729ccdf715105b9fbc7af0a1f148c82535772c1', class: "card" }, hAsync("ul", { key: 'b0c5b6baccf7b94819cc2ad9ab970981a5294b42', class: "results-list front" }, jobsArray.map((job, index) => this.renderJobItem(job, index))))), showNoResults && (hAsync("div", { key: '8f1684ddde51474e9c1699f93fb01c56e5406a51', class: "share-jobs__no-results" }, hAsync("h2", { key: '2e3bc4b6b7647e3939588102d659e777207e46e9' }, this.noResultsLine1), hAsync("h3", { key: 'f4881f19ad5db8fdd47aa4d31e1e0435f08da1ab' }, this.noResultsLine2))), showSuggestionsBlock && (hAsync("div", { key: 'ed34907fd90f28571786045f21525895cef6e98a', class: "card primary-color" }, hAsync("h4", { key: '33e96147f1b427df874656c1e0647af1d97fea29', class: "result-suggestions-title" }, this.clearResultSuggestionsTitleText, ":"), hAsync("ul", { key: '570fd8e5068f1a7c809fad47347fe5f469da8bc6', class: "results-list front" }, hAsync("li", { key: 'b5d22dfb448d2888dc010d6e494d1834d3d60034', class: "result-suggestions-line" }, this.clearResultSuggestionsLine1), hAsync("li", { key: '77c1e8bbe9ab238e4f05fdbaf43551aef4f2a36e', class: "result-suggestions-line" }, this.clearResultSuggestionsLine2), hAsync("li", { key: '0bd9503bf686213ae087f74a7b5f2cc62f9c96b7', class: "result-suggestions-line" }, this.clearResultSuggestionsLine3), this.clearResultSuggestionsLine4 && (hAsync("li", { key: '961b2904347e1c5fc6b355a069790f0f2997917f', class: "result-suggestions-line" }, this.clearResultSuggestionsLine4))))))));
7161
6710
  }
7162
- static get style() { return jobsListOnlyUiCss(); }
6711
+ static get style() { return jobsListOnlyCss(); }
7163
6712
  static get cmpMeta() { return {
7164
6713
  "$flags$": 512,
7165
- "$tagName$": "jobs-list-only-ui",
6714
+ "$tagName$": "jobs-list-only",
7166
6715
  "$members$": {
7167
6716
  "mockData": [4, "mock-data"],
7168
6717
  "jobs": [1],
@@ -7195,7 +6744,8 @@ class JobsListOnlyUI {
7195
6744
  registerComponents([
7196
6745
  AppCarousel,
7197
6746
  CustomButton,
7198
- JobsListOnlyUI,
6747
+ JobsItem,
6748
+ JobsListOnly,
7199
6749
  ]);
7200
6750
 
7201
6751
  exports.hydrateApp = hydrateApp;