CINXE.COM

Personalized Name Badges GigaParts.com

<!doctype html> <html lang="en"> <head > <meta charset="utf-8"/> <meta name="title" content="Personalized Name Badges GigaParts.com"/> <meta name="description" content="Personalized Name Badges"/> <meta name="keywords" content="Personalized Name Badges"/> <meta name="robots" content="INDEX,FOLLOW"/> <meta name="viewport" content="width=device-width, initial-scale=1"/> <title>Personalized Name Badges GigaParts.com</title> <link rel="stylesheet" type="text/css" media="all" href="https://www.gigaparts.com/static/version1732095243/frontend/GigaParts/hyva/en_US/css/styles.css" /> <link rel="stylesheet" type="text/css" defer="defer" href="https://www.gigaparts.com/static/version1732095243/_cache/merged/9478b18f351c9d367937a22b595d8e33.css" /> <script type="text/javascript" defer="defer" src="https://gigaparts.needle.com/needle_service.js?ver=1"></script> <link rel="canonical" href="https://www.gigaparts.com/personalized-name-badges" /> <link rel="icon" type="image/x-icon" href="https://www.gigaparts.com/media/favicon/stores/1/GigaParts_Connectors.png" /> <link rel="shortcut icon" type="image/x-icon" href="https://www.gigaparts.com/media/favicon/stores/1/GigaParts_Connectors.png" /> <meta name="msvalidate.01" content="0E2D4F50BEC8C00A95702566678388D8" /> <meta name="google-site-verification" content="liFR6_BKsCYSx_x3hMuOIp9AaBCTGNmyu-WGQHPy4l0" /> <meta name="p:domain_verify" content="FAjh6wJuJoBgIUpIH115dzMlp0G47yBc"/> <style> .page-layout-cms-nextopia-search-2columns-left .page-main > .columns { min-height: 1200px; } </style> <script> window.getWpGA4Cookie = function(name) { match = document.cookie.match(new RegExp(name + '=([^;]+)')); if (match) return decodeURIComponent(match[1].replace(/\+/g, ' ')) ; }; window.dataLayer = window.dataLayer || []; var dl4Objects = [{"pageName":"Personalized Name Badges GigaParts.com","pageType":"other"}]; for (var i in dl4Objects) { window.dataLayer.push({ecommerce: null}); window.dataLayer.push(dl4Objects[i]); } var wpGA4Cookies = ['wp_ga4_user_id','wp_ga4_customerGroup']; wpGA4Cookies.map(function(cookieName) { var cookieValue = window.getWpGA4Cookie(cookieName); if (cookieValue) { var dl4Object = {}; dl4Object[cookieName.replace('wp_ga4_', '')] = cookieValue; window.dataLayer.push(dl4Object); } }); </script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-WLP74S');</script> <!-- End Google Tag Manager --> <script src="https://cdn.nextopia.net/v1.5.1/d93c22be380e0e34394f3f92b8c05542.js" src_type="url" defer="defer" /> <script> //Nxt version : 2.2.1 //Unfortunate our 1.5.1 js depends on this method, due to it's global nature, it cannot be inside require. function getCookie(cname) { const name = cname + "="; const decodedCookie = decodeURIComponent(document.cookie); const ca = decodedCookie.split(';'); for (let c of ca) { c = c.trim(); if (c.startsWith(name)) { return c.substring(name.length); } } return ""; } //Nextopia initialization before code load. This has to be global due to the nature of our code. var nxtOptions = typeof nxtOptions === 'object' ? nxtOptions : {}; nxtOptions.customOptions = nxtOptions.customOptions || {}; nxtOptions.customOptions.formKey = '58QiIQus80dB8yl3'; nxtOptions.customOptions.groupId = 'NOT&#x20;LOGGED&#x20;IN'; </script> <!-- start聽Omniconvert.com聽code --> <link rel="dns-prefetch" href="//app.omniconvert.com" /> <script type="text/javascript">window._mktz=window._mktz||[];</script> <script src="//cdn.omniconvert.com/js/x573ccb.js"></script> <!-- end聽Omniconvert.com聽code --><script> var BASE_URL = 'https://www.gigaparts.com/'; var THEME_PATH = 'https://www.gigaparts.com/static/version1732095243/frontend/GigaParts/hyva/en_US'; var COOKIE_CONFIG = { "expires": null, "path": "\u002F", "domain": ".www.gigaparts.com", "secure": true, "lifetime": "604800", "cookie_restriction_enabled": false }; var CURRENT_STORE_CODE = 'default'; var CURRENT_WEBSITE_ID = '1'; window.hyva = window.hyva || {} window.cookie_consent_groups = window.cookie_consent_groups || {} window.cookie_consent_groups['necessary'] = true; window.cookie_consent_config = window.cookie_consent_config || {}; window.cookie_consent_config['necessary'] = [].concat( window.cookie_consent_config['necessary'] || [], [ 'user_allowed_save_cookie', 'form_key', 'mage-messages', 'private_content_version', 'mage-cache-sessid', 'last_visited_store', 'section_data_ids' ] ); </script> <script> 'use strict'; (function( hyva, undefined ) { function lifetimeToExpires(options, defaults) { const lifetime = options.lifetime || defaults.lifetime; if (lifetime) { const date = new Date; date.setTime(date.getTime() + lifetime * 1000); return date; } return null; } function generateRandomString() { const allowedCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', length = 16; let formKey = '', charactersLength = allowedCharacters.length; for (let i = 0; i < length; i++) { formKey += allowedCharacters[Math.round(Math.random() * (charactersLength - 1))] } return formKey; } const sessionCookieMarker = {noLifetime: true} const cookieTempStorage = {}; const internalCookie = { get(name) { const v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)'); return v ? v[2] : null; }, set(name, value, days, skipSetDomain) { let expires, path, domain, secure, samesite; const defaultCookieConfig = { expires: null, path: '/', domain: null, secure: false, lifetime: null, samesite: 'lax' }; const cookieConfig = window.COOKIE_CONFIG || {}; expires = days && days !== sessionCookieMarker ? lifetimeToExpires({lifetime: 24 * 60 * 60 * days, expires: null}, defaultCookieConfig) : lifetimeToExpires(window.COOKIE_CONFIG, defaultCookieConfig) || defaultCookieConfig.expires; path = cookieConfig.path || defaultCookieConfig.path; domain = !skipSetDomain && (cookieConfig.domain || defaultCookieConfig.domain); secure = cookieConfig.secure || defaultCookieConfig.secure; samesite = cookieConfig.samesite || defaultCookieConfig.samesite; document.cookie = name + "=" + encodeURIComponent(value) + (expires && days !== sessionCookieMarker ? '; expires=' + expires.toGMTString() : '') + (path ? '; path=' + path : '') + (domain ? '; domain=' + domain : '') + (secure ? '; secure' : '') + (samesite ? '; samesite=' + samesite : 'lax'); }, isWebsiteAllowedToSaveCookie() { const allowedCookies = this.get('user_allowed_save_cookie'); if (allowedCookies) { const allowedWebsites = JSON.parse(unescape(allowedCookies)); return allowedWebsites[CURRENT_WEBSITE_ID] === 1; } return false; }, getGroupByCookieName(name) { const cookieConsentConfig = window.cookie_consent_config || {}; let group = null; for (let prop in cookieConsentConfig) { if (!cookieConsentConfig.hasOwnProperty(prop)) continue; if (cookieConsentConfig[prop].includes(name)) { group = prop; break; } } return group; }, isCookieAllowed(name) { const cookieGroup = this.getGroupByCookieName(name); return cookieGroup ? window.cookie_consent_groups[cookieGroup] : this.isWebsiteAllowedToSaveCookie(); }, saveTempStorageCookies() { for (const [name, data] of Object.entries(cookieTempStorage)) { if (this.isCookieAllowed(name)) { this.set(name, data['value'], data['days'], data['skipSetDomain']); delete cookieTempStorage[name]; } } } }; hyva.getCookie = (name) => { const cookieConfig = window.COOKIE_CONFIG || {}; if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { return cookieTempStorage[name] ? cookieTempStorage[name]['value'] : null; } return internalCookie.get(name); } hyva.setCookie = (name, value, days, skipSetDomain) => { const cookieConfig = window.COOKIE_CONFIG || {}; if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) { cookieTempStorage[name] = {value, days, skipSetDomain}; return; } return internalCookie.set(name, value, days, skipSetDomain); } hyva.setSessionCookie = (name, value, skipSetDomain) => { return hyva.setCookie(name, value, sessionCookieMarker, skipSetDomain) } hyva.getBrowserStorage = () => { const browserStorage = window.localStorage || window.sessionStorage; if (!browserStorage) { console.warn('Browser Storage is unavailable'); return false; } try { browserStorage.setItem('storage_test', '1'); browserStorage.removeItem('storage_test'); } catch (error) { console.warn('Browser Storage is not accessible', error); return false; } return browserStorage; } hyva.postForm = (postParams) => { const form = document.createElement("form"); let data = postParams.data; if (! postParams.skipUenc && ! data.uenc) { data.uenc = btoa(window.location.href); } form.method = "POST"; form.action = postParams.action; Object.keys(postParams.data).map(key => { const field = document.createElement("input"); field.type = 'hidden' field.value = postParams.data[key]; field.name = key; form.appendChild(field); }); const form_key = document.createElement("input"); form_key.type = 'hidden'; form_key.value = hyva.getFormKey(); form_key.name="form_key"; form.appendChild(form_key); document.body.appendChild(form); form.submit(); } hyva.getFormKey = function () { let formKey = hyva.getCookie('form_key'); if (!formKey) { formKey = generateRandomString(); hyva.setCookie('form_key', formKey); } return formKey; } hyva.formatPrice = (value, showSign, options = {}) => { const formatter = new Intl.NumberFormat( 'en\u002DUS', Object.assign({ style: 'currency', currency: 'USD', signDisplay: showSign ? 'always' : 'auto' }, options) ); return (typeof Intl.NumberFormat.prototype.formatToParts === 'function') ? formatter.formatToParts(value).map(({type, value}) => { switch (type) { case 'currency': return '\u0024' || value; case 'minusSign': return '- '; case 'plusSign': return '+ '; default : return value; } }).reduce((string, part) => string + part) : formatter.format(value); } const formatStr = function (str, nStart) { const args = Array.from(arguments).slice(2); return str.replace(/(%+)([0-9]+)/g, (m, p, n) => { const idx = parseInt(n) - nStart; if (args[idx] === null || args[idx] === void 0) { return m; } return p.length % 2 ? p.slice(0, -1).replace('%%', '%') + args[idx] : p.replace('%%', '%') + n; }) } hyva.str = function (string) { const args = Array.from(arguments); args.splice(1, 0, 1); return formatStr.apply(undefined, args); } hyva.strf = function () { const args = Array.from(arguments); args.splice(1, 0, 0); return formatStr.apply(undefined, args); } /** * Take a html string as `content` parameter and * extract an element from the DOM to replace in * the current page under the same selector, * defined by `targetSelector` */ hyva.replaceDomElement = (targetSelector, content) => { // Parse the content and extract the DOM node using the `targetSelector` const parser = new DOMParser(); const doc = parser.parseFromString(content, 'text/html'); const contentNode = doc.querySelector(targetSelector); // Bail if content can't be found if (!contentNode) { return; } hyva.activateScripts(contentNode) // Replace the old DOM node with the new content document.querySelector(targetSelector).replaceWith(contentNode); // Reload customerSectionData and display cookie-messages if present window.dispatchEvent(new CustomEvent("reload-customer-section-data")); hyva.initMessages(); } hyva.activateScripts = (contentNode) => { // Extract all the script tags from the content. // Script tags won't execute when inserted into a dom-element directly, // therefore we need to inject them to the head of the document. const tmpScripts = contentNode.getElementsByTagName('script'); if (tmpScripts.length > 0) { // Push all script tags into an array // (to prevent dom manipulation while iterating over dom nodes) const scripts = []; for (let i = 0; i < tmpScripts.length; i++) { scripts.push(tmpScripts[i]); } // Iterate over all script tags and duplicate+inject each into the head for (let i = 0; i < scripts.length; i++) { let script = document.createElement('script'); script.innerHTML = scripts[i].innerHTML; document.head.appendChild(script); // Remove the original (non-executing) node from the content scripts[i].parentNode.removeChild(scripts[i]); } } return contentNode; } const replace = {['+']: '-', ['/']: '_', ['=']: ','}; hyva.getUenc = () => btoa(window.location.href).replace(/[+/=]/g, match => replace[match]); let currentTrap; const focusableElements = (rootElement) => { const selector = 'button, [href], input, select, textarea, details, [tabindex]:not([tabindex="-1"]'; return Array.from(rootElement.querySelectorAll(selector)) .filter(el => { return el.style.display !== 'none' && !el.disabled && el.tabIndex !== -1 && (el.offsetWidth || el.offsetHeight || el.getClientRects().length) }) } const focusTrap = (e) => { const isTabPressed = e.key === 'Tab' || e.keyCode === 9; if (!isTabPressed) return; const focusable = focusableElements(currentTrap) const firstFocusableElement = focusable[0] const lastFocusableElement = focusable[focusable.length - 1] e.shiftKey ? document.activeElement === firstFocusableElement && (lastFocusableElement.focus(), e.preventDefault()) : document.activeElement === lastFocusableElement && (firstFocusableElement.focus(), e.preventDefault()) }; hyva.releaseFocus = (rootElement) => { if (currentTrap && (!rootElement || rootElement === currentTrap)) { currentTrap.removeEventListener('keydown', focusTrap) currentTrap = null } } hyva.trapFocus = (rootElement) => { if (!rootElement) return; hyva.releaseFocus() currentTrap = rootElement rootElement.addEventListener('keydown', focusTrap) const firstElement = focusableElements(rootElement)[0] firstElement && firstElement.focus() } hyva.alpineInitialized = (fn) => window.addEventListener('alpine:initialized', fn, {once: true}) window.addEventListener('user-allowed-save-cookie', () => internalCookie.saveTempStorageCookies()) }( window.hyva = window.hyva || {} )); </script> <script> if (!window.IntersectionObserver) { window.IntersectionObserver = function (callback) { this.observe = el => el && callback(this.takeRecords()); this.takeRecords = () => [{isIntersecting: true, intersectionRatio: 1}]; this.disconnect = () => {}; this.unobserve = () => {}; } } </script> </head> <body id="html-body" class="cms-personalized-name-badges cms-page-view page-layout-1column"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WLP74S" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --><input name="form_key" type="hidden" value="58QiIQus80dB8yl3" /> <noscript> <section class="message global noscript border-b-2 border-blue-500 bg-blue-50 shadow-none m-0 px-0 rounded-none font-normal"> <div class="container text-center"> <p> <strong>JavaScript seems to be disabled in your browser.</strong> <span> For the best experience on our site, be sure to turn on Javascript in your browser. </span> </p> </div> </section> </noscript> <script> document.body.addEventListener('touchstart', () => {}, {passive: true}) </script> <script> // https://github.com/Fischer-L/autoComplt !function(t,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():t.autoComplt=t.returnExports=e()}(this,function(){"use strict";Array.prototype.indexOf||(Array.prototype.indexOf=function(t,e){if(void 0===this||null===this)throw new TypeError('"this" is null or not defined');var o=this.length>>>0;for(e=+e||0,Math.abs(e)===1/0&&(e=0),0>e&&(e+=o,0>e&&(e=0));o>e;e++)if(this[e]===t)return e;return-1});var t=function(){var t=-1;if("Microsoft Internet Explorer"==navigator.appName){var e=navigator.userAgent,o=new RegExp("MSIE ([0-9]{1,}[.0-9]{0,})");null!=o.exec(e)&&(t=+RegExp.$1)}return-1===t?NaN:t},e=function(){var e=window.navigator.userAgent.toLowerCase();return e.search(/mobile|windows phone/)>=0?i.modeMobile:t()<=9?i.modePC:o().windowWidth>i.modeMobileW?i.modePC:i.modeMobile},o=function(){return window.innerWidth?{windowWidth:window.innerWidth,windowHeight:window.innerHeight}:document.documentElement.offsetHeight?{windowWidth:document.documentElement.offsetWidth,windowHeight:document.documentElement.offsetHeight}:document.body.offsetHeight?{windowWidth:document.body.offsetWidth,windowHeight:document.body.offsetHeight}:document.documentElement.clientHeight?{windowWidth:document.documentElement.clientWidth,windowHeight:document.documentElement.clientHeight}:document.body.clientHeight?{windowWidth:document.body.clientWidth,windowHeight:document.body.clientHeight}:{windowWidth:-1,windowHeight:-1}},i=function(t){return i=t,t.modePC="modePC",t.modeMobile="modeMobile",t.modeMobileW=768,t.autoCompltListClass="autoComplt-list",t.autoCompltHintClass="autoComplt-hint",t.autoCompltHintSelectedClass="autoComplt-hint-selected",t.maxHintNum=e()===i.modePC?10:5,t.autoCompltDelay=250,t.hiddenArg_close_list_n_make_final_selection="hiddenArg_close_list_n_make_final_selection",t.listStatus={attr:"data-listStatus",open:"open"},t.keyCode={up:38,down:40,esc:27,enter:13},t.defaultStyles={autoCompltList:{maxHeight:"none",border:"1px solid #aaa",padding:"0",margin:"0",zIndex:99,overflowX:"hidden",overflowY:"auto",display:"none",position:"absolute",backgroundColor:"#fff"},autoCompltHint:{height:"1.5em",padding:e()===i.modePC?"2px 6px 2px 10px":"6px 6px 6px 10px",margin:"6px 0",overflow:"hidden",listStyleType:"none",color:"#000",backgroundColor:"#fff",cursor:"default",fontSize:"1em"},autoCompltHintSelected:{color:"#fff",backgroundColor:"#3399ff"}},t.adjStyleAttrs={autoCompltList:["border","maxHeight","backgroundColor"],autoCompltHint:["height","padding","margin","color","backgroundColor","fontSize"],autoCompltHintSelected:["color","backgroundColor"]},t.listenersSupported=["select"],i}({}),n=function(t){return t||(t=window.event),t.target||(t.target=t.srcElement),t.stopBubble=function(){this.cancelBubble=!0,this.stopPropoagation&&this.stopPropoagation()},t.stopDefault=function(){return this.preventDefault&&this.preventDefault(),this.returnValue=!1,!1},t},l=function(t,e,o){t.addEventListener?t.addEventListener(e,o):t.attachEvent&&t.attachEvent("on"+e,o)},s=function(t,e,o){t.removeEventListener?t.removeEventListener(e,o):t.detachEvent&&t.detachEvent("on"+e,o)},u=function(t,e){var o=null;if(window.getComputedStyle)o=window.getComputedStyle(t)[e]||null;else if(t.currentStyle){o=t.currentStyle&&t.currentStyle[e];var i,n,l=t.style;null==o&&l&&l[e]&&(o=l[e]),i=l.left,n=t.runtimeStyle&&t.runtimeStyle.left,n&&(t.runtimeStyle.left=t.currentStyle.left),l.left="fontSize"===e?"1em":o,o=l.pixelLeft+"px",l.left=i,n&&(t.runtimeStyle.left=n)}return o},a={buildElem:function(t){var e=document.createElement("DIV");return e.innerHTML=t,e.firstChild.cloneNode(!0)},buildHint:function(t,e){return"string"==typeof t&&t?(t=this.buildElem('<li class="'+i.autoCompltHintClass+'">'+t+"</li>"),t.style.height=t.style.lineHeight=e.autoCompltHint.height,t.style.padding=e.autoCompltHint.padding,t.style.margin=e.autoCompltHint.margin,t.style.overflow=e.autoCompltHint.overflow,t.style.listStyleType=e.autoCompltHint.listStyleType,t.style.color=e.autoCompltHint.color,t.style.backgroundColor=e.autoCompltHint.backgroundColor,t.style.cursor=e.autoCompltHint.cursor,t.style.fontSize=e.autoCompltHint.fontSize,t):null},buildList:function(t){var e=this.buildElem('<ul class="'+i.autoCompltListClass+'"></ul>');return e.style.maxHeight=t.autoCompltList.maxHeight,e.style.border=t.autoCompltList.border,e.style.padding=t.autoCompltList.padding,e.style.margin=t.autoCompltList.margin,e.style.zIndex=t.autoCompltList.zIndex,e.style.overflowX=t.autoCompltList.overflowX,e.style.overflowY=t.autoCompltList.overflowY,e.style.display=t.autoCompltList.display,e.style.position=t.autoCompltList.position,e.style.backgroundColor=t.autoCompltList.backgroundColor,e}},r=function(t){this.uiElem=null,this.assocInput=t,this.mouseOnList=!1,this.onMouseSelectionListener=null,this.maxHintNum=i.maxHintNum,this.styles=JSON.parse(JSON.stringify(i.defaultStyles))};r.prototype.genList=function(){if(!this.uiElem){var t=this;this.uiElem=a.buildList(this.styles),l(this.uiElem,"mouseover",function(e){e=n(e),t.isHint(e.target)&&(t.pick(e.target),t.autoScroll())}),l(this.uiElem,"mouseout",function(e){t.unpick()}),l(this.uiElem,"mousedown",function(e){t.mouseOnList=!0,setTimeout(function(){t.assocInput.focus()},50)}),l(this.uiElem,"mouseup",function(e){e=n(e),t.isHint(e.target)&&(t.pick(e.target),"function"==typeof t.onMouseSelectionListener&&t.onMouseSelectionListener())}),document.body.appendChild(this.uiElem)}},r.prototype.isHint=function(t){if(t&&"object"==typeof t&&1===t.nodeType){var e=" "+t.className+" ";return e.indexOf(" "+i.autoCompltHintClass+" ")>=0}return!1},r.prototype.putHints=function(t){var e=0;if(t instanceof Array){var o,i,n=[];for(i=Math.min(t.length,this.maxHintNum),o=0;i>o;o++)n.push(a.buildHint(t[o],this.styles)),n[n.length-1]||n.pop();if(n.length>0){var l=document.createDocumentFragment();for(o=0,e=n.length;e>o;o++)l.appendChild(n[o]);this.clearHints(),this.genList(),this.uiElem.appendChild(l)}}return e},r.prototype.clearHints=function(){this.uiElem&&(this.uiElem.innerHTML="")},r.prototype.isOpen=function(){return this.uiElem?this.uiElem.getAttribute(i.listStatus.attr)==i.listStatus.open:!1},r.prototype.open=function(){var t;if(this.uiElem&&(t=this.uiElem.querySelectorAll("."+i.autoCompltHintClass))&&t.length){var e,o;for(o=this.assocInput.getBoundingClientRect(),this.uiElem.style.top=(document.documentElement&&document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop)+o.bottom+"px",this.uiElem.style.left=o.left+"px",o=o.right-o.left-parseFloat(u(this.uiElem,"borderLeftWidth"))-parseFloat(u(this.uiElem,"borderRightWidth")),this.uiElem.style.width=o+"px",e=0,o=0;e<t.length;e++)o+=parseFloat(u(t[e],"height"))+parseFloat(u(t[e],"paddingTop"))+parseFloat(u(t[e],"paddingBottom")),t[e+1]&&(o+=Math.max(parseFloat(u(t[e],"marginBottom")),parseFloat(u(t[e+1],"marginTop"))));o+=parseFloat(u(t[0],"marginTop"))+parseFloat(u(t[t.length-1],"marginBottom")),this.uiElem.style.height=o+1+"px",this.uiElem.setAttribute(i.listStatus.attr,i.listStatus.open),this.uiElem.style.display="block"}},r.prototype.close=function(){this.uiElem&&(this.mouseOnList=!1,this.uiElem.parentNode.removeChild(this.uiElem),this.uiElem=null)},r.prototype.autoScroll=function(){var t=this.getPicked();if(t){var e,o=0,i=0,n=t.clientHeight,l=parseFloat(u(t,"marginTop")),s=parseFloat(u(t,"marginBottom"));for(e=t.previousSibling,i=n+(e?Math.max(l,s):l);e;)o+=n,e=e.previousSibling,o+=e?Math.max(l,s):l;(this.uiElem.clientHeight+this.uiElem.scrollTop-o<i||o-this.uiElem.scrollTop<i)&&(this.uiElem.scrollTop=o)}},r.prototype.pick=function(t){if(this.uiElem){var e=null;if(this.isHint(t))e=t;else if("number"==typeof t&&(t>=0||-1===t)){var o=this.uiElem.querySelectorAll("."+i.autoCompltHintClass);o.length>0&&(e=+t,e=-1===e||e>o.length-1?o.length-1:e,e=o[e])}null!==e&&(this.unpick(),e.className+=" "+i.autoCompltHintSelectedClass,e.style.color=this.styles.autoCompltHintSelected.color,e.style.backgroundColor=this.styles.autoCompltHintSelected.backgroundColor)}},r.prototype.unpick=function(){if(this.uiElem){var t=this.getPicked();t&&(t.className=i.autoCompltHintClass,t.style.color=this.styles.autoCompltHint.color,t.style.backgroundColor=this.styles.autoCompltHint.backgroundColor)}},r.prototype.getPicked=function(){return this.uiElem?this.uiElem.querySelector("."+i.autoCompltHintSelectedClass)||null:null};var c={enable:function(t,o){if(t&&"object"==typeof t&&"string"==typeof t.tagName&&"input"==t.tagName.toLowerCase()&&"text"==t.type&&1===t.nodeType&&!t.autoComplt){t.autoComplt={};var u=i.autoCompltDelay,a=!0,c="",p=null,m=null,d=new r(t),f=function(){if(t.value.length>0&&a&&"function"==typeof p&&c!==t.value){var e={that:t,compltTarget:c=t.value,compltTargetMatchCurrentTarget:function(){return e.compltTarget===c},call:function(){e.compltTargetMatchCurrentTarget()&&p.call(e.that,e.compltTarget,e.openHint)},openHint:function(t){e.compltTargetMatchCurrentTarget()&&(d.putHints(t)?d.open():e.that.autoComplt.close())}};setTimeout(e.call,u)}},h=function(){if(a){var e=d.getPicked();e?t.value=e.innerHTML:t.value=c}},y=function(e){d.mouseOnList?(t.focus(),d.mouseOnList=!1):d.isOpen()&&t.autoComplt.close(i.hiddenArg_close_list_n_make_final_selection)},g=function(o){if(e()!==i.modeMobile&&(o=n(o),a))if("keydown"!=o.type||!d.isOpen()||o.keyCode!==i.keyCode.up&&o.keyCode!==i.keyCode.down){if("keyup"==o.type){var l=!1;switch(o.keyCode){case i.keyCode.up:case i.keyCode.down:d.isOpen()||(l=!0);break;case i.keyCode.esc:d.isOpen()&&(t.value=c,t.autoComplt.close(i.hiddenArg_close_list_n_make_final_selection));break;case i.keyCode.enter:d.isOpen()&&(h(),t.autoComplt.close(i.hiddenArg_close_list_n_make_final_selection));break;default:l=!0}l&&(t.value.length>0?f():t.autoComplt.close())}}else{var s=d.getPicked();o.keyCode===i.keyCode.up?s?s.previousSibling?d.pick(s.previousSibling):d.unpick():d.pick(-1):o.keyCode===i.keyCode.down&&(s?s.nextSibling?d.pick(s.nextSibling):d.unpick():d.pick(0)),d.autoScroll(),h()}},C=function(o){e()!==i.modePC&&(t.value.length>0?f():t.autoComplt.close())},H=function(e){null!=m&&"function"==typeof m[e]&&m[e].call(t)};return t.autoComplt.setHintsFetcher=function(t){return null===t||"function"==typeof t?(p=t,!0):!1},t.autoComplt.setListener=function(t,e){return(null===e||"function"==typeof e)&&i.listenersSupported.indexOf(t)>=0?(null==m&&(m={}),m[t]=e,!0):!1},t.autoComplt.setStyles=function(t,e){var o,n,l=!1;switch(t){case i.autoCompltListClass:o=d.styles.autoCompltList,n=i.adjStyleAttrs.autoCompltList;break;case i.autoCompltHintClass:o=d.styles.autoCompltHint,n=i.adjStyleAttrs.autoCompltHint;break;case i.autoCompltHintSelectedClass:o=d.styles.autoCompltHintSelected,n=i.adjStyleAttrs.autoCompltHintSelected}if(e instanceof Object&&o&&n)for(var s=0;s<n.length;s++)("string"==typeof e[n[s]]||"number"==typeof e[n[s]])&&(l||(l={}),l[n[s]]=o[n[s]]=e[n[s]]);return l},t.autoComplt.config=function(t){var e=!1;if(t instanceof Object){var o;void 0!==t.delay&&(o=Math.floor(t.delay))>0&&(e||(e={}),u=e.delay=o),void 0!==t.maxHintNum&&(o=Math.floor(t.maxHintNum))>0&&(e||(e={}),d.maxHintNum=e.maxHintNum=o)}return e},t.autoComplt.close=function(){c="",d.close(),a&&""!==t.value&&arguments[0]===i.hiddenArg_close_list_n_make_final_selection&&H("select")},t.autoComplt.enable=function(){a=!0},t.autoComplt.disable=function(){a=!1,this.close()},t.autoComplt.destroy=function(){s(t,"blur",y),s(t,"keyup",g),s(t,"keydown",g),this.disable(),delete t.autoComplt},d.onMouseSelectionListener=function(){h(),t.autoComplt.close(i.hiddenArg_close_list_n_make_final_selection)},l(t,"blur",y),l(t,"keyup",g),l(t,"keydown",g),l(t,"input",C),o instanceof Object&&(t.autoComplt.config(o),t.autoComplt.setHintsFetcher(o.hintsFetcher)),t}return null}};return c}); </script> <div class="page-wrapper"><header class="page-header"><script type="application/javascript" async src="https://static.klaviyo.com/onsite/js/klaviyo.js?company_id=TnvbUP"></script> <div x-data="initKlaviyoCustomerTracking()" @private-content-loaded.window="sendCustomerDataToKlaviyo(event.detail.data)"></div> <script> function initKlaviyoCustomerTracking() { return { sendCustomerDataToKlaviyo(data) { let _learnq = window._learnq || []; let customer = data && data.customer; if(customer && customer.email) { _learnq.push(['identify', { $email: customer.email, $first_name: customer.firstname ? customer.firstname : '', $last_name: customer.lastname ? customer.lastname : '' }]); } } } } </script> <a class="action skip sr-only focus:not-sr-only focus:absolute focus:z-40 focus:bg-white contentarea" href="#contentarea"> <span> Skip to Content </span> </a> <script> function initHeader () { return { searchOpen: false, cart: {}, isCartOpen: false, isMobile: true, init() { const matchMedia = window.matchMedia("(max-width: 1023px)"); this.onChangeMedia(matchMedia); if(typeof matchMedia.onchange !== 'object') { //prevent an old iOS Safari bug where addEventListener does not accept an event type parameter matchMedia.addListener((event) => this.onChangeMedia(event)); } else { matchMedia.addEventListener( "change", (event) => this.onChangeMedia(event) ) } }, onChangeMedia(mediaQuery) { if(this.isMobile !== mediaQuery.matches){ this.isMobile = mediaQuery.matches; if(this.isMobile){ this.$refs.searchContainerMobile.appendChild(this.$refs.searchForm); }else{ this.$refs.searchContainerDesktop.appendChild(this.$refs.searchForm); } } }, getData(data) { if (data.cart) { this.cart = data.cart } }, isCartEmpty() { return !this.cart.summary_count }, toggleCart(event) { if (event.detail && event.detail.isOpen !== undefined) { this.isCartOpen = event.detail.isOpen if (!this.isCartOpen && this.$refs && this.$refs.cartButton) { this.$refs.cartButton.focus() } } else { this.isCartOpen = true } } } } function initCompareHeader() { return { compareProducts: null, itemCount: 0, receiveCompareData(data) { if (data['compare-products']) { this.compareProducts = data['compare-products']; this.itemCount = this.compareProducts.count; } } } } </script> <div x-data="initHeader()" @keydown.window.escape="searchOpen = false;" @private-content-loaded.window="getData(event.detail.data)" > <div class="bg-white text-gray-800 border-b border-gray-300 h-[46px] hidden lg:block"> <div class="max-w-full lg:max-w-5xl xl:max-w-7xl flex flex-wrap items-center justify-center w-full px-4 py-3 mx-auto mt-0 md:justify-end"> <!--Customer Info --> <a class="text-[13px] border-r border-gray-300 pl-0 px-4 hover:underline md:pl-4" onclick="hyva.setCookie && hyva.setCookie( 'login_redirect', window.location.href, 1 )" href="https://www.gigaparts.com/customer/account/index/"> Sign In </a> <a href="tel:+12563841008" class="text-[13px] border-r border-gray-300 px-4 hover:underline">&#43;1 256-384-1008</a> <a href="http://www.gigaparts.net/sweepstakes/" class="text-[13px] border-r border-gray-300 px-4 hidden md:block hover:underline">Sweepstakes</a> <a class="text-[13px] pl-4 hover:underline" href="https://www.gigaparts.com/customer/account/create/" > Create an Account </a> </div> </div> <div class="bg-white relative py-2 lg:py-0"> <div class="max-w-full lg:max-w-5xl xl:max-w-7xl w-full mx-auto px-4 flex lg:justify-between items-center lg:h-[82px]"> <div class="burger-icon mr-2 lg:hidden"> <div x-data="initMenuMobile_673fad71e0603()" class="relative z-20 navigation order-first w-12 lg:hidden" > <!-- mobile --> <div @load.window="setActiveMenu($root)" class="" :class="{'h-screen overflow-x-hidden overflow-y-auto fixed top-0 left-0 w-full bg-container-lighter' : open}" @toggle-mobile-menu.window="open = !open" @keydown.window.escape="open=false" > <div class="flex items-baseline justify-between menu-icon"> <div class="flex justify-between w-full items-center" :class="{'bg-primary' : open}"> <div :class="{'hidden': !open, 'block': open}" class="hidden text-uppercase text-white pl-6 text-[14px]"> SHOP BY DEPARTMENT </div> <a @click="$dispatch('toggle-mobile-menu')" class="flex items-center justify-center cursor-pointer" :class="{ 'py-4 px-6': open }"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="hidden text-white" width="24" height="24" :class="{ 'hidden' : !open, 'block': open }" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> <title>x</title></svg> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="p-3" width="48" height="48" :class="{ 'hidden' : open, 'block': !open }" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M4 6h16M4 12h16M4 18h16"/> <title>menu</title></svg> </a> </div> </div> <nav class="hidden w-full duration-150 ease-in-out transform border-t transition-display border-container" :class="{ 'hidden' : !open }" > <div class="level-0"> <span class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : mobilePanelActiveId, 'translate-x-0' : !mobilePanelActiveId }" > <a class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container level-0 text-[14px]" href="https://www.gigaparts.com/radio-gear" title="RADIO&#x20;GEAR"> RADIO GEAR </a> <a class="absolute right-0 flex justify-end items-center w-full h-full pr-6 cursor-pointer" @click="mobilePanelActiveId = mobilePanelActiveId === 'cms-hierarchy-node-114' ? 0 : 'cms-hierarchy-node-114'" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> <title>chevron-right</title></svg> </a> </span> <div class="absolute top-0 right-0 z-[1000] w-full h-full transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" :class="{ 'translate-x-full' : mobilePanelActiveId !== 'cms-hierarchy-node-114', 'translate-x-0' : mobilePanelActiveId === 'cms-hierarchy-node-114', }" > <a class="flex items-center mx-3 px-3 py-4 border-b cursor-pointer border-container text-[14px]" @click="mobilePanelActiveId = 0" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/> <title>chevron-left</title></svg> <span class="ml-4"> RADIO GEAR </span> </a> <a href="https://www.gigaparts.com/amateur-radio-transceivers" title="AMATEUR&#x20;RADIO&#x20;TRANSCEIVERS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> AMATEUR RADIO TRANSCEIVERS </span> </a> <a href="https://www.gigaparts.com/antenna-systems#?Category1=Radios&amp;Category2=Antenna+Systems&amp;search_return=all&amp;res_per_page=60" title="ANTENNAS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> ANTENNAS </span> </a> <a href="https://www.gigaparts.com/wire-and-coax#?Category1=Radios&amp;Category2=Coax+and+Cables&amp;search_return=all&amp;res_per_page=60" title="COAX&#x20;&amp;&#x20;CABLES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> COAX &amp; CABLES </span> </a> <a href="https://www.gigaparts.com/gmrs-transceivers" title="GMRS&#x20;TRANSCEIVERS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> GMRS TRANSCEIVERS </span> </a> <a href="https://www.gigaparts.com/cb-radios#?Category1=Radios&amp;Category2=CB+Transceivers&amp;search_return=all&amp;res_per_page=60" title="CB&#x20;RADIOS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> CB RADIOS </span> </a> <a href="https://www.gigaparts.com/transceiver-accessories#?Category1=Radios&amp;Category2=Transceiver+Acc&amp;search_return=all&amp;res_per_page=60" title="TRANSCEIVER&#x20;ACCESSORIES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> TRANSCEIVER ACCESSORIES </span> </a> <a href="https://www.gigaparts.com/scanners-receivers-and-gps#?Category1=Radios&amp;Category2=Scanners%2C+Receivers+and+GPS&amp;search_return=all&amp;res_per_page=60" title="RECEIVERS&#x20;&amp;&#x20;SCANNERS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> RECEIVERS &amp; SCANNERS </span> </a> <a href="https://www.gigaparts.com/amplifiers#?Category1=Radios&amp;Category2=Amplifiers&amp;search_return=all&amp;res_per_page=60" title="AMPLIFIERS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> AMPLIFIERS </span> </a> <a href="https://www.gigaparts.com/radio-audio-devices#?Category1=Radios&amp;Category2=Radio+Audio+Devices&amp;search_return=all&amp;res_per_page=60" title="RADIO&#x20;AUDIO&#x20;DEVICES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> RADIO AUDIO DEVICES </span> </a> <a href="https://www.gigaparts.com/tower-and-shack-accessories#?Category1=Radios&amp;Category2=Tower+and+Shack+Acc&amp;search_return=all&amp;res_per_page=60" title="TOWER&#x20;&amp;&#x20;SHACK&#x20;ACCESSORIES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> TOWER &amp; SHACK ACCESSORIES </span> </a> <a href="https://www.gigaparts.com/power-supplies-accessories#?Category1=Radios&amp;Category2=Power+Solutions+and+Acc&amp;search_return=all&amp;res_per_page=60" title="POWER&#x20;SOLUTIONS&#x20;&amp;&#x20;ACCESSORIES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> POWER SOLUTIONS &amp; ACCESSORIES </span> </a> <a href="https://www.gigaparts.com/accessories#?Category1=Radios&amp;Category2=Accessories&amp;search_return=all&amp;res_per_page=60" title="ACCESSORIES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> ACCESSORIES </span> </a> <a href="https://www.gigaparts.com/software-and-pc-interface#?Category1=Radios&amp;Category2=Software+and+PC+Interface&amp;search_return=all&amp;res_per_page=60" title="SOFTWARE&#x20;&amp;&#x20;PC&#x20;INTERFACE" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> SOFTWARE &amp; PC INTERFACE </span> </a> <a href="/products/used-radio-gear" title="USED&#x20;EQUIPMENT" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> USED EQUIPMENT </span> </a> </div> </div> <div class="level-0"> <span class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : mobilePanelActiveId, 'translate-x-0' : !mobilePanelActiveId }" > <a class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container level-0 text-[14px]" href="/photography" title="PHOTOGRAPHY&#x20;GEAR"> PHOTOGRAPHY GEAR </a> <a class="absolute right-0 flex justify-end items-center w-full h-full pr-6 cursor-pointer" @click="mobilePanelActiveId = mobilePanelActiveId === 'cms-hierarchy-node-325' ? 0 : 'cms-hierarchy-node-325'" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> <title>chevron-right</title></svg> </a> </span> <div class="absolute top-0 right-0 z-[1000] w-full h-full transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" :class="{ 'translate-x-full' : mobilePanelActiveId !== 'cms-hierarchy-node-325', 'translate-x-0' : mobilePanelActiveId === 'cms-hierarchy-node-325', }" > <a class="flex items-center mx-3 px-3 py-4 border-b cursor-pointer border-container text-[14px]" @click="mobilePanelActiveId = 0" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/> <title>chevron-left</title></svg> <span class="ml-4"> PHOTOGRAPHY GEAR </span> </a> <a href="/photography/batteries-and-power-accessories" title="BATTERIES&#x20;&amp;&#x20;POWER&#x20;ACCESSORIES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> BATTERIES &amp; POWER ACCESSORIES </span> </a> <a href="/photography/cameras" title="CAMERAS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> CAMERAS </span> </a> <a href="/photography/camera-accessories" title="CAMERA&#x20;ACCESSORIES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> CAMERA ACCESSORIES </span> </a> <a href="/photography/lenses" title="LENSES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> LENSES </span> </a> <a href="/photography/lens-accessories" title="LENS&#x20;ACCESSORIES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> LENS ACCESSORIES </span> </a> <a href="/photography/photography-bags-and-cases" title="PHOTOGRAPHY&#x20;BAGS&#x20;&amp;&#x20;CASES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> PHOTOGRAPHY BAGS &amp; CASES </span> </a> <a href="/photography/studio-equipment-and-lighting" title="STUDIO&#x20;EQUIPMENT&#x20;&amp;&#x20;LIGHTING" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> STUDIO EQUIPMENT &amp; LIGHTING </span> </a> <a href="/photography/tripods-and-supports" title="TRIPODS&#x20;&amp;&#x20;SUPPORTS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> TRIPODS &amp; SUPPORTS </span> </a> </div> </div> <div class="level-0"> <span class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : mobilePanelActiveId, 'translate-x-0' : !mobilePanelActiveId }" > <a class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container level-0 text-[14px]" href="/astronomy" title="ASTRONOMY&#x20;GEAR"> ASTRONOMY GEAR </a> <a class="absolute right-0 flex justify-end items-center w-full h-full pr-6 cursor-pointer" @click="mobilePanelActiveId = mobilePanelActiveId === 'cms-hierarchy-node-334' ? 0 : 'cms-hierarchy-node-334'" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> <title>chevron-right</title></svg> </a> </span> <div class="absolute top-0 right-0 z-[1000] w-full h-full transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" :class="{ 'translate-x-full' : mobilePanelActiveId !== 'cms-hierarchy-node-334', 'translate-x-0' : mobilePanelActiveId === 'cms-hierarchy-node-334', }" > <a class="flex items-center mx-3 px-3 py-4 border-b cursor-pointer border-container text-[14px]" @click="mobilePanelActiveId = 0" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/> <title>chevron-left</title></svg> <span class="ml-4"> ASTRONOMY GEAR </span> </a> <a href="/astronomy/astrophotography-equipment" title="ASTROPHOTOGRAPHY&#x20;EQUIPMENT" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> ASTROPHOTOGRAPHY EQUIPMENT </span> </a> <a href="/astronomy/mounts-and-tripods" title="MOUNTS&#x20;AND&#x20;TRIPODS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> MOUNTS AND TRIPODS </span> </a> <a href="/astronomy/optical-accessories" title="OPTICAL&#x20;ACCESSORIES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> OPTICAL ACCESSORIES </span> </a> <a href="/astronomy/sport-optics" title="SPORT&#x20;OPTICS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> SPORT OPTICS </span> </a> <a href="/astronomy/star-charts-and-books" title="STAR&#x20;CHARTS&#x20;AND&#x20;BOOKS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> STAR CHARTS AND BOOKS </span> </a> <a href="/astronomy/telescope-accessories" title="TELESCOPE&#x20;ACCESSORIES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> TELESCOPE ACCESSORIES </span> </a> <a href="/astronomy/telescopes" title="TELESCOPES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> TELESCOPES </span> </a> </div> </div> <div class="level-0"> <span class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : mobilePanelActiveId, 'translate-x-0' : !mobilePanelActiveId }" > <a class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container level-0 text-[14px]" href="/personalized-items" title="PERSONALIZED&#x20;ITEMS"> PERSONALIZED ITEMS </a> <a class="absolute right-0 flex justify-end items-center w-full h-full pr-6 cursor-pointer" @click="mobilePanelActiveId = mobilePanelActiveId === 'cms-hierarchy-node-127' ? 0 : 'cms-hierarchy-node-127'" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> <title>chevron-right</title></svg> </a> </span> <div class="absolute top-0 right-0 z-[1000] w-full h-full transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" :class="{ 'translate-x-full' : mobilePanelActiveId !== 'cms-hierarchy-node-127', 'translate-x-0' : mobilePanelActiveId === 'cms-hierarchy-node-127', }" > <a class="flex items-center mx-3 px-3 py-4 border-b cursor-pointer border-container text-[14px]" @click="mobilePanelActiveId = 0" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/> <title>chevron-left</title></svg> <span class="ml-4"> PERSONALIZED ITEMS </span> </a> <a href="/nsearch/?lp=Personalized%20Gifts%20Under%20%2450" title="GIFTS&#x20;UNDER&#x20;&#x24;50" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> GIFTS UNDER $50 </span> </a> <a href="/nsearch/?lp=Personalized%20Bags#?lp=Personalized+Bags&amp;search_return=all&amp;res_per_page=60" title="BAGS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> BAGS </span> </a> <a href="/nsearch/?q=business+cards" title="BUSINESS&#x20;CARDS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> BUSINESS CARDS </span> </a> <a href="/nsearch/?q=santa" title="CHRISTMAS&#x20;GEAR" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> CHRISTMAS GEAR </span> </a> <a href="/drinkware" title="DRINKWARE" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> DRINKWARE </span> </a> <a href="/nsearch/?lp=BALLCAPS#?lp=BALLCAPS&amp;search_return=all&amp;res_per_page=60" title="HATS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> HATS </span> </a> <a href="/nsearch/?q=desk+lamp" title="LED&#x20;DESK&#x20;LAMPS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> LED DESK LAMPS </span> </a> <a href="/nsearch/?q=MY54" title="LEATHERETTE&#x20;GOODS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> LEATHERETTE GOODS </span> </a> <a href="/personalized-name-badges" title="NAME&#x20;BADGES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> NAME BADGES </span> </a> <a href="/nsearch/?lp=nike-hats#?lp=nike-hats&amp;search_return=all&amp;res_per_page=60" title="NIKE&#x20;GEAR" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> NIKE GEAR </span> </a> <a href="/nsearch/?lp=Outerwear" title="OUTERWEAR" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> OUTERWEAR </span> </a> <a href="/personalization/wearables/pocket-tools" title="POCKET&#x20;TOOLS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> POCKET TOOLS </span> </a> <a href="/nsearch/?q=personalized+posters#?keywords=personalized+posters&amp;search_return=all&amp;res_per_page=60" title="POSTERS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> POSTERS </span> </a> <a href="/nsearch/?q=personalized+qsl+cards" title="QSL&#x20;CARDS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> QSL CARDS </span> </a> <a href="https://www.gigaparts.com/nsearch/?lp=Shirts-Landing#?lp=Shirts-Landing&amp;search_return=all&amp;res_per_page=60" title="SHIRTS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> SHIRTS </span> </a> <a href="/nsearch/?q=personalized+stationery" title="STATIONERY" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> STATIONERY </span> </a> </div> </div> <div class="level-0"> <span class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : mobilePanelActiveId, 'translate-x-0' : !mobilePanelActiveId }" > <a class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container level-0 text-[14px]" href="/computers" title="COMPUTER&#x20;GEAR"> COMPUTER GEAR </a> <a class="absolute right-0 flex justify-end items-center w-full h-full pr-6 cursor-pointer" @click="mobilePanelActiveId = mobilePanelActiveId === 'cms-hierarchy-node-128' ? 0 : 'cms-hierarchy-node-128'" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> <title>chevron-right</title></svg> </a> </span> <div class="absolute top-0 right-0 z-[1000] w-full h-full transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" :class="{ 'translate-x-full' : mobilePanelActiveId !== 'cms-hierarchy-node-128', 'translate-x-0' : mobilePanelActiveId === 'cms-hierarchy-node-128', }" > <a class="flex items-center mx-3 px-3 py-4 border-b cursor-pointer border-container text-[14px]" @click="mobilePanelActiveId = 0" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/> <title>chevron-left</title></svg> <span class="ml-4"> COMPUTER GEAR </span> </a> <a href="/computers/core-components" title="CORE&#x20;COMPONENTS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> CORE COMPONENTS </span> </a> <a href="/computers/networking" title="NETWORKING" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> NETWORKING </span> </a> <a href="/computers/pcs" title="PCs" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> PCs </span> </a> <a href="/computers/peripherals" title="PERIPHERALS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> PERIPHERALS </span> </a> <a href="/computers/furniture" title="FURNITURE" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> FURNITURE </span> </a> <a href="/computers/cables-and-adapters" title="CABLES&#x20;AND&#x20;ADAPTERS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> CABLES AND ADAPTERS </span> </a> <a href="/computers/pc-cooling" title="PC&#x20;COOLING" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> PC COOLING </span> </a> <a href="/computers/portable-electronics" title="PORTABLE&#x20;ELECTRONICS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> PORTABLE ELECTRONICS </span> </a> <a href="/computers/storage-devices" title="STORAGE&#x20;DEVICES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> STORAGE DEVICES </span> </a> <a href="/computers/software" title="SOFTWARE" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> SOFTWARE </span> </a> <a href="/computers/power-protection" title="POWER&#x20;PROTECTION" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> POWER PROTECTION </span> </a> <a href="/computers/peripheral-accessories" title="PERIPHERAL&#x20;ACCESSORIES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> PERIPHERAL ACCESSORIES </span> </a> <a href="/computers/pc-accessories" title="PC&#x20;ACCESSORIES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> PC ACCESSORIES </span> </a> <a href="/refurbished-apple" title="REFURBISHED&#x20;APPLE&#x20;GEAR" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> REFURBISHED APPLE GEAR </span> </a> </div> </div> <div class="level-0"> <span class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : mobilePanelActiveId, 'translate-x-0' : !mobilePanelActiveId }" > <a class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container level-0 text-[14px]" href="https://www.gigaparts.com/treasure-hunting" title="TREASURE&#x20;HUNTING"> TREASURE HUNTING </a> <a class="absolute right-0 flex justify-end items-center w-full h-full pr-6 cursor-pointer" @click="mobilePanelActiveId = mobilePanelActiveId === 'cms-hierarchy-node-130' ? 0 : 'cms-hierarchy-node-130'" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> <title>chevron-right</title></svg> </a> </span> <div class="absolute top-0 right-0 z-[1000] w-full h-full transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" :class="{ 'translate-x-full' : mobilePanelActiveId !== 'cms-hierarchy-node-130', 'translate-x-0' : mobilePanelActiveId === 'cms-hierarchy-node-130', }" > <a class="flex items-center mx-3 px-3 py-4 border-b cursor-pointer border-container text-[14px]" @click="mobilePanelActiveId = 0" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/> <title>chevron-left</title></svg> <span class="ml-4"> TREASURE HUNTING </span> </a> <a href="/products/metal-detectors" title="METAL&#x20;DETECTORS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> METAL DETECTORS </span> </a> <a href="/products/detector-accessories" title="DETECTOR&#x20;ACCESSORIES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> DETECTOR ACCESSORIES </span> </a> <a href="/products/books-videos-and-maps" title="BOOKS,&#x20;VIDEOS,&#x20;&amp;&#x20;MAPS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> BOOKS, VIDEOS, &amp; MAPS </span> </a> <a href="/products/prospecting-equipment" title="PROSPECTING&#x20;EQUIPMENT" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> PROSPECTING EQUIPMENT </span> </a> </div> </div> <div class="level-0"> <span class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : mobilePanelActiveId, 'translate-x-0' : !mobilePanelActiveId }" > <a class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container level-0 text-[14px]" href="/makers" title="MAKER&#x20;SUPPLIES"> MAKER SUPPLIES </a> <a class="absolute right-0 flex justify-end items-center w-full h-full pr-6 cursor-pointer" @click="mobilePanelActiveId = mobilePanelActiveId === 'cms-hierarchy-node-131' ? 0 : 'cms-hierarchy-node-131'" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> <title>chevron-right</title></svg> </a> </span> <div class="absolute top-0 right-0 z-[1000] w-full h-full transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" :class="{ 'translate-x-full' : mobilePanelActiveId !== 'cms-hierarchy-node-131', 'translate-x-0' : mobilePanelActiveId === 'cms-hierarchy-node-131', }" > <a class="flex items-center mx-3 px-3 py-4 border-b cursor-pointer border-container text-[14px]" @click="mobilePanelActiveId = 0" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/> <title>chevron-left</title></svg> <span class="ml-4"> MAKER SUPPLIES </span> </a> <a href="/makers/3d-printing" title="3D&#x20;PRINTING" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> 3D PRINTING </span> </a> <a href="/makers/components" title="COMPONENTS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> COMPONENTS </span> </a> <a href="/makers/component-accessories" title="COMPONENT&#x20;ACCESSORIES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> COMPONENT ACCESSORIES </span> </a> <a href="/makers/development-boards" title="DEVELOPMENT&#x20;BOARDS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> DEVELOPMENT BOARDS </span> </a> <a href="/makers/educational-resources" title="EDUCATIONAL&#x20;RESOURCES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> EDUCATIONAL RESOURCES </span> </a> <a href="/makers/output-devices" title="OUTPUT&#x20;DEVICES" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> OUTPUT DEVICES </span> </a> <a href="/makers/tools-and-equipment" title="TOOLS&#x20;AND&#x20;EQUIPMENT" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> TOOLS AND EQUIPMENT </span> </a> </div> </div> <div class="level-0"> <span class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : mobilePanelActiveId, 'translate-x-0' : !mobilePanelActiveId }" > <a class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container level-0 text-[14px]" href="https://www.gigaparts.com/emergency-prep" title="EMERGENCY&#x20;PREP"> EMERGENCY PREP </a> <a class="absolute right-0 flex justify-end items-center w-full h-full pr-6 cursor-pointer" @click="mobilePanelActiveId = mobilePanelActiveId === 'cms-hierarchy-node-132' ? 0 : 'cms-hierarchy-node-132'" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> <title>chevron-right</title></svg> </a> </span> <div class="absolute top-0 right-0 z-[1000] w-full h-full transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" :class="{ 'translate-x-full' : mobilePanelActiveId !== 'cms-hierarchy-node-132', 'translate-x-0' : mobilePanelActiveId === 'cms-hierarchy-node-132', }" > <a class="flex items-center mx-3 px-3 py-4 border-b cursor-pointer border-container text-[14px]" @click="mobilePanelActiveId = 0" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/> <title>chevron-left</title></svg> <span class="ml-4"> EMERGENCY PREP </span> </a> <a href="https://www.gigaparts.com/emergency-prep" title="EMERGENCY&#x20;PREPAREDNESS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> EMERGENCY PREPAREDNESS </span> </a> <a href="/products/weather-radios-and-stations" title="WEATHER&#x20;RADIOS&#x20;&amp;&#x20;STATIONS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> WEATHER RADIOS &amp; STATIONS </span> </a> <a href="https://www.gigaparts.com/toys-and-gadgets/edc/flashlights" title="FLASHLIGHTS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> FLASHLIGHTS </span> </a> </div> </div> <div class="level-0"> <span class="flex items-center transition-transform duration-150 ease-in-out transform" :class="{ '-translate-x-full' : mobilePanelActiveId, 'translate-x-0' : !mobilePanelActiveId }" > <a class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container level-0 text-[14px]" href="https://www.gigaparts.com/toys-and-gadgets" title="TOYS&#x20;&amp;&#x20;GADGETS"> TOYS &amp; GADGETS </a> <a class="absolute right-0 flex justify-end items-center w-full h-full pr-6 cursor-pointer" @click="mobilePanelActiveId = mobilePanelActiveId === 'cms-hierarchy-node-133' ? 0 : 'cms-hierarchy-node-133'" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-6 h-6" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/> <title>chevron-right</title></svg> </a> </span> <div class="absolute top-0 right-0 z-[1000] w-full h-full transition-transform duration-200 ease-in-out translate-x-full transform bg-container-lighter" :class="{ 'translate-x-full' : mobilePanelActiveId !== 'cms-hierarchy-node-133', 'translate-x-0' : mobilePanelActiveId === 'cms-hierarchy-node-133', }" > <a class="flex items-center mx-3 px-3 py-4 border-b cursor-pointer border-container text-[14px]" @click="mobilePanelActiveId = 0" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M15 19l-7-7 7-7"/> <title>chevron-left</title></svg> <span class="ml-4"> TOYS &amp; GADGETS </span> </a> <a href="https://www.gigaparts.com/toys-and-gadgets/edc" title="EDC" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> EDC </span> </a> <a href="https://www.gigaparts.com/toys-and-gadgets/gadgets" title="GADGETS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> GADGETS </span> </a> <a href="https://www.gigaparts.com/toys-and-gadgets/impulse" title="IMPULSE" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> IMPULSE </span> </a> <a href="https://www.gigaparts.com/toys-and-gadgets/magic-gear" title="MAGIC&#x20;GEAR" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> MAGIC GEAR </span> </a> <a href="https://www.gigaparts.com/toys-and-gadgets/stem-toys" title="STEM&#x20;TOYS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> STEM TOYS </span> </a> <a href="/stocking-stuffers" title="STOCKING&#x20;STUFFERS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> STOCKING STUFFERS </span> </a> <a href="https://www.gigaparts.com/toys-and-gadgets/toys" title="TOYS" class="flex items-center w-full mx-3 px-3 py-4 border-b cursor-pointer bg-container-lighter border-container text-[14px]" > <span class="w-6"></span> <span class="ml-4 text-base text-gray-700 lg:ml-0"> TOYS </span> </a> </div> </div> <div class="additional-mobile-menu"> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style> .group:hover .group-hover\:visible { visibility: visible; } .gold-text { color: #ffd700; } </style> <div class="group relative cursor-pointer inline-block mr-2"> <div class="flex items-center justify-between space-x-5"> <a class="menu-hover gold-text">Tech Services</a> <span> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-4 w-4"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> </svg> </span> </div> <div class="invisible absolute z-50 flex w-full flex-col bg-white py-1 px-4 text-gray-500 shadow-xl group-hover:visible" style="min-width: 200px;"> <a href="/it" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Tech Solutions </a> <a href="/services/pc-repair" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> PC Repairs </a> </div> </div> <div class="group relative cursor-pointer inline-block mr-2"> <div class="flex items-center justify-between space-x-5 px-4"> <a class="menu-hover">Specials</a> <span> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-4 w-4"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5" /> </svg> </span> </div> <div class="invisible absolute z-50 flex w-full flex-col bg-white py-1 px-4 text-gray-500 shadow-xl group-hover:visible" style="min-width: 200px;"> <a href="/used-open-box-and-refurbished-items" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Bargain Corner </a> <a href="/weekly-specials-at-gigaparts" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Weekly Specials </a> <a href="/clearance-items#?Onclearance=Yes&Stockstatusfilter=Currently+in+stock%21&search_return=all&res_per_page=60" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Clearance Items </a> <a href="/rebates" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Manufacturer Rebates </a> <a href="/sweepstakes" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Sweepstakes </a> </div> </div> <a href="https://events.gigaparts.com" class="mr-6 inline-block">Events</a> <div class="group relative cursor-pointer inline-block mr-2"> <div class="flex items-center justify-between space-x-5 px-4"> <a class="menu-hover">Visit Us</a> <span> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-4 w-4"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> </svg> </span> </div> <div class="invisible absolute z-50 flex w-full flex-col bg-white py-1 px-4 text-gray-500 shadow-xl group-hover:visible" style="min-width: 200px;"> <a href="/huntsville" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Huntsville, AL </a> </div> </div> </div> </div> </nav> </div> </div> <div class="fixed bottom-0 left-0 w-full z-20 bg-white flex justify-between border-t border-t-gray-300 h-14 px-4 md:hidden"> <a href="https://www.gigaparts.com/" class="flex flex-col items-center justify-center text-[14px] leading-4 px-2.5"> <i class="icon-home text-[18px] mb-1 mt-0.5"></i> Home </a> <a @click="$dispatch('toggle-mobile-menu')" class="flex flex-col items-center justify-center text-[14px] leading-4 px-2.5"> <i class="icon-menu text-[18px] mb-1 mt-0.5"></i> Menu </a> <a href="https://www.gigaparts.com/customer/account/" class="flex flex-col items-center justify-center text-[14px] leading-4 px-2.5"> <i class="icon-user text-[18px] mb-1 mt-0.5"></i> Account </a> <a href="https://www.gigaparts.com/checkout/cart/index/" class="flex flex-col items-center justify-center text-[14px] leading-4 px-2.5"> <i class="icon-handbag text-[18px] mb-1 mt-0.5"></i> Cart </a> </div> <script> 'use strict'; const initMenuMobile_673fad71e0603 = () => { return { mobilePanelActiveId: null, open: false, setActiveMenu(menuNode) { Array.from(menuNode.querySelectorAll('a')).filter(link => { return link.href === window.location.href.split('?')[0]; }).map(item => { // item.closest('div.level-0') && // item.closest('div.level-0').querySelector('a.level-0').classList.add('underline'); }); } } } </script> </div> <!--Logo--> <div class="logo-wrapper flex justify-center max-w-[220px] lg:max-w-[initial]"> <a class="flex items-center justify-center text-xl font-medium tracking-wide text-gray-800 no-underline hover:no-underline font-title" href="https://www.gigaparts.com/" title="GigaParts.com" aria-label="store logo"> <img class="img-logo" src="https://www.gigaparts.com/static/version1732095243/frontend/GigaParts/hyva/en_US/images/logo.svg" title="GigaParts.com" alt="GigaParts.com" width="300" height="36" /> </a> </div> <div class="pr-6 pl-14 hidden lg:block"> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"></div> </div> <!--Search desktop--> <div x-ref="searchContainerDesktop" class="hidden lg:block lg:flex-1 lg:mx-4"> </div> <div class="flex gap-3 items-center ml-auto md:gap-4" id="menu-icons-group"> <div class="hidden lg:block"> </div> <!--Search icon--> <button id="menu-search-icon" class="outline-none focus:ring-blue-700 focus:ring-1 lg:hidden" @click.prevent=" searchOpen = !searchOpen; $dispatch('search-open'); " aria-label="Toggle&#x20;search&#x20;form" aria-haspopup="true" :aria-expanded="searchOpen" x-ref="searchButton" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="hidden w-[30px] h-[30px] stroke-[1.5px] lg:w-[36px] lg:h-[36px]" width="30" height="30" :class="{ 'hidden' : !searchOpen, 'block': searchOpen }" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> <title>x</title></svg> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="text-slate-800 hover:text-black w-[30px] h-[30px] stroke-[1.5px] lg:w-[36px] lg:h-[36px]" width="30" height="30" aria-hidden="true" :class="{ 'hidden' : searchOpen, 'block': !searchOpen }"> <path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"/> </svg> </button> <a class="lg:hidden" id="menu-acc-icon" href="https://www.gigaparts.com/customer/account/" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="text-slate-800 hover:text-black w-[30px] h-[30px] stroke-[1.5px] lg:w-[36px] lg:h-[36px]" width="30" height="30" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M5.121 17.804A13.937 13.937 0 0112 16c2.5 0 4.847.655 6.879 1.804M15 10a3 3 0 11-6 0 3 3 0 016 0zm6 2a9 9 0 11-18 0 9 9 0 0118 0z"/> </svg> </a> <!--Compare Icon--> <a id="compare-link" x-cloak x-show="itemCount > 0" class="relative inline-block no-underline outline-none text-black hover:text-primary duration-300 transition-all ease-[ease]" href="https://www.gigaparts.com/catalog/product_compare/index/" title="Compare Products" x-data="initCompareHeader()" @private-content-loaded.window="receiveCompareData($event.detail.data)" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="text-slate-800 hover:text-black w-[30px] h-[30px] stroke-[1.5px] lg:w-[36px] lg:h-[36px]" width="30" height="30" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M3 6l3 1m0 0l-3 9a5.002 5.002 0 006.001 0M6 7l3 9M6 7l6-2m6 2l3-1m-3 1l-3 9a5.002 5.002 0 006.001 0M18 7l3 9m-3-9l-6-2m0-2v2m0 16V5m0 16H9m3 0h3"/> </svg> <span class="sr-only label"> Compare Products </span> <span class="absolute top-0 right-0 py-1 px-1.5 -mt-5 -mr-3 text-[10px] leading-none text-center text-white uppercase transform translate-y-1/2 rounded-full bg-primary min-w-[18px]" > <span x-text="itemCount"></span> <span x-show="itemCount === 1" class="sr-only"> item </span> <span x-show="itemCount > 1" class="sr-only"> items </span> </span> </a> <!--Cart Icon--> <a id="menu-cart-icon" @click.prevent.stop="$dispatch('toggle-cart',{});" class="relative outline-none text-black duration-300 transition-all ease-[ease] mr-1 hover:text-primary" href="https://www.gigaparts.com/checkout/cart/index/" > <span class="sr-only label"> Cart </span> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="text-slate-800 hover:text-black w-[30px] h-[30px] stroke-[1.5px] lg:w-[36px] lg:h-[36px]" width="30" height="30" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"/> </svg> <span x-text="cart.summary_count" class="absolute top-0 right-0 hidden py-1 px-1.5 -mt-4 -mr-1 text-[10px] leading-none text-center text-white uppercase transform translate-y-1/2 rounded-full bg-primary min-w-[18px]" :class="{ 'hidden': !cart.summary_count, 'block': cart.summary_count }" ></span> </a> </div> </div> </div> <div x-data="{atTop : true}" class="hidden fixed top-0 left-0 w-full z-30 bg-white border-b border-b-gray-300" @scroll.window="atTop = window.pageYOffset > 215 ? false : true" :class="(atTop === false) ? 'lg:!block' : 'hidden'"> <div class="max-w-[640px] md:max-w-3xl lg:max-w-5xl xl:max-w-7xl w-full mx-auto px-4"> <div class="flex items-center"> <div class="w-[300px] mr-[15%]"> <div class="logo-wrapper flex justify-center max-w-[220px] lg:max-w-[initial]"> <a class="flex items-center justify-center text-xl font-medium tracking-wide text-gray-800 no-underline hover:no-underline font-title" href="https://www.gigaparts.com/" title="GigaParts.com" aria-label="store logo"> <img class="img-logo" src="https://www.gigaparts.com/static/version1732095243/frontend/GigaParts/hyva/en_US/images/logo.svg" title="GigaParts.com" alt="GigaParts.com" width="300" height="36" /> </a> </div> </div> <div class="leading-[80px] font-medium uppercase"> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style> .group:hover .group-hover\:visible { visibility: visible; } .gold-text { color: #ffd700; } </style> <div class="group relative cursor-pointer inline-block mr-2"> <div class="flex items-center justify-between space-x-5"> <a class="menu-hover gold-text">Tech Services</a> <span> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-4 w-4"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> </svg> </span> </div> <div class="invisible absolute z-50 flex w-full flex-col bg-white py-1 px-4 text-gray-500 shadow-xl group-hover:visible" style="min-width: 200px;"> <a href="/it" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Tech Solutions </a> <a href="/services/pc-repair" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> PC Repairs </a> </div> </div> <div class="group relative cursor-pointer inline-block mr-2"> <div class="flex items-center justify-between space-x-5 px-4"> <a class="menu-hover">Specials</a> <span> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-4 w-4"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5" /> </svg> </span> </div> <div class="invisible absolute z-50 flex w-full flex-col bg-white py-1 px-4 text-gray-500 shadow-xl group-hover:visible" style="min-width: 200px;"> <a href="/used-open-box-and-refurbished-items" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Bargain Corner </a> <a href="/weekly-specials-at-gigaparts" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Weekly Specials </a> <a href="/clearance-items#?Onclearance=Yes&Stockstatusfilter=Currently+in+stock%21&search_return=all&res_per_page=60" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Clearance Items </a> <a href="/rebates" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Manufacturer Rebates </a> <a href="/sweepstakes" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Sweepstakes </a> </div> </div> <a href="https://events.gigaparts.com" class="mr-6 inline-block">Events</a> <div class="group relative cursor-pointer inline-block mr-2"> <div class="flex items-center justify-between space-x-5 px-4"> <a class="menu-hover">Visit Us</a> <span> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-4 w-4"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> </svg> </span> </div> <div class="invisible absolute z-50 flex w-full flex-col bg-white py-1 px-4 text-gray-500 shadow-xl group-hover:visible" style="min-width: 200px;"> <a href="/huntsville" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Huntsville, AL </a> </div> </div> </div> </div> <!--Cart Icon--> <a id="menu-cart-icon" @click.prevent.stop="$dispatch('toggle-cart',{});" class="relative outline-none text-black duration-300 transition-all ease-[ease] sm:ml-auto hover:text-primary" href="https://www.gigaparts.com/checkout/cart/index/" > <span class="sr-only label"> Cart </span> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="text-slate-800 hover:text-black stroke-[1.5px]" width="38" height="38" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"/> </svg> <span x-text="cart.summary_count" class="absolute top-0 right-0 hidden py-1 px-1.5 -mt-5 -mr-3 text-[10px] leading-none text-center text-white uppercase transform translate-y-1/2 rounded-full bg-primary" :class="{ 'hidden': !cart.summary_count, 'block': cart.summary_count }" ></span> </a> </div> </div> </div> <div class="bg-primary relative h-[55px] hidden lg:block"> <div class="max-w-[640px] md:max-w-3xl lg:max-w-5xl xl:max-w-7xl w-full mx-auto px-4"> <div class="hidden lg:flex items-center"> <div x-data="initMenuDesktop_673fad724ea99()" class="z-20 w-[300px] pr-6 mr-6 border-r border-white navigation hidden lg:flex" > <!-- desktop --> <div @load.window="setActiveMenu($root)" class="justify-between mx-auto w-full" > <nav class="flex flex-wrap" > <div class="level-0 flex items-center transition-colors duration-500 relative" > <a href="#" title="SHOP&#x20;BY&#x20;DEPARTMENT" class="level-0 inline-flex uppercase shadow-sm font-semibold text-white whitespace-nowrap w-full leading-[55px]" @click="$dispatch('toggle-desktop-menu')"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="mr-3 mt-[15px] text-white" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M4 6h16M4 12h16M4 18h16"/> <title>menu</title></svg> <span>SHOP BY DEPARTMENT</span> </a> <div class="absolute left-0 top-full z-10 -mt-3 ease-out" :style="`margin-top: 0;`" x-data="{ showMenu: isOpen() }" x-cloak x-show="showMenu" @click.outside="showMenu = false" @keydown.window.escape="showMenu = false" @toggle-desktop-menu.window="showMenu = !showMenu" > <div x-data="{ open: false }" class="mx-auto relative min-h-[346px] overflow-hidden hover:w-[1024px]" :style="(open === false) ? 'height: 346px' : '`min-height: ${menuMinHeight}px`'" > <ul class="w-[300px] px-5 bg-white border border-gray-300 pb-[41px]" :class="(open === false) ? 'h-[346px]' : ''" > <!-- @todo Remove when we switch to new original category list --> <li class="group/child flex justify-between items-center w-full border-b border-b-gray-200 last:border-b-0" @mouseover.stop="setMenuMinHeight($event.currentTarget)" > <a href="https://www.gigaparts.com/radio-gear" class="w-full flex justify-between items-center py-2 px-2.5 z-10 font-[24px] relative break-words transition-all hover:text-primary" @focus="setMenuMinHeight($event.currentTarget.parentNode)" > RADIO GEAR <span class="inline-block z-10 relative pl-2"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img"> <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/> <title>chevron-right</title></svg> </span> </a> <div class="container left-0 absolute w-[850px] min-h-full top-0 opacity-0 group-hover/child:opacity-100 pointer-events-none group-hover/child:pointer-events-auto"> <div class="ml-[299px] w-[550px] absolute left-[20%] h-full transition-all duration-500 bg-white border border-gray-300 group-hover/child:left-0 flex-1"> <ul class="relative grid grid-cols-2 gap-x-8 p-4"> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/amateur-radio-transceivers" title="AMATEUR&#x20;RADIO&#x20;TRANSCEIVERS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> AMATEUR RADIO TRANSCEIVERS </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/antenna-systems#?Category1=Radios&amp;Category2=Antenna+Systems&amp;search_return=all&amp;res_per_page=60" title="ANTENNAS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> ANTENNAS </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/wire-and-coax#?Category1=Radios&amp;Category2=Coax+and+Cables&amp;search_return=all&amp;res_per_page=60" title="COAX&#x20;&amp;&#x20;CABLES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> COAX &amp; CABLES </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/gmrs-transceivers" title="GMRS&#x20;TRANSCEIVERS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> GMRS TRANSCEIVERS </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/cb-radios#?Category1=Radios&amp;Category2=CB+Transceivers&amp;search_return=all&amp;res_per_page=60" title="CB&#x20;RADIOS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> CB RADIOS </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/transceiver-accessories#?Category1=Radios&amp;Category2=Transceiver+Acc&amp;search_return=all&amp;res_per_page=60" title="TRANSCEIVER&#x20;ACCESSORIES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> TRANSCEIVER ACCESSORIES </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/scanners-receivers-and-gps#?Category1=Radios&amp;Category2=Scanners%2C+Receivers+and+GPS&amp;search_return=all&amp;res_per_page=60" title="RECEIVERS&#x20;&amp;&#x20;SCANNERS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> RECEIVERS &amp; SCANNERS </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/amplifiers#?Category1=Radios&amp;Category2=Amplifiers&amp;search_return=all&amp;res_per_page=60" title="AMPLIFIERS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> AMPLIFIERS </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/radio-audio-devices#?Category1=Radios&amp;Category2=Radio+Audio+Devices&amp;search_return=all&amp;res_per_page=60" title="RADIO&#x20;AUDIO&#x20;DEVICES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> RADIO AUDIO DEVICES </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/tower-and-shack-accessories#?Category1=Radios&amp;Category2=Tower+and+Shack+Acc&amp;search_return=all&amp;res_per_page=60" title="TOWER&#x20;&amp;&#x20;SHACK&#x20;ACCESSORIES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> TOWER &amp; SHACK ACCESSORIES </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/power-supplies-accessories#?Category1=Radios&amp;Category2=Power+Solutions+and+Acc&amp;search_return=all&amp;res_per_page=60" title="POWER&#x20;SOLUTIONS&#x20;&amp;&#x20;ACCESSORIES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> POWER SOLUTIONS &amp; ACCESSORIES </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/accessories#?Category1=Radios&amp;Category2=Accessories&amp;search_return=all&amp;res_per_page=60" title="ACCESSORIES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> ACCESSORIES </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/software-and-pc-interface#?Category1=Radios&amp;Category2=Software+and+PC+Interface&amp;search_return=all&amp;res_per_page=60" title="SOFTWARE&#x20;&amp;&#x20;PC&#x20;INTERFACE" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> SOFTWARE &amp; PC INTERFACE </a> </li> <li class="level-1 z-[2]"> <a href="/products/used-radio-gear" title="USED&#x20;EQUIPMENT" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> USED EQUIPMENT </a> </li> </ul> <div class="absolute right-0 bottom-0 z-[1] opacity-70"> <img src="https://www.gigaparts.com/media/wysiwyg/Root-Nav-BG/radio-cat-bg.jpg" loading="lazy" alt="" /> </div> </div> </div> </li> <li class="group/child flex justify-between items-center w-full border-b border-b-gray-200 last:border-b-0" @mouseover.stop="setMenuMinHeight($event.currentTarget)" > <a href="/photography" class="w-full flex justify-between items-center py-2 px-2.5 z-10 font-[24px] relative break-words transition-all hover:text-primary" @focus="setMenuMinHeight($event.currentTarget.parentNode)" > PHOTOGRAPHY GEAR <span class="inline-block z-10 relative pl-2"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img"> <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/> <title>chevron-right</title></svg> </span> </a> <div class="container left-0 absolute w-[850px] min-h-full top-0 opacity-0 group-hover/child:opacity-100 pointer-events-none group-hover/child:pointer-events-auto"> <div class="ml-[299px] w-[550px] absolute left-[20%] h-full transition-all duration-500 bg-white border border-gray-300 group-hover/child:left-0 flex-1"> <ul class="relative grid grid-cols-2 gap-x-8 p-4"> <li class="level-1 z-[2]"> <a href="/photography/batteries-and-power-accessories" title="BATTERIES&#x20;&amp;&#x20;POWER&#x20;ACCESSORIES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> BATTERIES &amp; POWER ACCESSORIES </a> </li> <li class="level-1 z-[2]"> <a href="/photography/cameras" title="CAMERAS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> CAMERAS </a> </li> <li class="level-1 z-[2]"> <a href="/photography/camera-accessories" title="CAMERA&#x20;ACCESSORIES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> CAMERA ACCESSORIES </a> </li> <li class="level-1 z-[2]"> <a href="/photography/lenses" title="LENSES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> LENSES </a> </li> <li class="level-1 z-[2]"> <a href="/photography/lens-accessories" title="LENS&#x20;ACCESSORIES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> LENS ACCESSORIES </a> </li> <li class="level-1 z-[2]"> <a href="/photography/photography-bags-and-cases" title="PHOTOGRAPHY&#x20;BAGS&#x20;&amp;&#x20;CASES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> PHOTOGRAPHY BAGS &amp; CASES </a> </li> <li class="level-1 z-[2]"> <a href="/photography/studio-equipment-and-lighting" title="STUDIO&#x20;EQUIPMENT&#x20;&amp;&#x20;LIGHTING" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> STUDIO EQUIPMENT &amp; LIGHTING </a> </li> <li class="level-1 z-[2]"> <a href="/photography/tripods-and-supports" title="TRIPODS&#x20;&amp;&#x20;SUPPORTS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> TRIPODS &amp; SUPPORTS </a> </li> </ul> <div class="absolute right-0 bottom-0 z-[1] opacity-70"> <img src="https://www.gigaparts.com/media/wysiwyg/Root-Nav-BG/photo-cat-bg.jpg" loading="lazy" alt="" /> </div> </div> </div> </li> <li class="group/child flex justify-between items-center w-full border-b border-b-gray-200 last:border-b-0" @mouseover.stop="setMenuMinHeight($event.currentTarget)" > <a href="/astronomy" class="w-full flex justify-between items-center py-2 px-2.5 z-10 font-[24px] relative break-words transition-all hover:text-primary" @focus="setMenuMinHeight($event.currentTarget.parentNode)" > ASTRONOMY GEAR <span class="inline-block z-10 relative pl-2"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img"> <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/> <title>chevron-right</title></svg> </span> </a> <div class="container left-0 absolute w-[850px] min-h-full top-0 opacity-0 group-hover/child:opacity-100 pointer-events-none group-hover/child:pointer-events-auto"> <div class="ml-[299px] w-[550px] absolute left-[20%] h-full transition-all duration-500 bg-white border border-gray-300 group-hover/child:left-0 flex-1"> <ul class="relative grid grid-cols-2 gap-x-8 p-4"> <li class="level-1 z-[2]"> <a href="/astronomy/astrophotography-equipment" title="ASTROPHOTOGRAPHY&#x20;EQUIPMENT" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> ASTROPHOTOGRAPHY EQUIPMENT </a> </li> <li class="level-1 z-[2]"> <a href="/astronomy/mounts-and-tripods" title="MOUNTS&#x20;AND&#x20;TRIPODS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> MOUNTS AND TRIPODS </a> </li> <li class="level-1 z-[2]"> <a href="/astronomy/optical-accessories" title="OPTICAL&#x20;ACCESSORIES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> OPTICAL ACCESSORIES </a> </li> <li class="level-1 z-[2]"> <a href="/astronomy/sport-optics" title="SPORT&#x20;OPTICS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> SPORT OPTICS </a> </li> <li class="level-1 z-[2]"> <a href="/astronomy/star-charts-and-books" title="STAR&#x20;CHARTS&#x20;AND&#x20;BOOKS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> STAR CHARTS AND BOOKS </a> </li> <li class="level-1 z-[2]"> <a href="/astronomy/telescope-accessories" title="TELESCOPE&#x20;ACCESSORIES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> TELESCOPE ACCESSORIES </a> </li> <li class="level-1 z-[2]"> <a href="/astronomy/telescopes" title="TELESCOPES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> TELESCOPES </a> </li> </ul> <div class="absolute right-0 bottom-0 z-[1] opacity-70"> <img src="https://www.gigaparts.com/media/wysiwyg/Root-Nav-BG/astronomy-cat-bg.jpg" loading="lazy" alt="" /> </div> </div> </div> </li> <li class="group/child flex justify-between items-center w-full border-b border-b-gray-200 last:border-b-0" @mouseover.stop="setMenuMinHeight($event.currentTarget)" > <a href="/personalized-items" class="w-full flex justify-between items-center py-2 px-2.5 z-10 font-[24px] relative break-words transition-all hover:text-primary" @focus="setMenuMinHeight($event.currentTarget.parentNode)" > PERSONALIZED ITEMS <span class="inline-block z-10 relative pl-2"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img"> <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/> <title>chevron-right</title></svg> </span> </a> <div class="container left-0 absolute w-[850px] min-h-full top-0 opacity-0 group-hover/child:opacity-100 pointer-events-none group-hover/child:pointer-events-auto"> <div class="ml-[299px] w-[550px] absolute left-[20%] h-full transition-all duration-500 bg-white border border-gray-300 group-hover/child:left-0 flex-1"> <ul class="relative grid grid-cols-2 gap-x-8 p-4"> <li class="level-1 z-[2]"> <a href="/nsearch/?lp=Personalized%20Gifts%20Under%20%2450" title="GIFTS&#x20;UNDER&#x20;&#x24;50" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> GIFTS UNDER $50 </a> </li> <li class="level-1 z-[2]"> <a href="/nsearch/?lp=Personalized%20Bags#?lp=Personalized+Bags&amp;search_return=all&amp;res_per_page=60" title="BAGS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> BAGS </a> </li> <li class="level-1 z-[2]"> <a href="/nsearch/?q=business+cards" title="BUSINESS&#x20;CARDS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> BUSINESS CARDS </a> </li> <li class="level-1 z-[2]"> <a href="/nsearch/?q=santa" title="CHRISTMAS&#x20;GEAR" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> CHRISTMAS GEAR </a> </li> <li class="level-1 z-[2]"> <a href="/drinkware" title="DRINKWARE" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> DRINKWARE </a> </li> <li class="level-1 z-[2]"> <a href="/nsearch/?lp=BALLCAPS#?lp=BALLCAPS&amp;search_return=all&amp;res_per_page=60" title="HATS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> HATS </a> </li> <li class="level-1 z-[2]"> <a href="/nsearch/?q=desk+lamp" title="LED&#x20;DESK&#x20;LAMPS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> LED DESK LAMPS </a> </li> <li class="level-1 z-[2]"> <a href="/nsearch/?q=MY54" title="LEATHERETTE&#x20;GOODS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> LEATHERETTE GOODS </a> </li> <li class="level-1 z-[2]"> <a href="/personalized-name-badges" title="NAME&#x20;BADGES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> NAME BADGES </a> </li> <li class="level-1 z-[2]"> <a href="/nsearch/?lp=nike-hats#?lp=nike-hats&amp;search_return=all&amp;res_per_page=60" title="NIKE&#x20;GEAR" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> NIKE GEAR </a> </li> <li class="level-1 z-[2]"> <a href="/nsearch/?lp=Outerwear" title="OUTERWEAR" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> OUTERWEAR </a> </li> <li class="level-1 z-[2]"> <a href="/personalization/wearables/pocket-tools" title="POCKET&#x20;TOOLS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> POCKET TOOLS </a> </li> <li class="level-1 z-[2]"> <a href="/nsearch/?q=personalized+posters#?keywords=personalized+posters&amp;search_return=all&amp;res_per_page=60" title="POSTERS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> POSTERS </a> </li> <li class="level-1 z-[2]"> <a href="/nsearch/?q=personalized+qsl+cards" title="QSL&#x20;CARDS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> QSL CARDS </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/nsearch/?lp=Shirts-Landing#?lp=Shirts-Landing&amp;search_return=all&amp;res_per_page=60" title="SHIRTS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> SHIRTS </a> </li> <li class="level-1 z-[2]"> <a href="/nsearch/?q=personalized+stationery" title="STATIONERY" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> STATIONERY </a> </li> </ul> <div class="absolute right-0 bottom-0 z-[1] opacity-70"> <img src="https://www.gigaparts.com/media/wysiwyg/Root-Nav-BG/custom-items-cat-bg.jpg" loading="lazy" alt="" /> </div> </div> </div> </li> <li class="group/child flex justify-between items-center w-full border-b border-b-gray-200 last:border-b-0" @mouseover.stop="setMenuMinHeight($event.currentTarget)" > <a href="/computers" class="w-full flex justify-between items-center py-2 px-2.5 z-10 font-[24px] relative break-words transition-all hover:text-primary" @focus="setMenuMinHeight($event.currentTarget.parentNode)" > COMPUTER GEAR <span class="inline-block z-10 relative pl-2"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img"> <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/> <title>chevron-right</title></svg> </span> </a> <div class="container left-0 absolute w-[850px] min-h-full top-0 opacity-0 group-hover/child:opacity-100 pointer-events-none group-hover/child:pointer-events-auto"> <div class="ml-[299px] w-[550px] absolute left-[20%] h-full transition-all duration-500 bg-white border border-gray-300 group-hover/child:left-0 flex-1"> <ul class="relative grid grid-cols-2 gap-x-8 p-4"> <li class="level-1 z-[2]"> <a href="/computers/core-components" title="CORE&#x20;COMPONENTS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> CORE COMPONENTS </a> </li> <li class="level-1 z-[2]"> <a href="/computers/networking" title="NETWORKING" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> NETWORKING </a> </li> <li class="level-1 z-[2]"> <a href="/computers/pcs" title="PCs" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> PCs </a> </li> <li class="level-1 z-[2]"> <a href="/computers/peripherals" title="PERIPHERALS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> PERIPHERALS </a> </li> <li class="level-1 z-[2]"> <a href="/computers/furniture" title="FURNITURE" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> FURNITURE </a> </li> <li class="level-1 z-[2]"> <a href="/computers/cables-and-adapters" title="CABLES&#x20;AND&#x20;ADAPTERS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> CABLES AND ADAPTERS </a> </li> <li class="level-1 z-[2]"> <a href="/computers/pc-cooling" title="PC&#x20;COOLING" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> PC COOLING </a> </li> <li class="level-1 z-[2]"> <a href="/computers/portable-electronics" title="PORTABLE&#x20;ELECTRONICS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> PORTABLE ELECTRONICS </a> </li> <li class="level-1 z-[2]"> <a href="/computers/storage-devices" title="STORAGE&#x20;DEVICES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> STORAGE DEVICES </a> </li> <li class="level-1 z-[2]"> <a href="/computers/software" title="SOFTWARE" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> SOFTWARE </a> </li> <li class="level-1 z-[2]"> <a href="/computers/power-protection" title="POWER&#x20;PROTECTION" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> POWER PROTECTION </a> </li> <li class="level-1 z-[2]"> <a href="/computers/peripheral-accessories" title="PERIPHERAL&#x20;ACCESSORIES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> PERIPHERAL ACCESSORIES </a> </li> <li class="level-1 z-[2]"> <a href="/computers/pc-accessories" title="PC&#x20;ACCESSORIES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> PC ACCESSORIES </a> </li> <li class="level-1 z-[2]"> <a href="/refurbished-apple" title="REFURBISHED&#x20;APPLE&#x20;GEAR" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> REFURBISHED APPLE GEAR </a> </li> </ul> <div class="absolute right-0 bottom-0 z-[1] opacity-70"> <img src="https://www.gigaparts.com/media/wysiwyg/Root-Nav-BG/computers-cat-bg.jpg" loading="lazy" alt="" /> </div> </div> </div> </li> <li class="group/child flex justify-between items-center w-full border-b border-b-gray-200 last:border-b-0" @mouseover.stop="setMenuMinHeight($event.currentTarget)" > <a href="https://www.gigaparts.com/treasure-hunting" class="w-full flex justify-between items-center py-2 px-2.5 z-10 font-[24px] relative break-words transition-all hover:text-primary" @focus="setMenuMinHeight($event.currentTarget.parentNode)" > TREASURE HUNTING <span class="inline-block z-10 relative pl-2"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img"> <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/> <title>chevron-right</title></svg> </span> </a> <div class="container left-0 absolute w-[850px] min-h-full top-0 opacity-0 group-hover/child:opacity-100 pointer-events-none group-hover/child:pointer-events-auto"> <div class="ml-[299px] w-[550px] absolute left-[20%] h-full transition-all duration-500 bg-white border border-gray-300 group-hover/child:left-0 flex-1"> <ul class="relative grid grid-cols-2 gap-x-8 p-4"> <li class="level-1 z-[2]"> <a href="/products/metal-detectors" title="METAL&#x20;DETECTORS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> METAL DETECTORS </a> </li> <li class="level-1 z-[2]"> <a href="/products/detector-accessories" title="DETECTOR&#x20;ACCESSORIES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> DETECTOR ACCESSORIES </a> </li> <li class="level-1 z-[2]"> <a href="/products/books-videos-and-maps" title="BOOKS,&#x20;VIDEOS,&#x20;&amp;&#x20;MAPS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> BOOKS, VIDEOS, &amp; MAPS </a> </li> <li class="level-1 z-[2]"> <a href="/products/prospecting-equipment" title="PROSPECTING&#x20;EQUIPMENT" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> PROSPECTING EQUIPMENT </a> </li> </ul> <div class="absolute right-0 bottom-0 z-[1] opacity-70"> <img src="https://www.gigaparts.com/media/wysiwyg/Root-Nav-BG/treasure-cat-bg.jpg" loading="lazy" alt="" /> </div> </div> </div> </li> <li class="group/child flex justify-between items-center w-full border-b border-b-gray-200 last:border-b-0" @mouseover.stop="setMenuMinHeight($event.currentTarget)" > <a href="/makers" class="w-full flex justify-between items-center py-2 px-2.5 z-10 font-[24px] relative break-words transition-all hover:text-primary" @focus="setMenuMinHeight($event.currentTarget.parentNode)" > MAKER SUPPLIES <span class="inline-block z-10 relative pl-2"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img"> <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/> <title>chevron-right</title></svg> </span> </a> <div class="container left-0 absolute w-[850px] min-h-full top-0 opacity-0 group-hover/child:opacity-100 pointer-events-none group-hover/child:pointer-events-auto"> <div class="ml-[299px] w-[550px] absolute left-[20%] h-full transition-all duration-500 bg-white border border-gray-300 group-hover/child:left-0 flex-1"> <ul class="relative grid grid-cols-2 gap-x-8 p-4"> <li class="level-1 z-[2]"> <a href="/makers/3d-printing" title="3D&#x20;PRINTING" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> 3D PRINTING </a> </li> <li class="level-1 z-[2]"> <a href="/makers/components" title="COMPONENTS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> COMPONENTS </a> </li> <li class="level-1 z-[2]"> <a href="/makers/component-accessories" title="COMPONENT&#x20;ACCESSORIES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> COMPONENT ACCESSORIES </a> </li> <li class="level-1 z-[2]"> <a href="/makers/development-boards" title="DEVELOPMENT&#x20;BOARDS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> DEVELOPMENT BOARDS </a> </li> <li class="level-1 z-[2]"> <a href="/makers/educational-resources" title="EDUCATIONAL&#x20;RESOURCES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> EDUCATIONAL RESOURCES </a> </li> <li class="level-1 z-[2]"> <a href="/makers/output-devices" title="OUTPUT&#x20;DEVICES" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> OUTPUT DEVICES </a> </li> <li class="level-1 z-[2]"> <a href="/makers/tools-and-equipment" title="TOOLS&#x20;AND&#x20;EQUIPMENT" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> TOOLS AND EQUIPMENT </a> </li> </ul> <div class="absolute right-0 bottom-0 z-[1] opacity-70"> <img src="https://www.gigaparts.com/media/wysiwyg/Root-Nav-BG/makers-cat-bg.jpg" loading="lazy" alt="" /> </div> </div> </div> </li> <li class="group/child flex justify-between items-center w-full border-b border-b-gray-200 last:border-b-0" @mouseover.stop="setMenuMinHeight($event.currentTarget)" > <a href="https://www.gigaparts.com/emergency-prep" class="w-full flex justify-between items-center py-2 px-2.5 z-10 font-[24px] relative break-words transition-all hover:text-primary" @focus="setMenuMinHeight($event.currentTarget.parentNode)" > EMERGENCY PREP <span class="inline-block z-10 relative pl-2"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img"> <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/> <title>chevron-right</title></svg> </span> </a> <div class="container left-0 absolute w-[850px] min-h-full top-0 opacity-0 group-hover/child:opacity-100 pointer-events-none group-hover/child:pointer-events-auto"> <div class="ml-[299px] w-[550px] absolute left-[20%] h-full transition-all duration-500 bg-white border border-gray-300 group-hover/child:left-0 flex-1"> <ul class="relative grid grid-cols-2 gap-x-8 p-4"> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/emergency-prep" title="EMERGENCY&#x20;PREPAREDNESS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> EMERGENCY PREPAREDNESS </a> </li> <li class="level-1 z-[2]"> <a href="/products/weather-radios-and-stations" title="WEATHER&#x20;RADIOS&#x20;&amp;&#x20;STATIONS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> WEATHER RADIOS &amp; STATIONS </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/toys-and-gadgets/edc/flashlights" title="FLASHLIGHTS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> FLASHLIGHTS </a> </li> </ul> </div> </div> </li> <li class="group/child flex justify-between items-center w-full border-b border-b-gray-200 last:border-b-0" @mouseover.stop="setMenuMinHeight($event.currentTarget)" > <a href="https://www.gigaparts.com/toys-and-gadgets" class="w-full flex justify-between items-center py-2 px-2.5 z-10 font-[24px] relative break-words transition-all hover:text-primary" @focus="setMenuMinHeight($event.currentTarget.parentNode)" > TOYS &amp; GADGETS <span class="inline-block z-10 relative pl-2"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-5 h-5 inline" width="25" height="25" role="img"> <path fill-rule="evenodd" d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z" clip-rule="evenodd"/> <title>chevron-right</title></svg> </span> </a> <div class="container left-0 absolute w-[850px] min-h-full top-0 opacity-0 group-hover/child:opacity-100 pointer-events-none group-hover/child:pointer-events-auto"> <div class="ml-[299px] w-[550px] absolute left-[20%] h-full transition-all duration-500 bg-white border border-gray-300 group-hover/child:left-0 flex-1"> <ul class="relative grid grid-cols-2 gap-x-8 p-4"> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/toys-and-gadgets/edc" title="EDC" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> EDC </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/toys-and-gadgets/gadgets" title="GADGETS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> GADGETS </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/toys-and-gadgets/impulse" title="IMPULSE" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> IMPULSE </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/toys-and-gadgets/magic-gear" title="MAGIC&#x20;GEAR" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> MAGIC GEAR </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/toys-and-gadgets/stem-toys" title="STEM&#x20;TOYS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> STEM TOYS </a> </li> <li class="level-1 z-[2]"> <a href="/stocking-stuffers" title="STOCKING&#x20;STUFFERS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> STOCKING STUFFERS </a> </li> <li class="level-1 z-[2]"> <a href="https://www.gigaparts.com/toys-and-gadgets/toys" title="TOYS" class="level-1 p-[5px] block text-lg transition-all md:text-sm hover:text-primary"> TOYS </a> </li> </ul> </div> </div> </li> <li class="absolute left-[1px] bottom-[1px] group/child flex justify-between items-center w-[298px] px-5 bg-white z-[11]"> <button class="w-full flex justify-between items-center py-2 px-2.5 z-10 font-[24px] relative break-words transition-all hover:text-primary" @click="open = ! open" x-text="(open === false) ? '+ All Categories' : '- Less Categories'" ></button> </li> </ul> </div> </div> </div> </nav> </div> </div> <script> 'use strict'; const initMenuDesktop_673fad724ea99 = () => { return { menuMinHeight: 0, setMenuMinHeight(targetElement) { const childMenu = targetElement.querySelector('div.container.absolute'); childMenu && (this.menuMinHeight = childMenu.getBoundingClientRect().height); }, setActiveMenu(menuNode) { Array.from(menuNode.querySelectorAll('a')).filter(link => { return link.href === window.location.href.split('?')[0]; }).map(item => { item.closest('div.level-0') && item.closest('div.level-0').classList.add('border-secondary'); }); }, isOpen() { const home = document.querySelector("body.cms-index-index"); /** @todo Remove when we switch to the Home Page Hyva theme **/ const cmsHomeHyva = document.querySelector("body.cms-home-hyva"); if (home || cmsHomeHyva) { return true; } } } } </script> <div class="text-white leading-[55px]"> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style> .group:hover .group-hover\:visible { visibility: visible; } .gold-text { color: #ffd700; } </style> <div class="group relative cursor-pointer inline-block mr-2"> <div class="flex items-center justify-between space-x-5"> <a class="menu-hover gold-text">Tech Services</a> <span> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-4 w-4"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> </svg> </span> </div> <div class="invisible absolute z-50 flex w-full flex-col bg-white py-1 px-4 text-gray-500 shadow-xl group-hover:visible" style="min-width: 200px;"> <a href="/it" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Tech Solutions </a> <a href="/services/pc-repair" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> PC Repairs </a> </div> </div> <div class="group relative cursor-pointer inline-block mr-2"> <div class="flex items-center justify-between space-x-5 px-4"> <a class="menu-hover">Specials</a> <span> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-4 w-4"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5" /> </svg> </span> </div> <div class="invisible absolute z-50 flex w-full flex-col bg-white py-1 px-4 text-gray-500 shadow-xl group-hover:visible" style="min-width: 200px;"> <a href="/used-open-box-and-refurbished-items" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Bargain Corner </a> <a href="/weekly-specials-at-gigaparts" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Weekly Specials </a> <a href="/clearance-items#?Onclearance=Yes&Stockstatusfilter=Currently+in+stock%21&search_return=all&res_per_page=60" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Clearance Items </a> <a href="/rebates" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Manufacturer Rebates </a> <a href="/sweepstakes" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Sweepstakes </a> </div> </div> <a href="https://events.gigaparts.com" class="mr-6 inline-block">Events</a> <div class="group relative cursor-pointer inline-block mr-2"> <div class="flex items-center justify-between space-x-5 px-4"> <a class="menu-hover">Visit Us</a> <span> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="h-4 w-4"> <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5"/> </svg> </span> </div> <div class="invisible absolute z-50 flex w-full flex-col bg-white py-1 px-4 text-gray-500 shadow-xl group-hover:visible" style="min-width: 200px;"> <a href="/huntsville" class="block border-b border-gray-100 py-2 text-gray-500 leading-6 hover:text-primary"> Huntsville, AL </a> </div> </div> </div> </div> </div> </div> </div> <div class="hidden mr-12"></div> <!--Search mobile--> <div x-ref="searchContainerMobile" id="search-content" x-cloak x-show="searchOpen" @click.outside="searchOpen = false" @keydown.escape=" searchOpen = false; $refs.searchButton.focus(); " class="max-w-full lg:max-w-5xl xl:max-w-7xl w-full mx-auto px-4 flex justify-end items-center lg:hidden"> <div x-ref="searchForm" class="max-w-full w-full mx-auto py-4"> <script> 'use strict'; function initMiniSearch() { return { focusElement(element) { if (element && element.nodeName === "DIV") { element.focus(); return true; } else { return false; } } } } </script> <div class="text-black" x-data="initMiniSearch()"> <form class="form minisearch w-full" id="search_mini_form" x-ref="form" @click.outside="open = false" action="https://www.gigaparts.com/nsearch/" method="get" > <label class="hidden" for="search" data-role="minisearch-label"> <span>Search</span> </label> <div class="flex w-full relative"> <input id="search" x-ref="searchInput" type="search" autocomplete="off" name="q" value="" placeholder="Search&#x20;entire&#x20;store&#x20;here..." maxlength="256" class="w-full py-0 pl-6 pr-[87px] text-base leading-normal transition appearance-none text-grey-800 focus:outline-none focus:shadow-none focus:ring-0 border-2 border-primary rounded-[30px] h-[50px] text-[12px] italic" @keydown.arrow-down.prevent="focusElement($root.querySelector('[tabindex]'))" /> <button type="submit" title="Search" class="text-white absolute right-0 top-0 h-[50px] bg-primary rounded-r-[50px] px-5 text-sm" aria-label="Search" > Search </button> </div> </form> </div> </div> </div> <!--Cart Drawer--> <script> function initCartDrawer() { return { open: false, isLoading: false, cart: {}, maxItemsToDisplay: 10, itemsCount: 0, getData(data) { if (data.cart) { this.cart = data.cart; this.itemsCount = data.cart.items && data.cart.items.length || 0; this.setCartItems(); } this.isLoading = false; }, cartItems: [], getItemCountTitle() { return hyva.strf('\u00250\u0020of\u0020\u00251\u0020products\u0020in\u0020cart\u0020displayed', this.maxItemsToDisplay, this.itemsCount) }, setCartItems() { this.cartItems = this.cart.items && this.cart.items.sort((a, b) => b.item_id - a.item_id) || []; if (this.maxItemsToDisplay > 0) { this.cartItems = this.cartItems.slice(0, parseInt(this.maxItemsToDisplay, 10)); } }, deleteItemFromCart(itemId) { this.isLoading = true; const formKey = hyva.getFormKey(); const postUrl = BASE_URL + 'checkout/sidebar/removeItem/'; fetch(postUrl, { "headers": { "content-type": "application/x-www-form-urlencoded; charset=UTF-8", }, "body": "form_key=" + formKey + "&item_id=" + itemId, "method": "POST", "mode": "cors", "credentials": "include" }).then(response => { if (response.redirected) { window.location.href = response.url; } else if (response.ok) { return response.json(); } else { window.dispatchMessages && window.dispatchMessages([{ type: 'warning', text: 'Could\u0020not\u0020remove\u0020item\u0020from\u0020quote.' }]); this.isLoading = false; } }).then(result => { window.dispatchMessages && window.dispatchMessages([{ type: result.success ? 'success' : 'error', text: result.success ? 'You\u0020removed\u0020the\u0020item.' : result.error_message }], result.success ? 5000 : 0) window.dispatchEvent(new CustomEvent('reload-customer-section-data')); }); }, scrollLock(use = true) { document.body.style.overflow = use ? "hidden" : ""; }, toggleCartDrawer(event) { if (event.detail && event.detail.isOpen !== undefined) { if (event.detail.isOpen) { this.openCartDrawer(); } else { this.open = false; this.scrollLock(false); this.$refs && this.$refs.cartDialogContent && hyva.releaseFocus(this.$refs.cartDialogContent); } } else { this.openCartDrawer() } }, openCartDrawer() { this.open = true; this.scrollLock(true); this.$nextTick(() => { this.$refs && this.$refs.cartDialogContent && hyva.trapFocus(this.$refs.cartDialogContent) }) }, closeCartDrawer() { this.$dispatch('toggle-cart', { isOpen: false }) }, getSectionDataExtraActions() { if (!this.cart.extra_actions) { return ''; } const contentNode = document.createElement('div'); contentNode.innerHTML = this.cart.extra_actions; hyva.activateScripts(contentNode); return contentNode.innerHTML; } } } </script> <section x-cloak x-show="cart" id="cart-drawer" x-data="initCartDrawer()" @private-content-loaded.window="getData($event.detail.data)" @toggle-cart.window="toggleCartDrawer($event)" @keydown.escape="closeCartDrawer" > <div role="dialog" aria-labelledby="cart-drawer-title" aria-modal="true" :aria-hidden="!open" class="fixed inset-y-0 right-0 z-30 flex max-w-full"> <div class="backdrop" x-show="open" x-transition:enter="ease-in-out duration-500" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in-out duration-500" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" role="button" @click="closeCartDrawer" aria-label="Close&#x20;minicart"></div> <div class="relative w-screen max-w-md shadow-2xl" x-show="open" x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" x-transition:enter-start="translate-x-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" x-transition:leave-start="translate-x-0" x-transition:leave-end="translate-x-full" x-ref="cartDialogContent" role="region" :tabindex="open ? 0 : -1" aria-label="My&#x20;Cart" > <div class="flex flex-col h-full max-h-screen bg-white shadow-xl"> <header class="relative px-4 py-6 sm:px-6"> <p id="cart-drawer-title" class="text-lg font-medium leading-7 text-gray-900"> My Cart <span class="items-total text-xs" x-show="maxItemsToDisplay && maxItemsToDisplay < itemsCount" x-text="getItemCountTitle()"> </span> </p> </header> <template x-if="!itemsCount"> <div class="relative px-4 py-6 bg-white border-bs sm:px-6 border-container overflow-y-auto overscroll-y-contain"> Cart is empty </div> </template> <template x-if="itemsCount"> <div class="relative grid gap-6 px-4 py-6 overflow-y-auto overscroll-y-contain bg-white border-b sm:gap-8 sm:px-6 border-container" > <template x-for="item in cartItems"> <div class="flex items-start p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg hover:bg-gray-100"> <a :href="item.product_url" class="w-1/4" :aria-label="hyva.strf('Product\u0020\u0022\u00250\u0022', item.product_name)" > <img :src="item.product_image.src" :width="item.product_image.width" :height="item.product_image.height" loading="lazy" alt="" /> </a> <div class="w-3/4 space-y-2"> <div> <a :href="item.product_url" class="w-1/4" :aria-label="hyva.strf('Product\u0020\u0022\u00250\u0022', item.product_name)" > <p class="text-xl max-w-64 truncate"> <span x-html="item.qty"></span> x <span x-html="item.product_name"></span> </p> <p class="text-sm"><span x-html="item.product_sku"></span></p> </a> </div> <template x-for="option in item.options"> <div class="pt-2"> <p class="font-semibold" x-text="option.label + ':'"></p> <p class="text-secondary" x-html="option.value"></p> </div> </template> <p><span x-html="item.product_price"></span></p> <template x-if="item.product_backorders > 0"> <div class="message notice"> <span class="icon-warning"> &nbsp;This item may delay your order. </span> </div> </template> <div class="pt-4"> <button type="button" class="inline-flex p-2 btn btn-primary" @click="deleteItemFromCart(item.item_id)" :aria-label="hyva.strf('Remove\u0020product\u0020\u0022\u00250\u0022\u0020from\u0020cart', item.product_name)" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="20" height="20" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"/> </svg> </button> </div> </div> </div> </template> </div> </template> <template x-if="itemsCount"> <div> <div class="relative grid gap-6 px-4 py-6 bg-white sm:gap-8 sm:px-6"> <div class="w-full p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg hover:bg-gray-100" > <p>Subtotal: <span x-html="cart.subtotal"></span></p> </div> <div class="w-full p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg hover:bg-gray-100" > <a @click.prevent.stop="closeCartDrawer; $dispatch('toggle-authentication', {url: 'https://www.gigaparts.com/checkout/'});" href="https://www.gigaparts.com/checkout/" class="inline-flex btn btn-primary" > Checkout </a> <span>or</span> <a href="https://www.gigaparts.com/checkout/cart/" class="underline" > View and Edit Cart </a> </div> <div x-html="getSectionDataExtraActions()"></div> </div> </div> </template> </div> <button type="button" @click="closeCartDrawer" aria-label="Close&#x20;minicart" class="absolute top-0 right-2 p-4 mt-2 text-gray-300 transition-colors hover:text-black" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> </svg> </button> </div> <div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50" style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);" x-show="isLoading" x-cloak x-transition:enter="ease-out duration-200" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0"> <!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL --> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" stroke="currentColor" class="text-primary" width="57" height="57" role="img"> <g fill="none" fill-rule="evenodd"> <g transform="translate(1 1)" stroke-width="2"> <circle cx="5" cy="50" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcMode="linear" repeatCount="indefinite"/> </circle> <circle cx="27" cy="5" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcMode="linear" repeatCount="indefinite"/> </circle> <circle cx="49" cy="50" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcMode="linear" repeatCount="indefinite"/> </circle> </g> </g> <title>loader</title></svg> <div class="ml-10 text-primary text-xl"> Loading... </div> </div> </div> </section> <!--Authentication Pop-Up--> <script> function initAuthentication() { return { open: false, forceAuthentication: false, checkoutUrl: 'https://www.gigaparts.com/checkout/index/', errors: 0, hasCaptchaToken: 0, displayErrorMessage: false, errorMessages: [], setErrorMessages: function setErrorMessages(messages) { this.errorMessages = [messages]; this.displayErrorMessage = this.errorMessages.length; }, submitForm: function () { // Do not rename $form, the variable is expected to be declared in the recaptcha output const $form = document.querySelector('#login-form'); if (this.errors === 0) { this.dispatchLoginRequest($form); } }, onPrivateContentLoaded: function (data) { const isLoggedIn = data.customer && data.customer.firstname; if (data.cart && !isLoggedIn) { this.forceAuthentication = !data.cart.isGuestCheckoutAllowed; } }, redirectIfAuthenticated: function (event) { if (event.detail && event.detail.url) { this.checkoutUrl = event.detail.url; } if (!this.forceAuthentication) { window.location.href = this.checkoutUrl; } }, dispatchLoginRequest: function(form) { this.isLoading = true; const username = this.$refs['customer-email'].value; const password = this.$refs['customer-password'].value; const formKey = hyva.getFormKey(); const bodyFields = { 'username': username, 'password': password, 'formKey': formKey }; const fieldName = ''; const recaptchaField = fieldName && form[fieldName]; if (recaptchaField) { bodyFields[fieldName] = recaptchaField.value; } fetch('https://www.gigaparts.com/customer/ajax/login/', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' }, body: JSON.stringify(bodyFields) } ).then(response => { return response.json() } ).then(data=> { this.isLoading = false; if (data.errors) { dispatchMessages([{ type: 'error', text: data.message }], 5000); this.errors = 1; this.hasCaptchaToken = 0; } else { window.location.href = this.checkoutUrl; } }); } } } </script> <section id="authentication-popup" x-data="initAuthentication()" @private-content-loaded.window="onPrivateContentLoaded($event.detail.data)" @toggle-authentication.window="open = forceAuthentication; redirectIfAuthenticated(event)" @keydown.window.escape="open = false" > <div class="backdrop" aria-hidden="true" x-cloak x-show="open" x-transition:enter="ease-in-out duration-500" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in-out duration-500" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" @click="open = false" ></div> <div role="dialog" aria-modal="true" @click.outside="open = false" class="inset-y-0 right-0 z-30 flex max-w-full fixed" x-cloak x-show="open" > <div class="relative w-screen max-w-md pt-16 bg-container-lighter" x-show="open" x-cloak="" x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700" x-transition:enter-start="translate-x-full" x-transition:enter-end="translate-x-0" x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700" x-transition:leave-start="translate-x-0" x-transition:leave-end="translate-x-full" > <div x-show="open" x-cloak="" x-transition:enter="ease-in-out duration-500" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in-out duration-500" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" class="absolute top-0 right-2 flex p-2 mt-2"> <button type="button" @click="open = false;" aria-label="Close&#x20;panel" class="p-2 text-gray-300 transition duration-150 ease-in-out hover:text-black" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> <title>Close panel</title></svg> </button> </div> <template x-if="open"> <div class="flex flex-col h-full py-6 space-y-6 bg-white shadow-xl overflow-y-auto"> <div class="block-customer-login bg-container border border-container mx-4 p-4 shadow-sm"> <p id="authenticate-customer-login" class="text-lg leading-7 text-gray-900"> <strong class="font-medium">Checkout using your account</strong> </p> <form class="form form-login" method="post" @submit.prevent="submitForm();" id="login-form" > <div class="fieldset login"> <div class="field email required"> <label class="label" for="form-login-username" form="login-form" > <span>Email Address</span> </label> <div class="control"> <input name="username" id="form-login-username" x-ref="customer-email" @change="errors = 0" type="email" required autocomplete="off" class="form-input input-text" > </div> </div> <div class="field password required"> <label for="form-login-password" class="label" form="login-form"> <span>Password</span> </label> <div class="control"> <input name="password" id="form-login-password" type="password" class="form-input input-text" required x-ref="customer-password" autocomplete="off" @change="errors = 0" > </div> </div> <input name="context" type="hidden" value="checkout" /> <div class="actions-toolbar flex justify-between pt-6 pb-2 items-center"> <button type="submit" class="inline-flex btn btn-primary disabled:opacity-75" > Sign In </button> <a href="https://www.gigaparts.com/customer/account/forgotpassword/" > Forgot Your Password? </a> </div> </div> </form> </div> <div class="mx-4"> </div> <div class="block-new-customer bg-container border border-container mx-4 p-4 shadow-sm"> <p id="authenticate-new-customer" class="text-lg mb-2 leading-7 text-gray-900"> <strong class="font-medium">Checkout as a new customer</strong> </p> <div class="block-content"> <p class="mb-1"> Creating an account has many benefits: </p> <ul class="list-disc pl-5"> <li> See order and shipping status</li> <li> Track order history</li> <li> Check out faster</li> </ul> <div class="actions-toolbar flex justify-between mt-6 mb-2 items-center"> <a href="https://www.gigaparts.com/customer/account/create/" class="inline-flex btn btn-primary"> Create an Account </a> </div> </div> </div> </div> </template> </div> </div> </section> </div> </header><div class="top-container"> <style> .top-container { max-width: unset; padding-left: unset; padding-right: unset; margin-bottom: 20px; } .nav-sections { margin-bottom: unset; } .banner-container { background-size: cover; } .gigaparts-sale-banner { background-size: auto 40px; background-color: white; text-align: center; overflow: hidden; background-repeat: no-repeat; background-position: center center; } @media only screen and (min-width: 768px) { .gigaparts-sale-banner { background-image: url(https://www.gigaparts.com/media/wysiwyg/Desktop_Website_Highlight_Banner-1002.jpg); width: 100%; height: 40px; margin-bottom: 15px; } } .gigaparts-sale-banner div { font-family: arial, serif; font-size: 20px; margin-top: 0; line-height: 40px; color: #FFFFFF; text-shadow: 0 0 7px #000000; } @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(.97); } 100% { transform: scale(1); } } .pulse { animation-name: pulse; animation-duration: 1s; animation-iteration-count: infinite; } </style> <div class="banner-container"> <a href="https://www.gigaparts.com/join-connect-rewards"> <div class="gigaparts-sale-banner"> <div class="animated pulse"> <span style="color: #ffffff;"></span> </div> </div> </a> </div> <nav class="breadcrumbs hidden md:block lg:mt-0" aria-label="Breadcrumb"> <div class="container"> <ol class="items py-4 flex text-grey text-[13px]"> <li x-data="{ isFirst: true }" :class="isFirst ? 'flex-none' : 'flex-initial truncate'" class="item home truncate" data-debug="true" > <a href="https://www.gigaparts.com/" class="no-underline hover:text-primary" title="Go&#x20;to&#x20;Home&#x20;Page" >Home</a> </li> <li x-data="{ isFirst: false }" :class="isFirst ? 'flex-none' : 'flex-initial truncate'" class="item cms_page truncate" data-debug="NULL" > <span aria-hidden="true" class="separator text-primary px-2">&rsaquo;</span> <span class="text-primary" aria-current="page" >Personalized Name Badges</span> </li> </ol> </div> </nav> </div><main id="maincontent" class="page-main"><div id="contentarea" tabindex="-1"></div> <div class="page messages"><script> function initMessages() { "use strict"; return { messages: window.mageMessages || [], isEmpty() { return this.messages.reduce( function (isEmpty, message) { return isEmpty && message === undefined }, true ) }, removeMessage(messageIndex) { this.messages[messageIndex] = undefined; }, addMessages(messages, hideAfter) { messages.map((message) => { this.messages = this.messages.concat(message); if (hideAfter === undefined && message.type === 'success' && window.defaultSuccessMessageTimeout) { hideAfter = window.defaultSuccessMessageTimeout; } if (hideAfter) { this.setHideTimeOut(this.messages.length -1, hideAfter); } }); }, setHideTimeOut(messageIndex, hideAfter) { setTimeout((messageIndex) => { this.removeMessage(messageIndex); }, hideAfter, messageIndex); }, eventListeners: { ['@messages-loaded.window'](event) { this.addMessages(event.detail.messages, event.detail.hideAfter) }, ['@private-content-loaded.window'](event) { const data = event.detail.data; if ( data.messages && data.messages.messages && data.messages.messages.length ) { this.addMessages(data.messages.messages); } }, ['@clear-messages.window']() { this.messages = []; } } } } </script> <section id="messages" x-data="initMessages()" x-bind="eventListeners" aria-live="assertive" role="alert" > <template x-if="!isEmpty()"> <div class="w-full"> <div class="messages container mx-auto py-3"> <template x-for="(message, index) in messages" :key="index"> <div> <template x-if="message"> <div class="message" :class="message.type" :ui-id="'message-' + message.type" > <span x-html="message.text"></span> <button type="button" class="btn-close-msg text-gray-600 hover:text-black" aria-label="Close message" @click.prevent="removeMessage(index)" > <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="stroke-current" width="18" height="18" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/> </svg> </button> </div> </template> </div> </template> </div> </div> </template> </section> </div><div class="columns"><div class="column main"><style>#html-body [data-pb-style=FSPN4H7]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=Y1LI6C7]{text-align:center}#html-body [data-pb-style=KP7MDAS]{width:100%;border-width:1px;border-color:#cecece;display:inline-block}#html-body [data-pb-style=KHKVT6W]{text-align:center}</style><div data-content-type="row" data-appearance="contained" data-element="main"><div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-background-type="image" data-video-loop="true" data-video-play-only-visible="true" data-video-lazy-load="true" data-video-fallback-src="" data-element="inner" data-pb-style="FSPN4H7"><div data-content-type="products" data-appearance="grid" data-element="main" data-pb-style="Y1LI6C7"> <div class="block widget block-products-list grid"> <div class="block-content"> <div class="mx-auto grid gap-4 sm:grid-cols-2 md:grid-cols-4 lg:grid-cols-6"> <form method="post" action="https://www.gigaparts.com/checkout/cart/add/uenc/%25uenc%25/product/24512/" class="item product product-item product_addtocart_form card-interactive flex flex-col w-full "> <input name="form_key" type="hidden" value="K4RfLZYB4EBtl3GO"> <input type="hidden" name="product" value="24512"> <div class="relative mb-3 overflow-hidden"> <a href="https://www.gigaparts.com/customizable-led-name-badge.html" title="Customizable Laser Etched LED Name Badge" class="product photo product-item-photo block mx-auto bg-white border border-gray-100 " tabindex="-1"> <img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-24512.window="$root.src = $event.detail" src="https://www.gigaparts.com/media/catalog/product/cache/4b830b8877abedfbaa6812c4d6da401a/m/y/my5212d.jpg" loading="lazy" width="240" height="300" alt="Customizable Laser Etched LED Name Badge" title="Customizable Laser Etched LED Name Badge"> </a> <button class="btn-info-cart absolute -bottom-full w-full btn btn-primary justify-center text-sm rounded-none duration-300 transition-all mr-auto" aria-label="Add to Cart Customizable Laser Etched LED Name Badge"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> </svg> <span class="ml-2 inline md:ml-0 lg:ml-2 lg:inline"> Add to Cart </span> </button> <div class="btn-info-actions absolute top-2.5 right-2.5 flex flex-col translate-x-16 duration-300 transition-all"> <button x-data="initWishlist()" @click.prevent="addToWishlist(24512)" aria-label="Add to Wish List" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex shrink-0 items-center justify-center text-gray-500 hover:text-white hover:bg-primary mb-2"> <i class="icon-heart"></i> </button> </div> </div> <div class="product-info flex flex-col grow"> <div class="mt-2 mb-1 relative overflow-hidden h-10 text-primary text-sm "> <a class="product-item-link" href="https://www.gigaparts.com/customizable-led-name-badge.html"> Customizable Laser Etched LED Name Badge </a> </div> <div class="py-1 "> <div tabindex="0" class="rating-summary flex" role="group"> <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #fbbf24" fill="currentColor" aria-hidden="true"> <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> </svg> <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #fbbf24" fill="currentColor" aria-hidden="true"> <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> </svg> <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #fbbf24" fill="currentColor" aria-hidden="true"> <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> </svg> <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #fbbf24" fill="currentColor" aria-hidden="true"> <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> </svg> <svg xmlns="http://www.w3.org/2000/svg" class="fill-current w-4 h-4" viewbox="3 0 20 20" style="color: #fbbf24" fill="currentColor" aria-hidden="true"> <path d="M9.049 2.927c.3-.921 1.603-.921 1.902 0l1.07 3.292a1 1 0 00.95.69h3.462c.969 0 1.371 1.24.588 1.81l-2.8 2.034a1 1 0 00-.364 1.118l1.07 3.292c.3.921-.755 1.688-1.54 1.118l-2.8-2.034a1 1 0 00-1.175 0l-2.8 2.034c-.784.57-1.838-.197-1.539-1.118l1.07-3.292a1 1 0 00-.364-1.118L2.98 8.72c-.783-.57-.38-1.81.588-1.81h3.461a1 1 0 00.951-.69l1.07-3.292z"></path> </svg> </div> </div> <div class="pt-1 text-gray-900 text-lg font-semibold" x-data="initPriceBox()" x-defer="intersect" @update-prices-24512.window="updatePrice($event.detail);"> <span class="price">$19.95</span> </div> </div> </form> <form method="post" action="https://www.gigaparts.com/checkout/cart/add/uenc/%25uenc%25/product/26073/" class="item product product-item product_addtocart_form card-interactive flex flex-col w-full "> <input name="form_key" type="hidden" value="K4RfLZYB4EBtl3GO"> <input type="hidden" name="product" value="26073"> <div class="relative mb-3 overflow-hidden"> <a href="https://www.gigaparts.com/laser-etched-two-tone-name-badge.html" title="Laser Etched Two-Tone Name Badge" class="product photo product-item-photo block mx-auto bg-white border border-gray-100 " tabindex="-1"> <img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-26073.window="$root.src = $event.detail" src="https://www.gigaparts.com/media/catalog/product/cache/4b830b8877abedfbaa6812c4d6da401a/d/s/dsc_7880.jpg" loading="lazy" width="240" height="300" alt="Laser Etched Two-Tone Name Badge" title="Laser Etched Two-Tone Name Badge"> </a> <button class="btn-info-cart absolute -bottom-full w-full btn btn-primary justify-center text-sm rounded-none duration-300 transition-all mr-auto" aria-label="Add to Cart Laser Etched Two-Tone Name Badge"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> </svg> <span class="ml-2 inline md:ml-0 lg:ml-2 lg:inline"> Add to Cart </span> </button> <div class="btn-info-actions absolute top-2.5 right-2.5 flex flex-col translate-x-16 duration-300 transition-all"> <button x-data="initWishlist()" @click.prevent="addToWishlist(26073)" aria-label="Add to Wish List" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex shrink-0 items-center justify-center text-gray-500 hover:text-white hover:bg-primary mb-2"> <i class="icon-heart"></i> </button> </div> </div> <div class="product-info flex flex-col grow"> <div class="mt-2 mb-1 relative overflow-hidden h-10 text-primary text-sm "> <a class="product-item-link" href="https://www.gigaparts.com/laser-etched-two-tone-name-badge.html"> Laser Etched Two-Tone Name Badge </a> </div> <div class="py-1 "> </div> <script> function initConfigurableSwatchOptions_26073() { const configurableOptionsComponent = initConfigurableOptions( '26073', {"attributes":{"93":{"id":"93","code":"color","label":"Color","options":[{"id":"3899","label":"Blue","products":["26077"]},{"id":"3901","label":"Black","products":["26076"]},{"id":"3902","label":"White","products":["26080"]},{"id":"3906","label":"Red","products":["26078"]},{"id":"3913","label":"Grey","products":["26079"]}],"position":"0"}},"template":"$<%- data.price %>","currencyFormat":"$%s","optionPrices":{"26076":{"baseOldPrice":{"amount":17.95},"oldPrice":{"amount":17.95},"basePrice":{"amount":17.95},"finalPrice":{"amount":17.95},"tierPrices":[],"msrpPrice":{"amount":0}},"26077":{"baseOldPrice":{"amount":17.95},"oldPrice":{"amount":17.95},"basePrice":{"amount":17.95},"finalPrice":{"amount":17.95},"tierPrices":[],"msrpPrice":{"amount":0}},"26078":{"baseOldPrice":{"amount":17.95},"oldPrice":{"amount":17.95},"basePrice":{"amount":17.95},"finalPrice":{"amount":17.95},"tierPrices":[],"msrpPrice":{"amount":0}},"26079":{"baseOldPrice":{"amount":17.95},"oldPrice":{"amount":17.95},"basePrice":{"amount":17.95},"finalPrice":{"amount":17.95},"tierPrices":[],"msrpPrice":{"amount":0}},"26080":{"baseOldPrice":{"amount":17.95},"oldPrice":{"amount":17.95},"basePrice":{"amount":17.95},"finalPrice":{"amount":17.95},"tierPrices":[],"msrpPrice":{"amount":0}}},"priceFormat":{"pattern":"$%s","precision":2,"requiredPrecision":2,"decimalSymbol":".","groupSymbol":",","groupLength":3,"integerRequired":false},"prices":{"baseOldPrice":{"amount":17.95},"oldPrice":{"amount":17.95},"basePrice":{"amount":17.95},"finalPrice":{"amount":17.95}},"productId":"26073","chooseText":"Choose an Option...","images":[],"index":{"26076":{"93":"3901"},"26077":{"93":"3899"},"26078":{"93":"3906"},"26079":{"93":"3913"},"26080":{"93":"3902"}},"salable":{"93":{"3901":["26076"],"3899":["26077"],"3906":["26078"],"3913":["26079"],"3902":["26080"]}},"canDisplayShowOutOfStockStatus":true,"channel":"website","salesChannelCode":"base","sku":{"26076":"MY5215-BLK","26077":"MY5215-BLU","26078":"MY5215-RED","26079":"MY5215-GREY","26080":"MY5215-WHT"}} ); const swatchOptionsComponent = initSwatchOptions([]); return Object.assign( configurableOptionsComponent, swatchOptionsComponent, { mediaCallback: "https\u003A\u002F\u002Fwww.gigaparts.com\u002Fswatches\u002Fajax\u002Fmedia\u002F", changeOption(optionId, value, skipUpdateGallery) { if (value === '') { this.selectedValues = this.removeAttrFromSelection(this.selectedValues, optionId) } else { this.selectedValues[optionId] = value; } this.findSimpleIndex(); this.findAllowedAttributeOptions(); this.updatePrices(); !skipUpdateGallery && this.updateGallery(); window.dispatchEvent(new CustomEvent('listing-configurable-selection-changed', { detail: { productId: this.productId, optionId, value, productIndex: this.productIndex, selectedValues: this.selectedValues, candidates: this.findProductIdsForPartialSelection(this.selectedValues), } })); }, updateGallery() { if (!this.productIndex) { return; } fetch(`${this.mediaCallback}?product_id=${this.productIndex}&isAjax=true`, { method: 'GET', headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' } } ).then(response => { return response.json() } ).then(data => { if (data.errors) { // non critical failure only console logged console.warn(data.errors); } else { const image = data && data.medium; image && window.dispatchEvent( new CustomEvent( "update-gallery-26073", {detail: image} ) ); } }).catch(error => { console.warn(error) }); }, preselectQuerystringItems() { // pre-select option like ?size=167 const urlQueryParams = new URLSearchParams(window.location.search.replace('?', '')); Object.values(this.optionConfig.attributes).map(attribute => { // Don't update images on load, since PLPs already set the main image to the selected options const skipUpdateGallery = true; urlQueryParams.get(attribute.code) && this.changeOption(attribute.id, urlQueryParams.get(attribute.code), skipUpdateGallery); }); }, mouseDown: false, startX: 0, maxScroll: 0, scrollLeft: null, slider: null, scrollEvents: { ['@mousedown'](e) { this.slider = e.target.closest('.snap'); if (!this.slider) { return; } this.maxScroll = this.slider.scrollWidth - this.slider.offsetWidth; this.startX = e.pageX - this.slider.offsetLeft; this.scrollLeft = this.slider.scrollLeft; this.mouseDown = true; }, ['@mouseout.self']() { this.mouseDown = false; }, ['@mouseup']() { this.mouseDown = false; }, ['@mousemove'](e) { e.preventDefault(); if (!this.mouseDown) { return; } const x = e.pageX - this.slider.offsetLeft; const scroll = x - this.startX; const scrollLeft = this.scrollLeft - scroll; if (scrollLeft > this.maxScroll) { this.slider.scrollLeft = this.maxScroll; return } this.slider.scrollLeft = this.scrollLeft - scroll; }, ['@onselectstart']() { return false; } }, resizeEvent() { Array.from(this.$root.querySelectorAll('.snap')).forEach(slider => { slider.scrollLeft = 0; }) } } ); } </script> <div x-data="initConfigurableSwatchOptions_26073()" x-defer="intersect" x-init="findAllowedAttributeOptions(); initShowSwatchesIntersect();" @private-content-loaded.window="onGetCartData($event.detail.data)" @resize.window="resizeEvent()" class="mb-2 relative"> <div> </div> <template x-if="isTooltipVisible()"> <div class="absolute pointer-events-none select-none" :style="getTooltipPosition()"> <div class="shadow-lg"> <div class="absolute top-0 left-0 z-10 min-w-20 p-2 -mt-6 text-sm leading-tight text-black transform -translate-x-1/2 -translate-y-full bg-white rounded-lg shadow-lg text-center" :class="{'-translate-x-5' : isFirstItemCol()}"> <template x-if="isVisualSwatch(activeTooltipItem.attribute, activeTooltipItem.item)"> <div class="inline-block border shadow-sm border-container" :style="getTooltipImageStyle(activeTooltipItem.attribute, activeTooltipItem.item)"></div> </template> <span class="mx-2 text-lg font-semibold whitespace-nowrap subtitle" x-html="getTooltipLabel()"></span> </div> <svg class="absolute z-10 w-8 h-8 text-white transform -translate-x-1/5 -translate-y-8 fill-current stroke-current" width="12" height="12"> <rect x="12" y="-12" width="12" height="12" transform="rotate(45)" class="shadow-xl"></rect> </svg> </div> </div> </template> </div> <script> function xnotifFallback(optionConfig) { return { optionConfig, addToCartBtnId: 'product-addtocart-button', isProductInStock(productId) { const product = Object.values(this.optionConfig).find((p) => p.product_id === productId); return product && product.is_in_stock; }, eventListeners: { ['@configurable-selection-changed.window'](event) { if (!event.detail.productIndex) { return; } const addToCartBtnElement = document.getElementById(this.addToCartBtnId); this.isProductInStock(event.detail.productIndex) // ? addToCartBtnElement.classList.remove('hidden') // : addToCartBtnElement.classList.add('hidden'); ? addToCartBtnElement.removeAttribute("disabled") : addToCartBtnElement.setAttribute("disabled", "disabled"); } } } } function initXnotifFallback() { return xnotifFallback({"3901":{"is_in_stock":true,"custom_status":"","product_id":"26076","is_backorder_available":false,"hide_stock_alert":false,"pricealert":""},"3899":{"is_in_stock":true,"custom_status":"","product_id":"26077","is_backorder_available":false,"hide_stock_alert":false,"pricealert":""},"3906":{"is_in_stock":true,"custom_status":"","product_id":"26078","is_backorder_available":false,"hide_stock_alert":false,"pricealert":""},"3913":{"is_in_stock":true,"custom_status":"","product_id":"26079","is_backorder_available":false,"hide_stock_alert":false,"pricealert":""},"3902":{"is_in_stock":true,"custom_status":"","product_id":"26080","is_backorder_available":false,"hide_stock_alert":false,"pricealert":""},"is_in_stock":true}); } </script> <div class="hidden" x-data="initXnotifFallback()" x-bind="eventListeners"></div> <div class="pt-1 text-gray-900 text-lg font-semibold" x-data="initPriceBox()" x-defer="intersect" @update-prices-26073.window="updatePrice($event.detail);"> <span class="price">$17.95</span> </div> </div> </form> <form method="post" action="https://www.gigaparts.com/checkout/cart/add/uenc/%25uenc%25/product/26016/" class="item product product-item product_addtocart_form card-interactive flex flex-col w-full "> <input name="form_key" type="hidden" value="K4RfLZYB4EBtl3GO"> <input type="hidden" name="product" value="26016"> <div class="relative mb-3 overflow-hidden"> <a href="https://www.gigaparts.com/customizable-2-75-x-4-aluminum-name-badge.html" title='Customizable 2.75" x 4" Aluminum Name Badge' class="product photo product-item-photo block mx-auto bg-white border border-gray-100 " tabindex="-1"> <img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-26016.window="$root.src = $event.detail" src="https://www.gigaparts.com/media/catalog/product/cache/4b830b8877abedfbaa6812c4d6da401a/d/s/dsc_7866.jpg" loading="lazy" width="240" height="300" alt='Customizable 2.75" x 4" Aluminum Name Badge' title='Customizable 2.75" x 4" Aluminum Name Badge'> </a> <button class="btn-info-cart absolute -bottom-full w-full btn btn-primary justify-center text-sm rounded-none duration-300 transition-all mr-auto" aria-label="Add to Cart Customizable 2.75&amp;quot; x 4&amp;quot; Aluminum Name Badge"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> </svg> <span class="ml-2 inline md:ml-0 lg:ml-2 lg:inline"> Add to Cart </span> </button> <div class="btn-info-actions absolute top-2.5 right-2.5 flex flex-col translate-x-16 duration-300 transition-all"> <button x-data="initWishlist()" @click.prevent="addToWishlist(26016)" aria-label="Add to Wish List" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex shrink-0 items-center justify-center text-gray-500 hover:text-white hover:bg-primary mb-2"> <i class="icon-heart"></i> </button> </div> </div> <div class="product-info flex flex-col grow"> <div class="mt-2 mb-1 relative overflow-hidden h-10 text-primary text-sm "> <a class="product-item-link" href="https://www.gigaparts.com/customizable-2-75-x-4-aluminum-name-badge.html"> Customizable 2.75" x 4" Aluminum Name Badge </a> </div> <div class="py-1 "> </div> <div class="pt-1 text-gray-900 text-lg font-semibold" x-data="initPriceBox()" x-defer="intersect" @update-prices-26016.window="updatePrice($event.detail);"> <span class="price">$17.95</span> </div> </div> </form> <div class="item product product-item card-interactive flex flex-col w-full "> <div class="relative mb-3 overflow-hidden"> <a href="https://www.gigaparts.com/customizable-4-x-2-75-plastic-name-badge.html" title='Customizable 4" x 2.75" Plastic Name Badge' class="product photo product-item-photo block mx-auto bg-white border border-gray-100 " tabindex="-1"> <img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-26009.window="$root.src = $event.detail" src="https://www.gigaparts.com/media/catalog/product/cache/4b830b8877abedfbaa6812c4d6da401a/d/s/dsc_7865.jpg" loading="lazy" width="240" height="300" alt='Customizable 4" x 2.75" Plastic Name Badge' title='Customizable 4" x 2.75" Plastic Name Badge'> </a> <div class="btn-info-cart absolute -bottom-full w-full flex justify-center items-center h-11 bg-gray-200 duration-300 transition-all mr-auto"> <div class="text-right"> <p class="flex items-center justify-end align-middle gap-x-2 stock unavailable" title="Availability"> <span class="text-red-500 font-semibold">Out of stock</span> </p> </div> </div> <div class="btn-info-actions absolute top-2.5 right-2.5 flex flex-col translate-x-16 duration-300 transition-all"> <button x-data="initWishlist()" @click.prevent="addToWishlist(26009)" aria-label="Add to Wish List" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex shrink-0 items-center justify-center text-gray-500 hover:text-white hover:bg-primary mb-2"> <i class="icon-heart"></i> </button> </div> </div> <div class="product-info flex flex-col grow"> <div class="mt-2 mb-1 relative overflow-hidden h-10 text-primary text-sm "> <a class="product-item-link" href="https://www.gigaparts.com/customizable-4-x-2-75-plastic-name-badge.html"> Customizable 4" x 2.75" Plastic Name Badge </a> </div> <div class="py-1 "> </div> <div class="pt-1 text-gray-900 text-lg font-semibold" x-data="initPriceBox()" x-defer="intersect" @update-prices-26009.window="updatePrice($event.detail);"> <span class="price">$12.95</span> </div> </div> </div> <form method="post" action="https://www.gigaparts.com/checkout/cart/add/uenc/%25uenc%25/product/26013/" class="item product product-item product_addtocart_form card-interactive flex flex-col w-full "> <input name="form_key" type="hidden" value="K4RfLZYB4EBtl3GO"> <input type="hidden" name="product" value="26013"> <div class="relative mb-3 overflow-hidden"> <a href="https://www.gigaparts.com/customizable-3-x-2-plastic-name-badge.html" title='Customizable 3" x 2" Plastic Name Badge' class="product photo product-item-photo block mx-auto bg-white border border-gray-100 " tabindex="-1"> <img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-26013.window="$root.src = $event.detail" src="https://www.gigaparts.com/media/catalog/product/cache/4b830b8877abedfbaa6812c4d6da401a/d/s/dsc_7857.jpg" loading="lazy" width="240" height="300" alt='Customizable 3" x 2" Plastic Name Badge' title='Customizable 3" x 2" Plastic Name Badge'> </a> <button class="btn-info-cart absolute -bottom-full w-full btn btn-primary justify-center text-sm rounded-none duration-300 transition-all mr-auto" aria-label="Add to Cart Customizable 3&amp;quot; x 2&amp;quot; Plastic Name Badge"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> </svg> <span class="ml-2 inline md:ml-0 lg:ml-2 lg:inline"> Add to Cart </span> </button> <div class="btn-info-actions absolute top-2.5 right-2.5 flex flex-col translate-x-16 duration-300 transition-all"> <button x-data="initWishlist()" @click.prevent="addToWishlist(26013)" aria-label="Add to Wish List" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex shrink-0 items-center justify-center text-gray-500 hover:text-white hover:bg-primary mb-2"> <i class="icon-heart"></i> </button> </div> </div> <div class="product-info flex flex-col grow"> <div class="mt-2 mb-1 relative overflow-hidden h-10 text-primary text-sm "> <a class="product-item-link" href="https://www.gigaparts.com/customizable-3-x-2-plastic-name-badge.html"> Customizable 3" x 2" Plastic Name Badge </a> </div> <div class="py-1 "> </div> <div class="pt-1 text-gray-900 text-lg font-semibold" x-data="initPriceBox()" x-defer="intersect" @update-prices-26013.window="updatePrice($event.detail);"> <span class="price">$12.95</span> </div> </div> </form> <div class="item product product-item card-interactive flex flex-col w-full "> <div class="relative mb-3 overflow-hidden"> <a href="https://www.gigaparts.com/customized-3-x-1-25-plastic-name-badge.html" title='Customized 3" x 1.25" Plastic Name Badge' class="product photo product-item-photo block mx-auto bg-white border border-gray-100 " tabindex="-1"> <img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-26015.window="$root.src = $event.detail" src="https://www.gigaparts.com/media/catalog/product/cache/4b830b8877abedfbaa6812c4d6da401a/d/s/dsc_7861.jpg" loading="lazy" width="240" height="300" alt='Customized 3" x 1.25" Plastic Name Badge' title='Customized 3" x 1.25" Plastic Name Badge'> </a> <div class="btn-info-cart absolute -bottom-full w-full flex justify-center items-center h-11 bg-gray-200 duration-300 transition-all mr-auto"> <div class="text-right"> <p class="flex items-center justify-end align-middle gap-x-2 stock unavailable" title="Availability"> <span class="text-red-500 font-semibold">Out of stock</span> </p> </div> </div> <div class="btn-info-actions absolute top-2.5 right-2.5 flex flex-col translate-x-16 duration-300 transition-all"> <button x-data="initWishlist()" @click.prevent="addToWishlist(26015)" aria-label="Add to Wish List" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex shrink-0 items-center justify-center text-gray-500 hover:text-white hover:bg-primary mb-2"> <i class="icon-heart"></i> </button> </div> </div> <div class="product-info flex flex-col grow"> <div class="mt-2 mb-1 relative overflow-hidden h-10 text-primary text-sm "> <a class="product-item-link" href="https://www.gigaparts.com/customized-3-x-1-25-plastic-name-badge.html"> Customized 3" x 1.25" Plastic Name Badge </a> </div> <div class="py-1 "> </div> <div class="pt-1 text-gray-900 text-lg font-semibold" x-data="initPriceBox()" x-defer="intersect" @update-prices-26015.window="updatePrice($event.detail);"> <span class="price">$11.95</span> </div> </div> </div> </div> </div> </div> </div><div data-content-type="divider" data-appearance="default" data-element="main"><hr data-element="line" data-pb-style="KP7MDAS"></div><div data-content-type="products" data-appearance="grid" data-element="main" data-pb-style="KHKVT6W"> <div class="block widget block-products-list grid"> <div class="block-content"> <div class="mx-auto grid gap-4 sm:grid-cols-2 md:grid-cols-4 lg:grid-cols-6"> <form method="post" action="https://www.gigaparts.com/checkout/cart/add/uenc/%25uenc%25/product/26014/" class="item product product-item product_addtocart_form card-interactive flex flex-col w-full "> <input name="form_key" type="hidden" value="eMml4N15gYxLQj23"> <input type="hidden" name="product" value="26014"> <div class="relative mb-3 overflow-hidden"> <a href="https://www.gigaparts.com/customizable-3-x-1-5-oval-plastic-name-badge.html" title='Customizable 3" x 1.5" Oval Plastic Name Badge' class="product photo product-item-photo block mx-auto bg-white border border-gray-100 " tabindex="-1"> <img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-26014.window="$root.src = $event.detail" src="https://www.gigaparts.com/media/catalog/product/cache/4b830b8877abedfbaa6812c4d6da401a/d/s/dsc_7860.jpg" loading="lazy" width="240" height="300" alt='Customizable 3" x 1.5" Oval Plastic Name Badge' title='Customizable 3" x 1.5" Oval Plastic Name Badge'> </a> <button class="btn-info-cart absolute -bottom-full w-full btn btn-primary justify-center text-sm rounded-none duration-300 transition-all mr-auto" aria-label="Add to Cart Customizable 3&amp;quot; x 1.5&amp;quot; Oval Plastic Name Badge"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> </svg> <span class="ml-2 inline md:ml-0 lg:ml-2 lg:inline"> Add to Cart </span> </button> <div class="btn-info-actions absolute top-2.5 right-2.5 flex flex-col translate-x-16 duration-300 transition-all"> <button x-data="initWishlist()" @click.prevent="addToWishlist(26014)" aria-label="Add to Wish List" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex shrink-0 items-center justify-center text-gray-500 hover:text-white hover:bg-primary mb-2"> <i class="icon-heart"></i> </button> </div> </div> <div class="product-info flex flex-col grow"> <div class="mt-2 mb-1 relative overflow-hidden h-10 text-primary text-sm "> <a class="product-item-link" href="https://www.gigaparts.com/customizable-3-x-1-5-oval-plastic-name-badge.html"> Customizable 3" x 1.5" Oval Plastic Name Badge </a> </div> <div class="py-1 "> </div> <div class="pt-1 text-gray-900 text-lg font-semibold" x-data="initPriceBox()" x-defer="intersect" @update-prices-26014.window="updatePrice($event.detail);"> <span class="price">$12.95</span> </div> </div> </form> <form method="post" action="https://www.gigaparts.com/checkout/cart/add/uenc/%25uenc%25/product/25997/" class="item product product-item product_addtocart_form card-interactive flex flex-col w-full "> <input name="form_key" type="hidden" value="eMml4N15gYxLQj23"> <input type="hidden" name="product" value="25997"> <div class="relative mb-3 overflow-hidden"> <a href="https://www.gigaparts.com/36-lanyard-with-hook-and-adj-ball.html" title='36" Lanyard with Hook and Adj. Ball' class="product photo product-item-photo block mx-auto bg-white border border-gray-100 " tabindex="-1"> <img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-25997.window="$root.src = $event.detail" src="https://www.gigaparts.com/media/catalog/product/cache/4b830b8877abedfbaa6812c4d6da401a/m/y/my7038.jpg" loading="lazy" width="240" height="300" alt='36" Lanyard with Hook and Adj. Ball' title='36" Lanyard with Hook and Adj. Ball'> </a> <button class="btn-info-cart absolute -bottom-full w-full btn btn-primary justify-center text-sm rounded-none duration-300 transition-all mr-auto" aria-label="Add to Cart 36&amp;quot; Lanyard with Hook and Adj. Ball"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> </svg> <span class="ml-2 inline md:ml-0 lg:ml-2 lg:inline"> Add to Cart </span> </button> <div class="btn-info-actions absolute top-2.5 right-2.5 flex flex-col translate-x-16 duration-300 transition-all"> <button x-data="initWishlist()" @click.prevent="addToWishlist(25997)" aria-label="Add to Wish List" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex shrink-0 items-center justify-center text-gray-500 hover:text-white hover:bg-primary mb-2"> <i class="icon-heart"></i> </button> </div> </div> <div class="product-info flex flex-col grow"> <div class="mt-2 mb-1 relative overflow-hidden h-10 text-primary text-sm "> <a class="product-item-link" href="https://www.gigaparts.com/36-lanyard-with-hook-and-adj-ball.html"> 36" Lanyard with Hook and Adj. Ball </a> </div> <div class="py-1 "> </div> <div class="pt-1 text-gray-900 text-lg font-semibold" x-data="initPriceBox()" x-defer="intersect" @update-prices-25997.window="updatePrice($event.detail);"> <span class="price">$4.95</span> </div> </div> </form> <form method="post" action="https://www.gigaparts.com/checkout/cart/add/uenc/%25uenc%25/product/26189/" class="item product product-item product_addtocart_form card-interactive flex flex-col w-full "> <input name="form_key" type="hidden" value="eMml4N15gYxLQj23"> <input type="hidden" name="product" value="26189"> <div class="relative mb-3 overflow-hidden"> <a href="https://www.gigaparts.com/white-7-8-x-36-break-away-lanyard.html" title='White 7/8" x 36" Break-Away Lanyard' class="product photo product-item-photo block mx-auto bg-white border border-gray-100 " tabindex="-1"> <img class="hover:shadow-sm object-contain product-image-photo" x-data="" @update-gallery-26189.window="$root.src = $event.detail" src="https://www.gigaparts.com/media/catalog/product/cache/4b830b8877abedfbaa6812c4d6da401a/m/y/my7040.jpg" loading="lazy" width="240" height="300" alt='White 7/8" x 36" Break-Away Lanyard' title='White 7/8" x 36" Break-Away Lanyard'> </a> <button class="btn-info-cart absolute -bottom-full w-full btn btn-primary justify-center text-sm rounded-none duration-300 transition-all mr-auto" aria-label="Add to Cart White 7/8&amp;quot; x 36&amp;quot; Break-Away Lanyard"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewbox="0 0 24 24" stroke-width="2" stroke="currentColor" class="h-6 w-6 border-current inline" width="25" height="25" aria-hidden="true"> <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"></path> </svg> <span class="ml-2 inline md:ml-0 lg:ml-2 lg:inline"> Add to Cart </span> </button> <div class="btn-info-actions absolute top-2.5 right-2.5 flex flex-col translate-x-16 duration-300 transition-all"> <button x-data="initWishlist()" @click.prevent="addToWishlist(26189)" aria-label="Add to Wish List" type="button" class="rounded-full w-9 h-9 bg-gray-200 p-0 border-0 inline-flex shrink-0 items-center justify-center text-gray-500 hover:text-white hover:bg-primary mb-2"> <i class="icon-heart"></i> </button> </div> </div> <div class="product-info flex flex-col grow"> <div class="mt-2 mb-1 relative overflow-hidden h-10 text-primary text-sm "> <a class="product-item-link" href="https://www.gigaparts.com/white-7-8-x-36-break-away-lanyard.html"> White 7/8" x 36" Break-Away Lanyard </a> </div> <div class="py-1 "> </div> <div class="pt-1 text-gray-900 text-lg font-semibold" x-data="initPriceBox()" x-defer="intersect" @update-prices-26189.window="updatePrice($event.detail);"> <span class="price">$5.95</span> </div> </div> </form> </div> </div> </div> </div></div></div></div></div></main><footer class="page-footer"><div class="footer content"><div class="text-gray-600 text-base leading-6 bg-white relative pt-14 border-t border-t-gray-300"> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div class="footer-newsletter"> <div class="footer-newsletter-text"> <div class="footer-newsletter-title"> Subscribe Today </div> <div class="footer-newsletter-subtitle"> Sign up for all the news about our latest arrivals and exclusive discounts! </div> </div> <div class="footer-newsletter-form"> <div class="klaviyo-form-Y4C5ZC"></div> </div> </div></div> <div class="py-8"> <div class="max-w-full lg:max-w-5xl xl:max-w-7xl w-full mx-auto px-4 lg:flex lg:justify-between"> <div class="mb-6 lg:mb-0 lg:w-1/3"> <div class="mb-5 flex justify-center w-full md:block"> <img src="https://www.gigaparts.com/static/version1732095243/frontend/GigaParts/hyva/en_US/images/logo.svg" title="" alt="" height="40" class="h-10" /> </div> <div class="text-[14px] mb-5"> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true">We look forward to adding you to our long list of satisfied customers!</div> </div> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div class="flex items-center mb-5"> <div class="w-[60px] h-[60px] mr-2.5" style="margin-right: 10px;"> <img src="/media/wysiwyg/header/hotline_icon_60.png" width="60" height="60" loading="lazy" alt="Hotline icon" /> </div> <div class="font-medium text-[24px] text-gray-700"> <div class="text-gray-500 font-normal text-[14px]">Customer Service:</div> <div><a href="tel:+12563841008">1-256-384-1008 <br> 9am-6pm CST</a></div> </div> </div> </div> <div class="text-[14px] text-gray-700 font-semibold"> <span class="text-gray-500 font-normal"> Automated Attendant </span><br> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true">+1-866-535-4442 (US & Canada)</div> </div> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div class="text-gray-700 font-semibold mt-4"> <div class="text-[14px] text-gray-500 font-normal mb-1.5">We're on social media too!</div> <div style="font-size:24px"> <a href="https://twitter.com/gigaparts" target="_blank" class="icon-social-twitter text-[24px] hover:text-primary"></a> <a href="https://www.facebook.com/GigaPartsHuntsville" target="_blank" class="icon-social-facebook text-[24px] hover:text-primary"></a> <a href="https://www.instagram.com/gigaparts/" target="_blank" class="icon-social-instagram text-[24px] hover:text-primary"></a> </div> </div></div> </div> <div x-data="{ open: false }"> <a @click="open = ! open" class="flex justify-between align-middle cursor-pointer group lg:cursor-default" > <h4 class="uppercase font-semibold text-[14px] text-gray-700 group-hover:underline lg:group-hover:no-underline"> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true">Shop</div> </h4> <span class="transition-transform" :class="{ 'hidden': open }"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="text-gray-500 stroke-current w-4 h-4 lg:hidden" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M12 4v16m8-8H4"/> <title>plus</title></svg> </span> <span class="transition-transform" :class="{ 'hidden': ! open }"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="text-gray-500 stroke-current w-4 h-4 lg:hidden" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M20 12H4"/> <title>minus</title></svg> </span> </a> <ul class="flex-col gap-4 mt-4 mb-6 lg:flex" :class="{ 'flex': open, 'hidden': ! open }"> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><li> <a href="https://www.gigaparts.com/radio-gear" class="text-[14px] hover:underline">Amateur Radios</a> </li> <li> <a href="https://www.gigaparts.com/computers" class="text-[14px] hover:underline">Computers</a> </li> <li> <a href="https://www.gigaparts.com/personalized-items" class="text-[14px] hover:underline">Personalized Items</a> </li> <li> <a href="https://www.gigaparts.com/photography" class="text-[14px] hover:underline">Photography Gear</a> </li> <li> <a href="https://www.gigaparts.com/makers" class="text-[14px] hover:underline" >3D Printing</a> </li> <li> <a href="https://www.gigaparts.com/nsearch/?lp=NS-AMR#?lp=NS-AMR&res_per_page=60H&Stockstatusfilter=Currently+in+stock%21&sort_by_field=Price+High+to+Low&search_return=all" class="text-[14px] hover:underline">Clearance Sale</a> </li></div> </ul> </div> <div x-data="{ open: false }" class="pt-4 lg:p-0"> <a @click="open = ! open" class="flex justify-between align-middle cursor-pointer group lg:cursor-default" > <h4 class="uppercase font-semibold text-[14px] text-gray-700 group-hover:underline lg:group-hover:no-underline"> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true">Customer service</div> </h4> <span class="transition-transform" :class="{ 'hidden': open }"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="text-gray-500 stroke-current w-4 h-4 lg:hidden" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M12 4v16m8-8H4"/> <title>plus</title></svg> </span> <span class="transition-transform" :class="{ 'hidden': ! open }"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="text-gray-500 stroke-current w-4 h-4 lg:hidden" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M20 12H4"/> <title>minus</title></svg> </span> </a> <ul class="flex-col gap-4 mt-4 mb-6 lg:flex" :class="{ 'flex': open, 'hidden': ! open }"> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><li> <a href="https://www.gigaparts.net/orderstatus/" class="text-[14px] hover:underline"> Check Order Status </a> </li> <li> <a href="https://www.gigaparts.net/returns/" class="text-[14px] hover:underline"> Return Request </a> </li> <li> <a href="/order-policies" class="text-[14px] hover:underline"> Order Policy </a> </li> <li> <a href="/warranties-policy" class="text-[14px] hover:underline"> Warranty Policy </a> </li> <li> <a href="/trade-in" class="text-[14px] hover:underline"> Trade-In's </a> </li> <li> <a href="/contact" class="text-[14px] hover:underline"> Get in touch </a> </li></div> </ul> </div> <div x-data="{ open: false }" class="pt-4 lg:p-0"> <a @click="open = ! open" class="flex justify-between align-middle cursor-pointer group lg:cursor-default" > <h4 class="uppercase font-semibold text-[14px] text-gray-700 group-hover:underline lg:group-hover:no-underline"> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true">Our company</div> </h4> <span class="transition-transform" :class="{ 'hidden': open }"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="text-gray-500 stroke-current w-4 h-4 lg:hidden" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M12 4v16m8-8H4"/> <title>plus</title></svg> </span> <span class="transition-transform" :class="{ 'hidden': ! open }"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="text-gray-500 stroke-current w-4 h-4 lg:hidden" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M20 12H4"/> <title>minus</title></svg> </span> </a> <ul class="flex-col gap-4 mt-4 mb-6 lg:flex" :class="{ 'flex': open, 'hidden': ! open }"> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><li> <a href="/about-us" class="text-[14px] hover:underline"> About Us </a> </li> <li> <a href="/jobs" class="text-[14px] hover:underline"> Careers </a> </li> <li> <a href="/report-a-problem" class="text-[14px] hover:underline"> Report A Problem </a> </li></div> </ul> </div> <div x-data="{ open: false }" class="pt-4 lg:p-0"> <a @click="open = ! open" class="flex justify-between align-middle cursor-pointer group lg:cursor-default" > <h4 class="uppercase font-semibold text-[14px] text-gray-700 group-hover:underline lg:group-hover:no-underline"> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true">My account</div> </h4> <span class="transition-transform" :class="{ 'hidden': open }"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="text-gray-500 stroke-current w-4 h-4 lg:hidden" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M12 4v16m8-8H4"/> <title>plus</title></svg> </span> <span class="transition-transform" :class="{ 'hidden': ! open }"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="text-gray-500 stroke-current w-4 h-4 lg:hidden" width="24" height="24" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M20 12H4"/> <title>minus</title></svg> </span> </a> <ul class="flex-col gap-4 mt-4 mb-6 lg:flex" :class="{ 'flex': open, 'hidden': ! open }"> <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><li><a href="/customer/account" class="text-[14px] hover:underline">My account</a></li> <li><a href="/sales/order/history" class="text-[14px] hover:underline">My orders</a></li></div> </ul> </div> </div> </div> <div class="bg-zinc-900"> <div class="py-6 text-sm sm:flex sm:justify-between max-w-[640px] md:max-w-3xl lg:max-w-5xl xl:max-w-7xl w-full mx-auto px-7"> <div class="text-gray-500"> 漏 GigaParts, Inc. </div> <div class="text-gray-400 mt-2 sm:mt-0"> <a href="https://www.gigaparts.com/privacy-policy-cookie-restriction-mode/" class="hover:underline" > Terms &amp; Conditions </a> | <a href="https://www.gigaparts.com/privacy-policy-cookie-restriction-mode/" class="hover:underline" > Privacy Policy </a> </div> </div> </div> </div> </div></footer><div data-role="signifyd-fingerprint" data-bind="scope: 'signifyd-fingerprint'"></div> <script type="text/x-magento-init"> { "[data-role=signifyd-fingerprint]": { "Magento_Ui/js/core/app": {"components":{"signifyd-fingerprint":{"component":"Signifyd_Connect\/js\/view\/signifyd-fingerprint"}}} } } </script> <script> function initWarrantyCart() { return { cart: {}, getData(data) { if (data.cart) { this.cart = data.cart } } } } function initWarrantyContent() { return { warrantyData: null, openWarrantyModal: false, selectedWarranty: false, isLoading: false, receiveWarrantyData(data) { if (data['warranty_popup']) { this.warrantyData = data['warranty_popup']; if (this.warrantyData['added_product']) { this.openWarrantyModal = true; } } }, removeWarrantyDataFromCustomerSection() { const browserStorage = hyva.getBrowserStorage(); const customerSection = JSON.parse(browserStorage.getItem('mage-cache-storage')); if (customerSection) { customerSection['warranty_popup'] = {}; browserStorage.setItem('mage-cache-storage', JSON.stringify(customerSection)); } }, addToCartWarranty(productId) { this.isLoading = true; const formKey = hyva.getFormKey(); const postUrl = BASE_URL + 'checkout/cart/add'; fetch(postUrl, { "headers": { "content-type": "application/x-www-form-urlencoded; charset=UTF-8", }, "body": "form_key=" + formKey + "&product=" + productId + "&uenc=" + hyva.getUenc(), "method": "POST", "mode": "cors", "credentials": "include" }).then(function (response) { if (response.redirected) { window.location.href = response.url; } }).catch(function (error) { typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: "error", text: error }], 5000 ); }); }, } } </script> <div x-data="{...initWarrantyContent(), ...initWarrantyCart()}" x-show="openWarrantyModal" class="fixed top-0 left-0 w-full h-full flex items-center justify-center z-50" style="background-color: rgba(0, 0, 0, 0.5);display:none;" > <div class="text-left bg-white h-auto p-4 shadow-xl rounded mx-2 overflow-y-auto max-h-full md:mx-0 md:w-full md:max-w-2xl md:p-8" @click.away="openWarrantyModal = false" > <div x-show="isLoading" class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50" style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);" x-transition:enter="ease-out duration-200" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="ease-in duration-200" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" > <!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL --> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" stroke="currentColor" class="text-primary" width="57" height="57" role="img"> <g fill="none" fill-rule="evenodd"> <g transform="translate(1 1)" stroke-width="2"> <circle cx="5" cy="50" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcMode="linear" repeatCount="indefinite"/> </circle> <circle cx="27" cy="5" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcMode="linear" repeatCount="indefinite"/> </circle> <circle cx="49" cy="50" r="5"> <animate attributeName="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcMode="linear" repeatCount="indefinite"/> <animate attributeName="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcMode="linear" repeatCount="indefinite"/> </circle> </g> </g> <title>loader</title></svg> </div> <div class="flex justify-between md:pb-4 md:mb-4 md:border-b md:border-b-gray-300"> <div class="flex-col hidden w-1/2 md:flex" @private-content-loaded.window="receiveWarrantyData($event.detail.data); $nextTick(() => {removeWarrantyDataFromCustomerSection()});" > <div class="text-green-500">Added to cart</div> <div class="flex items-center"> <span class="icon-check text-green-500 mr-1 -ml-[18px]"></span> <a href="#" :title="warrantyData?.added_product?.product_name"> <img :src="warrantyData?.added_product?.thumb_image?.src" :alt="warrantyData?.added_product?.thumb_image?.alt" class="h-16"> </a> </div> <div class="font-semibold text-sm" x-html="warrantyData?.added_product?.product_price"></div> </div> <div class="w-full flex flex-col items-end md:w-1/2" @private-content-loaded.window="getData(event.detail.data)" > <a class="text-primary" href="#" @click.prevent="openWarrantyModal = false">Continue Shopping</a> <div class="h-14 items-center text-sm hidden md:flex"> <div class="mr-2">Cart Subtotal (<span x-html="cart.summary_count"></span> items):</div> <div class="font-semibold" x-html="cart.subtotal"></div> </div> <a href="https://www.gigaparts.com/checkout/cart/" class="btn btn-primary w-auto hidden md:flex" > Go to Cart </a> </div> </div> <div class="md:flex md:flex-wrap" @private-content-loaded.window="receiveWarrantyData($event.detail.data)" > <div class="flex justify-center md:w-1/2 md:items-start"> <a href="#" :title="warrantyData?.added_product?.product_name"> <img :src="warrantyData?.added_product?.thumb_image?.src" :alt="warrantyData?.added_product?.thumb_image?.alt"> </a> </div> <div class="modal_warranty_description relative md:w-1/2"> <div class="icon-shield absolute left-0 top-0.5 text-xl"></div> <div x-html="warrantyData?.warranty_description"></div> <div class=""> <template x-for="(product, index) in warrantyData?.product_warranties" :key="product.product_id"> <div class="mb-2 flex justify-between"> <div> <input :id="'popup-warranty-' + index" type="radio" :value="product.product_id" name="warranty" class="mr-1" x-model="selectedWarranty"> <label :for="'popup-warranty-' + index" x-text="product.title" class="cursor-pointer"></label> </div> <div class="font-semibold" x-html="product.price"></div> </div> </template> <div class="pl-6 mb-4"> <a href="https://www.gigaparts.com/warranty-options/" target="_blank" class="text-primary underline"> Learn more about warranty options </a> </div> <div> <button class="btn w-full justify-center" :disabled="!selectedWarranty" :class="selectedWarranty ? 'btn-primary' : 'hover:bg-gray-500'" @click.prevent="addToCartWarranty(selectedWarranty)" > <template x-if="selectedWarranty"> <span class="mr-1"> <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="border-current" width="20" height="20" role="img"> <path stroke-linecap="round" stroke-linejoin="round" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 11-4 0 2 2 0 014 0z"/> <title>shopping-cart</title></svg> </span> </template> <span x-text="selectedWarranty ? 'Add to Cart' : 'Select a warranty'"></span> </button> </div> </div> </div> <template x-if="warrantyData?.added_product && warrantyData?.also_bought.length"> <div class="w-full border-t border-t-gray-300 mt-4 pt-4"> <div class="mb-4"> <span class="text-lg font-semibold">People also bought</span> <span class="">(4 items):</span> </div> <div class="max-w-full"> <div class="flex overflow-x-auto pb-4"> <template x-for="(product, index) in warrantyData?.also_bought" :key="product.product_id"> <div class="w-1/4 flex-none px-2 border-r border-r-gray-300 last:border-r-0"> <div class="flex flex-col items-center"> <div> <a :href="product.product_url" :title="product.product_name"> <img :src="product?.product_image?.src" :alt="product?.product_image?.alt"> </a> </div> <div class="h-10 flex text-center my-1 overflow-hidden"> <span x-text="product.product_name"></span> </div> <div class="font-semibold text-center mb-2"> <span x-html="product.product_price"></span> </div> <button @click.prevent="addToCartWarranty(product.product_id)" class="btn btn-primary btn-size-sm">Add to Cart</button> </div> </div> </template> </div> </div> </div> </template> </div> </div> </div> <!-- Shopping Guarantee Seal --> <script> const script = document.createElement('script') script.src = '\u002F\u002Fguarantee\u002Dcdn.com\u002FSealCore\u002Fapi\u002Fgjs\u003FSN\u003D908309503\u0026t10'; script.type = 'text/javascript'; document.head.append(script); </script> <style> span[id='Kicker Custom Minimal2_1'], span[id='Kicker Custom Minimal2_2'] { display: none !important; } ._GUARANTEE_Kicker_Container { display: none !important; } </style> <!-- /Shopping Guarantee Seal --> <script src="https://apis.google.com/js/platform.js?onload=renderBadge" async defer></script> <script> var isDisabledForMobile = 1, badgeAvailable = true; if (isDisabledForMobile && window.innerWidth < 768) { badgeAvailable = false; } if (badgeAvailable) window.renderBadge = function () { var ratingBadgeContainer = document.createElement("div"); document.body.appendChild(ratingBadgeContainer); window.gapi.load('ratingbadge', function () { window.gapi.ratingbadge.render(ratingBadgeContainer, { "merchant_id": 10780, "position": "BOTTOM_RIGHT" }); }); } </script> <script> (() => { function src_default(Alpine) { Alpine.directive("intersect", (el, { value, expression, modifiers }, { evaluateLater, cleanup }) => { let evaluate = evaluateLater(expression); let options = { rootMargin: getRootMargin(modifiers), threshold: getThreshhold(modifiers) }; let observer = new IntersectionObserver((entries) => { entries.forEach((entry) => { if (entry.isIntersecting === (value === "leave")) return; evaluate(); modifiers.includes("once") && observer.disconnect(); }); }, options); observer.observe(el); cleanup(() => { observer.disconnect(); }); }); } function getThreshhold(modifiers) { if (modifiers.includes("full")) return 0.99; if (modifiers.includes("half")) return 0.5; if (!modifiers.includes("threshold")) return 0; let threshold = modifiers[modifiers.indexOf("threshold") + 1]; if (threshold === "100") return 1; if (threshold === "0") return 0; return Number(`.${threshold}`); } function getLengthValue(rawValue) { let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/); return match ? match[1] + (match[2] || "px") : void 0; } function getRootMargin(modifiers) { const key = "margin"; const fallback = "0px 0px 0px 0px"; const index = modifiers.indexOf(key); if (index === -1) return fallback; let values = []; for (let i = 1; i < 5; i++) { values.push(getLengthValue(modifiers[index + i] || "")); } values = values.filter((v) => v !== void 0); return values.length ? values.join(" ").trim() : fallback; } document.addEventListener("alpine:init", () => { window.Alpine.plugin(src_default); }); })(); </script> <script> for (const [selector, deferUntil] of Object.entries({".product-slider section[x-data]":"intersect",".product-info [x-data]":"intersect","#filters-content [x-data]":"intersect","#review_form":"intersect","section[x-data^=initRecentlyViewedProductsComponent]":"intersect","div[x-data^=initBundleOptions]":"intersect","#product_addtocart_form [x-data]":"intersect","#notice-cookie-block":"intersect"})) { document.querySelectorAll(selector).forEach(el => el.setAttribute('x-defer', `${deferUntil}`)); } </script> <script> (function () { "use strict"; const hasAlpine = new Promise(resolve => { window.addEventListener('alpine:initialized', resolve, {once: true, passive: true}); }); const hasInteract = new Promise(resolve => { (events => { const onInteract = () => { resolve(); events.forEach(type => window.removeEventListener(type, onInteract)); } events.forEach(type => window.addEventListener(type, onInteract, {once: true, passive: true})) })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown']) }); const onIntersect = (el) => { return new Promise(resolve => { const observer = new IntersectionObserver(entries => { for (const entry of entries) { if (entry.isIntersecting) { observer.disconnect() resolve(); } } }, {}); observer.observe(el); }); } function runComponent(el) { hasAlpine.then(() => { el.removeAttribute('x-ignore'); queueMicrotask(() => Alpine.initTree(el)); }); } function initDeferredComponents() { document.querySelectorAll('[x-data][x-defer]').forEach(el => { el.setAttribute('x-ignore', ''); const deferUntil = (el.getAttribute('x-defer') || '').trim(); switch (deferUntil) { case 'interact': hasInteract.then(() => runComponent(el)); break; case 'intersect': onIntersect(el).then(() => runComponent(el)) break; case 'idle': window.requestIdleCallback ? window.requestIdleCallback(() => runComponent(el), {timeout: 4000}) : setTimeout(() => runComponent(el), 4000); break; case 'eager': runComponent(el); break; default: if (deferUntil.startsWith('event:') && deferUntil.length > 6) { window.addEventListener(deferUntil.substring(6), () => runComponent(el), {once: true, passive: true}); } } }); } window.addEventListener('alpine:init', initDeferredComponents, {once: true, passive: true}); })() </script> <script type="module" src="https://www.gigaparts.com/static/version1732095243/frontend/GigaParts/hyva/en_US/Hyva_Theme/js/alpine3.min.js" defer crossorigin ></script> <script> 'use strict'; function dispatchMessages(messages, hideAfter) { const messagesEvent = new CustomEvent("messages-loaded", { detail: { messages: messages, hideAfter: hideAfter } }); window.dispatchEvent(messagesEvent); } if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { console.warn("Hyv盲 helpers are not loaded yet. Make sure they are included before this script"); } (function( hyva, undefined ) { hyva.initFormKey = () => { const inputSelector = 'input[name="form_key"]', formKey = hyva.getFormKey(); Array.from(document.querySelectorAll(inputSelector)).map(function (input) { input.value = formKey }); } hyva.initMessages = () => { try { const messages = hyva.getCookie('mage-messages'); window.mageMessages = messages ? JSON.parse(decodeURIComponent(messages).replace(/\+/g, ' ')) : []; dispatchMessages(window.mageMessages); // empty `mage-messages` cookie const skipSetDomain = true; hyva.setCookie('mage-messages','', -1, skipSetDomain); } catch (error) { console.warn('Error parsing Cookie Messages:', error); } } window.addEventListener('DOMContentLoaded', hyva.initFormKey); hyva.alpineInitialized(hyva.initMessages) }( window.hyva = window.hyva || {} )); </script> <script> 'use strict'; { const private_content_key = 'mage-cache-storage'; const private_content_expire_key = 'mage-cache-timeout'; const private_content_version_key = 'private_content_version'; const section_data_ids_key = 'section_data_ids'; const mage_cache_session_id_key = 'mage-cache-sessid'; const last_visited_store_key = 'last_visited_store'; const ttl = 3600; if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) { console.warn("Hyv盲 helpers are not loaded yet. Make sure they are included before this script"); } function loadSectionData () { const browserStorage = hyva.getBrowserStorage(); if (!browserStorage) { typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: "warning", text: "Please enable LocalStorage in your browser." }] ); return; } try { let isInvalid = false; if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) { isInvalid = true; } hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false); if (!hyva.getCookie(mage_cache_session_id_key)) { isInvalid = true; browserStorage.removeItem(private_content_key); const skipSetDomain = true; const days = false; hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain) } const cookieVersion = hyva.getCookie(private_content_version_key); const storageVersion = browserStorage.getItem(private_content_version_key); if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) { isInvalid = true; } const privateContentExpires = browserStorage.getItem(private_content_expire_key); if (privateContentExpires && new Date(privateContentExpires) < new Date()) { browserStorage.removeItem(private_content_key); } if (isInvalid && cookieVersion) { fetchPrivateContent([]); } else if (cookieVersion && storageVersion && cookieVersion === storageVersion) { const privateContent = JSON.parse(browserStorage.getItem(private_content_key)); if ( privateContent && privateContentExpires && privateContent.cart && privateContent.customer ) { dispatchPrivateContent(privateContent); } else { fetchPrivateContent([]); } } else { if (document.getElementById('default-section-data')) { const privateContent = JSON.parse(document.getElementById('default-section-data').innerText.trim()); dispatchPrivateContent(privateContent); } else { dispatchPrivateContent({}); } } } catch (error) { console.warn('Error retrieving Private Content:', error); } } hyva.alpineInitialized(loadSectionData) window.addEventListener('reload-customer-section-data', loadSectionData); function dispatchPrivateContent(data) { const privateContentEvent = new CustomEvent("private-content-loaded", { detail: { data: data } }); window.dispatchEvent(privateContentEvent); } function fetchPrivateContent(sections) { fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, { method: 'GET', headers: { 'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest' } }) .then(response => response.json()) .then( data => { if (data) { try { const browserStorage = hyva.getBrowserStorage(); // merge new data preserving non-invalidated sections const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}') || {}; if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) { delete oldSectionData['checkout-data']; } const newSectionData = Object.assign(oldSectionData, data); dispatchPrivateContent(newSectionData); // don't persist messages, they've been dispatched already if (newSectionData.messages && newSectionData.messages.messages ) { newSectionData.messages.messages = []; } browserStorage.setItem(private_content_key, JSON.stringify(newSectionData)); const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString(); browserStorage.setItem(private_content_expire_key, expiresAt); const newCookieVersion = hyva.getCookie(private_content_version_key); browserStorage.setItem(private_content_version_key, newCookieVersion); // We don't need the section_data_ids in Hyv盲, but we store them for compatibility // with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout hyva.setCookie( section_data_ids_key, JSON.stringify( Object.keys(data).reduce((sectionDataIds, sectionKey) => { sectionDataIds[sectionKey] = data[sectionKey]['data_id']; return sectionDataIds; }, {}) ), false, true ); } catch (error) { console.warn("Couldn't store privateContent", error); } } } ); } } </script> <script> (() => { document.addEventListener('submit', event => event.target.action = event.target.action.replace('%25uenc%25', hyva.getUenc())); })() </script> <script> (events => { const dispatchUserInteractionEvent = () => { events.forEach(type => window.removeEventListener(type, dispatchUserInteractionEvent)) window.dispatchEvent(new Event('init-external-scripts')) }; events.forEach(type => window.addEventListener(type, dispatchUserInteractionEvent, {once: true, passive: true})) })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown']) </script> <script> function initWishlist() { return { addToWishlist(productId) { const formKey = hyva.getFormKey(); const postUrl = BASE_URL + 'wishlist/index/add/'; fetch(postUrl, { "headers": { "content-type": "application/x-www-form-urlencoded; charset=UTF-8", }, "body": "form_key=" + formKey + "&product=" + productId + "&uenc=" + hyva.getUenc(), "method": "POST", "mode": "cors", "credentials": "include" }).then(function (response) { if (response.redirected) { window.location.href = response.url; } else if (response.ok) { return response.json(); } else { typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: "warning", text: "Could\u0020not\u0020add\u0020item\u0020to\u0020wishlist." }], 5000 ); } }).then(function (response) { if (!response) { return } typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: (response.success) ? "success" : "error", text: (response.success) ? "Product\u0020has\u0020been\u0020added\u0020to\u0020your\u0020Wish\u0020List." : response.error_message }], 5000 ); const reloadCustomerDataEvent = new CustomEvent("reload-customer-section-data"); window.dispatchEvent(reloadCustomerDataEvent); }).catch(function (error) { typeof window.dispatchMessages !== "undefined" && window.dispatchMessages( [{ type: "error", text: error }], 5000 ); }); } } } </script> <script> function initPriceBox() { return { updatePrice(priceData) { const regularPriceLabel = this.$root.querySelector('.normal-price .price-label'); const regularPriceElement = this.$root.querySelector('.normal-price [data-price-type=finalPrice].price-wrapper .price'); const basePriceElement = this.$root.querySelector('.normal-price [data-price-type=basePrice].price-wrapper .price'); if (priceData.finalPrice.amount < priceData.oldPrice.amount) { regularPriceLabel && regularPriceLabel.classList.add('hidden'); } else { regularPriceLabel && regularPriceLabel.classList.remove('hidden'); } regularPriceElement && (regularPriceElement.innerText = hyva.formatPrice(priceData.finalPrice.amount)); basePriceElement && (basePriceElement.innerText = hyva.formatPrice(priceData.basePrice.amount)); } } } </script> <script> if (HTMLScriptElement.supports && HTMLScriptElement.supports('speculationrules')) { const specScript = document.createElement('script'); specScript.type = 'speculationrules'; specRules = { 'prerender': [{ 'where': { 'and': [ { 'href_matches': '/*.html' }, { 'not': {'selector_matches': '.do-not-prerender'}} ] }, 'eagerness': 'moderate' }] }; specScript.textContent = JSON.stringify(specRules); document.body.append(specScript); } </script> <script> function initConfigurableOptions(productId, optionConfig) { function findPathParam(key) { const baseUrl = (BASE_URL.substring(0, 2) === '//' ? 'http:' : '') + BASE_URL; const baseUrlParts = (new URL(baseUrl)).pathname.replace(/\/$/, '').split('/'); const pathParts = window.location.pathname.split('/').slice(baseUrlParts.length + 3); for (let i = 0; i < pathParts.length; i += 2) { if (pathParts[i] === key && pathParts.length > i) { return pathParts[i + 1]; } } } return { optionConfig, productId, itemId: (new URLSearchParams(window.location.search)).get('id') || findPathParam('id'), allowedAttributeOptions: [], selectedValues: [], init() { this.findAllowedAttributeOptions(); this.$nextTick(() => { if (typeof this.optionConfig.defaultValues === 'object') { for (const [attributeId, value] of Object.entries(this.optionConfig.defaultValues)) { this.changeOption(attributeId, value + ''); } } }); }, findSimpleIndex() { this.productIndex = this.calculateSimpleIndexForPartialSelection(this.selectedValues); }, calculateSimpleIndexForPartialSelection(selectedValues) { if (selectedValues.length === 0) return 0; let productIndexIds = Object.keys(this.optionConfig.index); Object.keys(this.optionConfig.attributes).forEach((attribute) => { const productsWithAttributeMatch = selectedValues[attribute] ? productIndexIds.filter((productIndex) => { return this.optionConfig.index[productIndex][attribute] === this.selectedValues[attribute] }) : []; productIndexIds = productsWithAttributeMatch.length ? productsWithAttributeMatch : productIndexIds }) return productIndexIds[0]; }, calculateSimpleIndexForFullSelection(selectedValues) { const productIndexes = this.optionConfig.index; return Object.keys(productIndexes).find(productIndex => { const productCandidateOptions = productIndexes[productIndex]; for (const productOption in productCandidateOptions) { if ( ! selectedValues[productOption] || selectedValues[productOption] !== productCandidateOptions[productOption] ) { return false; } } return productIndex; }); }, productIndex: 0, findAllowedAttributeOptions() { this.allowedAttributeOptions = this.calculateAllowedAttributeOptions(this.selectedValues); }, calculateAllowedAttributeOptions(selectedValues) { const allAttributes = this.optionConfig.attributes; const allAttributesSorted = Object.values(allAttributes).sort((a,b) => { return a.position - b.position }); const newAllowedAttributeOptions = []; allAttributesSorted.forEach(attribute => { const selectionWithoutAttr = Object.assign({}, this.removeAttrFromSelection(selectedValues, attribute.id)); const availableIndexes = this.calculateAvailableProductIndexes(selectionWithoutAttr); newAllowedAttributeOptions[attribute.id] = allAttributes[attribute.id].options.filter(option => { return !!option.products.find(product => { return availableIndexes.includes(product); }) }); }); return newAllowedAttributeOptions; }, calculateAvailableProductIndexes(selectedOptions) { if (Object.keys(selectedOptions).length === 0) { if (Object.values(this.optionConfig.salable || {}).length) { return [].concat.apply([], [].concat.apply([], Object.values(this.optionConfig.salable).map(Object.values))).filter((x, i, a) => a.indexOf(x) === i) } return Object.keys(this.optionConfig.index); } const selectedIds = Object.keys(selectedOptions); if (Object.values(this.optionConfig.salable || {}).length) { const selectedOptionIndexes = selectedIds.map(attrId => { const optionValue = selectedOptions[attrId]; return this.optionConfig.salable[attrId] && this.optionConfig.salable[attrId][optionValue] || [] }) return selectedOptionIndexes.reduce((acc, optionIndexes) => { return acc.filter(index => optionIndexes.includes(index)); }); } else { const productIndexes = this.optionConfig.index; return Object.keys(productIndexes).filter(index => { for (const attrId of selectedIds) { if (productIndexes[index][attrId] !== `${selectedOptions[attrId]}`) return false } return true }); } }, findAttributeByOptionId(optionId) { for (const attributeId in this.optionConfig.attributes) { const attributeOptions = this.optionConfig.attributes[attributeId].options || []; if (attributeOptions.find(option => option.id === optionId)) { return attributeId; } } }, getAllowedAttributeOptions(attributeId) { return this.allowedAttributeOptions[attributeId] || [] }, getProductIdsForOption(option) { const attributeId = this.findAttributeByOptionId(option.id); const allOptions = this.optionConfig.attributes[attributeId]; const opt = (allOptions && allOptions.options || []).find(o => o.id === option.id); return opt && opt.products ? opt.products : []; }, findProductIdsForPartialSelection(optionSelection) { const candidateProducts = Object.values(optionSelection).reduce((candidates, optionId) => { const newCandidates = this.getProductIdsForOption({id: optionId}); return candidates === null ? newCandidates : candidates.filter(productId => newCandidates.includes(productId)); }, null); return candidateProducts || []; }, findCheapestProductForPartialSelection(optionSelection) { const candidateProducts = this.findProductIdsForPartialSelection(optionSelection); return candidateProducts.reduce((cheapest, simpleIdx) => { // in the first iteration we start with simpleIdx as the currently cheapest product if (! this.optionConfig.optionPrices[cheapest]) return simpleIdx; const knownCheapestPrice = this.optionConfig.optionPrices[cheapest].finalPrice.amount; return knownCheapestPrice > this.optionConfig.optionPrices[simpleIdx].finalPrice.amount ? simpleIdx : cheapest; }, 0) }, findProductIdToUseForOptionPrice(option) { // try to find a product for a complete selection const attributeId = this.findAttributeByOptionId(option.id); const optionSelection = Object.assign({}, this.selectedValues, {[attributeId]: option.id}); const matchingSimpleIndex = this.calculateSimpleIndexForFullSelection(optionSelection); // if there is no complete selection, use the cheapest product for the option return matchingSimpleIndex || this.findCheapestProductForPartialSelection(optionSelection); }, getAttributeOptionLabel(option) { const optionProduct = this.findProductIdToUseForOptionPrice(option); if ((! optionProduct) || (optionProduct === this.productIndex)) { return option.label; } const currentPrice = this.getOptionPriceAdjustmentBasePrice(); if (this.optionConfig.optionPrices[optionProduct]) { const optionPrice = this.optionConfig.optionPrices[optionProduct].finalPrice.amount; if (optionPrice !== currentPrice){ return option.label + ' ' + hyva.formatPrice(optionPrice - currentPrice, true); } } return option.label; }, getOptionPriceAdjustmentBasePrice() { if (this.optionConfig.optionPrices[this.productIndex]) { return this.optionConfig.optionPrices[this.productIndex].finalPrice.amount } const cheapestForSelection = this.findCheapestProductForPartialSelection(this.selectedValues); return this.optionConfig.optionPrices[cheapestForSelection] ? this.optionConfig.optionPrices[cheapestForSelection].finalPrice.amount : this.optionConfig.prices.finalPrice.amount; // default price if no option selection }, clearOptionIfActive(optionId, value) { if (this.selectedValues[optionId] === value) { this.blurLabel() this.changeOption(optionId, '') } }, removeAttrFromSelection(selectedValues, attributeId) { attributeId = parseInt(attributeId); return selectedValues.reduce((newSelection, val, attr) => { if (attr !== attributeId) { newSelection[attr] = val; } return newSelection; }, []); }, changeOption(attributeId, value) { if (value === '') { this.selectedValues = this.removeAttrFromSelection(this.selectedValues, attributeId) } else if (value && this.getAllowedAttributeOptions(attributeId).find(option => option.id === value)) { this.selectedValues[attributeId] = value; } this.findSimpleIndex(); this.findAllowedAttributeOptions(); this.updatePrices(); this.updateGallery(); window.dispatchEvent( new CustomEvent( 'configurable-selection-changed', { detail: { productId: this.productId, optionId: attributeId, value: value, productIndex: this.productIndex, selectedValues: this.selectedValues, candidates: this.findProductIdsForPartialSelection(this.selectedValues), } } ) ); }, calculateIsMinimalPrice() { return ( this.selectedValues.filter(value => !!value).length < Object.keys(this.optionConfig.attributes).length ); }, updatePrices() { const value = this.productIndex ? this.optionConfig.optionPrices[this.productIndex] : this.optionConfig.prices; window.dispatchEvent( new CustomEvent( "update-prices-" + this.productId, { detail: Object.assign( value, { isMinimalPrice: this.calculateIsMinimalPrice() } ) } ) ); }, updateGallery () { if (this.productIndex) { const images = this.optionConfig.images[this.productIndex]; images && window.dispatchEvent(new CustomEvent( "update-gallery", { detail: this.sortImagesByPosition(images) } )); } else { window.dispatchEvent(new Event("reset-gallery")); } }, sortImagesByPosition(images) { return images.sort((x, y) => { return x.position === y.position ? 0 : (parseInt(x.position) > parseInt(y.position) ? 1 : -1) }); }, onGetCartData(data) { }, preselectCartItems(data) { // pre-select options based on cart data for current (quote) itemId const cart = data && data.cart; if (cart && cart.items) { const cartItem = cart.items.find((item) => { return ( item.item_id === this.itemId && item.product_id === this.productId ) }); if (cartItem && cartItem.options && cartItem.options.length) { cartItem.options.map(option => { this.changeOption(option.option_id, option.option_value); }) } } }, preselectQuerystringItems() { // pre-select option like ?size=167 const urlQueryParams = new URLSearchParams(window.location.search.replace('?','')); this.preselectItemsBasedOnLocation(attribute => urlQueryParams.get(attribute.code)); }, preselectLocationHashItems() { // pre-select option like #144=167 const urlHashParams = new URLSearchParams(window.location.hash.replace('#','')); this.preselectItemsBasedOnLocation(attribute => urlHashParams.get(attribute.id)); }, preselectItemsBasedOnLocation(getLocationValue) { Object.values(this.optionConfig.attributes).map(attribute => { this.changeOption(attribute.id, getLocationValue(attribute)) }); } } } </script> <script> function initSwatchOptions(swatchConfig) { return { swatchConfig, getAttributeSwatchData(attributeId) { const swatchConfig = Object.assign({}, this.swatchConfig[attributeId]); swatchConfig['details'] = JSON.parse(swatchConfig['additional_data']); return swatchConfig; }, getAllAttributeOptions(attributeId) { return ( this.optionConfig.attributes[attributeId] && this.optionConfig.attributes[attributeId].options ) || [] }, optionIsActive(attributeId, optionId) { // return true if a product with this option is in stock return !!this.getAllowedAttributeOptions(attributeId).find( option => option.id === optionId ) }, optionIsEnabled(attributeId, optionId) { // return true if a product with this option is enabled for (const productId in this.optionConfig.index) { if (this.optionConfig.index[productId][attributeId] === optionId) { return true; } } return false; }, mapSwatchTypeNumberToTypeCode(typeNumber) { switch ("" + typeNumber) { case "1": return "color" case "2": return "image" case "3": return "empty" case "0": default: return "text" } }, getTypeOfFirstOption(attributeId) { for (const optionId in this.swatchConfig[attributeId]) { const option = this.swatchConfig[attributeId][optionId]; if (typeof option.type !== 'undefined') { return this.mapSwatchTypeNumberToTypeCode(option.type); } } }, getVisualSwatchType(attributeId, targetOptionId) { // If a type configuration is present for the given option id, use it const config = this.swatchConfig[attributeId]; if (config[targetOptionId] && typeof config[targetOptionId].type !== 'undefined') { return this.mapSwatchTypeNumberToTypeCode(config[targetOptionId].type); } // Otherwise - if no config is present for the target option - use the type of the first option // with a type property from the attribute, thus assuming its the same type as the target option. // (This edge case condition can occur on single swatch products if some options are not salable) return this.getTypeOfFirstOption(attributeId); }, getSwatchType(attributeId, optionId) { // Deserialize the attribute details the first time they are used if (this.swatchConfig[attributeId] && ! this.swatchConfig[attributeId].details) { this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId); } const type = this.swatchConfig[attributeId] && this.swatchConfig[attributeId].details && this.swatchConfig[attributeId].details.swatch_input_type || "empty"; return type === 'visual' ? this.getVisualSwatchType(attributeId, optionId) : type; }, isTextSwatch(attributeId, optionId) { return this.getSwatchType(attributeId, optionId) === 'text'; }, isVisualSwatch(attributeId, optionId) { const type = this.getSwatchType(attributeId, optionId); return ['image', 'color'].includes(type); }, getSwatchBackgroundStyle(attributeId, optionId) { const config = this.getSwatchConfig(attributeId, optionId); const type = this.getSwatchType(attributeId, optionId); if (type === "color") { return 'background-color:' + config.value; } else if (type === "image") { return "background: #ffffff url('" + config.value + "') no-repeat center"; } else { return ''; } }, getSwatchText(attributeId, optionId) { const config = this.getSwatchConfig(attributeId, optionId); return config.label || config.value || this.getOptionLabelFromOptionConfig(attributeId, optionId); }, getOptionLabelFromOptionConfig(attributeId, optionId) { // Fallback if no value is present in swatchConfig data // Reference issue https://gitlab.hyva.io/hyva-themes/magento2-default-theme/-/issues/190 const option = this.getAllAttributeOptions(attributeId).filter(option => option.id === optionId); return option && option[0] && option[0].label ||''; }, getSwatchConfig(attributeId, optionId) { return this.swatchConfig[attributeId] && this.swatchConfig[attributeId][optionId] ? this.swatchConfig[attributeId][optionId] : false; }, activeTooltipItem: false, tooltipPositionElement: false, isTooltipVisible() { return this.activeTooltipItem && this.getSwatchConfig( this.activeTooltipItem.attribute, this.activeTooltipItem.item ); }, isFirstItemCol() { return this.activeTooltipItem.index === 0; }, getTooltipImageStyle(attributeId, optionId) { const config = this.getSwatchConfig(attributeId, optionId); const type = this.getSwatchType(attributeId, optionId); if (type === "color") { return 'background-color:' + config.value + '; width: 110px; height: 90px;'; } else if (type === "image") { return "background: #ffffff url('" + config.thumb + "') center center no-repeat; width: 110px; height: 90px;"; } else { return 'display:none'; } }, getTooltipPosition() { return this.tooltipPositionElement ? `top: ${this.tooltipPositionElement.offsetTop}px;` + `left: ${ this.tooltipPositionElement.offsetLeft - ( this.tooltipPositionElement.closest('.snap') && this.tooltipPositionElement.closest('.snap').scrollLeft || 0 ) }px;` : '' }, getTooltipLabel() { return this.getSwatchConfig(this.activeTooltipItem.attribute, this.activeTooltipItem.item).label }, focusedLabel: false, focusLabel(optionId) { this.focusedLabel = optionId; }, blurLabel() { this.focusedLabel = false; }, showSwatches: false, initShowSwatchesIntersect() { if ('IntersectionObserver' in window && !window.scrollY) { let io = new IntersectionObserver( entries => { entries.map(entry => { if (entry.isIntersecting) { this.showSwatches = true; io.unobserve(this.$root); } }) } ); io.observe(this.$root); } else { this.showSwatches = true } } } } </script> <script> 'use strict'; const grecaptchaV2LoadCallbacks = []; function executeRecaptchaLoadCallbacks () { while (window.grecaptcha && grecaptchaV2LoadCallbacks.length > 0) { const callback = grecaptchaV2LoadCallbacks.pop(); typeof callback === 'string' ? window[callback]() : callback(); } } (function() { const loadRecaptchaScript = (event) => { if (window.grecaptcha || !event.target.form) { return; } const url = 'https://www.google.com/recaptcha/api.js?onload=executeRecaptchaLoadCallbacks'; const siteKey = '6LflH5QcAAAAAGBdVEeVSQMyM68HonV_Q83noWZb'; const script = document.createElement('script'); script.type = 'text/javascript'; script.src = siteKey ? `${url}&render=${siteKey}` : `${url}&render=explicit`; script.async = true; document.head.appendChild(script); script.addEventListener('load', () => { Array.from(document.querySelectorAll('button[data-recaptcha-btn]:disabled')).forEach(btn => btn.removeAttribute('disabled')); }); } window.forceLoadRecaptchaScript = (form) => { loadRecaptchaScript({target: {form: form || 'dummy'}}); executeRecaptchaLoadCallbacks(); }; document.body.addEventListener('input', loadRecaptchaScript, { once: true }); document.body.addEventListener('focus', loadRecaptchaScript, { once: true }); }()); </script> <script type="application/json" id="default-section-data"> {"messages":[],"customer":[],"compare-products":[],"last-ordered-items":[],"cart":[],"directory-data":{"AD":{"name":"Andorra"},"AE":{"name":"United Arab Emirates"},"AF":{"name":"Afghanistan"},"AG":{"name":"Antigua & Barbuda"},"AI":{"name":"Anguilla"},"AL":{"name":"Albania","regions":{"609":{"code":"AL-01","name":"Berat"},"610":{"code":"AL-09","name":"Dib\u00ebr"},"611":{"code":"AL-02","name":"Durr\u00ebs"},"612":{"code":"AL-03","name":"Elbasan"},"613":{"code":"AL-04","name":"Fier"},"614":{"code":"AL-05","name":"Gjirokast\u00ebr"},"615":{"code":"AL-06","name":"Kor\u00e7\u00eb"},"616":{"code":"AL-07","name":"Kuk\u00ebs"},"617":{"code":"AL-08","name":"Lezh\u00eb"},"618":{"code":"AL-10","name":"Shkod\u00ebr"},"619":{"code":"AL-11","name":"Tiran\u00eb"},"620":{"code":"AL-12","name":"Vlor\u00eb"}}},"AM":{"name":"Armenia"},"AN":{"name":null},"AO":{"name":"Angola"},"AQ":{"name":"Antarctica"},"AR":{"name":"Argentina","regions":{"622":{"code":"AR-B","name":"Buenos Aires"},"623":{"code":"AR-K","name":"Catamarca"},"624":{"code":"AR-H","name":"Chaco"},"625":{"code":"AR-U","name":"Chubut"},"621":{"code":"AR-C","name":"Ciudad Aut\u00f3noma de Buenos Aires"},"626":{"code":"AR-X","name":"C\u00f3rdoba"},"627":{"code":"AR-W","name":"Corrientes"},"628":{"code":"AR-E","name":"Entre R\u00edos"},"629":{"code":"AR-P","name":"Formosa"},"630":{"code":"AR-Y","name":"Jujuy"},"631":{"code":"AR-L","name":"La Pampa"},"632":{"code":"AR-F","name":"La Rioja"},"633":{"code":"AR-M","name":"Mendoza"},"634":{"code":"AR-N","name":"Misiones"},"635":{"code":"AR-Q","name":"Neuqu\u00e9n"},"636":{"code":"AR-R","name":"R\u00edo Negro"},"637":{"code":"AR-A","name":"Salta"},"638":{"code":"AR-J","name":"San Juan"},"639":{"code":"AR-D","name":"San Luis"},"640":{"code":"AR-Z","name":"Santa Cruz"},"641":{"code":"AR-S","name":"Santa Fe"},"642":{"code":"AR-G","name":"Santiago del Estero"},"643":{"code":"AR-V","name":"Tierra del Fuego"},"644":{"code":"AR-T","name":"Tucum\u00e1n"}}},"AS":{"name":"American Samoa"},"AT":{"name":"Austria","regions":{"102":{"code":"BL","name":"Burgenland"},"99":{"code":"KN","name":"K\u00e4rnten"},"96":{"code":"NO","name":"Nieder\u00f6sterreich"},"97":{"code":"OO","name":"Ober\u00f6sterreich"},"98":{"code":"SB","name":"Salzburg"},"100":{"code":"ST","name":"Steiermark"},"101":{"code":"TI","name":"Tirol"},"103":{"code":"VB","name":"Vorarlberg"},"95":{"code":"WI","name":"Wien"}}},"AU":{"name":"Australia","regions":{"569":{"code":"ACT","name":"Australian Capital Territory"},"570":{"code":"NSW","name":"New South Wales"},"576":{"code":"NT","name":"Northern Territory"},"572":{"code":"QLD","name":"Queensland"},"573":{"code":"SA","name":"South Australia"},"574":{"code":"TAS","name":"Tasmania"},"571":{"code":"VIC","name":"Victoria"},"575":{"code":"WA","name":"Western Australia"}}},"AW":{"name":"Aruba"},"AX":{"name":"\u00c5land Islands"},"AZ":{"name":"Azerbaijan"},"BA":{"name":"Bosnia & Herzegovina"},"BB":{"name":"Barbados"},"BD":{"name":"Bangladesh"},"BE":{"name":"Belgium","regions":{"645":{"code":"VAN","name":"Antwerpen"},"646":{"code":"WBR","name":"Brabant wallon"},"647":{"code":"BRU","name":"Brussels-Capital Region"},"648":{"code":"WHT","name":"Hainaut"},"650":{"code":"WLG","name":"Li\u00e8ge"},"649":{"code":"VLI","name":"Limburg"},"651":{"code":"WLX","name":"Luxembourg"},"652":{"code":"WNA","name":"Namur"},"653":{"code":"VOV","name":"Oost-Vlaanderen"},"654":{"code":"VBR","name":"Vlaams-Brabant"},"655":{"code":"VWV","name":"West-Vlaanderen"}}},"BF":{"name":"Burkina Faso"},"BG":{"name":"Bulgaria","regions":{"665":{"code":"BG-01","name":"Blagoevgrad"},"666":{"code":"BG-02","name":"Burgas"},"672":{"code":"BG-08","name":"Dobrich"},"671":{"code":"BG-07","name":"Gabrovo"},"690":{"code":"BG-26","name":"Haskovo"},"673":{"code":"BG-09","name":"Kardzhali"},"674":{"code":"BG-10","name":"Kyustendil"},"675":{"code":"BG-11","name":"Lovech"},"676":{"code":"BG-12","name":"Montana"},"677":{"code":"BG-13","name":"Pazardzhik"},"678":{"code":"BG-14","name":"Pernik"},"679":{"code":"BG-15","name":"Pleven"},"680":{"code":"BG-16","name":"Plovdiv"},"681":{"code":"BG-17","name":"Razgrad"},"682":{"code":"BG-18","name":"Ruse"},"691":{"code":"BG-27","name":"Shumen"},"683":{"code":"BG-19","name":"Silistra"},"684":{"code":"BG-20","name":"Sliven"},"685":{"code":"BG-21","name":"Smolyan"},"686":{"code":"BG-22","name":"Sofia City"},"687":{"code":"BG-23","name":"Sofia Province"},"688":{"code":"BG-24","name":"Stara Zagora"},"689":{"code":"BG-25","name":"Targovishte"},"667":{"code":"BG-03","name":"Varna"},"668":{"code":"BG-04","name":"Veliko Tarnovo"},"669":{"code":"BG-05","name":"Vidin"},"670":{"code":"BG-06","name":"Vratsa"},"692":{"code":"BG-28","name":"Yambol"}}},"BH":{"name":"Bahrain"},"BI":{"name":"Burundi"},"BJ":{"name":"Benin"},"BL":{"name":"St. Barth\u00e9lemy"},"BM":{"name":"Bermuda"},"BN":{"name":"Brunei"},"BO":{"name":"Bolivia","regions":{"657":{"code":"BO-H","name":"Chuquisaca"},"656":{"code":"BO-C","name":"Cochabamba"},"658":{"code":"BO-B","name":"El Beni"},"659":{"code":"BO-L","name":"La Paz"},"660":{"code":"BO-O","name":"Oruro"},"661":{"code":"BO-N","name":"Pando"},"662":{"code":"BO-P","name":"Potos\u00ed"},"663":{"code":"BO-S","name":"Santa Cruz"},"664":{"code":"BO-T","name":"Tarija"}}},"BQ":{"name":"Caribbean Netherlands"},"BR":{"name":"Brazil","regions":{"485":{"code":"AC","name":"Acre"},"486":{"code":"AL","name":"Alagoas"},"487":{"code":"AP","name":"Amap\u00e1"},"488":{"code":"AM","name":"Amazonas"},"489":{"code":"BA","name":"Bahia"},"490":{"code":"CE","name":"Cear\u00e1"},"511":{"code":"DF","name":"Distrito Federal"},"491":{"code":"ES","name":"Esp\u00edrito Santo"},"492":{"code":"GO","name":"Goi\u00e1s"},"493":{"code":"MA","name":"Maranh\u00e3o"},"494":{"code":"MT","name":"Mato Grosso"},"495":{"code":"MS","name":"Mato Grosso do Sul"},"496":{"code":"MG","name":"Minas Gerais"},"497":{"code":"PA","name":"Par\u00e1"},"498":{"code":"PB","name":"Para\u00edba"},"499":{"code":"PR","name":"Paran\u00e1"},"500":{"code":"PE","name":"Pernambuco"},"501":{"code":"PI","name":"Piau\u00ed"},"502":{"code":"RJ","name":"Rio de Janeiro"},"503":{"code":"RN","name":"Rio Grande do Norte"},"504":{"code":"RS","name":"Rio Grande do Sul"},"505":{"code":"RO","name":"Rond\u00f4nia"},"506":{"code":"RR","name":"Roraima"},"507":{"code":"SC","name":"Santa Catarina"},"508":{"code":"SP","name":"S\u00e3o Paulo"},"509":{"code":"SE","name":"Sergipe"},"510":{"code":"TO","name":"Tocantins"}}},"BS":{"name":"Bahamas"},"BT":{"name":"Bhutan"},"BV":{"name":"Bouvet Island"},"BW":{"name":"Botswana"},"BY":{"name":"Belarus","regions":{"1101":{"code":"BY-BR","name":"Bresckaja voblas\u0107"},"1102":{"code":"BY-HO","name":"Homie\u013askaja voblas\u0107"},"1103":{"code":"BY-HM","name":"Horad Minsk"},"1104":{"code":"BY-HR","name":"Hrodzienskaja voblas\u0107"},"1105":{"code":"BY-MA","name":"Mahilio\u016dskaja voblas\u0107"},"1106":{"code":"BY-MI","name":"Minskaja voblas\u0107"},"1107":{"code":"BY-VI","name":"Viciebskaja voblas\u0107"}}},"BZ":{"name":"Belize"},"CA":{"name":"Canada","regions":{"66":{"code":"AB","name":"Alberta"},"67":{"code":"BC","name":"British Columbia"},"68":{"code":"MB","name":"Manitoba"},"70":{"code":"NB","name":"New Brunswick"},"69":{"code":"NL","name":"Newfoundland and Labrador"},"72":{"code":"NT","name":"Northwest Territories"},"71":{"code":"NS","name":"Nova Scotia"},"73":{"code":"NU","name":"Nunavut"},"74":{"code":"ON","name":"Ontario"},"75":{"code":"PE","name":"Prince Edward Island"},"76":{"code":"QC","name":"Quebec"},"77":{"code":"SK","name":"Saskatchewan"},"78":{"code":"YT","name":"Yukon Territory"}}},"CC":{"name":"Cocos (Keeling) Islands"},"CD":{"name":"Congo - Kinshasa"},"CF":{"name":"Central African Republic"},"CG":{"name":"Congo - Brazzaville"},"CH":{"name":"Switzerland","regions":{"104":{"code":"AG","name":"Aargau"},"106":{"code":"AR","name":"Appenzell Ausserrhoden"},"105":{"code":"AI","name":"Appenzell Innerrhoden"},"108":{"code":"BL","name":"Basel-Landschaft"},"109":{"code":"BS","name":"Basel-Stadt"},"107":{"code":"BE","name":"Bern"},"110":{"code":"FR","name":"Friburg"},"111":{"code":"GE","name":"Geneva"},"112":{"code":"GL","name":"Glarus"},"113":{"code":"GR","name":"Graub\u00fcnden"},"114":{"code":"JU","name":"Jura"},"115":{"code":"LU","name":"Lucerne"},"116":{"code":"NE","name":"Neuch\u00e2tel"},"117":{"code":"NW","name":"Nidwalden"},"118":{"code":"OW","name":"Obwalden"},"120":{"code":"SH","name":"Schaffhausen"},"122":{"code":"SZ","name":"Schwyz"},"121":{"code":"SO","name":"Solothurn"},"119":{"code":"SG","name":"St. Gallen"},"123":{"code":"TG","name":"Thurgau"},"124":{"code":"TI","name":"Ticino"},"125":{"code":"UR","name":"Uri"},"126":{"code":"VD","name":"Vaud"},"127":{"code":"VS","name":"Wallis"},"128":{"code":"ZG","name":"Zug"},"129":{"code":"ZH","name":"Z\u00fcrich"}}},"CI":{"name":"C\u00f4te d\u2019Ivoire"},"CK":{"name":"Cook Islands"},"CL":{"name":"Chile","regions":{"693":{"code":"CL-AI","name":"Ais\u00e9n del General Carlos Iba\u00f1ez del Campo"},"694":{"code":"CL-AN","name":"Antofagasta"},"695":{"code":"CL-AP","name":"Arica y Parinacota"},"697":{"code":"CL-AT","name":"Atacama"},"698":{"code":"CL-BI","name":"Biob\u00edo"},"699":{"code":"CL-CO","name":"Coquimbo"},"696":{"code":"CL-AR","name":"La Araucan\u00eda"},"700":{"code":"CL-LI","name":"Libertador General Bernardo O'Higgins"},"701":{"code":"CL-LL","name":"Los Lagos"},"702":{"code":"CL-LR","name":"Los R\u00edos"},"703":{"code":"CL-MA","name":"Magallanes"},"704":{"code":"CL-ML","name":"Maule"},"705":{"code":"CL-NB","name":"\u00d1uble"},"706":{"code":"CL-RM","name":"Regi\u00f3n Metropolitana de Santiago"},"707":{"code":"CL-TA","name":"Tarapac\u00e1"},"708":{"code":"CL-VS","name":"Valpara\u00edso"}}},"CM":{"name":"Cameroon"},"CN":{"name":"China","regions":{"709":{"code":"CN-AH","name":"Anhui Sheng"},"710":{"code":"CN-BJ","name":"Beijing Shi"},"711":{"code":"CN-CQ","name":"Chongqing Shi"},"712":{"code":"CN-FJ","name":"Fujian Sheng"},"713":{"code":"CN-GS","name":"Gansu Sheng"},"714":{"code":"CN-GD","name":"Guangdong Sheng"},"715":{"code":"CN-GX","name":"Guangxi Zhuangzu Zizhiqu"},"716":{"code":"CN-GZ","name":"Guizhou Sheng"},"717":{"code":"CN-HI","name":"Hainan Sheng"},"718":{"code":"CN-HE","name":"Hebei Sheng"},"719":{"code":"CN-HL","name":"Heilongjiang Sheng"},"720":{"code":"CN-HA","name":"Henan Sheng"},"721":{"code":"CN-HK","name":"Hong Kong SAR"},"722":{"code":"CN-HB","name":"Hubei Sheng"},"723":{"code":"CN-HN","name":"Hunan Sheng"},"724":{"code":"CN-JS","name":"Jiangsu Sheng"},"725":{"code":"CN-JX","name":"Jiangxi Sheng"},"726":{"code":"CN-JL","name":"Jilin Sheng"},"727":{"code":"CN-LN","name":"Liaoning Sheng"},"728":{"code":"CN-MO","name":"Macao SAR"},"729":{"code":"CN-NM","name":"Nei Mongol Zizhiqu"},"730":{"code":"CN-NX","name":"Ningxia Huizi Zizhiqu"},"731":{"code":"CN-QH","name":"Qinghai Sheng"},"732":{"code":"CN-SN","name":"Shaanxi Sheng"},"733":{"code":"CN-SD","name":"Shandong Sheng"},"734":{"code":"CN-SH","name":"Shanghai Shi"},"735":{"code":"CN-SX","name":"Shanxi Sheng"},"736":{"code":"CN-SC","name":"Sichuan Sheng"},"737":{"code":"CN-TW","name":"Taiwan Sheng"},"738":{"code":"CN-TJ","name":"Tianjin Shi"},"739":{"code":"CN-XJ","name":"Xinjiang Uygur Zizhiqu"},"740":{"code":"CN-XZ","name":"Xizang Zizhiqu"},"741":{"code":"CN-YN","name":"Yunnan Sheng"},"742":{"code":"CN-ZJ","name":"Zhejiang Sheng"}}},"CO":{"name":"Colombia","regions":{"743":{"code":"CO-AMA","name":"Amazonas"},"744":{"code":"CO-ANT","name":"Antioquia"},"745":{"code":"CO-ARA","name":"Arauca"},"746":{"code":"CO-ATL","name":"Atl\u00e1ntico"},"747":{"code":"CO-BOL","name":"Bol\u00edvar"},"748":{"code":"CO-BOY","name":"Boyac\u00e1"},"749":{"code":"CO-CAL","name":"Caldas"},"750":{"code":"CO-CAQ","name":"Caquet\u00e1"},"751":{"code":"CO-CAS","name":"Casanare"},"752":{"code":"CO-CAU","name":"Cauca"},"753":{"code":"CO-CES","name":"Cesar"},"754":{"code":"CO-CHO","name":"Choc\u00f3"},"755":{"code":"CO-COR","name":"C\u00f3rdoba"},"756":{"code":"CO-CUN","name":"Cundinamarca"},"757":{"code":"CO-GUA","name":"Guain\u00eda"},"758":{"code":"CO-GUV","name":"Guaviare"},"759":{"code":"CO-HUL","name":"Huila"},"760":{"code":"CO-LAG","name":"La Guajira"},"761":{"code":"CO-MAG","name":"Magdalena"},"762":{"code":"CO-MET","name":"Meta"},"763":{"code":"CO-NAR","name":"Nari\u00f1o"},"764":{"code":"CO-NSA","name":"Norte de Santander"},"765":{"code":"CO-PUT","name":"Putumayo"},"766":{"code":"CO-QUI","name":"Quind\u00edo"},"767":{"code":"CO-RIS","name":"Risaralda"},"768":{"code":"CO-SAP","name":"San Andr\u00e9s y Providencia"},"769":{"code":"CO-SAN","name":"Santander"},"770":{"code":"CO-SUC","name":"Sucre"},"771":{"code":"CO-TOL","name":"Tolima"},"772":{"code":"CO-VAC","name":"Valle del Cauca"},"773":{"code":"CO-VAU","name":"Vaup\u00e9s"},"774":{"code":"CO-VID","name":"Vichada"}}},"CR":{"name":"Costa Rica"},"CU":{"name":"Cuba"},"CV":{"name":"Cape Verde"},"CW":{"name":"Cura\u00e7ao"},"CX":{"name":"Christmas Island"},"CY":{"name":"Cyprus"},"CZ":{"name":"Czechia"},"DE":{"name":"Germany","regions":{"80":{"code":"BAW","name":"Baden-W\u00fcrttemberg"},"81":{"code":"BAY","name":"Bayern"},"82":{"code":"BER","name":"Berlin"},"83":{"code":"BRG","name":"Brandenburg"},"84":{"code":"BRE","name":"Bremen"},"85":{"code":"HAM","name":"Hamburg"},"86":{"code":"HES","name":"Hessen"},"87":{"code":"MEC","name":"Mecklenburg-Vorpommern"},"79":{"code":"NDS","name":"Niedersachsen"},"88":{"code":"NRW","name":"Nordrhein-Westfalen"},"89":{"code":"RHE","name":"Rheinland-Pfalz"},"90":{"code":"SAR","name":"Saarland"},"91":{"code":"SAS","name":"Sachsen"},"92":{"code":"SAC","name":"Sachsen-Anhalt"},"93":{"code":"SCN","name":"Schleswig-Holstein"},"94":{"code":"THE","name":"Th\u00fcringen"}}},"DJ":{"name":"Djibouti"},"DK":{"name":"Denmark","regions":{"775":{"code":"DK-84","name":"Hovedstaden"},"776":{"code":"DK-82","name":"Midtjylland"},"777":{"code":"DK-81","name":"Nordjylland"},"778":{"code":"DK-85","name":"Sj\u00e6lland"},"779":{"code":"DK-83","name":"Syddanmark"}}},"DM":{"name":"Dominica"},"DO":{"name":"Dominican Republic"},"DZ":{"name":"Algeria"},"EC":{"name":"Ecuador","regions":{"780":{"code":"EC-A","name":"Azuay"},"781":{"code":"EC-B","name":"Bol\u00edvar"},"782":{"code":"EC-F","name":"Ca\u00f1ar"},"783":{"code":"EC-C","name":"Carchi"},"784":{"code":"EC-H","name":"Chimborazo"},"785":{"code":"EC-X","name":"Cotopaxi"},"786":{"code":"EC-O","name":"El Oro"},"787":{"code":"EC-E","name":"Esmeraldas"},"788":{"code":"EC-W","name":"Gal\u00e1pagos"},"789":{"code":"EC-G","name":"Guayas"},"790":{"code":"EC-I","name":"Imbabura"},"791":{"code":"EC-L","name":"Loja"},"792":{"code":"EC-R","name":"Los R\u00edos"},"793":{"code":"EC-M","name":"Manab\u00ed"},"794":{"code":"EC-S","name":"Morona Santiago"},"795":{"code":"EC-N","name":"Napo"},"796":{"code":"EC-D","name":"Orellana"},"797":{"code":"EC-Y","name":"Pastaza"},"798":{"code":"EC-P","name":"Pichincha"},"799":{"code":"EC-SE","name":"Santa Elena"},"800":{"code":"EC-SD","name":"Santo Domingo de los Ts\u00e1chilas"},"801":{"code":"EC-U","name":"Sucumb\u00edos"},"802":{"code":"EC-T","name":"Tungurahua"},"803":{"code":"EC-Z","name":"Zamora Chinchipe"}}},"EE":{"name":"Estonia","regions":{"340":{"code":"EE-37","name":"Harjumaa"},"341":{"code":"EE-39","name":"Hiiumaa"},"342":{"code":"EE-44","name":"Ida-Virumaa"},"344":{"code":"EE-51","name":"J\u00e4rvamaa"},"343":{"code":"EE-49","name":"J\u00f5gevamaa"},"346":{"code":"EE-59","name":"L\u00e4\u00e4ne-Virumaa"},"345":{"code":"EE-57","name":"L\u00e4\u00e4nemaa"},"348":{"code":"EE-67","name":"P\u00e4rnumaa"},"347":{"code":"EE-65","name":"P\u00f5lvamaa"},"349":{"code":"EE-70","name":"Raplamaa"},"350":{"code":"EE-74","name":"Saaremaa"},"351":{"code":"EE-78","name":"Tartumaa"},"352":{"code":"EE-82","name":"Valgamaa"},"353":{"code":"EE-84","name":"Viljandimaa"},"354":{"code":"EE-86","name":"V\u00f5rumaa"}}},"EG":{"name":"Egypt"},"EH":{"name":"Western Sahara"},"ER":{"name":"Eritrea"},"ES":{"name":"Spain","regions":{"130":{"code":"A Coru\u0441a","name":"A Coru\u00f1a"},"131":{"code":"Alava","name":"Alava"},"132":{"code":"Albacete","name":"Albacete"},"133":{"code":"Alicante","name":"Alicante"},"134":{"code":"Almeria","name":"Almeria"},"135":{"code":"Asturias","name":"Asturias"},"136":{"code":"Avila","name":"Avila"},"137":{"code":"Badajoz","name":"Badajoz"},"138":{"code":"Baleares","name":"Baleares"},"139":{"code":"Barcelona","name":"Barcelona"},"140":{"code":"Burgos","name":"Burgos"},"141":{"code":"Caceres","name":"Caceres"},"142":{"code":"Cadiz","name":"Cadiz"},"143":{"code":"Cantabria","name":"Cantabria"},"144":{"code":"Castellon","name":"Castellon"},"145":{"code":"Ceuta","name":"Ceuta"},"146":{"code":"Ciudad Real","name":"Ciudad Real"},"147":{"code":"Cordoba","name":"Cordoba"},"148":{"code":"Cuenca","name":"Cuenca"},"149":{"code":"Girona","name":"Girona"},"150":{"code":"Granada","name":"Granada"},"151":{"code":"Guadalajara","name":"Guadalajara"},"152":{"code":"Guipuzcoa","name":"Guipuzcoa"},"153":{"code":"Huelva","name":"Huelva"},"154":{"code":"Huesca","name":"Huesca"},"155":{"code":"Jaen","name":"Jaen"},"156":{"code":"La Rioja","name":"La Rioja"},"157":{"code":"Las Palmas","name":"Las Palmas"},"158":{"code":"Leon","name":"Leon"},"159":{"code":"Lleida","name":"Lleida"},"160":{"code":"Lugo","name":"Lugo"},"161":{"code":"Madrid","name":"Madrid"},"162":{"code":"Malaga","name":"Malaga"},"163":{"code":"Melilla","name":"Melilla"},"164":{"code":"Murcia","name":"Murcia"},"165":{"code":"Navarra","name":"Navarra"},"166":{"code":"Ourense","name":"Ourense"},"167":{"code":"Palencia","name":"Palencia"},"168":{"code":"Pontevedra","name":"Pontevedra"},"169":{"code":"Salamanca","name":"Salamanca"},"170":{"code":"Santa Cruz de Tenerife","name":"Santa Cruz de Tenerife"},"171":{"code":"Segovia","name":"Segovia"},"172":{"code":"Sevilla","name":"Sevilla"},"173":{"code":"Soria","name":"Soria"},"174":{"code":"Tarragona","name":"Tarragona"},"175":{"code":"Teruel","name":"Teruel"},"176":{"code":"Toledo","name":"Toledo"},"177":{"code":"Valencia","name":"Valencia"},"178":{"code":"Valladolid","name":"Valladolid"},"179":{"code":"Vizcaya","name":"Vizcaya"},"180":{"code":"Zamora","name":"Zamora"},"181":{"code":"Zaragoza","name":"Zaragoza"}}},"ET":{"name":"Ethiopia"},"FI":{"name":"Finland","regions":{"339":{"code":"Ahvenanmaa","name":"Ahvenanmaa"},"333":{"code":"Etel\u00e4-Karjala","name":"Etel\u00e4-Karjala"},"326":{"code":"Etel\u00e4-Pohjanmaa","name":"Etel\u00e4-Pohjanmaa"},"325":{"code":"Etel\u00e4-Savo","name":"Etel\u00e4-Savo"},"337":{"code":"It\u00e4-Uusimaa","name":"It\u00e4-Uusimaa"},"322":{"code":"Kainuu","name":"Kainuu"},"335":{"code":"Kanta-H\u00e4me","name":"Kanta-H\u00e4me"},"330":{"code":"Keski-Pohjanmaa","name":"Keski-Pohjanmaa"},"331":{"code":"Keski-Suomi","name":"Keski-Suomi"},"338":{"code":"Kymenlaakso","name":"Kymenlaakso"},"320":{"code":"Lappi","name":"Lappi"},"334":{"code":"P\u00e4ij\u00e4t-H\u00e4me","name":"P\u00e4ij\u00e4t-H\u00e4me"},"328":{"code":"Pirkanmaa","name":"Pirkanmaa"},"327":{"code":"Pohjanmaa","name":"Pohjanmaa"},"323":{"code":"Pohjois-Karjala","name":"Pohjois-Karjala"},"321":{"code":"Pohjois-Pohjanmaa","name":"Pohjois-Pohjanmaa"},"324":{"code":"Pohjois-Savo","name":"Pohjois-Savo"},"329":{"code":"Satakunta","name":"Satakunta"},"336":{"code":"Uusimaa","name":"Uusimaa"},"332":{"code":"Varsinais-Suomi","name":"Varsinais-Suomi"}}},"FJ":{"name":"Fiji"},"FK":{"name":"Falkland Islands"},"FM":{"name":"Micronesia"},"FO":{"name":"Faroe Islands"},"FR":{"name":"France","regions":{"182":{"code":"1","name":"Ain"},"183":{"code":"2","name":"Aisne"},"184":{"code":"3","name":"Allier"},"185":{"code":"4","name":"Alpes-de-Haute-Provence"},"187":{"code":"6","name":"Alpes-Maritimes"},"188":{"code":"7","name":"Ard\u00e8che"},"189":{"code":"8","name":"Ardennes"},"190":{"code":"9","name":"Ari\u00e8ge"},"191":{"code":"10","name":"Aube"},"192":{"code":"11","name":"Aude"},"193":{"code":"12","name":"Aveyron"},"249":{"code":"67","name":"Bas-Rhin"},"194":{"code":"13","name":"Bouches-du-Rh\u00f4ne"},"195":{"code":"14","name":"Calvados"},"196":{"code":"15","name":"Cantal"},"197":{"code":"16","name":"Charente"},"198":{"code":"17","name":"Charente-Maritime"},"199":{"code":"18","name":"Cher"},"200":{"code":"19","name":"Corr\u00e8ze"},"201":{"code":"2A","name":"Corse-du-Sud"},"203":{"code":"21","name":"C\u00f4te-d'Or"},"204":{"code":"22","name":"C\u00f4tes-d'Armor"},"205":{"code":"23","name":"Creuse"},"261":{"code":"79","name":"Deux-S\u00e8vres"},"206":{"code":"24","name":"Dordogne"},"207":{"code":"25","name":"Doubs"},"208":{"code":"26","name":"Dr\u00f4me"},"273":{"code":"91","name":"Essonne"},"209":{"code":"27","name":"Eure"},"210":{"code":"28","name":"Eure-et-Loir"},"211":{"code":"29","name":"Finist\u00e8re"},"212":{"code":"30","name":"Gard"},"214":{"code":"32","name":"Gers"},"215":{"code":"33","name":"Gironde"},"250":{"code":"68","name":"Haut-Rhin"},"202":{"code":"2B","name":"Haute-Corse"},"213":{"code":"31","name":"Haute-Garonne"},"225":{"code":"43","name":"Haute-Loire"},"234":{"code":"52","name":"Haute-Marne"},"252":{"code":"70","name":"Haute-Sa\u00f4ne"},"256":{"code":"74","name":"Haute-Savoie"},"269":{"code":"87","name":"Haute-Vienne"},"186":{"code":"5","name":"Hautes-Alpes"},"247":{"code":"65","name":"Hautes-Pyr\u00e9n\u00e9es"},"274":{"code":"92","name":"Hauts-de-Seine"},"216":{"code":"34","name":"H\u00e9rault"},"217":{"code":"35","name":"Ille-et-Vilaine"},"218":{"code":"36","name":"Indre"},"219":{"code":"37","name":"Indre-et-Loire"},"220":{"code":"38","name":"Is\u00e8re"},"221":{"code":"39","name":"Jura"},"222":{"code":"40","name":"Landes"},"223":{"code":"41","name":"Loir-et-Cher"},"224":{"code":"42","name":"Loire"},"226":{"code":"44","name":"Loire-Atlantique"},"227":{"code":"45","name":"Loiret"},"228":{"code":"46","name":"Lot"},"229":{"code":"47","name":"Lot-et-Garonne"},"230":{"code":"48","name":"Loz\u00e8re"},"231":{"code":"49","name":"Maine-et-Loire"},"232":{"code":"50","name":"Manche"},"233":{"code":"51","name":"Marne"},"235":{"code":"53","name":"Mayenne"},"236":{"code":"54","name":"Meurthe-et-Moselle"},"237":{"code":"55","name":"Meuse"},"238":{"code":"56","name":"Morbihan"},"239":{"code":"57","name":"Moselle"},"240":{"code":"58","name":"Ni\u00e8vre"},"241":{"code":"59","name":"Nord"},"242":{"code":"60","name":"Oise"},"243":{"code":"61","name":"Orne"},"257":{"code":"75","name":"Paris"},"244":{"code":"62","name":"Pas-de-Calais"},"245":{"code":"63","name":"Puy-de-D\u00f4me"},"246":{"code":"64","name":"Pyr\u00e9n\u00e9es-Atlantiques"},"248":{"code":"66","name":"Pyr\u00e9n\u00e9es-Orientales"},"251":{"code":"69","name":"Rh\u00f4ne"},"253":{"code":"71","name":"Sa\u00f4ne-et-Loire"},"254":{"code":"72","name":"Sarthe"},"255":{"code":"73","name":"Savoie"},"259":{"code":"77","name":"Seine-et-Marne"},"258":{"code":"76","name":"Seine-Maritime"},"275":{"code":"93","name":"Seine-Saint-Denis"},"262":{"code":"80","name":"Somme"},"263":{"code":"81","name":"Tarn"},"264":{"code":"82","name":"Tarn-et-Garonne"},"272":{"code":"90","name":"Territoire-de-Belfort"},"277":{"code":"95","name":"Val-d'Oise"},"276":{"code":"94","name":"Val-de-Marne"},"265":{"code":"83","name":"Var"},"266":{"code":"84","name":"Vaucluse"},"267":{"code":"85","name":"Vend\u00e9e"},"268":{"code":"86","name":"Vienne"},"270":{"code":"88","name":"Vosges"},"271":{"code":"89","name":"Yonne"},"260":{"code":"78","name":"Yvelines"}}},"GA":{"name":"Gabon"},"GB":{"name":"United Kingdom"},"GD":{"name":"Grenada"},"GE":{"name":"Georgia"},"GF":{"name":"French Guiana"},"GG":{"name":"Guernsey"},"GH":{"name":"Ghana"},"GI":{"name":"Gibraltar"},"GL":{"name":"Greenland"},"GM":{"name":"Gambia"},"GN":{"name":"Guinea"},"GP":{"name":"Guadeloupe"},"GQ":{"name":"Equatorial Guinea"},"GR":{"name":"Greece","regions":{"817":{"code":"GR-69","name":"\u00c1gion \u00d3ros"},"804":{"code":"GR-A","name":"Anatolik\u00ed Makedon\u00eda kai Thr\u00e1ki"},"805":{"code":"GR-I","name":"Attik\u00ed"},"806":{"code":"GR-G","name":"Dytik\u00ed Ell\u00e1da"},"807":{"code":"GR-C","name":"Dytik\u00ed Makedon\u00eda"},"808":{"code":"GR-F","name":"Ion\u00eda N\u00edsia"},"809":{"code":"GR-D","name":"\u00cdpeiros"},"810":{"code":"GR-B","name":"Kentrik\u00ed Makedon\u00eda"},"811":{"code":"GR-M","name":"Kr\u00edti"},"812":{"code":"GR-L","name":"N\u00f3tio Aiga\u00edo"},"813":{"code":"GR-J","name":"Pelop\u00f3nnisos"},"814":{"code":"GR-H","name":"Stere\u00e1 Ell\u00e1da"},"815":{"code":"GR-E","name":"Thessal\u00eda"},"816":{"code":"GR-K","name":"V\u00f3reio Aiga\u00edo"}}},"GS":{"name":"South Georgia & South Sandwich Islands"},"GT":{"name":"Guatemala"},"GU":{"name":"Guam"},"GW":{"name":"Guinea-Bissau"},"GY":{"name":"Guyana","regions":{"818":{"code":"GY-BA","name":"Barima-Waini"},"819":{"code":"GY-CU","name":"Cuyuni-Mazaruni"},"820":{"code":"GY-DE","name":"Demerara-Mahaica"},"821":{"code":"GY-EB","name":"East Berbice-Corentyne"},"822":{"code":"GY-ES","name":"Essequibo Islands-West Demerara"},"823":{"code":"GY-MA","name":"Mahaica-Berbice"},"824":{"code":"GY-PM","name":"Pomeroon-Supenaam"},"825":{"code":"GY-PT","name":"Potaro-Siparuni"},"826":{"code":"GY-UD","name":"Upper Demerara-Berbice"},"827":{"code":"GY-UT","name":"Upper Takutu-Upper Essequibo"}}},"HK":{"name":"Hong Kong SAR China"},"HM":{"name":"Heard & McDonald Islands"},"HN":{"name":"Honduras"},"HR":{"name":"Croatia","regions":{"518":{"code":"HR-07","name":"Bjelovarsko-bilogorska \u017eupanija"},"523":{"code":"HR-12","name":"Brodsko-posavska \u017eupanija"},"530":{"code":"HR-19","name":"Dubrova\u010dko-neretvanska \u017eupanija"},"532":{"code":"HR-21","name":"Grad Zagreb"},"529":{"code":"HR-18","name":"Istarska \u017eupanija"},"515":{"code":"HR-04","name":"Karlova\u010dka \u017eupanija"},"517":{"code":"HR-06","name":"Koprivni\u010dko-kri\u017eeva\u010dka \u017eupanija"},"513":{"code":"HR-02","name":"Krapinsko-zagorska \u017eupanija"},"520":{"code":"HR-09","name":"Li\u010dko-senjska \u017eupanija"},"531":{"code":"HR-20","name":"Me\u0111imurska \u017eupanija"},"525":{"code":"HR-14","name":"Osje\u010dko-baranjska \u017eupanija"},"522":{"code":"HR-11","name":"Po\u017ee\u0161ko-slavonska \u017eupanija"},"519":{"code":"HR-08","name":"Primorsko-goranska \u017eupanija"},"526":{"code":"HR-15","name":"\u0160ibensko-kninska \u017eupanija"},"514":{"code":"HR-03","name":"Sisa\u010dko-moslava\u010dka \u017eupanija"},"528":{"code":"HR-17","name":"Splitsko-dalmatinska \u017eupanija"},"516":{"code":"HR-05","name":"Vara\u017edinska \u017eupanija"},"521":{"code":"HR-10","name":"Viroviti\u010dko-podravska \u017eupanija"},"527":{"code":"HR-16","name":"Vukovarsko-srijemska \u017eupanija"},"524":{"code":"HR-13","name":"Zadarska \u017eupanija"},"512":{"code":"HR-01","name":"Zagreba\u010dka \u017eupanija"}}},"HT":{"name":"Haiti"},"HU":{"name":"Hungary"},"ID":{"name":"Indonesia"},"IE":{"name":"Ireland"},"IL":{"name":"Israel"},"IM":{"name":"Isle of Man"},"IN":{"name":"India","regions":{"533":{"code":"AN","name":"Andaman and Nicobar Islands"},"534":{"code":"AP","name":"Andhra Pradesh"},"535":{"code":"AR","name":"Arunachal Pradesh"},"536":{"code":"AS","name":"Assam"},"537":{"code":"BR","name":"Bihar"},"538":{"code":"CH","name":"Chandigarh"},"539":{"code":"CT","name":"Chhattisgarh"},"540":{"code":"DN","name":"Dadra and Nagar Haveli"},"541":{"code":"DD","name":"Daman and Diu"},"542":{"code":"DL","name":"Delhi"},"543":{"code":"GA","name":"Goa"},"544":{"code":"GJ","name":"Gujarat"},"545":{"code":"HR","name":"Haryana"},"546":{"code":"HP","name":"Himachal Pradesh"},"547":{"code":"JK","name":"Jammu and Kashmir"},"548":{"code":"JH","name":"Jharkhand"},"549":{"code":"KA","name":"Karnataka"},"550":{"code":"KL","name":"Kerala"},"551":{"code":"LD","name":"Lakshadweep"},"552":{"code":"MP","name":"Madhya Pradesh"},"553":{"code":"MH","name":"Maharashtra"},"554":{"code":"MN","name":"Manipur"},"555":{"code":"ML","name":"Meghalaya"},"556":{"code":"MZ","name":"Mizoram"},"557":{"code":"NL","name":"Nagaland"},"558":{"code":"OR","name":"Odisha"},"559":{"code":"PY","name":"Puducherry"},"560":{"code":"PB","name":"Punjab"},"561":{"code":"RJ","name":"Rajasthan"},"562":{"code":"SK","name":"Sikkim"},"563":{"code":"TN","name":"Tamil Nadu"},"564":{"code":"TG","name":"Telangana"},"565":{"code":"TR","name":"Tripura"},"566":{"code":"UP","name":"Uttar Pradesh"},"567":{"code":"UT","name":"Uttarakhand"},"568":{"code":"WB","name":"West Bengal"}}},"IO":{"name":"British Indian Ocean Territory"},"IQ":{"name":"Iraq"},"IR":{"name":"Iran"},"IS":{"name":"Iceland","regions":{"834":{"code":"IS-07","name":"Austurland"},"828":{"code":"IS-01","name":"H\u00f6fu\u00f0borgarsv\u00e6\u00f0i"},"833":{"code":"IS-06","name":"Nor\u00f0urland eystra"},"832":{"code":"IS-05","name":"Nor\u00f0urland vestra"},"835":{"code":"IS-08","name":"Su\u00f0urland"},"829":{"code":"IS-02","name":"Su\u00f0urnes"},"831":{"code":"IS-04","name":"Vestfir\u00f0ir"},"830":{"code":"IS-03","name":"Vesturland"}}},"IT":{"name":"Italy","regions":{"836":{"code":"AG","name":"Agrigento"},"837":{"code":"AL","name":"Alessandria"},"838":{"code":"AN","name":"Ancona"},"839":{"code":"AO","name":"Aosta"},"841":{"code":"AR","name":"Arezzo"},"842":{"code":"AP","name":"Ascoli-Piceno"},"843":{"code":"AT","name":"Asti"},"844":{"code":"AV","name":"Avellino"},"845":{"code":"BA","name":"Bari"},"846":{"code":"BT","name":"Barletta-Andria-Trani"},"847":{"code":"BL","name":"Belluno"},"848":{"code":"BN","name":"Benevento"},"849":{"code":"BG","name":"Bergamo"},"850":{"code":"BI","name":"Biella"},"851":{"code":"BO","name":"Bologna"},"852":{"code":"BZ","name":"Bolzano"},"853":{"code":"BS","name":"Brescia"},"854":{"code":"BR","name":"Brindisi"},"855":{"code":"CA","name":"Cagliari"},"856":{"code":"CL","name":"Caltanissetta"},"857":{"code":"CB","name":"Campobasso"},"858":{"code":"CI","name":"Carbonia Iglesias"},"859":{"code":"CE","name":"Caserta"},"860":{"code":"CT","name":"Catania"},"861":{"code":"CZ","name":"Catanzaro"},"862":{"code":"CH","name":"Chieti"},"863":{"code":"CO","name":"Como"},"864":{"code":"CS","name":"Cosenza"},"865":{"code":"CR","name":"Cremona"},"866":{"code":"KR","name":"Crotone"},"867":{"code":"CN","name":"Cuneo"},"868":{"code":"EN","name":"Enna"},"869":{"code":"FM","name":"Fermo"},"870":{"code":"FE","name":"Ferrara"},"871":{"code":"FI","name":"Firenze"},"872":{"code":"FG","name":"Foggia"},"873":{"code":"FC","name":"Forli-Cesena"},"874":{"code":"FR","name":"Frosinone"},"875":{"code":"GE","name":"Genova"},"876":{"code":"GO","name":"Gorizia"},"877":{"code":"GR","name":"Grosseto"},"878":{"code":"IM","name":"Imperia"},"879":{"code":"IS","name":"Isernia"},"840":{"code":"AQ","name":"L'Aquila"},"880":{"code":"SP","name":"La-Spezia"},"881":{"code":"LT","name":"Latina"},"882":{"code":"LE","name":"Lecce"},"883":{"code":"LC","name":"Lecco"},"884":{"code":"LI","name":"Livorno"},"885":{"code":"LO","name":"Lodi"},"886":{"code":"LU","name":"Lucca"},"887":{"code":"MC","name":"Macerata"},"888":{"code":"MN","name":"Mantova"},"889":{"code":"MS","name":"Massa-Carrara"},"890":{"code":"MT","name":"Matera"},"891":{"code":"VS","name":"Medio Campidano"},"892":{"code":"ME","name":"Messina"},"893":{"code":"MI","name":"Milano"},"894":{"code":"MO","name":"Modena"},"895":{"code":"MB","name":"Monza-Brianza"},"896":{"code":"NA","name":"Napoli"},"897":{"code":"NO","name":"Novara"},"898":{"code":"NU","name":"Nuoro"},"899":{"code":"OG","name":"Ogliastra"},"900":{"code":"OT","name":"Olbia Tempio"},"901":{"code":"OR","name":"Oristano"},"902":{"code":"PD","name":"Padova"},"903":{"code":"PA","name":"Palermo"},"904":{"code":"PR","name":"Parma"},"905":{"code":"PV","name":"Pavia"},"906":{"code":"PG","name":"Perugia"},"907":{"code":"PU","name":"Pesaro-Urbino"},"908":{"code":"PE","name":"Pescara"},"909":{"code":"PC","name":"Piacenza"},"910":{"code":"PI","name":"Pisa"},"911":{"code":"PT","name":"Pistoia"},"912":{"code":"PN","name":"Pordenone"},"913":{"code":"PZ","name":"Potenza"},"914":{"code":"PO","name":"Prato"},"915":{"code":"RG","name":"Ragusa"},"916":{"code":"RA","name":"Ravenna"},"917":{"code":"RC","name":"Reggio-Calabria"},"918":{"code":"RE","name":"Reggio-Emilia"},"919":{"code":"RI","name":"Rieti"},"920":{"code":"RN","name":"Rimini"},"921":{"code":"RM","name":"Roma"},"922":{"code":"RO","name":"Rovigo"},"923":{"code":"SA","name":"Salerno"},"924":{"code":"SS","name":"Sassari"},"925":{"code":"SV","name":"Savona"},"926":{"code":"SI","name":"Siena"},"927":{"code":"SR","name":"Siracusa"},"928":{"code":"SO","name":"Sondrio"},"929":{"code":"TA","name":"Taranto"},"930":{"code":"TE","name":"Teramo"},"931":{"code":"TR","name":"Terni"},"932":{"code":"TO","name":"Torino"},"933":{"code":"TP","name":"Trapani"},"934":{"code":"TN","name":"Trento"},"935":{"code":"TV","name":"Treviso"},"936":{"code":"TS","name":"Trieste"},"937":{"code":"UD","name":"Udine"},"938":{"code":"VA","name":"Varese"},"939":{"code":"VE","name":"Venezia"},"940":{"code":"VB","name":"Verbania"},"941":{"code":"VC","name":"Vercelli"},"942":{"code":"VR","name":"Verona"},"943":{"code":"VV","name":"Vibo-Valentia"},"944":{"code":"VI","name":"Vicenza"},"945":{"code":"VT","name":"Viterbo"}}},"JE":{"name":"Jersey"},"JM":{"name":"Jamaica"},"JO":{"name":"Jordan"},"JP":{"name":"Japan"},"KE":{"name":"Kenya"},"KG":{"name":"Kyrgyzstan"},"KH":{"name":"Cambodia"},"KI":{"name":"Kiribati"},"KM":{"name":"Comoros"},"KN":{"name":"St. Kitts & Nevis"},"KP":{"name":"North Korea"},"KR":{"name":"South Korea"},"KW":{"name":"Kuwait"},"KY":{"name":"Cayman Islands"},"KZ":{"name":"Kazakhstan"},"LA":{"name":"Laos"},"LB":{"name":"Lebanon"},"LC":{"name":"St. Lucia"},"LI":{"name":"Liechtenstein"},"LK":{"name":"Sri Lanka"},"LR":{"name":"Liberia"},"LS":{"name":"Lesotho"},"LT":{"name":"Lithuania","regions":{"475":{"code":"LT-AL","name":"Alytaus Apskritis"},"476":{"code":"LT-KU","name":"Kauno Apskritis"},"477":{"code":"LT-KL","name":"Klaip\u0117dos Apskritis"},"478":{"code":"LT-MR","name":"Marijampol\u0117s Apskritis"},"479":{"code":"LT-PN","name":"Panev\u0117\u017eio Apskritis"},"480":{"code":"LT-SA","name":"\u0160iauli\u0173 Apskritis"},"481":{"code":"LT-TA","name":"Taurag\u0117s Apskritis"},"482":{"code":"LT-TE","name":"Tel\u0161i\u0173 Apskritis"},"483":{"code":"LT-UT","name":"Utenos Apskritis"},"484":{"code":"LT-VL","name":"Vilniaus Apskritis"}}},"LU":{"name":"Luxembourg"},"LV":{"name":"Latvia","regions":{"471":{"code":"\u0100da\u017eu novads","name":"\u0100da\u017eu novads"},"366":{"code":"Aglonas novads","name":"Aglonas novads"},"367":{"code":"LV-AI","name":"Aizkraukles novads"},"368":{"code":"Aizputes novads","name":"Aizputes novads"},"369":{"code":"Akn\u012bstes novads","name":"Akn\u012bstes novads"},"370":{"code":"Alojas novads","name":"Alojas novads"},"371":{"code":"Alsungas novads","name":"Alsungas novads"},"372":{"code":"LV-AL","name":"Al\u016bksnes novads"},"373":{"code":"Amatas novads","name":"Amatas novads"},"374":{"code":"Apes novads","name":"Apes novads"},"375":{"code":"Auces novads","name":"Auces novads"},"376":{"code":"Bab\u012btes novads","name":"Bab\u012btes novads"},"377":{"code":"Baldones novads","name":"Baldones novads"},"378":{"code":"Baltinavas novads","name":"Baltinavas novads"},"379":{"code":"LV-BL","name":"Balvu novads"},"380":{"code":"LV-BU","name":"Bauskas novads"},"381":{"code":"Bever\u012bnas novads","name":"Bever\u012bnas novads"},"382":{"code":"Broc\u0113nu novads","name":"Broc\u0113nu novads"},"383":{"code":"Burtnieku novads","name":"Burtnieku novads"},"384":{"code":"Carnikavas novads","name":"Carnikavas novads"},"387":{"code":"LV-CE","name":"C\u0113su novads"},"385":{"code":"Cesvaines novads","name":"Cesvaines novads"},"386":{"code":"Ciblas novads","name":"Ciblas novads"},"388":{"code":"Dagdas novads","name":"Dagdas novads"},"355":{"code":"LV-DGV","name":"Daugavpils"},"389":{"code":"LV-DA","name":"Daugavpils novads"},"390":{"code":"LV-DO","name":"Dobeles novads"},"391":{"code":"Dundagas novads","name":"Dundagas novads"},"392":{"code":"Durbes novads","name":"Durbes novads"},"393":{"code":"Engures novads","name":"Engures novads"},"472":{"code":"\u0112rg\u013cu novads","name":"\u0112rg\u013cu novads"},"394":{"code":"Garkalnes novads","name":"Garkalnes novads"},"395":{"code":"Grobi\u0146as novads","name":"Grobi\u0146as novads"},"396":{"code":"LV-GU","name":"Gulbenes novads"},"397":{"code":"Iecavas novads","name":"Iecavas novads"},"398":{"code":"Ik\u0161\u0137iles novads","name":"Ik\u0161\u0137iles novads"},"399":{"code":"Il\u016bkstes novads","name":"Il\u016bkstes novads"},"400":{"code":"In\u010dukalna novads","name":"In\u010dukalna novads"},"401":{"code":"Jaunjelgavas novads","name":"Jaunjelgavas novads"},"402":{"code":"Jaunpiebalgas novads","name":"Jaunpiebalgas novads"},"403":{"code":"Jaunpils novads","name":"Jaunpils novads"},"357":{"code":"J\u0113kabpils","name":"J\u0113kabpils"},"405":{"code":"LV-JK","name":"J\u0113kabpils novads"},"356":{"code":"LV-JEL","name":"Jelgava"},"404":{"code":"LV-JL","name":"Jelgavas novads"},"358":{"code":"LV-JUR","name":"J\u016brmala"},"406":{"code":"Kandavas novads","name":"Kandavas novads"},"412":{"code":"K\u0101rsavas novads","name":"K\u0101rsavas novads"},"473":{"code":"\u0136eguma novads","name":"\u0136eguma novads"},"474":{"code":"\u0136ekavas novads","name":"\u0136ekavas novads"},"407":{"code":"Kokneses novads","name":"Kokneses novads"},"410":{"code":"LV-KR","name":"Kr\u0101slavas novads"},"408":{"code":"Krimuldas novads","name":"Krimuldas novads"},"409":{"code":"Krustpils novads","name":"Krustpils novads"},"411":{"code":"LV-KU","name":"Kuld\u012bgas novads"},"413":{"code":"Lielv\u0101rdes novads","name":"Lielv\u0101rdes novads"},"359":{"code":"LV-LPX","name":"Liep\u0101ja"},"360":{"code":"LV-LE","name":"Liep\u0101jas novads"},"417":{"code":"L\u012bgatnes novads","name":"L\u012bgatnes novads"},"414":{"code":"LV-LM","name":"Limba\u017eu novads"},"418":{"code":"L\u012bv\u0101nu novads","name":"L\u012bv\u0101nu novads"},"415":{"code":"Lub\u0101nas novads","name":"Lub\u0101nas novads"},"416":{"code":"LV-LU","name":"Ludzas novads"},"419":{"code":"LV-MA","name":"Madonas novads"},"421":{"code":"M\u0101lpils novads","name":"M\u0101lpils novads"},"422":{"code":"M\u0101rupes novads","name":"M\u0101rupes novads"},"420":{"code":"Mazsalacas novads","name":"Mazsalacas novads"},"423":{"code":"Nauk\u0161\u0113nu novads","name":"Nauk\u0161\u0113nu novads"},"424":{"code":"Neretas novads","name":"Neretas novads"},"425":{"code":"N\u012bcas novads","name":"N\u012bcas novads"},"426":{"code":"LV-OG","name":"Ogres novads"},"427":{"code":"Olaines novads","name":"Olaines novads"},"428":{"code":"Ozolnieku novads","name":"Ozolnieku novads"},"432":{"code":"P\u0101rgaujas novads","name":"P\u0101rgaujas novads"},"433":{"code":"P\u0101vilostas novads","name":"P\u0101vilostas novads"},"434":{"code":"P\u013cavi\u0146u novads","name":"P\u013cavi\u0146u novads"},"429":{"code":"LV-PR","name":"Prei\u013cu novads"},"430":{"code":"Priekules novads","name":"Priekules novads"},"431":{"code":"Prieku\u013cu novads","name":"Prieku\u013cu novads"},"435":{"code":"Raunas novads","name":"Raunas novads"},"361":{"code":"LV-REZ","name":"R\u0113zekne"},"442":{"code":"LV-RE","name":"R\u0113zeknes novads"},"436":{"code":"Riebi\u0146u novads","name":"Riebi\u0146u novads"},"362":{"code":"LV-RIX","name":"R\u012bga"},"363":{"code":"LV-RI","name":"R\u012bgas novads"},"437":{"code":"Rojas novads","name":"Rojas novads"},"438":{"code":"Ropa\u017eu novads","name":"Ropa\u017eu novads"},"439":{"code":"Rucavas novads","name":"Rucavas novads"},"440":{"code":"Rug\u0101ju novads","name":"Rug\u0101ju novads"},"443":{"code":"R\u016bjienas novads","name":"R\u016bjienas novads"},"441":{"code":"Rund\u0101les novads","name":"Rund\u0101les novads"},"444":{"code":"Salacgr\u012bvas novads","name":"Salacgr\u012bvas novads"},"445":{"code":"Salas novads","name":"Salas novads"},"446":{"code":"Salaspils novads","name":"Salaspils novads"},"447":{"code":"LV-SA","name":"Saldus novads"},"448":{"code":"Saulkrastu novads","name":"Saulkrastu novads"},"455":{"code":"S\u0113jas novads","name":"S\u0113jas novads"},"449":{"code":"Siguldas novads","name":"Siguldas novads"},"451":{"code":"Skr\u012bveru novads","name":"Skr\u012bveru novads"},"450":{"code":"Skrundas novads","name":"Skrundas novads"},"452":{"code":"Smiltenes novads","name":"Smiltenes novads"},"453":{"code":"Stopi\u0146u novads","name":"Stopi\u0146u novads"},"454":{"code":"Stren\u010du novads","name":"Stren\u010du novads"},"456":{"code":"LV-TA","name":"Talsu novads"},"458":{"code":"T\u0113rvetes novads","name":"T\u0113rvetes novads"},"457":{"code":"LV-TU","name":"Tukuma novads"},"459":{"code":"Vai\u0146odes novads","name":"Vai\u0146odes novads"},"460":{"code":"LV-VK","name":"Valkas novads"},"364":{"code":"Valmiera","name":"Valmiera"},"461":{"code":"LV-VM","name":"Valmieras novads"},"462":{"code":"Varak\u013c\u0101nu novads","name":"Varak\u013c\u0101nu novads"},"469":{"code":"V\u0101rkavas novads","name":"V\u0101rkavas novads"},"463":{"code":"Vecpiebalgas novads","name":"Vecpiebalgas novads"},"464":{"code":"Vecumnieku novads","name":"Vecumnieku novads"},"365":{"code":"LV-VEN","name":"Ventspils"},"465":{"code":"LV-VE","name":"Ventspils novads"},"466":{"code":"Vies\u012btes novads","name":"Vies\u012btes novads"},"467":{"code":"Vi\u013cakas novads","name":"Vi\u013cakas novads"},"468":{"code":"Vi\u013c\u0101nu novads","name":"Vi\u013c\u0101nu novads"},"470":{"code":"Zilupes novads","name":"Zilupes novads"}}},"LY":{"name":"Libya"},"MA":{"name":"Morocco"},"MC":{"name":"Monaco"},"MD":{"name":"Moldova"},"ME":{"name":"Montenegro"},"MF":{"name":"St. Martin"},"MG":{"name":"Madagascar"},"MH":{"name":"Marshall Islands"},"MK":{"name":"North Macedonia"},"ML":{"name":"Mali"},"MM":{"name":"Myanmar (Burma)"},"MN":{"name":"Mongolia"},"MO":{"name":"Macao SAR China"},"MP":{"name":"Northern Mariana Islands"},"MQ":{"name":"Martinique"},"MR":{"name":"Mauritania"},"MS":{"name":"Montserrat"},"MT":{"name":"Malta"},"MU":{"name":"Mauritius"},"MV":{"name":"Maldives"},"MW":{"name":"Malawi"},"MX":{"name":"Mexico","regions":{"577":{"code":"AGU","name":"Aguascalientes"},"578":{"code":"BCN","name":"Baja California"},"579":{"code":"BCS","name":"Baja California Sur"},"580":{"code":"CAM","name":"Campeche"},"581":{"code":"CHP","name":"Chiapas"},"582":{"code":"CHH","name":"Chihuahua"},"583":{"code":"CMX","name":"Ciudad de M\u00e9xico"},"584":{"code":"COA","name":"Coahuila"},"585":{"code":"COL","name":"Colima"},"586":{"code":"DUR","name":"Durango"},"587":{"code":"MEX","name":"Estado de M\u00e9xico"},"588":{"code":"GUA","name":"Guanajuato"},"589":{"code":"GRO","name":"Guerrero"},"590":{"code":"HID","name":"Hidalgo"},"591":{"code":"JAL","name":"Jalisco"},"592":{"code":"MIC","name":"Michoac\u00e1n"},"593":{"code":"MOR","name":"Morelos"},"594":{"code":"NAY","name":"Nayarit"},"595":{"code":"NLE","name":"Nuevo Le\u00f3n"},"596":{"code":"OAX","name":"Oaxaca"},"597":{"code":"PUE","name":"Puebla"},"598":{"code":"QUE","name":"Quer\u00e9taro"},"599":{"code":"ROO","name":"Quintana Roo"},"600":{"code":"SLP","name":"San Luis Potos\u00ed"},"601":{"code":"SIN","name":"Sinaloa"},"602":{"code":"SON","name":"Sonora"},"603":{"code":"TAB","name":"Tabasco"},"604":{"code":"TAM","name":"Tamaulipas"},"605":{"code":"TLA","name":"Tlaxcala"},"606":{"code":"VER","name":"Veracruz"},"607":{"code":"YUC","name":"Yucat\u00e1n"},"608":{"code":"ZAC","name":"Zacatecas"}}},"MY":{"name":"Malaysia"},"MZ":{"name":"Mozambique"},"NA":{"name":"Namibia"},"NC":{"name":"New Caledonia"},"NE":{"name":"Niger"},"NF":{"name":"Norfolk Island"},"NG":{"name":"Nigeria"},"NI":{"name":"Nicaragua"},"NL":{"name":"Netherlands"},"NO":{"name":"Norway"},"NP":{"name":"Nepal"},"NR":{"name":"Nauru"},"NU":{"name":"Niue"},"NZ":{"name":"New Zealand"},"OM":{"name":"Oman"},"PA":{"name":"Panama"},"PE":{"name":"Peru","regions":{"965":{"code":"PE-AMA","name":"Amazonas"},"966":{"code":"PE-ANC","name":"Ancash"},"967":{"code":"PE-APU","name":"Apur\u00edmac"},"968":{"code":"PE-ARE","name":"Arequipa"},"969":{"code":"PE-AYA","name":"Ayacucho"},"970":{"code":"PE-CAJ","name":"Cajamarca"},"971":{"code":"PE-CUS","name":"Cusco"},"972":{"code":"PE-CAL","name":"El Callao"},"973":{"code":"PE-HUV","name":"Huancavelica"},"974":{"code":"PE-HUC","name":"Hu\u00e1nuco"},"975":{"code":"PE-ICA","name":"Ica"},"976":{"code":"PE-JUN","name":"Jun\u00edn"},"977":{"code":"PE-LAL","name":"La Libertad"},"978":{"code":"PE-LAM","name":"Lambayeque"},"979":{"code":"PE-LIM","name":"Lima"},"980":{"code":"PE-LOR","name":"Loreto"},"981":{"code":"PE-MDD","name":"Madre de Dios"},"982":{"code":"PE-MOQ","name":"Moquegua"},"964":{"code":"PE-LMA","name":"Municipalidad Metropolitana de Lima"},"983":{"code":"PE-PAS","name":"Pasco"},"984":{"code":"PE-PIU","name":"Piura"},"985":{"code":"PE-PUN","name":"Puno"},"986":{"code":"PE-SAM","name":"San Mart\u00edn"},"987":{"code":"PE-TAC","name":"Tacna"},"988":{"code":"PE-TUM","name":"Tumbes"},"989":{"code":"PE-UCA","name":"Ucayali"}}},"PF":{"name":"French Polynesia"},"PG":{"name":"Papua New Guinea"},"PH":{"name":"Philippines"},"PK":{"name":"Pakistan"},"PL":{"name":"Poland","regions":{"990":{"code":"PL-02","name":"dolno\u015bl\u0105skie"},"991":{"code":"PL-04","name":"kujawsko-pomorskie"},"992":{"code":"PL-06","name":"lubelskie"},"993":{"code":"PL-08","name":"lubuskie"},"996":{"code":"PL-14","name":"mazowieckie"},"995":{"code":"PL-12","name":"ma\u0142opolskie"},"997":{"code":"PL-16","name":"opolskie"},"998":{"code":"PL-18","name":"podkarpackie"},"999":{"code":"PL-20","name":"podlaskie"},"1000":{"code":"PL-22","name":"pomorskie"},"1001":{"code":"PL-24","name":"\u015bl\u0105skie"},"1002":{"code":"PL-26","name":"\u015bwi\u0119tokrzyskie"},"1003":{"code":"PL-28","name":"warmi\u0144sko-mazurskie"},"1004":{"code":"PL-30","name":"wielkopolskie"},"1005":{"code":"PL-32","name":"zachodniopomorskie"},"994":{"code":"PL-10","name":"\u0142\u00f3dzkie"}}},"PM":{"name":"St. Pierre & Miquelon"},"PN":{"name":"Pitcairn Islands"},"PR":{"name":"Puerto Rico"},"PS":{"name":"Palestinian Territories"},"PT":{"name":"Portugal","regions":{"1006":{"code":"PT-01","name":"Aveiro"},"1007":{"code":"PT-02","name":"Beja"},"1008":{"code":"PT-03","name":"Braga"},"1009":{"code":"PT-04","name":"Bragan\u00e7a"},"1010":{"code":"PT-05","name":"Castelo Branco"},"1011":{"code":"PT-06","name":"Coimbra"},"1012":{"code":"PT-07","name":"\u00c9vora"},"1013":{"code":"PT-08","name":"Faro"},"1014":{"code":"PT-09","name":"Guarda"},"1015":{"code":"PT-10","name":"Leiria"},"1016":{"code":"PT-11","name":"Lisboa"},"1017":{"code":"PT-12","name":"Portalegre"},"1018":{"code":"PT-13","name":"Porto"},"1025":{"code":"PT-30","name":"Regi\u00e3o Aut\u00f3noma da Madeira"},"1024":{"code":"PT-20","name":"Regi\u00e3o Aut\u00f3noma dos A\u00e7ores"},"1019":{"code":"PT-14","name":"Santar\u00e9m"},"1020":{"code":"PT-15","name":"Set\u00fabal"},"1021":{"code":"PT-16","name":"Viana do Castelo"},"1022":{"code":"PT-17","name":"Vila Real"},"1023":{"code":"PT-18","name":"Viseu"}}},"PW":{"name":"Palau"},"PY":{"name":"Paraguay","regions":{"947":{"code":"PY-16","name":"Alto Paraguay"},"948":{"code":"PY-10","name":"Alto Paran\u00e1"},"949":{"code":"PY-13","name":"Amambay"},"946":{"code":"PY-ASU","name":"Asunci\u00f3n"},"950":{"code":"PY-19","name":"Boquer\u00f3n"},"951":{"code":"PY-5","name":"Caaguaz\u00fa"},"952":{"code":"PY-6","name":"Caazap\u00e1"},"953":{"code":"PY-14","name":"Canindey\u00fa"},"954":{"code":"PY-11","name":"Central"},"955":{"code":"PY-1","name":"Concepci\u00f3n"},"956":{"code":"PY-3","name":"Cordillera"},"957":{"code":"PY-4","name":"Guair\u00e1"},"958":{"code":"PY-7","name":"Itap\u00faa"},"959":{"code":"PY-8","name":"Misiones"},"960":{"code":"PY-12","name":"\u00d1eembuc\u00fa"},"961":{"code":"PY-9","name":"Paraguar\u00ed"},"962":{"code":"PY-15","name":"Presidente Hayes"},"963":{"code":"PY-2","name":"San Pedro"}}},"QA":{"name":"Qatar"},"RE":{"name":"R\u00e9union"},"RO":{"name":"Romania","regions":{"278":{"code":"AB","name":"Alba"},"279":{"code":"AR","name":"Arad"},"280":{"code":"AG","name":"Arge\u015f"},"281":{"code":"BC","name":"Bac\u0103u"},"282":{"code":"BH","name":"Bihor"},"283":{"code":"BN","name":"Bistri\u0163a-N\u0103s\u0103ud"},"284":{"code":"BT","name":"Boto\u015fani"},"286":{"code":"BR","name":"Br\u0103ila"},"285":{"code":"BV","name":"Bra\u015fov"},"287":{"code":"B","name":"Bucure\u015fti"},"288":{"code":"BZ","name":"Buz\u0103u"},"290":{"code":"CL","name":"C\u0103l\u0103ra\u015fi"},"289":{"code":"CS","name":"Cara\u015f-Severin"},"291":{"code":"CJ","name":"Cluj"},"292":{"code":"CT","name":"Constan\u0163a"},"293":{"code":"CV","name":"Covasna"},"294":{"code":"DB","name":"D\u00e2mbovi\u0163a"},"295":{"code":"DJ","name":"Dolj"},"296":{"code":"GL","name":"Gala\u0163i"},"297":{"code":"GR","name":"Giurgiu"},"298":{"code":"GJ","name":"Gorj"},"299":{"code":"HR","name":"Harghita"},"300":{"code":"HD","name":"Hunedoara"},"301":{"code":"IL","name":"Ialomi\u0163a"},"302":{"code":"IS","name":"Ia\u015fi"},"303":{"code":"IF","name":"Ilfov"},"304":{"code":"MM","name":"Maramure\u015f"},"305":{"code":"MH","name":"Mehedin\u0163i"},"306":{"code":"MS","name":"Mure\u015f"},"307":{"code":"NT","name":"Neam\u0163"},"308":{"code":"OT","name":"Olt"},"309":{"code":"PH","name":"Prahova"},"311":{"code":"SJ","name":"S\u0103laj"},"310":{"code":"SM","name":"Satu-Mare"},"312":{"code":"SB","name":"Sibiu"},"313":{"code":"SV","name":"Suceava"},"314":{"code":"TR","name":"Teleorman"},"315":{"code":"TM","name":"Timi\u015f"},"316":{"code":"TL","name":"Tulcea"},"318":{"code":"VL","name":"V\u00e2lcea"},"317":{"code":"VS","name":"Vaslui"},"319":{"code":"VN","name":"Vrancea"}}},"RS":{"name":"Serbia"},"RU":{"name":"Russia"},"RW":{"name":"Rwanda"},"SA":{"name":"Saudi Arabia"},"SB":{"name":"Solomon Islands"},"SC":{"name":"Seychelles"},"SD":{"name":"Sudan"},"SE":{"name":"Sweden","regions":{"1036":{"code":"SE-K","name":"Blekinge l\u00e4n"},"1037":{"code":"SE-W","name":"Dalarnas l\u00e4n"},"1039":{"code":"SE-X","name":"G\u00e4vleborgs l\u00e4n"},"1038":{"code":"SE-I","name":"Gotlands l\u00e4n"},"1040":{"code":"SE-N","name":"Hallands l\u00e4n"},"1041":{"code":"SE-Z","name":"J\u00e4mtlands l\u00e4n"},"1042":{"code":"SE-F","name":"J\u00f6nk\u00f6pings l\u00e4n"},"1043":{"code":"SE-H","name":"Kalmar l\u00e4n"},"1044":{"code":"SE-G","name":"Kronobergs l\u00e4n"},"1045":{"code":"SE-BD","name":"Norrbottens l\u00e4n"},"1055":{"code":"SE-T","name":"\u00d6rebro l\u00e4n"},"1056":{"code":"SE-E","name":"\u00d6sterg\u00f6tlands l\u00e4n"},"1046":{"code":"SE-M","name":"Sk\u00e5ne l\u00e4n"},"1048":{"code":"SE-D","name":"S\u00f6dermanlands l\u00e4n"},"1047":{"code":"SE-AB","name":"Stockholms l\u00e4n"},"1049":{"code":"SE-C","name":"Uppsala l\u00e4n"},"1050":{"code":"SE-S","name":"V\u00e4rmlands l\u00e4n"},"1051":{"code":"SE-AC","name":"V\u00e4sterbottens l\u00e4n"},"1052":{"code":"SE-Y","name":"V\u00e4sternorrlands l\u00e4n"},"1053":{"code":"SE-U","name":"V\u00e4stmanlands l\u00e4n"},"1054":{"code":"SE-O","name":"V\u00e4stra G\u00f6talands l\u00e4n"}}},"SG":{"name":"Singapore"},"SH":{"name":"St. Helena"},"SI":{"name":"Slovenia"},"SJ":{"name":"Svalbard & Jan Mayen"},"SK":{"name":"Slovakia"},"SL":{"name":"Sierra Leone"},"SM":{"name":"San Marino"},"SN":{"name":"Senegal"},"SO":{"name":"Somalia"},"SR":{"name":"Suriname","regions":{"1026":{"code":"SR-BR","name":"Brokopondo"},"1027":{"code":"SR-CM","name":"Commewijne"},"1028":{"code":"SR-CR","name":"Coronie"},"1029":{"code":"SR-MA","name":"Marowijne"},"1030":{"code":"SR-NI","name":"Nickerie"},"1031":{"code":"SR-PR","name":"Para"},"1032":{"code":"SR-PM","name":"Paramaribo"},"1033":{"code":"SR-SA","name":"Saramacca"},"1034":{"code":"SR-SI","name":"Sipaliwini"},"1035":{"code":"SR-WA","name":"Wanica"}}},"ST":{"name":"S\u00e3o Tom\u00e9 & Pr\u00edncipe"},"SV":{"name":"El Salvador"},"SX":{"name":"Sint Maarten"},"SY":{"name":"Syria"},"SZ":{"name":"Eswatini"},"TC":{"name":"Turks & Caicos Islands"},"TD":{"name":"Chad"},"TF":{"name":"French Southern Territories"},"TG":{"name":"Togo"},"TH":{"name":"Thailand"},"TJ":{"name":"Tajikistan"},"TK":{"name":"Tokelau"},"TL":{"name":"Timor-Leste"},"TM":{"name":"Turkmenistan"},"TN":{"name":"Tunisia"},"TO":{"name":"Tonga"},"TR":{"name":"Turkey"},"TT":{"name":"Trinidad & Tobago"},"TV":{"name":"Tuvalu"},"TW":{"name":"Taiwan, Province of China"},"TZ":{"name":"Tanzania"},"UA":{"name":"Ukraine"},"UG":{"name":"Uganda"},"UM":{"name":"U.S. Outlying Islands"},"US":{"name":"United States","regions":{"1":{"code":"AL","name":"Alabama"},"2":{"code":"AK","name":"Alaska"},"3":{"code":"AS","name":"American Samoa"},"4":{"code":"AZ","name":"Arizona"},"5":{"code":"AR","name":"Arkansas"},"6":{"code":"AE","name":"Armed Forces Africa"},"7":{"code":"AA","name":"Armed Forces Americas"},"8":{"code":"AE","name":"Armed Forces Canada"},"9":{"code":"AE","name":"Armed Forces Europe"},"10":{"code":"AE","name":"Armed Forces Middle East"},"11":{"code":"AP","name":"Armed Forces Pacific"},"12":{"code":"CA","name":"California"},"13":{"code":"CO","name":"Colorado"},"14":{"code":"CT","name":"Connecticut"},"15":{"code":"DE","name":"Delaware"},"16":{"code":"DC","name":"District of Columbia"},"17":{"code":"FM","name":"Federated States Of Micronesia"},"18":{"code":"FL","name":"Florida"},"19":{"code":"GA","name":"Georgia"},"20":{"code":"GU","name":"Guam"},"21":{"code":"HI","name":"Hawaii"},"22":{"code":"ID","name":"Idaho"},"23":{"code":"IL","name":"Illinois"},"24":{"code":"IN","name":"Indiana"},"25":{"code":"IA","name":"Iowa"},"26":{"code":"KS","name":"Kansas"},"27":{"code":"KY","name":"Kentucky"},"28":{"code":"LA","name":"Louisiana"},"29":{"code":"ME","name":"Maine"},"30":{"code":"MH","name":"Marshall Islands"},"31":{"code":"MD","name":"Maryland"},"32":{"code":"MA","name":"Massachusetts"},"33":{"code":"MI","name":"Michigan"},"34":{"code":"MN","name":"Minnesota"},"35":{"code":"MS","name":"Mississippi"},"36":{"code":"MO","name":"Missouri"},"37":{"code":"MT","name":"Montana"},"38":{"code":"NE","name":"Nebraska"},"39":{"code":"NV","name":"Nevada"},"40":{"code":"NH","name":"New Hampshire"},"41":{"code":"NJ","name":"New Jersey"},"42":{"code":"NM","name":"New Mexico"},"43":{"code":"NY","name":"New York"},"44":{"code":"NC","name":"North Carolina"},"45":{"code":"ND","name":"North Dakota"},"46":{"code":"MP","name":"Northern Mariana Islands"},"47":{"code":"OH","name":"Ohio"},"48":{"code":"OK","name":"Oklahoma"},"49":{"code":"OR","name":"Oregon"},"50":{"code":"PW","name":"Palau"},"51":{"code":"PA","name":"Pennsylvania"},"52":{"code":"PR","name":"Puerto Rico"},"53":{"code":"RI","name":"Rhode Island"},"54":{"code":"SC","name":"South Carolina"},"55":{"code":"SD","name":"South Dakota"},"56":{"code":"TN","name":"Tennessee"},"57":{"code":"TX","name":"Texas"},"58":{"code":"UT","name":"Utah"},"59":{"code":"VT","name":"Vermont"},"60":{"code":"VI","name":"Virgin Islands"},"61":{"code":"VA","name":"Virginia"},"62":{"code":"WA","name":"Washington"},"63":{"code":"WV","name":"West Virginia"},"64":{"code":"WI","name":"Wisconsin"},"65":{"code":"WY","name":"Wyoming"}}},"UY":{"name":"Uruguay","regions":{"1057":{"code":"UY-AR","name":"Artigas"},"1058":{"code":"UY-CA","name":"Canelones"},"1059":{"code":"UY-CL","name":"Cerro Largo"},"1060":{"code":"UY-CO","name":"Colonia"},"1061":{"code":"UY-DU","name":"Durazno"},"1062":{"code":"UY-FS","name":"Flores"},"1063":{"code":"UY-FD","name":"Florida"},"1064":{"code":"UY-LA","name":"Lavalleja"},"1065":{"code":"UY-MA","name":"Maldonado"},"1066":{"code":"UY-MO","name":"Montevideo"},"1067":{"code":"UY-PA","name":"Paysandu"},"1068":{"code":"UY-RN","name":"R\u00edo Negro"},"1069":{"code":"UY-RV","name":"Rivera"},"1070":{"code":"UY-RO","name":"Rocha"},"1071":{"code":"UY-SA","name":"Salto"},"1072":{"code":"UY-SJ","name":"San Jos\u00e9"},"1073":{"code":"UY-SO","name":"Soriano"},"1074":{"code":"UY-TA","name":"Tacuaremb\u00f3"},"1075":{"code":"UY-TT","name":"Treinta y Tres"}}},"UZ":{"name":"Uzbekistan"},"VA":{"name":"Vatican City"},"VC":{"name":"St. Vincent & Grenadines"},"VE":{"name":"Venezuela","regions":{"1078":{"code":"VE-Z","name":"Amazonas"},"1079":{"code":"VE-B","name":"Anzo\u00e1tegui"},"1080":{"code":"VE-C","name":"Apure"},"1081":{"code":"VE-D","name":"Aragua"},"1082":{"code":"VE-E","name":"Barinas"},"1083":{"code":"VE-F","name":"Bol\u00edvar"},"1084":{"code":"VE-G","name":"Carabobo"},"1085":{"code":"VE-H","name":"Cojedes"},"1086":{"code":"VE-Y","name":"Delta Amacuro"},"1076":{"code":"VE-W","name":"Dependencias Federales"},"1077":{"code":"VE-A","name":"Distrito Capital"},"1087":{"code":"VE-I","name":"Falc\u00f3n"},"1088":{"code":"VE-J","name":"Gu\u00e1rico"},"1089":{"code":"VE-K","name":"Lara"},"1090":{"code":"VE-L","name":"M\u00e9rida"},"1091":{"code":"VE-M","name":"Miranda"},"1092":{"code":"VE-N","name":"Monagas"},"1093":{"code":"VE-O","name":"Nueva Esparta"},"1094":{"code":"VE-P","name":"Portuguesa"},"1095":{"code":"VE-R","name":"Sucre"},"1096":{"code":"VE-S","name":"T\u00e1chira"},"1097":{"code":"VE-T","name":"Trujillo"},"1098":{"code":"VE-X","name":"Vargas"},"1099":{"code":"VE-U","name":"Yaracuy"},"1100":{"code":"VE-V","name":"Zulia"}}},"VG":{"name":"British Virgin Islands"},"VI":{"name":"U.S. Virgin Islands"},"VN":{"name":"Vietnam"},"VU":{"name":"Vanuatu"},"WF":{"name":"Wallis & Futuna"},"WS":{"name":"Samoa"},"XK":{"name":"Kosovo"},"YE":{"name":"Yemen"},"YT":{"name":"Mayotte"},"ZA":{"name":"South Africa"},"ZM":{"name":"Zambia"},"ZW":{"name":"Zimbabwe"},"data_id":1732226881},"instant-purchase":[],"loggedAsCustomer":[],"captcha":[],"persistent":[],"review":[],"wishlist":{"items":[]},"ammessages":[],"signifyd-fingerprint":[],"warranty_popup":[],"rewards":[],"wp_ga4":[],"recently_viewed_product":[],"recently_compared_product":[],"product_data_storage":[],"paypal-billing-agreement":[]}</script> <div x-data="dataAmMessage()" x-bind="eventListeners" x-spread="eventListeners" x-init="initAmMessage()"></div> <script> function dataAmMessage() { return { initAmMessage(){}, eventListeners: { ['@private-content-loaded.window'](event) { const detail = event.detail.data, body = document.getElementById('html-body'); const classList = body.classList.value; const messages = detail.ammessages && detail.ammessages.messages; if (classList.indexOf('checkout-') === -1 && messages && messages.notice) { dispatchMessages([ { type: detail.ammessages.messages.notice.type, text: detail.ammessages.messages.notice.text } ]); } } } } } </script> </div> <script> const wpGA4ServerSide = { pushClick: function(productId, listId, listName, index, elm) { if (elm && elm.hasAttribute('onclick')) { var requestUrl = 'https://www.gigaparts.com/weltpixel_ga4/track/productclick/'; if (productId && listId && listName) { fetch(requestUrl, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'X-Requested-With': 'XMLHttpRequest' }, body: 'product_id=' + productId + '&list_id=' + listId +'&list_name=' + listName + '&index=' + index }) .then(res => res.json()) .then(data => { }); } } }, pushViewItemList: function(hashId) { if (hashId && document.getElementById('wp_ga4_server_side_view_item_list')) { var requestUrl = 'https://www.gigaparts.com/weltpixel_ga4/track/viewitemlist/'; fetch(requestUrl, { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded', 'X-Requested-With': 'XMLHttpRequest' }, body: 'hash_id='+hashId }) .then(res => res.json()) .then(data => { }); } } }; window.wpGA4ServerSide = wpGA4ServerSide; const { fetch: originalFetch } = window; window.fetch = async (...args) => { let [resource, config] = args; let response = await originalFetch(resource, config); if (resource.search('/customer\/section\/load/') > 0) { response.clone().json().then( data => { if (data.wp_ga4.datalayer) { const dataLayerData = JSON.parse(data.wp_ga4.datalayer); dataLayerData.forEach((dataLayerItem) => { window.dataLayer.push({ecommerce: null}); window.dataLayer.push(dataLayerItem); }); } }); } return response; }; </script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10