efficient-storefront-blocks 0.60.0 → 0.62.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +79 -1
- package/README.md +2 -1
- package/dist/chunks/{EditorPreviewCheckout-XY2PLPBD.js → EditorPreviewCheckout-BQFPYYBS.js} +1 -1
- package/dist/chunks/{SiteEditorProvider-XF374NLZ.js → SiteEditorProvider-3E6XWZIS.js} +1 -1
- package/dist/chunks/chunk-4BQ44OLC.js +250 -0
- package/dist/chunks/chunk-MT5KWSYX.js +1 -0
- package/dist/chunks/chunk-OJ4OD3N6.js +1 -0
- package/dist/chunks/{fitment-data-RORHKBID.js → fitment-data-PWZAAUFK.js} +1 -1
- package/dist/editor/components/EditorPreviewChat.js +4 -4
- package/dist/editor/components/PreviewHeader.d.ts +1 -1
- package/dist/editor/components/PreviewHeader.js +4 -4
- package/dist/editor/lib/efficient-backend.d.ts +1 -0
- package/dist/editor/lib/efficient-backend.js +1 -1
- package/dist/editor/lib/efficient-block-sources.d.ts +2 -0
- package/dist/editor/lib/efficient-block-sources.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/EuTyreLabelBlock/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/commerce/EuTyreLabelBlock/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/ProductGallery/fields.d.ts +6 -0
- package/dist/editor/lib/puck/blocks/commerce/ProductGallery/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/commerce/ProductHero/fields.js +1 -1
- package/dist/editor/lib/puck/blocks/commerce/index.d.ts +1 -1
- package/dist/editor/lib/puck/blocks/commerce/index.js +1 -1
- package/dist/editor/lib/puck/blocks/service/RatingBlock/fields.d.ts +2 -0
- package/dist/editor/lib/puck/blocks/service/RatingBlock/fields.js +1 -0
- package/dist/editor/lib/puck/blocks/service/index.d.ts +1 -1
- package/dist/editor/lib/puck/blocks/service/index.js +1 -1
- package/dist/editor/lib/puck/config.js +1 -1
- package/dist/editor/lib/storefront-editor-words.d.ts +1 -0
- package/dist/editor/lib/storefront-editor-words.js +1 -1
- package/dist/editor.css +1 -1
- package/dist/fitment.d.ts +56 -0
- package/dist/fitment.js +1 -0
- package/dist/index.d.ts +36 -6
- package/dist/index.js +101 -81
- package/dist/links.js +1 -1
- package/dist/render/app/globals.css +70 -14
- package/dist/render/built-with.json +1 -1
- package/dist/render/components/CartContext.d.ts +1 -0
- package/dist/render/components/CartContext.js +1 -1
- package/dist/render/components/CartDrawer.d.ts +0 -8
- package/dist/render/components/CartDrawer.js +2 -2
- package/dist/render/components/ChatWidget.js +1 -1
- package/dist/render/components/EuTyreLabels.d.ts +3 -0
- package/dist/render/components/EuTyreLabels.js +1 -1
- package/dist/render/components/FitmentTable.js +1 -1
- package/dist/render/components/FooterMenu.js +1 -1
- package/dist/render/components/FormBlock.js +1 -1
- package/dist/render/components/GalleryItem.js +1 -1
- package/dist/render/components/Header.js +1 -1
- package/dist/render/components/LegalLine.js +1 -1
- package/dist/render/components/PopupFrame.d.ts +2 -1
- package/dist/render/components/PopupFrame.js +1 -1
- package/dist/render/components/PopupHost.d.ts +17 -0
- package/dist/render/components/PopupHost.js +1 -0
- package/dist/render/components/ProductCard.js +1 -1
- package/dist/render/components/ProductGallery.d.ts +15 -0
- package/dist/render/components/ProductGallery.js +1 -0
- package/dist/render/components/ProductHeroPanel.js +1 -1
- package/dist/render/components/RatingStars.d.ts +4 -0
- package/dist/render/components/RatingStars.js +1 -0
- package/dist/render/components/Reviews.js +1 -1
- package/dist/render/components/StorefrontProviders.d.ts +1 -3
- package/dist/render/components/StorefrontProviders.js +1 -1
- package/dist/render/components/SubscribePopupContext.d.ts +3 -15
- package/dist/render/components/SubscribePopupContext.js +1 -1
- package/dist/render/components/TyrePlpCard.js +1 -1
- package/dist/render/components/WheelCardFrame.d.ts +3 -27
- package/dist/render/components/WheelCardFrame.js +1 -1
- package/dist/render/components/card-pieces/CardBuyButton.d.ts +7 -0
- package/dist/render/components/card-pieces/CardBuyButton.js +1 -0
- package/dist/render/components/card-pieces/CardFinishSwatches.d.ts +5 -0
- package/dist/render/components/card-pieces/CardFinishSwatches.js +1 -0
- package/dist/render/components/card-pieces/CardPrice.d.ts +7 -0
- package/dist/render/components/card-pieces/CardPrice.js +1 -0
- package/dist/render/components/card-pieces/CardProductBadge.d.ts +7 -0
- package/dist/render/components/card-pieces/CardProductBadge.js +1 -0
- package/dist/render/components/card-pieces/CardSizes.d.ts +9 -0
- package/dist/render/components/card-pieces/CardSizes.js +1 -0
- package/dist/render/components/card-pieces/ProductCardState.d.ts +53 -0
- package/dist/render/components/card-pieces/ProductCardState.js +1 -0
- package/dist/render/components/card-pieces/card-row.d.ts +20 -0
- package/dist/render/components/card-pieces/card-row.js +1 -0
- package/dist/render/components/cart/drawer-parts.d.ts +28 -0
- package/dist/render/components/cart/drawer-parts.js +1 -0
- package/dist/render/components/pdp-dynamic/DynamicEuTyreLabel.d.ts +3 -0
- package/dist/render/components/pdp-dynamic/DynamicEuTyreLabel.js +1 -1
- package/dist/render/components/pdp-dynamic/DynamicProductGallery.d.ts +9 -0
- package/dist/render/components/pdp-dynamic/DynamicProductGallery.js +1 -0
- package/dist/render/components/useHeaderBar.js +1 -1
- package/dist/render/components/useIsLightTheme.d.ts +1 -0
- package/dist/render/components/useIsLightTheme.js +1 -0
- package/dist/render/components/wheels-plp/AlloyWheelsListing.d.ts +2 -1
- package/dist/render/components/wheels-plp/AlloyWheelsListing.js +1 -1
- package/dist/render/components/wheels-plp/PlpCard.d.ts +3 -2
- package/dist/render/components/wheels-plp/PlpCard.js +1 -1
- package/dist/render/components/wheels-plp/usePlpCardSelection.d.ts +1 -1
- package/dist/render/components/wheels-plp/usePlpCardSelection.js +1 -1
- package/dist/render/components/wheels-plp/usePlpFiltersInUrl.d.ts +2 -1
- package/dist/render/components/wheels-plp/usePlpFiltersInUrl.js +1 -1
- package/dist/render/lib/api/index.d.ts +4 -2
- package/dist/render/lib/api/index.js +1 -1
- package/dist/render/lib/api/types.d.ts +48 -1
- package/dist/render/lib/chrome-load.d.ts +1 -1
- package/dist/render/lib/chrome-load.js +1 -1
- package/dist/render/lib/content/field-usage.d.ts +0 -1
- package/dist/render/lib/content/field-usage.js +1 -1
- package/dist/render/lib/content/product-hero.d.ts +1 -0
- package/dist/render/lib/content/product-hero.js +1 -1
- package/dist/render/lib/header-fit.d.ts +2 -0
- package/dist/render/lib/header-fit.js +1 -0
- package/dist/render/lib/popup/popup-stores.d.ts +2 -0
- package/dist/render/lib/popup/popup-stores.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/EuTyreLabelBlock/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/EuTyreLabelBlock/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/EuTyreLabelBlock/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/EuTyreLabelBlock/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/ProductGallery/meta.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/ProductGallery/meta.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/ProductGallery/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/ProductGallery/render.js +1 -0
- package/dist/render/lib/puck/blocks/commerce/metas.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/metas.js +1 -1
- package/dist/render/lib/puck/blocks/commerce/renders.d.ts +2 -0
- package/dist/render/lib/puck/blocks/commerce/renders.js +1 -1
- package/dist/render/lib/puck/blocks/service/RatingBlock/meta.d.ts +3 -0
- package/dist/render/lib/puck/blocks/service/RatingBlock/meta.js +1 -0
- package/dist/render/lib/puck/blocks/service/RatingBlock/render.d.ts +2 -0
- package/dist/render/lib/puck/blocks/service/RatingBlock/render.js +1 -0
- package/dist/render/lib/puck/blocks/service/metas.d.ts +1 -0
- package/dist/render/lib/puck/blocks/service/metas.js +1 -1
- package/dist/render/lib/puck/blocks/service/renders.d.ts +1 -0
- package/dist/render/lib/puck/blocks/service/renders.js +1 -1
- package/dist/render/lib/puck/lazy-draws.js +1 -1
- package/dist/render/lib/storefront-page-groups.js +1 -1
- package/dist/render/lib/wheels/fitment-columns.d.ts +6 -1
- package/dist/render/lib/wheels/fitment-columns.js +1 -1
- package/dist/render/lib/wheels/plp-fitment-match.d.ts +4 -0
- package/dist/render/lib/wheels/plp-fitment-match.js +1 -1
- package/dist/render/lib/wheels/plp-hydrate.d.ts +2 -0
- package/dist/render/lib/wheels/plp-hydrate.js +1 -1
- package/dist/render/lib/wheels/spec-sheet.js +1 -1
- package/dist/words.d.ts +2 -2
- package/dist/words.js +3 -3
- package/package.json +11 -4
- package/dist/chunks/chunk-EZQTUHPN.js +0 -1
- package/dist/chunks/chunk-FCCEAXMM.js +0 -1
- package/dist/chunks/chunk-YNI65Q6Z.js +0 -250
- package/dist/render/components/wheels-plp/useWheelCardBottom.d.ts +0 -20
- package/dist/render/components/wheels-plp/useWheelCardBottom.js +0 -1
- package/dist/render/lib/popup/popup-rules.d.ts +0 -25
- package/dist/render/lib/popup/popup-rules.js +0 -1
- /package/dist/chunks/{chunk-YNI65Q6Z.js.LEGAL.txt → chunk-4BQ44OLC.js.LEGAL.txt} +0 -0
- /package/dist/chunks/{chunk-VT346MLP.js → chunk-FZFBLN7K.js} +0 -0
- /package/dist/chunks/{chunk-I6VNNXUI.js → chunk-TRUOK5AD.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{orderByAnswers as h}from"../content/field-usage.js";function B(e){return e.toUpperCase()==="US"?"lbs":"kg"}const s=.45359237,d=/\d[\d,]*(?:\.\d+)?/g,p=/(\d[\d,]*(?:\.\d+)?(?:\s*[–-]\s*\d[\d,]*(?:\.\d+)?)?)\s*(kgs?|lbs?)\b/gi,a=e=>Number(e.replace(/,/g,"")),f=e=>Math.round(e).toLocaleString("en-US");function y(e,t){const o={};for(const[,n,i]of e.matchAll(p)){const u=i.toLowerCase().startsWith("kg")?"kg":"lbs";o[u]??=n}const r=o[t];if(r!==void 0)return`${r.replace(d,n=>f(a(n))).replace(/\s*([–-])\s*/,"$1")} ${t}`;const l=o[t==="kg"?"lbs":"kg"];if(l===void 0)return e.trim();const c=t==="kg"?s:1/s;return`${l.replace(d,n=>f(a(n)*c)).replace(/\s*([–-])\s*/,"$1")} ${t}`}const b=e=>e>0?`+${e}`:e<0?`−${-e}`:"0",m=e=>{const t=/^(\d+)\s*[×x]\s*\d/.exec(e.boltPattern)?.[1];return t!==void 0&&Number(t)===e.holes?e.boltPattern:e.holes>0&&e.pcd?`${e.holes}×${e.pcd}`:e.boltPattern},g=[{fieldKey:"diameter",header:"Size",shownByDefault:!0,cell:e=>`${e.diameter} × ${e.width}`},{fieldKey:"bolt_pattern",header:"Bolt pattern",shownByDefault:!0,cell:m},{fieldKey:"et",header:"Offset",shownByDefault:!0,cell:e=>b(e.et)},{fieldKey:"center_bore",header:"Centre bore",shownByDefault:!1,cell:e=>e.cb},{fieldKey:"cap_code",header:"Cap",shownByDefault:!1,cell:e=>e.cap},{fieldKey:"load_rating",header:"Load",shownByDefault:!0,cell:(e,t)=>y(e.loadRating,t)}];function $(e,t){const o=t.find(r=>r.fieldKey===e.fieldKey)?.fitment;return e.shownByDefault?o!==!1:o===!0}function K(e){const t=g.filter(o=>$(o,e));return e.length===0?t:h(t,o=>o.fieldKey,e,"fitmentOrder")}export{g as FITMENT_COLUMNS,$ as fitmentColumnShown,K as fitmentColumns,y as formatLoad,B as loadUnitFor};
|
|
@@ -7,6 +7,10 @@ export interface VehicleFitment {
|
|
|
7
7
|
centreBore: number | null;
|
|
8
8
|
etRange: MmRange | null;
|
|
9
9
|
}
|
|
10
|
+
export declare function splitBoltPattern(value: string | null | undefined): {
|
|
11
|
+
holes: number | null;
|
|
12
|
+
circleText: string;
|
|
13
|
+
};
|
|
10
14
|
export declare function parseBoltPattern(value: string | null | undefined): {
|
|
11
15
|
holes: number | null;
|
|
12
16
|
circles: number[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{lugLabel as M}from"./lug-count.js";import{formatSizeRange as
|
|
1
|
+
import{lugLabel as M}from"./lug-count.js";import{formatSizeRange as T}from"./size-range.js";import{etRangeLabel as E,inchRangeLabel as L}from"./spec-format.js";const f=5,m=.2;function N(e){if(!e)return{holes:null,circleText:""};const t=e.replace(/\([^)]*\)?/g," ").trim(),n=t.match(/^\s*(\d+)\s*[x×*]\s*(.+)$/i);return{holes:n?Number(n[1]):null,circleText:(n?n[2]:t).trim()}}function g(e){const{holes:t,circleText:n}=N(e),r=n.split(/[-/,]/).map(l=>Number(l.trim().replace(/[^\d.]/g,""))).filter(l=>Number.isFinite(l)&&l>0);return{holes:t,circles:r}}function p(e){if(!e||e.length<2)return null;const[t,n]=e;return!Number.isFinite(t)||!Number.isFinite(n)?null:[Math.min(t,n),Math.max(t,n)]}function V(e){if(!e)return null;const t=g(e.pcd||e.boltPattern);if(t.holes===null||t.circles.length===0)return null;const n=t.circles[0],r=p(e.etRange),l=r?[r[0]-f,r[1]+f]:null;return{holes:t.holes,circle:n,centreBore:typeof e.centreBore=="number"&&e.centreBore>0?e.centreBore:null,etRange:l}}function P(e,t){return Math.abs(e-t)<=m}function h(e,t,n){const r=g(e);return(r.holes??t)!==n.holes?!1:r.circles.some(o=>P(o,n.circle))}function x(e,t){return t.centreBore===null?!0:e+m>=t.centreBore}function K(e,t){return e[0]<=t[1]&&e[1]>=t[0]}function u(e,t){const n=`${t.holes}×${t.circle}`;return e.pcds.length===0?{key:"unverifiable",wheel:"",vehicle:n}:e.pcds.some(r=>h(r,e.lugs,t))?t.etRange!==null&&e.etRange!==null&&!K(e.etRange,t.etRange)?{key:"et",wheel:s(e.etRange),vehicle:s(t.etRange)}:e.centreBores.length>0&&!e.centreBores.some(r=>x(r,t))?{key:"bore",wheel:`${e.centreBores.join(" / ")} mm`,vehicle:`${t.centreBore} mm`}:null:{key:"pcd",wheel:e.pcds.join(" / "),vehicle:n}}function F(e){return{pcds:e.spec?.pcds??[],lugs:e.spec?.lugs??null,etRange:p(e.spec?.etRange),centreBores:e.spec?.centreBores??[]}}function d(e){const t=e.et,n=e.rearEt??e.et;return{pcds:e.boltPattern?[e.boltPattern]:[],lugs:null,etRange:t==null||n==null?null:[Math.min(t,n),Math.max(t,n)],centreBores:e.centreBore==null?[]:[e.centreBore]}}function B(e,t){const n=u(e,t);return n===null||n.key!=="et"?n:u(e,{...t,etRange:null})}function v(e,t){return u(F(e),t)}function w(e,t){return u(d(e),t)}function _(e,t){return B(d(e),t)===null}function D(e,t){return t?e.filter(n=>_(n,t)):[...e]}function S(e,t){return B(F(e),t)===null}function H(e,t){return t?e.filter(n=>S(n,t)):e}const R=1;function C(e,t){const n=e.spec?.pcds??[],r=e.spec?.centreBores??[],l=p(e.spec?.etRange);if(!t)return{pcds:n,etRange:l,centreBores:r};const o=e.spec?.lugs??null,c=n.filter(a=>h(a,o,t)),i=r.filter(a=>x(a,t));return{pcds:c.length>0?c:n,etRange:l,centreBores:i.length>0?i:r}}function s(e){return E(e[0],e[1])}function b(e,t=""){const n=`${e.slice(0,R).join(" / ")}${t}`,r=e.length-R;return r>0?`${n} +${r} more`:n}const j="·";function k(e,t){return $(e,t).map(n=>n.text)}function X(e,t,{sizes:n}){const r=$(e,t);if(!n)return r.length>0?r:y(e);const l=[...new Set(e.sizes)].sort((c,i)=>c-i).map(c=>({fieldKey:"diameter",text:L(c,c)})),o=r.length>0?[]:y(e).filter(c=>c.fieldKey==="holes");return[...l,...r,...o]}function y(e){return[{fieldKey:"diameter",text:T(e.sizes)},{fieldKey:"holes",text:M(e.spec?.lugs)}].filter(t=>!!t.text)}function $(e,t){const{pcds:n,etRange:r,centreBores:l}=C(e,t),o=[];return n.length>0&&o.push({fieldKey:"pcd",text:`PCD ${b(n)}`}),r!==null&&o.push({fieldKey:"et",text:s(r)}),l.length>0&&o.push({fieldKey:"center_bore",text:`C/B ${b(l," mm")}`}),o}function q(e,t){return k(e,t).join(` ${j} `)}function A(e){return e?[{key:"pcd",name:"Bolt pattern",value:`${e.holes}×${e.circle}`},{key:"bore",name:"Hub bore",value:e.centreBore!==null?`${e.centreBore} mm bore`:null},{key:"et",name:"Offset",value:e.etRange!==null?s(e.etRange):null}]:[]}function G(e){return A(e).map(t=>t.value).filter(t=>t!==null).join(" · ")}export{f as ET_TOLERANCE_MM,j as FITMENT_FIELD_SEPARATOR,R as FITMENT_LINE_MAX,B as fitmentBlockingFailure,A as fitmentChecks,u as fitmentFitFailure,G as fitmentSummary,g as parseBoltPattern,p as parseMmRange,N as splitBoltPattern,w as variantFitFailure,d as variantFitment,_ as variantFitsVehicle,D as variantsFittingVehicle,V as vehicleFitmentFromStock,X as wheelCardSpecFacts,v as wheelFitFailure,F as wheelFitment,C as wheelFitmentFacts,k as wheelFitmentFields,$ as wheelFitmentKeyedFields,q as wheelFitmentLine,S as wheelFitsVehicle,y as wheelSizeLugFacts,H as wheelsFittingVehicle};
|
|
@@ -6,6 +6,7 @@ export declare const PRODUCT_GRID_TYPE = "ProductGrid";
|
|
|
6
6
|
export declare const GRID_CATALOG_PROP = "catalog";
|
|
7
7
|
export declare const CATALOG_FILTER_BAR_TYPE = "CatalogFilterBar";
|
|
8
8
|
export declare const FIELD_USAGE_PROP = "fieldUsage";
|
|
9
|
+
export declare const LISTING_QUERY_PROP = "requestQuery";
|
|
9
10
|
interface ContentNode {
|
|
10
11
|
type?: string;
|
|
11
12
|
props?: Record<string, unknown>;
|
|
@@ -16,6 +17,7 @@ export declare function hydrateFieldUsage(data: Data, answers: readonly FieldUsa
|
|
|
16
17
|
export declare function listingCatalogKinds(data: Data | null | undefined): ProductKind[];
|
|
17
18
|
export declare function listingWantsWheelsOnly(kinds: readonly ProductKind[]): boolean;
|
|
18
19
|
export declare function hydrateWheelsListing(data: Data, products: ProductSummary[] | WheelSummary[]): Data;
|
|
20
|
+
export declare function stampListingQuery(data: Data, query: string): Data;
|
|
19
21
|
export declare function dehydrateWheelsListing(data: Data): Data;
|
|
20
22
|
export declare function dehydrateWheelsListingNode<T extends ContentNode>(node: T): T;
|
|
21
23
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{resolvePlpKinds as y}from"../catalog/plp-item.js";import{isLinkedSource as
|
|
1
|
+
import{resolvePlpKinds as y}from"../catalog/plp-item.js";import{isLinkedSource as O,rowsForGridSource as G}from"./grid-source.js";const c="AlloyWheelsListing",E="ProductGrid",L="catalog",R="CatalogFilterBar",u="fieldUsage",x="requestQuery";function P(r){return r.props?.source}function i(r){return r?.type===E&&O(P(r))}function f(r){return r?.type===R}function a(r){return r?.type===c||i(r)||f(r)}function g(r){const t=r.content??[],e=r.zones??{};return[...t,...Object.values(e).flat()]}function A(r){return r?g(r).some(t=>t?.type===c||i(t)):!1}function I(r){return r?g(r).some(a):!1}function U(r,t){return t.length===0?r:l(r,a,e=>({...e,props:{...e.props??{},[u]:t}}))}function k(r){if(!r)return[];const t=new Set;for(const e of g(r))if(!(e?.type!==c&&!i(e)))for(const s of y(e.props?.kinds))t.add(s);return[...t]}function C(r){return r.length===1&&r[0]==="alloy-wheel"}function N(r,t){return F(r,e=>i(e)?{...e,props:{...h(e).props,[L]:G(P(e)??{},W(t,y(e.props?.kinds)))}}:{...e,props:{..._(e).props,products:t}})}function z(r,t){const e=t.replace(/^\?/,"");return e?l(r,s=>s?.type===c,s=>({...s,props:{...s.props??{},[x]:e}})):r}function Y(r){return l(r,a,t=>f(t)?m(t):i(t)?h(t):_(t))}function m(r){if(!r.props||!(u in r.props))return r;const{[u]:t,...e}=r.props;return{...r,props:e}}function h(r){const{[L]:t,[u]:e,...s}=r.props??{},n=s.source;if(n&&"wheels"in n){const{wheels:p,...o}=n;s.source=o}return{...r,props:s}}function W(r,t){const e=new Set(t);return r.filter(s=>{const n=s.kind??"alloy-wheel";return e.has(n)})}function D(r){return i(r)?h(r):f(r)?m(r):r?.type===c?_(r):r}function _(r){const{wheels:t,products:e,[u]:s,[x]:n,...p}=r.props??{};return{...r,props:p}}function F(r,t){return l(r,e=>e?.type===c||i(e),t)}function l(r,t,e){const s=o=>t(o)?e(o):o,n=r,p={...r};return n.content&&(p.content=n.content.map(s)),n.zones&&(p.zones=Object.fromEntries(Object.entries(n.zones).map(([o,w])=>[o,w.map(s)]))),p}export{c as ALLOY_WHEELS_LISTING_TYPE,R as CATALOG_FILTER_BAR_TYPE,u as FIELD_USAGE_PROP,L as GRID_CATALOG_PROP,x as LISTING_QUERY_PROP,E as PRODUCT_GRID_TYPE,Y as dehydrateWheelsListing,D as dehydrateWheelsListingNode,U as hydrateFieldUsage,N as hydrateWheelsListing,k as listingCatalogKinds,C as listingWantsWheelsOnly,A as pageHasWheelsListing,I as pageReadsFieldUsage,z as stampListingQuery};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getWheelBySlug as v}from"./wheels.js";import{getWheelSpec as y}from"./wheel-specs.js";import{getFitments as K}from"./fitments.js";import{COLLECTION_FIELD_KEY as L}from"../content/field-usage.js";import{parseBoltPattern as R}from"./plp-fitment-match.js";import{etRangeLabel as
|
|
1
|
+
import{getWheelBySlug as v}from"./wheels.js";import{getWheelSpec as y}from"./wheel-specs.js";import{getFitments as K}from"./fitments.js";import{COLLECTION_FIELD_KEY as L}from"../content/field-usage.js";import{parseBoltPattern as B,splitBoltPattern as R}from"./plp-fitment-match.js";import{etRangeLabel as P,trimDecimal as w}from"./spec-format.js";import{variantSpecLabel as C}from"./variant-spec.js";import{findVariant as _}from"./variants.js";import{lugDigits as d}from"./lug-count.js";function m(e){return e&&e.trim()?e:"—"}function h(e){return R(e[0]).circleText||"—"}function p(e,t,i,n,l){const o=B(l?.boltPattern).holes,s=o!=null&&o>0?o:e.lugs,c=d(s),r=e.pcds.length?e.pcds.join(" · "):"—",a=e.centreBores.length?`${e.centreBores.join(" / ")} mm`:"—",u=e.etRange.length>=2?P(e.etRange[0],e.etRange[1]):"—",f=n??"",S=l?C(l):"—";return{rows:[{label:"Your Selection",value:"—",accent:!0},{label:"Finish",value:i,fieldKey:"wheel_finish_ref"},{label:"Size",value:f},{label:"Wheel Spec",value:S},{label:"Lug Count",value:m(c&&`${c}-lug`),fieldKey:"holes"},{label:"Bolt Pattern",value:r,fieldKey:"bolt_pattern"},{label:"Offset (ET)",value:u,fieldKey:"et"},{label:"Process",value:m(t),fieldKey:L},{label:"Centre Bore",value:a,fieldKey:"center_bore"},{label:"Load Rating",value:m(e.loadRating),fieldKey:"load_rating"},{label:"Bump Profile",value:m(e.bumpProfile),fieldKey:"hump"},{label:"Rim Profile",value:m(e.rimProfile),fieldKey:"flange"},{label:"Cap Code",value:m(e.cap),fieldKey:"cap_code"}],size:f}}function g(e){return e.length?e[Math.ceil(e.length/2)-1]:void 0}function x(e,t){const i=e?.diameter??g(t?.sizes??[]),n=e?.width??g(t?.widths??[]),l=t?.etRange??[],[o,s]=l,c=e?.et??(l.length>=2&&o===s?o:void 0),r=a=>m(a!=null?w(a):void 0);return{diameter:r(i),width:r(n),offset:r(c)}}function b(e,t){const i=e?.centreBore??g(t.centreBores);return{...x(e,t),bore:m(i!=null?`${i} mm`:void 0)}}function O(e){return{slug:e.slug,name:e.name,process:e.process,spokes:e.spokes,mesh:e.mesh,spec:e.spec??null,finishes:e.finishes.map(t=>({name:t.name,image:t.src||t.angles?.[0]||null})),coverImage:e.coverImage??null,variants:e.variants}}function $(e,t,i){const n=e?.spec;if(!e||!n)return{rows:[],diagram:null};const l=e.finishes.find(u=>u.name===t)??e.finishes[0],o=_(e.variants??[],l?.name,i),{rows:s,size:c}=p(n,e.process,l?.name??"—",i,o),r=b(o,n),a={wheelName:e.name,imageSrc:l?.image??e.coverImage??null,...r,holes:d(n.lugs),pcd:h(n.pcds),spokes:e.spokes,mesh:e.mesh};return{rows:s,diagram:a}}function j(e,t,i){const n=v(e),l=y(e);if(!n||!l)return{rows:[],diagram:null};const o=K(e),s=n.finishes.find(f=>f.name===t)??n.finishes[0],{rows:c,size:r}=p(l,n.process,s?.name??"—",i,void 0),a=b(void 0,l),u={wheelName:n.name,imageSrc:s?.angles?.[0]??s?.src??null,...a,holes:o[0]?.holes?.toString()??d(l.lugs),pcd:o[0]?.pcd??h(l.pcds),spokes:n.spokes,mesh:n.mesh};return{rows:c,diagram:u}}export{j as buildLegacySpecSheet,$ as buildSpecSheet,x as dimensionCallouts,O as sourceFromWheel};
|
package/dist/words.d.ts
CHANGED
|
@@ -176,6 +176,7 @@ export type WebBuilderPhrase =
|
|
|
176
176
|
| "Background color"
|
|
177
177
|
| "Background image"
|
|
178
178
|
| "Background images"
|
|
179
|
+
| "Background width"
|
|
179
180
|
| "Badge"
|
|
180
181
|
| "Banner"
|
|
181
182
|
| "Banner headline"
|
|
@@ -1060,7 +1061,6 @@ export type WebBuilderPhrase =
|
|
|
1060
1061
|
| "Success heading"
|
|
1061
1062
|
| "Success message"
|
|
1062
1063
|
| "Superscript"
|
|
1063
|
-
| "Surfaces"
|
|
1064
1064
|
| "Switch now"
|
|
1065
1065
|
| "Switch to Box footer"
|
|
1066
1066
|
| "Synced from the blog post."
|
|
@@ -1150,7 +1150,6 @@ export type WebBuilderPhrase =
|
|
|
1150
1150
|
| "Three across"
|
|
1151
1151
|
| "Three ladder"
|
|
1152
1152
|
| "Three stagger"
|
|
1153
|
-
| "Ticker"
|
|
1154
1153
|
| "Ticker items"
|
|
1155
1154
|
| "TikTok"
|
|
1156
1155
|
| "Timeline entries"
|
|
@@ -1750,6 +1749,7 @@ export type StorefrontBlocksPhrase =
|
|
|
1750
1749
|
| "Price · low to high"
|
|
1751
1750
|
| "Priority handling."
|
|
1752
1751
|
| "Process"
|
|
1752
|
+
| "Product Gallery"
|
|
1753
1753
|
| "Product hero"
|
|
1754
1754
|
| "Product link"
|
|
1755
1755
|
| "Product photos"
|