1(function(){"use strict";function _getConfig(){const config=window.RSStorefrontApiConfig;if(!config||!config.token)throw new Error("[RSGraphQL] RSStorefrontApiConfig.token not available");return config}async function executeQuery(query,variables){if(!query||typeof query!="string")throw new Error("[RSGraphQL] query must be a non-empty string");const config=_getConfig(),apiVersion=config.apiVersion||"2025-10",url=`${window.location.origin}/api/${apiVersion}/graphql.json`,response=await fetch(url,{method:"POST",headers:{"Content-Type":"application/json","X-Shopify-Storefront-Access-Token":config.token},body:JSON.stringify({query,variables:variables||{}})});if(!response.ok)throw new Error("[RSGraphQL] HTTP "+response.status);const result=await response.json();if(result.errors)throw new Error("[RSGraphQL] "+JSON.stringify(result.errors));return result.data}var _CUSTOMIZER_LETTERS_QUERY=` 2 query GetCustomizerLetters($type: String!, $first: Int!, $after: String) { 3 metaobjects(type: $type, first: $first, after: $after) { 4 pageInfo { hasNextPage endCursor } 5 edges { 6 node { 7 handle 8 fields { 9 key 10 value 11 references(first: 250) { 12 edges { 13 node { 14 ... on Metaobject { 15 fields { 16 key 17 value 18 reference { 19 ... on MediaImage { 20 image { url width height } 21 } 22 } 23 } 24 } 25 } 26 } 27 } 28 } 29 } 30 } 31 } 32 } 33 `;async function fetchCustomizerLetters(metaobjectType,options){for(var opts=options||{},filterBy=opts.filterBy||null,allLetters=[],hasNextPage=!0,cursor=null;hasNextPage;){var data=await executeQuery(_CUSTOMIZER_LETTERS_QUERY,{type:metaobjectType,first:250,after:cursor});if(!data||!data.metaobjects)break;var edges=data.metaobjects.edges,pageInfo=data.metaobjects.pageInfo;
33edges.forEach(function(edge){var node=edge.node,fields=node.fields||[],lettersField=fields.find(function(f){return f.key==="letters"});!lettersField||!lettersField.references||!lettersField.references.edges||lettersField.references.edges.forEach(function(letterEdge){var letter=letterEdge.node;if(!(!letter||!letter.fields)){var entry={key:null,name:null,image:null,left_recess:0,right_recess:0};letter.fields.forEach(function(field){field.key==="key"?entry.key=field.value:field.key==="character"?entry.key||(entry.key=field.value):field.key==="name"?entry.name=field.value:field.key==="image"&&field.reference&&field.reference.image?entry.image={url:field.reference.image.url,width:field.reference.image.width||null,height:field.reference.image.height||null}:field.key==="left_recess"?entry.left_recess=parseFloat(field.value)||0:field.key==="right_recess"&&(entry.right_recess=parseFloat(field.value)||0)}),!(!entry.key||!entry.image)&&(filterBy&&(!entry.name||entry.name.indexOf(filterBy)===-1)||allLetters.push(entry))}})}),hasNextPage=pageInfo.hasNextPage,cursor=pageInfo.endCursor}return allLetters}window.RSGraphQL={executeQuery,fetchCustomizerLetters}})(); 34//# sourceMappingURL=/cdn/shop/t/640/assets/rs-graphql-utils.js.map?v=6299326710857208341790171031
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.