efficient-storefront-blocks 0.32.0 → 0.32.2
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 +54 -0
- package/dist/chunks/{PreviewFooter-OIGLH5ZN.js → PreviewFooter-HSKRHXFJ.js} +1 -1
- package/dist/chunks/chunk-5XYF5FZK.js +154 -0
- package/dist/chunks/{render-client-PQUQUDJN.js → render-client-KLKYLHZM.js} +1 -1
- package/dist/index.js +2 -2
- package/dist/links.js +1 -1
- package/package.json +1 -1
- package/dist/chunks/chunk-ARXXIF4I.js +0 -154
- /package/dist/chunks/{chunk-ARXXIF4I.js.LEGAL.txt → chunk-5XYF5FZK.js.LEGAL.txt} +0 -0
package/dist/links.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var g={bold:{open:"**",close:"**",placeholder:"bold text"},italic:{open:"_",close:"_",placeholder:"italic text"},strike:{open:"~~",close:"~~",placeholder:"struck out"},code:{open:"`",close:"`",placeholder:"code"},highlight:{open:"==",close:"==",placeholder:"highlighted text"},quiet:{open:"^^",close:"^^",placeholder:"quiet text"},underline:{open:"[",close:"]{underline}",placeholder:"underlined text"},sup:{open:"[",close:"]{sup}",placeholder:"superscript"},sub:{open:"[",close:"]{sub}",placeholder:"subscript"}};var Oe={bold:g.bold.placeholder,italic:g.italic.placeholder,strike:g.strike.placeholder,code:g.code.placeholder,highlight:g.highlight.placeholder,quiet:g.quiet.placeholder,link:"link text",underline:g.underline.placeholder,sup:g.sup.placeholder,sub:g.sub.placeholder,color:"colored text"};var V=[{style:"bold",label:"B",name:"Strong",title:"Strong \xB7 **words** \xB7 \u2318B",shortcut:"b"},{style:"italic",label:"I",name:"Italic",title:"Italic \xB7 _words_ \xB7 \u2318I",shortcut:"i"},{style:"strike",label:"S",name:"Strikethrough",title:"Strikethrough \xB7 ~~words~~"},{style:"highlight",label:"\u25C6",name:"Emphasis",title:"Emphasis \xB7 ==words=="},{style:"quiet",label:"a",name:"Quiet",title:"Quiet \xB7 ^^words^^"},{style:"code",label:"\u2039\u203A",name:"Code",title:"Code"},{style:"link",label:"\u{1F517}",name:"Link",title:"Link \xB7 [words](https://\u2026) \xB7 \u2318K",shortcut:"k"},{style:"bullet",label:"\u2022",name:"Bulleted list",title:"Bulleted list"},{style:"number",label:"1.",name:"Numbered list",title:"Numbered list"},{style:"quote",label:"\u275D",name:"Quote",title:"Quote"},{style:"clear",label:"T\xD7",name:"Clear marks",title:"Clear marks \xB7 \u2318\u21E7X",shortcut:"shift+x"}];var x=[{open:"**",close:"**",kind:"bold"},{open:"==",close:"==",kind:"highlight"},{open:"~~",close:"~~",kind:"strike"},{open:"_",close:"_",kind:"italic",wordBoundary:!0},{open:"^^",close:"^^",kind:"quiet"},{open:"@@",close:"@@",kind:"highlight"},{open:"++",close:"++",kind:"bold",wordStart:!0}],Q=["highlight","quiet"],Ne=V.map(e=>e.style).filter(e=>x.some(n=>n.kind===e)).filter(e=>!Q.includes(e)),ve=[...x,{open:"*",close:"*",kind:"accent"}],Me=[...x,{open:"*",close:"*",kind:"accent"},{open:"#",close:"#",kind:"bold",notBefore:"0123456789"},{open:"[",close:"]",kind:"italic",notBefore:"(",notBeforeBlock:!0}];var ze=["http","https","mailto","tel"];function v(e){if(e===""||/[\s\u0000-\u001f\u007f]/.test(e))return!1;let n=/^([a-zA-Z][a-zA-Z0-9+.-]*):/.exec(e);return!n||ze.includes(n[1].toLowerCase())}var X=["width","profile","rim"];var Ue=/^\s*(\d{2,3})\s*\/\s*(\d{2,3})\s*[A-Za-z]*\s*(\d{2}(?:\.\d+)?)\s*$/,De={width:[100,500],profile:[20,100],rim:[10,30]};function M(e){let n=Ue.exec(e??"");if(!n)return null;let t={width:Number(n[1]),profile:Number(n[2]),rim:Number(n[3])};return X.every(i=>{let[a,u]=De[i];return t[i]>=a&&t[i]<=u})?t:null}function L(e){if(e.width==null)return"";if(e.profile==null)return String(e.width);let n=`${e.width}/${e.profile}`;return e.rim==null?n:`${n} R${e.rim}`}function J(e){return[L({width:e.width}),L({width:e.width,profile:e.profile}),L(e)]}var k=["alloy-wheel","tyre"],ee=["alloy-wheel"],w={"alloy-wheel":"Alloy wheels",tyre:"Tyres"};var Wn=k.map(e=>({value:e,label:w[e]}));function z(e){return e==null?[...ee]:Array.isArray(e)?k.filter(n=>e.includes(n)):[...ee]}var m=e=>e;function f(e){return m(e).kind==="tyre"?"tyre":"alloy-wheel"}function U(e){return m(e).brand??""}function ne(e){return m(e).prices??void 0}function te(e){return m(e).inStock!==!1}function re(e){let n=m(e),t=f(e)==="tyre"?n.rimDiameters:n.sizes;return Array.isArray(t)?t.filter(r=>typeof r=="number"&&Number.isFinite(r)):[]}function D(e){return f(e)==="tyre"?[]:(m(e).finishes??[]).filter(n=>typeof n?.family=="string").map(n=>({family:n.family,color:n.color??null}))}function ie(e){return D(e).map(n=>n.family)}function le(e){if(f(e)==="tyre")return[];let n=m(e),t=n.categories;return t&&t.length>0?t:n.process?[n.process]:[]}function oe(e){return f(e)==="tyre"?[]:m(e).spec?.pcds??[]}function se(e){return f(e)!=="tyre"?[]:m(e).tyreTypes??[]}function ae(e){return f(e)!=="tyre"?[]:m(e).speedRatings??[]}function ue(e){if(f(e)!=="tyre")return[];let n=m(e).sizes;return Array.isArray(n)?n.map(t=>M(typeof t=="string"?t:null)).filter(t=>t!==null):[]}var ce=null;function pe(e,n){return n?e.replace(/\{([A-Za-z][A-Za-z0-9_]*)\}/g,(t,r)=>Object.prototype.hasOwnProperty.call(n,r)?String(n[r]):t):e}function P(e,n){let t=ce?ce[e]:void 0;if(typeof t=="function"){try{let r=t(n??{});if(typeof r=="string"&&r)return r}catch{}return pe(e,n)}return pe(typeof t=="string"&&t?t:e,n)}var de="homepage";function fe(e){return(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}var F=[{value:"page",label:"Page"},{value:"anchor",label:"Anchor"},{value:"blog",label:"Blog post",needs:"service"},{value:"product",label:"Product",needs:"commerce"},{value:"custom",label:"Custom URL"}];function T(e){return e.offersCommerce&&e.offersService?F:F.filter(n=>!n.needs||(n.needs==="commerce"?e.offersCommerce:e.offersService))}function y(e){return e===de?"/":`/${e}`}function _(e){return`/journal/${e}`}function A(e){return`/wheels/${e}`}function E(e,n){return`${y(e)}#${n}`}function B(e){return fe(e)}function Be(e){return typeof e=="string"?e.trim():e&&typeof e=="object"&&typeof e.text=="string"?e.text.trim():""}function R(...e){let n=new Set,t=[];for(let r of e)for(let i of r?.content??[]){let a=Be(i?.props?.anchor);if(!a)continue;let u=B(a);!u||n.has(u)||(n.add(u),t.push({slug:u,name:a}))}return t}var $e=()=>({choosePage:P("Choose a page"),chooseSection:P("Choose a section"),noSections:P("No section anchors yet"),sectionHint:P("Jumps to a section on that page."),choosePost:P("Choose a post"),chooseProduct:P("Choose a product")});function I(e,n,t){if(!e)return"page";if(e.startsWith("/journal/"))return"blog";if(e.startsWith("/wheels/"))return"product";if(e.includes("#")){let r=e.slice(0,e.indexOf("#"));if(r===""||r==="/"||n.includes(r))return"anchor"}return e==="/"||n.includes(e)||t&&t.listingPaths.includes(t.targetOf(e))?"page":"custom"}function me(e,n){let t=$e(),r=e.pages.map(o=>({value:y(o.slug),label:o.title})),i=n?.pageOptions?n.pageOptions(r):r,a=i.map(o=>o.value),u=e.pages.map(o=>({label:o.title,options:R(...o.docs).map(p=>({value:E(o.slug,p.slug),label:p.name}))})).filter(o=>o.options.length>0),c=o=>{switch(o){case"page":return{type:"select",options:i,placeholder:t.choosePage};case"anchor":return{type:"groups",groups:u,placeholder:u.length?t.chooseSection:t.noSections};case"blog":return{type:"select",options:e.posts.map(p=>({value:_(p.slug),label:p.title||p.slug})),placeholder:t.choosePost};case"product":return{type:"select",options:e.products.map(p=>({value:p.href,label:p.name||p.href})),placeholder:t.chooseProduct};case"custom":return{type:"text"}}},s=T(e.offers).map(o=>({value:o.value,label:P(o.label),target:c(o.value),...o.value==="anchor"?{hint:t.sectionHint}:{},...o.value==="blog"||o.value==="product"?{hideWhenEmpty:!0}:{}}));if(!n)return{kinds:s,rules:{kindOf:o=>I(o,a),targetOf:o=>o,readFilter:()=>null,withFilter:o=>o}};let l=o=>{let p=n.withFilter(o,null);return n.listingPaths.includes(p)?p:o};return{kinds:s,rules:{kindOf:o=>I(o,a,{listingPaths:n.listingPaths,targetOf:l}),targetOf:l,readFilter:n.readFilter,withFilter:n.withFilter},filtersFor:o=>n.listingPaths.includes(o)?n.filtersFor(o):null}}function $(e,n){return e.length===0?e:e.filter(t=>t.kind===void 0||t.kind===n)}function he(e,n){let t=n==="filter"?"filterOrder":"cardOrder",r=new Map;for(let i of e){let a=i[t];if(typeof a!="number"||!Number.isFinite(a))continue;let u=r.get(i.fieldKey);(u===void 0||a<u)&&r.set(i.fieldKey,a)}return i=>i?r.get(i):void 0}function ge(e,n,t,r){let i=new Map;for(let s of t){let l=s[r];typeof l=="number"&&i.set(s.fieldKey,l)}if(i.size===0)return e;let a=[],u=[];e.forEach((s,l)=>{let o=n(s);o&&(a.push(l),u.push({item:s,index:l,order:i.get(o)}))}),u.sort((s,l)=>s.order!==void 0&&l.order!==void 0?s.order-l.order||s.index-l.index:s.order!==void 0?-1:l.order!==void 0?1:s.index-l.index);let c=[...e];return a.forEach((s,l)=>{c[s]=u[l].item}),c.every((s,l)=>s===e[l])?e:c}function ye(e){return Ye(e,"filter")}var We="collection";function W(e,n){return{tyreSizes:{},brands:{"alloy-wheel":"brand",tyre:"brand"},finishes:{"alloy-wheel":"wheel_finish_ref"},diameters:{"alloy-wheel":"diameter",tyre:"rim_diameter"},collections:{"alloy-wheel":We},pcds:{"alloy-wheel":"pcd"},tyreTypes:{tyre:"tire_type"},speedRatings:{tyre:"speed_rating"}}[e]?.[n]}function Ye(e,n){let t=new Set(e.filter(r=>r[n]===!1).map(r=>r.fieldKey));return r=>!r||!t.has(r)}function Ge(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Pe(e,n){let t=e?.[n];return Ge(t)?t:null}function be(e,n,t,r){if(t==null&&r==null)return!0;let i=Pe(e,n);return!(i===null||t!=null&&i<t||r!=null&&i>r)}var qe={recommended:"Recommended","price-asc":"Price \xB7 low to high","price-desc":"Price \xB7 high to low",new:"Newest",name:"Name A\u2013Z"},xt=Object.keys(qe);var ke=["tyreSizes","brands","finishes","diameters","collections","pcds","tyreTypes","speedRatings"],He={tyreSizes:["tyre"],brands:["alloy-wheel","tyre"],finishes:["alloy-wheel"],diameters:["alloy-wheel","tyre"],collections:["alloy-wheel"],pcds:["alloy-wheel"],tyreTypes:["tyre"],speedRatings:["tyre"]},je={diameters:"tyreSizes"};function Ze(e){if(e.length===0)return[];let n=ke.filter(t=>e.every(r=>He[t].includes(r)));return n.filter(t=>{let r=je[t];return!r||!n.includes(r)})}function Ve(e){let n=new Set;for(let t of e)n.add(f(t));return[...n]}var Se={tyreSizes:[],brands:[],finishes:[],diameters:[],collections:[],pcds:[],tyreTypes:[],speedRatings:[],priceMax:null,inStockOnly:!1,kind:null,sort:"recommended",page:1};function Qe(e,n,t,r=null){if(r!=="kind"&&n.kind&&f(e)!==n.kind)return!1;for(let i of ke){if(r===i)continue;let a=n[i];if(a.length===0)continue;let u=a.map(String);if(!xe(e,i).some(c=>u.includes(c)))return!1}return!(r!=="price"&&!be(ne(e),t,null,n.priceMax)||r!=="inStock"&&n.inStockOnly&&!te(e))}var Xe={tyreSizes:"Size",brands:"Brand",finishes:"Colour",diameters:"Size \xB7 diameter",collections:"Collection",pcds:"PCD \xB7 fitment",tyreTypes:"Tyre type",speedRatings:"Speed rating"};function xe(e,n){switch(n){case"tyreSizes":return[...new Set(ue(e).flatMap(J))];case"brands":return U(e)?[U(e)]:[];case"finishes":return ie(e);case"diameters":return re(e).map(String);case"collections":return le(e);case"pcds":return oe(e);case"tyreTypes":return se(e);case"speedRatings":return ae(e)}}function Je(e){let n=new Map;for(let t of e)for(let r of D(t))r.color&&!n.has(r.family)&&n.set(r.family,r.color);return n}function Le(e,n,t,r=Ve(e),i=[]){let a=l=>nn(l,r,i),u=Je(e),c=Ze(r).filter(l=>l!=="tyreSizes").filter(a).map(l=>{let o=n[l].map(String),p=new Set,N=new Map,S=new Map;for(let d of e){let b=xe(d,l);for(let h of b)p.add(h);for(let h of new Set(b))S.set(h,(S.get(h)??0)+1);if(Qe(d,n,t,l))for(let h of new Set(b))N.set(h,(N.get(h)??0)+1)}let Ce=[...p].map(d=>({value:d,label:l==="diameters"?`${d}\u2033`:d,count:N.get(d)??0,checked:o.includes(d),swatch:l==="finishes"?u.get(d)??null:null})).sort((d,b)=>{if(l==="diameters")return Number(d.value)-Number(b.value);let h=(S.get(b.value)??0)-(S.get(d.value)??0);return h!==0?h:d.value.localeCompare(b.value)});return{key:l,label:Xe[l],options:Ce}}).filter(l=>l.options.length>en),s=[];for(let l of c){let o=tn(l.key,r,i);o!==void 0&&s.push({fieldKey:l.key,filterOrder:o})}return[...ge(c,l=>l.key,s,"filterOrder")]}var en=1;function we(e){return e.showCollection===!1?["collections"]:[]}function nn(e,n,t){return n.length===0||t.length===0?!0:n.some(r=>ye($(t,r))(W(e,r)))}function tn(e,n,t){if(t.length===0)return;let r;for(let i of n){let a=he($(t,i),"filter")(W(e,i));a!==void 0&&(r===void 0||a<r)&&(r=a)}return r}var Y={tyreSizes:"tyreSize",brands:"brand",finishes:"colour",diameters:"size",collections:"collection",pcds:"pcd",tyreTypes:"tyreType",speedRatings:"speed"},G="type";var Fe="AlloyWheelsListing";function Te(e){return v(e.trim())}var K="/wheels",C="Products";function _e(e,n){return n>1?`${C} \xB7 ${e}`:C}function q(...e){for(let n of e){let t=(n?.content??[]).find(r=>r?.type===Fe);if(t)return t.props??{}}return null}function O(...e){return q(...e)!==null}function Ae(e,n){let t=e.filter(r=>O(...r.docs)).map(r=>y(r.slug));return t.length===0&&n.fallback?[K]:t}var H=[G,...Object.entries(Y).filter(([e])=>e!=="tyreSizes").map(([,e])=>e)];function Ee(e){let n=e.indexOf("#"),t=n===-1?"":e.slice(n),r=n===-1?e:e.slice(0,n),i=r.indexOf("?");return{path:i===-1?r:r.slice(0,i),query:i===-1?"":r.slice(i+1),hash:t}}function rn(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch{return e}}function Re(e){let n=new URLSearchParams(Ee(e).query);for(let t of H){let r=n.get(t);if(r)return{param:t,value:r}}return null}function j(e,n){let{path:t,query:r,hash:i}=Ee(e),a=r.split("&").filter(u=>u&&!H.includes(rn(u.split("=")[0])));return n?.value&&a.push(`${encodeURIComponent(n.param)}=${encodeURIComponent(n.value)}`),`${t}${a.length?`?${a.join("&")}`:""}${i}`}function Ie(e,n){let t=j(e,null);return n.includes(t)?t:e}function ln(e,n,t=[]){return I(e,n,{listingPaths:t,targetOf:r=>Ie(r,t)})}function on(e){return Array.isArray(e)?e.filter(n=>typeof n?.kind=="string"&&typeof n.field_key=="string").map(n=>({kind:n.kind,fieldKey:n.field_key,...typeof n.filter=="boolean"?{filter:n.filter}:{},filterOrder:n.filter_order??null})):[]}var Ke="Product type",sn="AUD";function Z(e,n){let t=n.listing??{},r=z(t.kinds),i=e.filter(s=>r.includes(f(s))),a=we(t),u=Le(i,Se,sn,r,n.fieldUsage).filter(s=>!a.includes(s.key)).map(s=>({param:Y[s.key],label:s.label,values:s.options.filter(l=>!l.value.includes(",")).map(l=>({value:l.value,label:l.label}))})).filter(s=>s.values.length>0),c=k.filter(s=>r.includes(s)&&i.some(l=>f(l)===s));return c.length>1&&u.unshift({param:G,label:Ke,values:c.map(s=>({value:s,label:w[s]}))}),u}function an(e){return n=>{let t=Ae(n,{fallback:e.offersCommerce}),r=n.filter(i=>O(...i.docs)).length;return{listingPaths:t,pageOptions:i=>{let a=i.map(u=>{let c=n.find(s=>y(s.slug)===u.value);return c&&O(...c.docs)?{...u,label:_e(c.title,r)}:u});return r===0&&e.offersCommerce&&!a.some(u=>u.value===K)&&a.push({value:K,label:C}),a},filtersFor:i=>{if(!t.includes(i))return null;let a=n.find(u=>y(u.slug)===i);return Z(e.catalogue,{listing:a?q(...a.docs):null,fieldUsage:e.fieldUsage})},readFilter:Re,withFilter:j}}}function un(e){let n=an({catalogue:e.catalogue,fieldUsage:e.fieldUsage,offersCommerce:e.offers.offersCommerce})(e.pages),t=me({pages:e.pages,posts:e.posts,products:e.products.map(r=>({href:A(r.slug),name:r.name||r.slug})),offers:e.offers},n);return{...t,rules:{...t.rules,isSafe:Te},filtersFor:t.filtersFor??(()=>null)}}function Ut(e,n){return Z(e,n)}export{K as BUILT_IN_LISTING_PATH,F as LINK_KINDS,H as LISTING_FILTER_PARAMS,C as LISTING_PAGE_LABEL,Ke as PRODUCT_TYPE_FILTER_LABEL,E as anchorPath,on as fieldUsageFromAdminRows,ln as inferLinkKind,O as isProductListingPage,Te as isSafeLink,T as linkKindsFor,un as linkPickerSetup,Ut as listingFilterFields,q as listingNode,_e as listingPageLabel,Ie as listingTarget,R as pageAnchors,y as pagePath,_ as postPath,Ae as productListingPaths,Re as readListingFilter,B as slugifyAnchor,A as wheelPath,j as withListingFilter};
|
|
1
|
+
var g={bold:{open:"**",close:"**",placeholder:"bold text"},italic:{open:"_",close:"_",placeholder:"italic text"},strike:{open:"~~",close:"~~",placeholder:"struck out"},code:{open:"`",close:"`",placeholder:"code"},highlight:{open:"==",close:"==",placeholder:"highlighted text"},quiet:{open:"^^",close:"^^",placeholder:"quiet text"},underline:{open:"[",close:"]{underline}",placeholder:"underlined text"},sup:{open:"[",close:"]{sup}",placeholder:"superscript"},sub:{open:"[",close:"]{sub}",placeholder:"subscript"}};var Oe={bold:g.bold.placeholder,italic:g.italic.placeholder,strike:g.strike.placeholder,code:g.code.placeholder,highlight:g.highlight.placeholder,quiet:g.quiet.placeholder,link:"link text",underline:g.underline.placeholder,sup:g.sup.placeholder,sub:g.sub.placeholder,color:"colored text"};var V=[{style:"bold",label:"B",name:"Strong",title:"Strong \xB7 **words** \xB7 \u2318B",shortcut:"b"},{style:"italic",label:"I",name:"Italic",title:"Italic \xB7 _words_ \xB7 \u2318I",shortcut:"i"},{style:"strike",label:"S",name:"Strikethrough",title:"Strikethrough \xB7 ~~words~~"},{style:"highlight",label:"\u25C6",name:"Emphasis",title:"Emphasis \xB7 ==words=="},{style:"quiet",label:"a",name:"Quiet",title:"Quiet \xB7 ^^words^^"},{style:"code",label:"\u2039\u203A",name:"Code",title:"Code"},{style:"link",label:"\u{1F517}",name:"Link",title:"Link \xB7 [words](https://\u2026) \xB7 \u2318K",shortcut:"k"},{style:"bullet",label:"\u2022",name:"Bulleted list",title:"Bulleted list"},{style:"number",label:"1.",name:"Numbered list",title:"Numbered list"},{style:"quote",label:"\u275D",name:"Quote",title:"Quote"},{style:"clear",label:"T\xD7",name:"Clear marks",title:"Clear marks \xB7 \u2318\u21E7X",shortcut:"shift+x"}];var x=[{open:"**",close:"**",kind:"bold"},{open:"==",close:"==",kind:"highlight"},{open:"~~",close:"~~",kind:"strike"},{open:"_",close:"_",kind:"italic",wordBoundary:!0},{open:"^^",close:"^^",kind:"quiet"},{open:"@@",close:"@@",kind:"highlight"},{open:"++",close:"++",kind:"bold",wordStart:!0}],Q=["highlight","quiet"],Ne=V.map(e=>e.style).filter(e=>x.some(n=>n.kind===e)).filter(e=>!Q.includes(e)),ve=[...x,{open:"*",close:"*",kind:"accent"}],Me=[...x,{open:"*",close:"*",kind:"accent"},{open:"#",close:"#",kind:"bold",notBefore:"0123456789"},{open:"[",close:"]",kind:"italic",notBefore:"(",notBeforeBlock:!0}];var ze=["http","https","mailto","tel"];function v(e){if(e===""||/[\s\u0000-\u001f\u007f]/.test(e))return!1;let n=/^([a-zA-Z][a-zA-Z0-9+.-]*):/.exec(e);return!n||ze.includes(n[1].toLowerCase())}var X=["width","profile","rim"];var Ue=/^\s*(\d{2,3})\s*\/\s*(\d{2,3})\s*[A-Za-z]*\s*(\d{2}(?:\.\d+)?)\s*$/,De={width:[100,500],profile:[20,100],rim:[10,30]};function M(e){let n=Ue.exec(e??"");if(!n)return null;let t={width:Number(n[1]),profile:Number(n[2]),rim:Number(n[3])};return X.every(i=>{let[a,u]=De[i];return t[i]>=a&&t[i]<=u})?t:null}function L(e){if(e.width==null)return"";if(e.profile==null)return String(e.width);let n=`${e.width}/${e.profile}`;return e.rim==null?n:`${n} R${e.rim}`}function J(e){return[L({width:e.width}),L({width:e.width,profile:e.profile}),L(e)]}var k=["alloy-wheel","tyre"],ee=["alloy-wheel"],w={"alloy-wheel":"Alloy wheels",tyre:"Tyres"};var Wn=k.map(e=>({value:e,label:w[e]}));function z(e){return e==null?[...ee]:Array.isArray(e)?k.filter(n=>e.includes(n)):[...ee]}var m=e=>e;function f(e){return m(e).kind==="tyre"?"tyre":"alloy-wheel"}function U(e){return m(e).brand??""}function ne(e){return m(e).prices??void 0}function te(e){return m(e).inStock!==!1}function re(e){let n=m(e),t=f(e)==="tyre"?n.rimDiameters:n.sizes;return Array.isArray(t)?t.filter(r=>typeof r=="number"&&Number.isFinite(r)):[]}function D(e){return f(e)==="tyre"?[]:(m(e).finishes??[]).filter(n=>typeof n?.family=="string").map(n=>({family:n.family,color:n.color??null}))}function ie(e){return D(e).map(n=>n.family)}function le(e){if(f(e)==="tyre")return[];let n=m(e),t=n.categories;return t&&t.length>0?t:n.process?[n.process]:[]}function oe(e){return f(e)==="tyre"?[]:m(e).spec?.pcds??[]}function se(e){return f(e)!=="tyre"?[]:m(e).tyreTypes??[]}function ae(e){return f(e)!=="tyre"?[]:m(e).speedRatings??[]}function ue(e){if(f(e)!=="tyre")return[];let n=m(e).sizes;return Array.isArray(n)?n.map(t=>M(typeof t=="string"?t:null)).filter(t=>t!==null):[]}var ce=null;function pe(e,n){return n?e.replace(/\{([A-Za-z][A-Za-z0-9_]*)\}/g,(t,r)=>Object.prototype.hasOwnProperty.call(n,r)?String(n[r]):t):e}function P(e,n){let t=ce?ce[e]:void 0;if(typeof t=="function"){try{let r=t(n??{});if(typeof r=="string"&&r)return r}catch{}return pe(e,n)}return pe(typeof t=="string"&&t?t:e,n)}var de="homepage";function fe(e){return(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")}var F=[{value:"page",label:"Page"},{value:"anchor",label:"Anchor"},{value:"blog",label:"Blog post",needs:"service"},{value:"product",label:"Product",needs:"commerce"},{value:"custom",label:"Custom URL"}];function T(e){return e.offersCommerce&&e.offersService?F:F.filter(n=>!n.needs||(n.needs==="commerce"?e.offersCommerce:e.offersService))}function y(e){return e===de?"/":`/${e}`}function _(e){return`/journal/${e}`}function A(e){return`/wheels/${e}`}function E(e,n){return`${y(e)}#${n}`}function $(e){return fe(e)}function $e(e){return typeof e=="string"?e.trim():e&&typeof e=="object"&&typeof e.text=="string"?e.text.trim():""}function R(...e){let n=new Set,t=[];for(let r of e)for(let i of r?.content??[]){let a=$e(i?.props?.anchor);if(!a)continue;let u=$(a);!u||n.has(u)||(n.add(u),t.push({slug:u,name:a}))}return t}var Be=()=>({choosePage:P("Choose a page"),chooseSection:P("Choose a section"),noSections:P("No section anchors yet"),sectionHint:P("Jumps to a section on that page."),choosePost:P("Choose a post"),chooseProduct:P("Choose a product")});function I(e,n,t){if(!e)return"page";if(e.startsWith("/journal/"))return"blog";if(e.startsWith("/wheels/"))return"product";if(e.includes("#")){let r=e.slice(0,e.indexOf("#"));if(r===""||r==="/"||n.includes(r))return"anchor"}return e==="/"||n.includes(e)||t&&t.listingPaths.includes(t.targetOf(e))?"page":"custom"}function me(e,n){let t=Be(),r=e.pages.map(o=>({value:y(o.slug),label:o.title})),i=n?.pageOptions?n.pageOptions(r):r,a=i.map(o=>o.value),u=e.pages.map(o=>({label:o.title,options:R(...o.docs).map(p=>({value:E(o.slug,p.slug),label:p.name}))})).filter(o=>o.options.length>0),c=o=>{switch(o){case"page":return{type:"select",options:i,placeholder:t.choosePage};case"anchor":return{type:"groups",groups:u,placeholder:u.length?t.chooseSection:t.noSections};case"blog":return{type:"select",options:e.posts.map(p=>({value:_(p.slug),label:p.title||p.slug})),placeholder:t.choosePost};case"product":return{type:"select",options:e.products.map(p=>({value:p.href,label:p.name||p.href})),placeholder:t.chooseProduct};case"custom":return{type:"text"}}},s=T(e.offers).map(o=>({value:o.value,label:P(o.label),target:c(o.value),...o.value==="anchor"?{hint:t.sectionHint}:{},...o.value==="blog"||o.value==="product"?{hideWhenEmpty:!0}:{}}));if(!n)return{kinds:s,rules:{kindOf:o=>I(o,a),targetOf:o=>o,readFilter:()=>null,withFilter:o=>o}};let l=o=>{let p=n.withFilter(o,null);return n.listingPaths.includes(p)?p:o};return{kinds:s,rules:{kindOf:o=>I(o,a,{listingPaths:n.listingPaths,targetOf:l}),targetOf:l,readFilter:n.readFilter,withFilter:n.withFilter},filtersFor:o=>n.listingPaths.includes(o)?n.filtersFor(o):null}}function B(e,n){return e.length===0?e:e.filter(t=>t.kind===void 0||t.kind===n)}function he(e,n){let t=n==="filter"?"filterOrder":"cardOrder",r=new Map;for(let i of e){let a=i[t];if(typeof a!="number"||!Number.isFinite(a))continue;let u=r.get(i.fieldKey);(u===void 0||a<u)&&r.set(i.fieldKey,a)}return i=>i?r.get(i):void 0}function ge(e,n,t,r){let i=new Map;for(let s of t){let l=s[r];typeof l=="number"&&i.set(s.fieldKey,l)}if(i.size===0)return e;let a=[],u=[];e.forEach((s,l)=>{let o=n(s);o&&(a.push(l),u.push({item:s,index:l,order:i.get(o)}))}),u.sort((s,l)=>s.order!==void 0&&l.order!==void 0?s.order-l.order||s.index-l.index:s.order!==void 0?-1:l.order!==void 0?1:s.index-l.index);let c=[...e];return a.forEach((s,l)=>{c[s]=u[l].item}),c.every((s,l)=>s===e[l])?e:c}function ye(e){return Ye(e,"filter")}var We="collection";function W(e,n){return{tyreSizes:{},brands:{"alloy-wheel":"brand",tyre:"brand"},finishes:{"alloy-wheel":"wheel_finish_ref"},diameters:{"alloy-wheel":"diameter",tyre:"rim_diameter"},collections:{"alloy-wheel":We},pcds:{"alloy-wheel":"pcd"},tyreTypes:{tyre:"tire_type"},speedRatings:{tyre:"speed_rating"}}[e]?.[n]}function Ye(e,n){let t=new Set(e.filter(r=>r[n]===!1).map(r=>r.fieldKey));return r=>!r||!t.has(r)}function Ge(e){return typeof e=="number"&&Number.isFinite(e)&&e>0}function Pe(e,n){let t=e?.[n];return Ge(t)?t:null}function be(e,n,t,r){if(t==null&&r==null)return!0;let i=Pe(e,n);return!(i===null||t!=null&&i<t||r!=null&&i>r)}var qe={recommended:"Recommended","price-asc":"Price \xB7 low to high","price-desc":"Price \xB7 high to low",new:"Newest",name:"Name A\u2013Z"},Lt=Object.keys(qe);var ke=["tyreSizes","brands","finishes","diameters","collections","pcds","tyreTypes","speedRatings"],He={tyreSizes:["tyre"],brands:["alloy-wheel","tyre"],finishes:["alloy-wheel"],diameters:["alloy-wheel","tyre"],collections:["alloy-wheel"],pcds:["alloy-wheel"],tyreTypes:["tyre"],speedRatings:["tyre"]},je={diameters:"tyreSizes"};function Ze(e){if(e.length===0)return[];let n=ke.filter(t=>e.every(r=>He[t].includes(r)));return n.filter(t=>{let r=je[t];return!r||!n.includes(r)})}function Ve(e){let n=new Set;for(let t of e)n.add(f(t));return[...n]}var Se={tyreSizes:[],brands:[],finishes:[],diameters:[],collections:[],pcds:[],tyreTypes:[],speedRatings:[],priceMax:null,inStockOnly:!1,kind:null,sort:"recommended",page:1};function Qe(e,n,t,r=null){if(r!=="kind"&&n.kind&&f(e)!==n.kind)return!1;for(let i of ke){if(r===i)continue;let a=n[i];if(a.length===0)continue;let u=a.map(String);if(!xe(e,i).some(c=>u.includes(c)))return!1}return!(r!=="price"&&!be(ne(e),t,null,n.priceMax)||r!=="inStock"&&n.inStockOnly&&!te(e))}var Xe={tyreSizes:"Size",brands:"Brand",finishes:"Colour",diameters:"Size \xB7 diameter",collections:"Collection",pcds:"PCD \xB7 fitment",tyreTypes:"Tyre type",speedRatings:"Speed rating"};function xe(e,n){switch(n){case"tyreSizes":return[...new Set(ue(e).flatMap(J))];case"brands":return U(e)?[U(e)]:[];case"finishes":return ie(e);case"diameters":return re(e).map(String);case"collections":return le(e);case"pcds":return oe(e);case"tyreTypes":return se(e);case"speedRatings":return ae(e)}}function Je(e){let n=new Map;for(let t of e)for(let r of D(t))r.color&&!n.has(r.family)&&n.set(r.family,r.color);return n}function Le(e,n,t,r=Ve(e),i=[]){let a=l=>nn(l,r,i),u=Je(e),c=Ze(r).filter(l=>l!=="tyreSizes").filter(a).map(l=>{let o=n[l].map(String),p=new Set,N=new Map,S=new Map;for(let d of e){let b=xe(d,l);for(let h of b)p.add(h);for(let h of new Set(b))S.set(h,(S.get(h)??0)+1);if(Qe(d,n,t,l))for(let h of new Set(b))N.set(h,(N.get(h)??0)+1)}let Ce=[...p].map(d=>({value:d,label:l==="diameters"?`${d}\u2033`:d,count:N.get(d)??0,checked:o.includes(d),swatch:l==="finishes"?u.get(d)??null:null})).sort((d,b)=>{if(l==="diameters")return Number(d.value)-Number(b.value);let h=(S.get(b.value)??0)-(S.get(d.value)??0);return h!==0?h:d.value.localeCompare(b.value)});return{key:l,label:Xe[l],options:Ce}}).filter(l=>l.options.length>en),s=[];for(let l of c){let o=tn(l.key,r,i);o!==void 0&&s.push({fieldKey:l.key,filterOrder:o})}return[...ge(c,l=>l.key,s,"filterOrder")]}var en=1;function we(e){return e.showCollection===!1?["collections"]:[]}function nn(e,n,t){return n.length===0||t.length===0?!0:n.some(r=>ye(B(t,r))(W(e,r)))}function tn(e,n,t){if(t.length===0)return;let r;for(let i of n){let a=he(B(t,i),"filter")(W(e,i));a!==void 0&&(r===void 0||a<r)&&(r=a)}return r}var Y={tyreSizes:"tyreSize",brands:"brand",finishes:"colour",diameters:"size",collections:"collection",pcds:"pcd",tyreTypes:"tyreType",speedRatings:"speed"},G="type";var Fe="AlloyWheelsListing";function Te(e){return v(e.trim())}var K="/wheels",C="Products";function _e(e,n){return n>1?`${C} \xB7 ${e}`:C}function q(...e){for(let n of e){let t=(n?.content??[]).find(r=>r?.type===Fe);if(t)return t.props??{}}return null}function O(...e){return q(...e)!==null}function Ae(e,n){let t=e.filter(r=>O(...r.docs)).map(r=>y(r.slug));return t.length===0&&n.fallback?[K]:t}var H=[G,...Object.entries(Y).filter(([e])=>e!=="tyreSizes").map(([,e])=>e)];function Ee(e){let n=e.indexOf("#"),t=n===-1?"":e.slice(n),r=n===-1?e:e.slice(0,n),i=r.indexOf("?");return{path:i===-1?r:r.slice(0,i),query:i===-1?"":r.slice(i+1),hash:t}}function rn(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch{return e}}function Re(e){let n=new URLSearchParams(Ee(e).query);for(let t of H){let r=n.get(t);if(r)return{param:t,value:r}}return null}function j(e,n){let{path:t,query:r,hash:i}=Ee(e),a=r.split("&").filter(u=>u&&!H.includes(rn(u.split("=")[0])));return n?.value&&a.push(`${encodeURIComponent(n.param)}=${encodeURIComponent(n.value)}`),`${t}${a.length?`?${a.join("&")}`:""}${i}`}function Ie(e,n){let t=j(e,null);return n.includes(t)?t:e}function ln(e,n,t=[]){return I(e,n,{listingPaths:t,targetOf:r=>Ie(r,t)})}function on(e){return Array.isArray(e)?e.filter(n=>typeof n?.kind=="string"&&typeof n.field_key=="string").map(n=>({kind:n.kind,fieldKey:n.field_key,...typeof n.filter=="boolean"?{filter:n.filter}:{},filterOrder:n.filter_order??null})):[]}var Ke="Product type",sn="AUD";function Z(e,n){let t=n.listing??{},r=z(t.kinds),i=e.filter(s=>r.includes(f(s))),a=we(t),u=Le(i,Se,sn,r,n.fieldUsage).filter(s=>!a.includes(s.key)).map(s=>({param:Y[s.key],label:s.label,values:s.options.filter(l=>!l.value.includes(",")).map(l=>({value:l.value,label:l.label}))})).filter(s=>s.values.length>0),c=k.filter(s=>r.includes(s)&&i.some(l=>f(l)===s));return c.length>1&&u.unshift({param:G,label:Ke,values:c.map(s=>({value:s,label:w[s]}))}),u}function an(e){return n=>{let t=Ae(n,{fallback:e.offersCommerce}),r=n.filter(i=>O(...i.docs)).length;return{listingPaths:t,pageOptions:i=>{let a=i.map(u=>{let c=n.find(s=>y(s.slug)===u.value);return c&&O(...c.docs)?{...u,label:_e(c.title,r)}:u});return r===0&&e.offersCommerce&&!a.some(u=>u.value===K)&&a.push({value:K,label:C}),a},filtersFor:i=>{if(!t.includes(i))return null;let a=n.find(u=>y(u.slug)===i);return Z(e.catalogue,{listing:a?q(...a.docs):null,fieldUsage:e.fieldUsage})},readFilter:Re,withFilter:j}}}function un(e){let n=an({catalogue:e.catalogue,fieldUsage:e.fieldUsage,offersCommerce:e.offers.offersCommerce})(e.pages),t=me({pages:e.pages,posts:e.posts,products:e.products.map(r=>({href:A(r.slug),name:r.name||r.slug})),offers:e.offers},n);return{...t,rules:{...t.rules,isSafe:Te},filtersFor:t.filtersFor??(()=>null)}}function Dt(e,n){return Z(e,n)}export{K as BUILT_IN_LISTING_PATH,F as LINK_KINDS,H as LISTING_FILTER_PARAMS,C as LISTING_PAGE_LABEL,Ke as PRODUCT_TYPE_FILTER_LABEL,E as anchorPath,on as fieldUsageFromAdminRows,ln as inferLinkKind,O as isProductListingPage,Te as isSafeLink,T as linkKindsFor,un as linkPickerSetup,Dt as listingFilterFields,q as listingNode,_e as listingPageLabel,Ie as listingTarget,R as pageAnchors,y as pagePath,_ as postPath,Ae as productListingPaths,Re as readListingFilter,$ as slugifyAnchor,A as wheelPath,j as withListingFilter};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "efficient-storefront-blocks",
|
|
3
|
-
"version": "0.32.
|
|
3
|
+
"version": "0.32.2",
|
|
4
4
|
"description": "The EFFICIENT storefront's website editor — the website builder assembled with the storefront's own sections — for an app that edits a storefront website inside its own page. Built from the efficient-storefront-blocks repository.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"author": "Efficient Pty Ltd",
|