PageSourceSearch

https://www.flooringinc.com/checkout/cart/index/

html flooringinc.com collected 2026-09-25 14:15:51 UTC 879,702 bytes, 11,780 lines download raw bytes

1<!doctype html>
2<html lang="en">
3<head >
4    <meta charset="utf-8"/>
4<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1120151136",accountID:"3731713",trustKey:"1322840",xpid:"VwEEUFFSCxABVVBQAQACV1cJ",licenseKey:"NRJS-d3390ca2649c82069a5",applicationID:"1112615138",browserID:"1120151136"};;/*! For license information please see nr-loader-spa-1.322.0.min.js.LICENSE.txt */
5(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.322.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
5e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof a.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],s=e[2];n.apply(i,s)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{a[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof s.y?e:e?(0,i.I)(e,o,()=>new s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},9119(e,t,r){"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},7485(e,t,r){"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},7560(e,t,r){"use strict";r.d(t,{N:()=>a,j:()=>c});var n=r(9119),i=r(944);const s=(0,r(6389).J)(e=>(0,i.R)(80,e));function a(e){if(!Array.isArray(e?.assets)||!e.assets.length)return;
5const t=e.assets.map(o).filter(Boolean);return t.length?{assets:t,scripts:t.filter(e=>e.isScript)}:void 0}function o(e){if(!e||"object"!=typeof e)return;const{matcher:t,type:r}=e;let i="string"==typeof t&&t.endsWith(".js");return void 0!==r&&(!function(e){return"script"===e||"asset"===e}(r)?s(r):i=function(e){return"script"===e}(r)),a=t,"[object RegExp]"===Object.prototype.toString.call(a)?{pattern:t,test:e=>(t.lastIndex=0,t.test((0,n.L)(e))),isScript:i}:"string"==typeof t&&t.length>0?{pattern:t,test:e=>(0,n.L)(e).includes(t),isScript:i}:void s(t);var a}function c(e,t,{scriptsOnly:r=!1}={}){if(!e||!t)return!1;return(r?e.scripts:e.assets).some(e=>e.test(t))}},5718(e,t,r){"use strict";r.d(t,{xo:()=>T,AZ:()=>v,cI:()=>g,Qr:()=>A,QL:()=>y});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=v(y())[0]}catch(e){u=v(e)[0]}const l=new Map;let f=[];const h=new WeakMap;function p(e){let t=h.get(e);return t||(t={weighedAssetUrls:new Set,recordManifestScriptWindow:(t,r)=>{t&&(e.scriptStart=e.scriptStart>0?Math.min(e.scriptStart,t):t),r&&(e.scriptEnd=e.scriptEnd>0?Math.max(e.scriptEnd,r):r)}},h.set(e,t)),t}function g(e){return l.get(e)}function m(e){const t=g(e);
5if(t)return t;const r=new o(e);if(l.set(e,r),l.size>1e3){const e=l.keys().next().value;l.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=m((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"))(e)){const t=m((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e}if(!f.length)return;const t=[];f.forEach(({test:r,addedAt:n},s)=>{(r(e)||(0,i.t)()-n>1e4)&&t.push(s)}),f=f.filter((e,r)=>!t.includes(r))})}).observe({type:"resource",buffered:!0})}function v(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function y(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function b(e,t){return(0,s.L)(e.name)===t}function E(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType,w(e,t)}function w(e,t){const r=(0,s.L)(t.name),{weighedAssetUrls:n}=p(e);n.has(r)||(n.add(r),e.totalWeight=(e.totalWeight||0)+(t.transferSize||0),"blocking"===t.renderBlockingStatus?e.renderBlocking=!0:"non-blocking"===t.renderBlockingStatus&&!0!==e.renderBlocking&&(e.renderBlocking=!1))}function R(e,t,r,n,i){if(w(e,t),"scripts"!==i&&"all"!==i)return;if("all"===i||r.isScript){const r=Math.floor(t.startTime),n=Math.floor(t.responseEnd);e.fetchStart=e.fetchStart>0?Math.min(e.fetchStart,r):r,e.fetchEnd=e.fetchEnd>0?Math.max(e.fetchEnd,n):n}if(r.isScript){const r=g((0,s.L)(t.name));if(r){const t=()=>{const{start:t,end:n}=r.script;p(e).recordManifestScriptWindow(t,n)};t(),!r.dom.end&&r.dom.value&&["load","error"].forEach(e=>r.dom.value.addEventListener(e,t,{once:!0}))}n.resolved||(e.asset=t.name,e.type=t.initiatorType,n.resolved=!0)}}function T(e,t){const r=t?.manifest;if(!r||!r.assets.length)return;const s={resolved:!1},a=new Set(r.assets);(n.gm.performance?.getEntriesByType("resource")||[]).forEach(r=>{const n=[...a].find(e=>e.test(r.name));n&&(R(e,r,n,s,t.timingMethod),a.delete(n))}),a.size&&function(e,t,r,s){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:n=>{const i=[...t].find(e=>e.test(n.name));return i&&(R(e,n,i,r,s),t.delete(i)),0===t.size}})}(e,a,s,t.timingMethod)}function A(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown",totalWeight:0,renderBlocking:void 0},a=y();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=v(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=g(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>b(e,c));if(l)E(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:r=>!!b(r,t)&&(E(e,r),!0)})}(r,c)}const h=r.correlation,m=!!t&&!!h?.claimedBy.has(t);h&&t&&h.claimedBy.add(t);const y=()=>{const e=h?.script.start;if(!m||!e)return!1;return r.registeredAt-e>1e4};let w=0,R=0;p(r).recordManifestScriptWindow=(e,t)=>{e&&(w=w>0?Math.min(w,e):e),t&&(R=R>0?Math.max(R,t):t)},Object.defineProperty(r,"scriptStart",d(()=>{const e=y()?r.registeredAt:h?.script.start??r.fetchEnd;return w>0?Math.min(e,w):e})),Object.defineProperty(r,"scriptEnd",d(()=>{const e=y()?r.registeredAt:h?.script.end??r.registeredAt;return R>0?Math.max(e,R):e}))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>m,B5:()=>g,K6:()=>u,M$:()=>
5o,Ms:()=>d,NG:()=>c,Ux:()=>h,YA:()=>p,yx:()=>l});var n=r(5718),i=r(7560),s=r(9119),a=r(9232);function o(e){return e?.type===a.f.MFE}function c(e,t){if(!y(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function d(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function u(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=(0,s.L)(e),a=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!1}):!!t.metadata.timings?.asset&&(0,s.L)(t.metadata.timings.asset)===n});return f(a).map(e=>e.metadata.target)}function l(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!0}):!!t.metadata.timings?.asset?.endsWith(e)});return f(n).map(e=>e.metadata.target)}function f(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}function h(e,t){return v(t)?o(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function p(e,t){return g(e,t)?{"child.id":e.id,"child.type":e.type,...h(void 0,t)}:{}}function g(e,t){return o(e)&&!!v(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function m(e){if(!e?.runtime)return[];if(!y(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...l(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function v(e){return 2===e?.harvestEndpointVersion}function y(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>s,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434(e,t,r){"use strict";r.d(t,{YM:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach(function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})}),t}catch(e){u([e],r)}for(var n in e)o.call(e,n)&&(t[n]=e[n])}
5(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0}
5;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},3962(e,t,r){"use strict";const n=r(860).K7.softNav;r.d(t,["O2",0,{INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},"OV",0,"popstate","Qu",0,{INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},"TZ",0,n,"ih",0,{IP:"in progress",PF:"pending finish",FIN:"finished",CAN:"cancelled"},"pP",0,"initialPageLoad","tC",0,["click","keydown","submit"]])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","hw",0,"api-ixn-","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({212:"nr-spa-compressor",238:"nr-spa-iframe-message-handler",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.322.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.322.0.PROD:";r.l=(n,i,s,a)=>
5{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={478:"sha512-SARROoir04gFygxlr/+mTI+PyMeFL+epi1vnUA2G5mTQ7s3G44ItQBJKbOaIMdIE5OBzuaKhb4k5JYta0NICxg==",249:"sha512-6DKQo5WP7YlpzX6l9UfYkgGLGK2oITdoaYTcZtgl5Foa22NY63lED/0z1hBBLeD7qZCz/YdlY19/r8drlol1tg==",212:"sha512-CYxuvSpDx6ErqWJwAvpoHn54eY37YdMcFao/axOumlw3BsSL7yioOeB2LWViY/Njs818sQG10dSglUhYCMfLPw==",238:"sha512-mvbMILWa3ohYst+u6TLfNrmtY2swUIB3rbJFN/uzt3W62KhgvUVwB81UEZ1R0/it5bfrQ5EVz864pi/CAmucNQ=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={38:0,788:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.322.0.PROD"]=self["webpackChunk:NRBA-1.322.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
5ine_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var w=r(9232);var R=r(7836),T=r(3241);const A={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var S=r(9908),x=r(9752);function O(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,A)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:w.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=R.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(x.Pl)&&(0,S.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var _=r(1863),k=r(4261),N=r(1738);var L=r(1687),M=r(4234),P=r(5289),I=r(5270),j=r(7767),C=r(6389),D=r(7699);const B=new WeakSet,H=new WeakMap;class W extends M.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,C.J)(()=>{(0,L.Ak)(e,this.featureName),t()}))}):(0,L.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(H.has(e))return H.get(e);const i=(async()=>
5{if((0,j.V)(e.init))try{const{setupAgentSession:t}=await r.e(478).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,S.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(238).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(478).then(r.bind(r,6589)),r.e(478).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();H.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,P.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,I.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!B.has(e)&&(B.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}O(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var U=r(6630);class K extends W{static featureName=U.T;constructor(e){var t;super(e,U.T),this.setupInspectionEvents(),t=e,(0,N.Y)(k.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,S.p)("api-"+k.Fw,[(0,_.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(478).then(r.bind(r,908)):r.e(478).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,P.sB)(t=>{e(t,"DOMContentLoaded")}),(0,P.GG)(t=>{e(t,"load")}),(0,P.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class F extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(K),O(this,e,e.loaderType||"agent"),t=this,(0,N.Y)(k.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,N.U)(t,e,r,k.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,N.Y)(k.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,S.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,N.U)(e,"enduser.id",t,k.Dl,!0)},e)}(this),function(e){(0,N.Y)(k.nb,function(t){if("string"==typeof t||null===t)return(0,N.U)(e,"application.version",t,k.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,N.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,N.Y)(k.Pv,function(t=!0){if("boolean"==typeof t){if((0,S.p)("api-"+k.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,S.p)("docHidden",[(0,_.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,S.p)("winPagehide",[(0,_.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(478).then(r.bind(r,9917))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(478).then(r.bind(r,6555)))}}var Z=r(6774),J=r(3878),X=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,X.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,_.t)()){"string"==typeof e&&(e=new Error(e)),(0,S.p)("err",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,_.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,_.t)()){(0,S.p)("api-"+k.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,_.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>
5null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,S.p)("api-"+k.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,_.t)()){(0,S.p)("api-"+k.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,_.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,_.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,_.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(7560),Ee=r(9119);const we=["entry","scripts","all"],Re=["name","id","type"],Te=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Ae={experimental:(0,C.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,C.J)(()=>(0,l.R)(55)),invalidTarget:(0,C.J)(e=>(0,l.R)(48,e)),deregistered:(0,C.J)(()=>(0,l.R)(68)),invalidTimingMethod:(0,C.J)(e=>(0,l.R)(80,e)),duplicateName:(0,C.J)(e=>(0,l.R)(81,e)),duplicateId:(0,C.J)(e=>(0,l.R)(82,e))};function Se(e){(0,N.Y)(k.eY,function(t){return xe(e,t)},e)}function xe(e,r){Ae.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=w.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:w.f.BA},r.manifest=(0,be.N)(r.manifest),void 0===r.timingMethod||we.includes(r.timingMethod)||(Ae.invali
5dTimingMethod(r.timingMethod),r.timingMethod=void 0);const n=(0,le.Qr)(r);r.manifest&&(0,le.xo)(n,r);const i=ve(r,n),s=(0,Ee.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||w.f.BA,"parent.id":r.parent?.id})}),Object.entries(r.tags).forEach(([e,t])=>{Re.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Ae.disabled),u(r.id)&&u(r.name)||d(()=>Ae.invalidTarget(r)),c.forEach(e=>{try{const{name:t,id:n}=e.metadata.target;t===r.name&&n!==r.id&&Ae.duplicateName(r),n===r.id&&t!==r.name&&Ae.duplicateId(r)}catch(e){}});const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Ae.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,_.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,Ee.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,t
5imeToRegister:n.registeredAt,totalWeight:n.totalWeight,...void 0!==n.renderBlocking&&{renderBlocking:n.renderBlocking},...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==xe)return;const s=f.metadata.events.latestTimestamp??(0,_.t)();f.metadata.events.latestTimestamp=void 0;const a=Te.get(r)||"unknown";(0,S.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class Oe extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,N.Y)(k.o5,(e,r)=>ie(e,r,t),t),function(e){(0,N.Y)(k.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,N.Y)(k.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Se(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,S.p)("ierr",[ee(t),(0,_.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,S.p)("err",[te(t),(0,_.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,S.p)("err",[re(t),(0,_.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(478).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var _e=r(8990);let ke=1;function Ne(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,_e.I)(e,"nr@id",function(){return ke++})}function Le(e){if("string"==typeof e)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,X.A)(e).length}catch(e){return}}}var Me=r(8139),Pe=r(3434),Ie=r(5732);const je={},Ce=["open","send","setRequestHeader"];function De(e,t){var r=e||R.ee;const n=function(e){return(e||R.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(je[n.debugId]++)return n;je[n.debugId]=1,(0,Me.u)(r,t);var i=(0,Pe.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,Ie.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,J.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Be="fetch-",He=Be+"body-",We=["arrayBuffer","blob","json","text","formData"],Ue=g.gm.Request,Ke=g.gm.Response,Fe="prototype";const Ve={};function ze(e,t){const r=function(e){return(e||R.ee).get("fetch")}(e);if(!(Ue&&Ke&&g.gm.fetch))return r;if(Ve[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,Ie.$5)(t);var o;r.emit(i+"before-start",[e],n),n[R.P]&&n[R.P].dt&&(o=n[R.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}
5return Ve[r.debugId]=1,We.forEach(e=>{n(Ue[Fe],e,He),n(Ke[Fe],e,He)}),n(g.gm,"fetch",Be),r.on(Be+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Be+"done",[null,n],s)}else r.emit(Be+"done",[e],s)}),r}var Ge=r(7485);class qe{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s=(0,ye.ZF)(),a=(0,ye.el)(),o=Date.now(),c={spanId:s,traceId:a,timestamp:o};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(c.traceContextParentHeader=this.generateTraceContextParentHeader(s,a),c.traceContextStateHeader=this.generateTraceContextStateHeader(s,o,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(c.newrelicHeader=this.generateTraceHeader(s,a,o,r,n,i)),c}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,s){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,X.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ge.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ye=r(7295);function Ze(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function $e(e,t){var r=(0,Ge.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Je=["load","error","abort","timeout"],Xe=Je.length,Qe=(0,i.dV)().o.REQ,et=(0,i.dV)().o.XHR;const tt="X-NewRelic-App-Data",rt="internal-error";class nt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new qe(e),this.handler=(e,t,r,n)=>(0,S.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};$e(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}ze(this.ee,e),De(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){O(t,e)},(0,J.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,J.jT)(!1))}function o(e){this.params={method:e[0]},$e(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Le(i);a&&(n.txSize=a)}this.startTime=(0,_.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
5!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(rt,[e])}catch(e){}}};for(var o=0;o<Xe;o++)t.addEventListener(Je[o],this.listener,(0,J.jT)(!1))}function f(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function h(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,_.t)()}function v(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof et&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,_.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,_.t)()-this.xhrCbStart,this.onload,t],t)}function w(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,Ge.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function R(e,t){this.params={},this.metrics={},this.startTime=(0,_.t)(),this.dt=t;let[r,n={}]=e;$e(this,Ze(r));const i=(""+(r&&r instanceof Qe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Le(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,_.t)(),this.params||(this.params={}),(0,Ye.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>x(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Le(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(rt,[e])}).finally(()=>{n()}):n()}function A(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<Xe;t++)e.removeEventListener(Je[t],this.listener,!1);if(t.aborted)return;if((0,Ye.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):O(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Le(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(rt,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>x(i,this,e))}function x(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function O(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?Le(e.response):"text"===r||""===r||void 0===r?Le(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(tt)>=0){var s=n.getResponseHeader(tt);s&&((0,S.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",w),r.on("fetch-start",R),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(478).then(r.bind(r,3845)))}}const it={},st=["pushState","replaceState"];function at(e,t){const r=function(e){return(e||R.ee).get("history")}(e);return!g.RI||it[r.debugId]++||(it[r.debugId]=1,(0,Pe.YM)(r,void 0,t).inPlace(window.history,st,"-")),r}var ot=r(3738);function ct(e){(0,N.Y)(k.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,S.p)(q.XG,[k.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:k.BL,start:r,origin:"nr"}),(0,S.p)("api-"+k.hG,[n,k.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:dt,bD:ut,d3:lt,Kp:ft,TZ:ht,Lc:pt,uP:gt,Rz:mt}=ot;class vt extends W{static featureName=ht;constructor(e){var n;super(e,ht),n=e,(0,N.Y)(k.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,S.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),ct(e);
5if(!(0,j.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;at(i,e),this.eventsEE=(0,Me.u)(i,e),this.eventsEE.on(gt,function(e,t){this.bstStart=(0,_.t)()}),this.eventsEE.on(pt,function(e,r){(0,S.p)("bst",[e[0],r,this.bstStart,(0,_.t)()],void 0,t.K7.sessionTrace,i)}),i.on(mt+lt,function(e){this.time=(0,_.t)(),this.startPath=location.pathname+location.hash}),i.on(mt+ft,function(e){(0,S.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,S.p)(dt,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ut,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(478).then(r.bind(r,6974)),{resourceObserver:s})}}var yt=r(733),bt=r(6344);class Et extends W{static featureName=bt.TZ;#i;recorder;constructor(e){var n;let i;super(e,bt.TZ),n=e,(0,N.Y)(k.CH,function(){(0,S.p)(k.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,N.Y)(k.Tb,function(){(0,S.p)(k.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,yt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,I.SR)(e.init)&&this.ee.on(k.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(bt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(478).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,S.p)(bt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,I.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(478),r.e(249)]).then(r.bind(r,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,bt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(bt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var wt=r(3962);class Rt extends W{static featureName=wt.TZ;constructor(e){if(super(e,wt.TZ),function(e){const r=e.ee.get("tracer");function n(){}(0,N.Y)(k.dT,function(e){return(new n).get("object"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var s={},a=this,o="function"==typeof i;return(0,S.p)(q.xV,["API/createTracer/called"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((o?"":"no-")+"fn-start",[(0,_.t)(),a,o],s),o)try{return i.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw r.emit("fn-err",[arguments,this,t],s),t}finally{r.emit("fn-end",[(0,_.t)()],s)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach(r=>{N.Y.apply(this,[r,function(){return(0,S.p)(k.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,N.Y)(k.PA,function(){(0,S.p)(k.hw+"routeName",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!g.RI||!(0,i.dV)().o.MO)return;const n=at(this.ee,e);try{this.removeOnAbort=new AbortController}catch(e){}wt.tC.forEach(e=>{(0,J.sp)(e,e=>{c(e)},!0,this.removeOnAbort?.signal)}
5);const s=()=>(0,S.p)("newURL",[(0,_.t)(),""+window.location],void 0,this.featureName,this.ee);n.on("pushState-end",s),n.on("replaceState-end",s),(0,J.sp)(wt.OV,e=>{c(e),(0,S.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let a=!1;const o=new((0,i.dV)().o.MO)((e,t)=>{a||(a=!0,requestAnimationFrame(()=>{(0,S.p)("newDom",[(0,_.t)()],void 0,this.featureName,this.ee),a=!1}))}),c=(0,C.s)(e=>{"loading"!==document.readyState&&((0,S.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=>r.e(478).then(r.bind(r,4393)),{domObserver:o})}}var Tt=r(981);const At={},St=new Set;function xt(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class Ot{constructor(e,t){this.timestamp=(0,_.t)(),this.currentUrl=(0,Ee.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,Ee.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class _t extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,N.Y)(k.hG,(e,t)=>ce(e,t,c),c),function(e){(0,N.Y)(k.fF,(t,r)=>ue(t,r,e),e)}(e),ct(e),Se(e),function(e){(0,N.Y)(k.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(At[r.debugId]++)return r;At[r.debugId]=1,(0,V.G)(()=>{const e=(0,_.t)();St.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});
5class n extends WebSocket{static name=Tt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new Ot(e[0],e[1]),this.targets=(0,Ie.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,_.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),St.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=xt(e.data);this.nrData.messageOrigin??=(0,Ee.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,_.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,St.delete(this),r.emit("ws",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=xt(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,S.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s){if("function"==typeof g.gm.ReportingObserver){const l=new g.gm.ReportingObserver(e=>{e.forEach(e=>{(0,S.p)("spv",[kt(e),(0,_.t)()],void 0,t.K7.genericEvents,this.ee)}),l.disconnect()},{types:["csp-violation"],buffered:!0});l.observe()}g.gm.addEventListener("securitypolicyviolation",e=>{(0,S.p)("spv",[kt(e),e.timeStamp],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal))}if(g.RI){if(ze(this.ee,e),De(this.ee,e),d=at(this.ee,e),e.init.user_actions.enabled){function f(t){const r=(0,Ge.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function h(){d.emit("navChange")}o.Zp.forEach(e=>(0,J.sp)(e,e=>(0,S.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEac
5h(e=>{const t=(0,C.s)(e=>{(0,S.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,J.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{f(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!f(Ze(e[0]))&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",h),d.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,J.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",h,(0,J.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,S.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(478).then(r.bind(r,8019))):this.deregisterDrain()}}function kt(e){const t=e.body??e;return{blockedUrl:t.blockedURL??e.blockedURI,documentUrl:t.documentURL??e.documentURI,effectiveDirective:t.effectiveDirective,originalPolicy:t.originalPolicy,sourceFile:t.sourceFile,statusCode:t.statusCode,lineNumber:t.lineNumber,columnNumber:t.columnNumber,disposition:"reporting"===t.disposition?"report":t.disposition,sample:t.sample,referrer:t.referrer}}var Nt=r(2646);const Lt=new Map;function Mt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||R.ee).get("logger")}(e),o=(0,Pe.YM)(a,void 0,s),c=new Nt.y(R.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Pe.Jt]||t[r];return Lt.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>Lt.get(d),void 0,!0),a}var Pt=r(1910);class It extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,N.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,N.Y)(k.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Mt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Se(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Pt.i)(g.gm.console[t]),Mt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(478).then(r.bind(r,5288)))}}new F({features:[nt,K,G,vt,Et,Y,Oe,_t,It,Rt],loaderType:"spa"})})()})();</script>
5
6<meta name="title" content="Shopping Cart"/>
7<meta name="description" content="Flooring Inc. The Flooring Superstore Home Page"/>
8<meta name="keywords" content="Flooring, Rubber, Garage, Foam, Dance, Carpet, Hardwood, Laminate, Vinyl, Gym Floors, Gymnastic Mats, Mats"/>
9<meta name="robots" content="INDEX,FOLLOW"/>
10<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
11<title>Shopping Cart</title>
12<link  type="text/css"  rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/css/styles.min.css" />
13<link  rel="stylesheet" type="text/css"  media="all" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Amasty_Rules/css/amrules.min.css" />
14<script  type="text/javascript"  defer="defer" src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Hyva_MagentoDataServices/js/storefront-event-collector.min.js"></script>
vendor: 1 bytes, line 14
14
15<script  type="text/javascript"  defer="defer" src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Hyva_MagentoDataServices/js/storefront-events-sdk.min.js"></script>
vendor: 1 bytes, line 15
15
16<script  type="text/javascript"  defer="defer" src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Hyva_MagentoProductRecommendations/js/recs-sdk.min.js"></script>
vendor: 1 bytes, line 16
16
17<script  type="text/javascript"  defer="defer" src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Hyva_MagentoProductRecommendationsLayout/js/recs-sdk.min.js"></script>
17
18<link  rel="icon" type="image/x-icon" href="https://www.flooringinc.com/media/favicon/stores/1/fav.png" />
19<link  rel="shortcut icon" type="image/x-icon" href="https://www.flooringinc.com/media/favicon/stores/1/fav.png" />
20
21<!-- Plausible Script Start -->
22
23<script defer data-domain="flooringinc.com" src="https://plausible.io/js/script.file-downloads.hash.outbound-links.pageview-props.revenue.tagged-events.js"></script>
vendor: 2 bytes, line 23
23
24<script>window.plausible = window.plausible || function() { (window.plausible.q = window.plausible.q || []).push(arguments) }</script>
24
25
26<!-- Plausible Script Ends -->
27
28<!--My8cKJTuUilt2Vvmb0igB9BsOCrMSS2F-->
29
30<link rel="preconnect" href="https://www.googletagmanager.com" crossorigin>
31<link rel="dns-prefetch" href="https://www.googletagmanager.com">
32<link rel="preload" href="https://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrJJfecg.woff2" as="font" type="font/woff2" crossorigin="anonymous"/>
33
34<style>
35.needsclick.kl-teaser-UEa7DA { display:none!important; }
36.bg-white.w-full.max-w-\[580px\].text-center.rounded-lg.shadow-lg {
37    max-width: 580px;
38}
39</style>
40    <style>
41    #dcw-share-cart-restore-overlay {
42        display: none;
43        position: fixed;
44        inset: 0;
45        z-index: 9999;
46        align-items: center;
47        justify-content: center;
48        background: #fff;
49        color: #1f2937;
50        font-size: 1.125rem;
51        line-height: 1.5;
52        text-align: center;
53        padding: 1.5rem;
54    }
55
56    html.dcw-share-cart-restoring #dcw-share-cart-restore-overlay {
57        display: flex;
58    }
59
60    html.dcw-share-cart-restoring {
61        overflow: hidden;
62    }
63</style>
64<script>
65    (function () {
66        var hash = window.location.hash.replace(/^#/, '');
67
68        if (!hash) {
69            return;
70        }
71
72        var params = new URLSearchParams(hash);
73        var token = (params.get('token') || '').trim();
74
75        if (!token) {
76            return;
77        }
78
79        document.documentElement.classList.add('dcw-share-cart-restoring');
80    })();
81</script>
81
82
83<script nonce="N2Q3enk5eGFoZ3hyejB4MzJxOThhNGsyd2lybnZpbno=">
84    window.getWpGA4Cookie = function(name) {
85        match = document.cookie.match(new RegExp(name + '=([^;]+)'));
86        if (match) return decodeURIComponent(match[1].replace(/\+/g, ' ')) ;
87    };
88
89    window.ga4AllowServices = false;
90
91    var isCookieRestrictionModeEnabled = 0,
92        currentWebsiteId = 1,
93        cookieRestrictionName = 'user_allowed_save_cookie';
94
95    if (isCookieRestrictionModeEnabled) {
96        allowedCookies = window.getWpGA4Cookie(cookieRestrictionName);
97
98        if (allowedCookies !== undefined) {
99            allowedWebsites = JSON.parse(allowedCookies);
100
101            if (allowedWebsites[currentWebsiteId] === 1) {
102                window.ga4AllowServices = true;
103            }
104        }
105    } else {
106        window.ga4AllowServices = true;
107    }
108</script>
108
109            
109<script nonce="N2Q3enk5eGFoZ3hyejB4MzJxOThhNGsyd2lybnZpbno=">
110        if (window.ga4AllowServices) {
111            window.dataLayer = window.dataLayer || [];
112                        var dl4Objects = [{"pageName":"Shopping Cart","pageType":"cart","event":"view_cart","cart_total":0,"total":0,"ecommerce":{"items":[],"value":0,"currency":"USD"}}];
113            for (var i in dl4Objects) {
114                window.dataLayer.push({ecommerce: null});
115                window.dataLayer.push(dl4Objects[i]);
116            }
117                        var wpGA4Cookies = ['wp_ga4_user_id','wp_ga4_customerGroup'];
118            wpGA4Cookies.map(function (cookieName) {
119                var cookieValue = window.getWpGA4Cookie(cookieName);
120                if (cookieValue) {
121                    var dl4Object = {};
122                    dl4Object[cookieName.replace('wp_ga4_', '')] = cookieValue;
123                    window.dataLayer.push(dl4Object);
124                }
125            });
126        }
127    </script>
127
128
129    <!-- Google Tag Manager -->
130<script nonce="N2Q3enk5eGFoZ3hyejB4MzJxOThhNGsyd2lybnZpbno=" >  if (window.ga4AllowServices) { 
131
132window.addEventListener('init-external-scripts', () => {
vendor: 335 bytes, lines 132-138
132
133
134(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
135new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
136j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
137'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
138})(window,document,'script','dataLayer','
138GTM-5XR7MB7
vendor: 7 bytes, lines 138-139
138');
139
140}, {once: true, passive: true});
141
142} </script>
142
143<!-- End Google Tag Manager -->
144
145
146<script nonce="N2Q3enk5eGFoZ3hyejB4MzJxOThhNGsyd2lybnZpbno&#x3D;">var prCookieService={defaultAttributes:{path:'/'},converter:{write:function(value){return encodeURIComponent(value);},read:function(value){return decodeURIComponent(value)}},decode:function(string){return string.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent);},set:function(key,value,attributes){if(typeof document==='undefined'){return;}
147attributes=Object.assign(this.defaultAttributes,attributes);if(typeof attributes.expires==='number'){attributes.expires=new Date(new Date()*1+attributes.expires*864e+5);}
148attributes.expires=attributes.expires?attributes.expires.toUTCString():'';try{var result=JSON.stringify(value);if(/^[\{\[]/.test(result)){value=result;}}catch(e){}
149value=this.converter.write(value);key=this.converter.write(String(key)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var stringifiedAttributes='';for(var attributeName in attributes){if(!attributes[attributeName]){continue;}
150stringifiedAttributes+='; '+attributeName;if(attributes[attributeName]===true){continue;}
151stringifiedAttributes+='='+attributes[attributeName].split(';')[0];}
152return(document.cookie=key+'='+value+stringifiedAttributes);},remove:function(key,attributes){this.set(key,'',{...attributes,...{expires:-1}});},get:function(key,json=false){if(typeof document==='undefined'){return;}
153var jar={};var cookies=document.cookie?document.cookie.split('; '):[];var i=0;for(;i<cookies.length;i++){var parts=cookies[i].split('=');var cookie=parts.slice(1).join('=');if(!json&&cookie.charAt(0)==='"'){cookie=cookie.slice(1,-1);}
154try{var name=this.converter.write(parts[0]);cookie=this.converter.read(cookie);if(json){try{cookie=JSON.parse(cookie);}catch(e){}}
155jar[name]=cookie;if(key===name){break;}}catch(e){}}
156return key?jar[key]:jar;}}</script>
156
157
158<script nonce="N2Q3enk5eGFoZ3hyejB4MzJxOThhNGsyd2lybnZpbno&#x3D;">var prGlobalPrivacyControlApi={config:{"canProcessSignal":true,"isGeotargetingEnabled":true,"geotargetingApiEndpoint":"https:\/\/www.flooringinc.com\/rest\/V1\/pr-global-privacy-control\/geo-targeting\/is-applicable"},isApplicableForUser:false,isConfigured:false,configure:function(){const setConfigurationResult=(isApplicable)=>{this.isApplicableForUser=isApplicable;this.isConfigured=true;if(isApplicable){this.signalHandlers.processPendingHandlers();}
159document.dispatchEvent(new Event('pr-global-privacy-control-api:configured'));};if(!this.config.canProcessSignal){setConfigurationResult(false);return;}
160if(this.cache.get('isApplicableForUser')){setConfigurationResult(this.cache.get('isApplicableForUser'));return;}
161if(!navigator.globalPrivacyControl){setConfigurationResult(false);return;}
162if(!this.config.isGeotargetingEnabled){this.cache.set('isApplicableForUser',true);setConfigurationResult(true);return;}
163this.geotargeting.isApplicable().then(result=>{this.cache.set('isApplicableForUser',result);setConfigurationResult(result);}).catch(()=>setConfigurationResult(true));},shouldApply:function(){if(!this.isConfigured){return false;}
164return this.isApplicableForUser;},};prGlobalPrivacyControlApi.geotargeting={isApplicable:async function(){return fetch(prGlobalPrivacyControlApi.config.geotargetingApiEndpoint,{method:'POST',credentials:'include'}).then(r=>r.json());}};prGlobalPrivacyControlApi.signalHandlers={handlers:[],addHandler:function(callback){let handler={callback:callback,executed:false}
165this.handlers.push(handler);if(prGlobalPrivacyControlApi.isConfigured&&prGlobalPrivacyControlApi.shouldApply()){handler.callback();handler.executed=true;}},processPendingHandlers:function(){if(!prGlobalPrivacyControlApi.shouldApply()){return;}
166if(!prCookieService.get('pr-gpc-signal-handled')){prCookieService.set('pr-gpc-signal-handled',true,{expires:null});}
167this.handlers.forEach(function(handler){if(false===handler.executed){handler.callback();handler.executed=true;}}.bind(this));}};prGlobalPrivacyControlApi.cache={storageKey:'pr_global_privacy_control_api_cache',get:function(key){try{let raw=sessionStorage.getItem(this.storageKey);let cacheData=JSON.parse(raw);return cacheData.hasOwnProperty(key)?cacheData[key]:null;}catch(e){return null;}},set:function(key,value){try{let cacheData=JSON.parse(sessionStorage.getItem(this.storageKey)||'{}');cacheData[key]=value;sessionStorage.setItem(this.storageKey,JSON.stringify(cacheData));}catch(e){}},};prGlobalPrivacyControlApi.configure();</script>
vendor: 1 bytes, line 167
167
168<script  type="text/javascript"  data-routing="commerce=rum" defer="defer" src="https://rum.hlx.page/.rum/@adobe/helix-rum-js@^2/dist/rum-standalone.js"></script>
168
169
170
171    
171<script type="text&#x2F;javascript" nonce="N2Q3enk5eGFoZ3hyejB4MzJxOThhNGsyd2lybnZpbno&#x3D;">(()=>{let userAllowedCookies=prCookieService.get('user_allowed_save_cookie');if(!userAllowedCookies){return;}
172let customerConsent=prCookieService.get('pr-cookie-consent');if(!customerConsent){return;}
173try{customerConsent=JSON.parse(customerConsent);}catch(error){return;}
174const categoryKey='marketing';if(customerConsent.includes('all')||customerConsent.includes(categoryKey)){return;}
175let intervalId=setInterval(prCookieService.set.bind(prCookieService,'mg_dnt',true,{expires:null}),500);document.addEventListener('pr-cookie-consent-api:configured',()=>{clearInterval(intervalId);});})();</script>
175
176
177<!-- Critical CSS for <lite-youtube> element to avoid CLS: https://web.dev/cls/ -->
178<style>
179    lite-youtube{background-color:#000;position:relative;display:block;contain:content;background-position:center center;background-size:cover;cursor:pointer}lite-youtube::after{content:"";display:block;padding-bottom:calc(100% / (16 / 9))}</style>
180<script>
181    var BASE_URL = 'https://www.flooringinc.com/';
182    var THEME_PATH = 'https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US';
183    var COOKIE_CONFIG = {
184        "expires": null,
185        "path": "\u002F",
186        "domain": ".www.flooringinc.com",
187        "secure": true,
188        "lifetime": "3600",
189        "cookie_restriction_enabled": false    };
190    var CURRENT_STORE_CODE = 'default';
191    var CURRENT_WEBSITE_ID = '1';
192
193    window.hyva = window.hyva || {}
194
195    window.cookie_consent_groups = window.cookie_consent_groups || {}
196    window.cookie_consent_groups['necessary'] = true;
197
198    window.cookie_consent_config = window.cookie_consent_config || {};
199    window.cookie_consent_config['necessary'] = [].concat(
200        window.cookie_consent_config['necessary'] || [],
201        [
202            'user_allowed_save_cookie',
203            'form_key',
204            'mage-messages',
205            'private_content_version',
206            'mage-cache-sessid',
207            'last_visited_store',
208            'section_data_ids'
209        ]
210    );
211</script>
vendor: 1 bytes, line 211
211
212<script>
213    'use strict';
214    (function( hyva, undefined ) {
215
216        function lifetimeToExpires(options, defaults) {
217
218            const lifetime = options.lifetime || defaults.lifetime;
219
220            if (lifetime) {
221                const date = new Date;
222                date.setTime(date.getTime() + lifetime * 1000);
223                return date;
224            }
225
226            return null;
227        }
228
229        function generateRandomString() {
230
231            const allowedCharacters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',
232                length = 16;
233
234            let formKey = '',
235                charactersLength = allowedCharacters.length;
236
237            for (let i = 0; i < length; i++) {
238                formKey += allowedCharacters[Math.round(Math.random() * (charactersLength - 1))]
239            }
240
241            return formKey;
242        }
243
244        const sessionCookieMarker = {noLifetime: true}
245
246        const cookieTempStorage = {};
247
248        const internalCookie = {
249            get(name) {
250                const v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
251                return v ? v[2] : null;
252            },
253            set(name, value, days, skipSetDomain) {
254                let expires,
255                    path,
256                    domain,
257                    secure,
258                    samesite;
259
260                const defaultCookieConfig = {
261                    expires: null,
262                    path: '/',
263                    domain: null,
264                    secure: false,
265                    lifetime: null,
266                    samesite: 'lax'
267                };
268
269                const cookieConfig = window.COOKIE_CONFIG || {};
270
271                expires = days && days !== sessionCookieMarker
272                    ? lifetimeToExpires({lifetime: 24 * 60 * 60 * days, expires: null}, defaultCookieConfig)
273                    : lifetimeToExpires(window.COOKIE_CONFIG, defaultCookieConfig) || defaultCookieConfig.expires;
274
275                path = cookieConfig.path || defaultCookieConfig.path;
276                domain = !skipSetDomain && (cookieConfig.domain || defaultCookieConfig.domain);
277                secure = cookieConfig.secure || defaultCookieConfig.secure;
278                samesite = cookieConfig.samesite || defaultCookieConfig.samesite;
279
280                document.cookie = name + "=" + encodeURIComponent(value) +
281                    (expires && days !== sessionCookieMarker ? '; expires=' + expires.toGMTString() : '') +
282                    (path ? '; path=' + path : '') +
283                    (domain ? '; domain=' + domain : '') +
284                    (secure ? '; secure' : '') +
285                    (samesite ? '; samesite=' + samesite : 'lax');
286            },
287            isWebsiteAllowedToSaveCookie() {
288                const allowedCookies = this.get('user_allowed_save_cookie');
289                if (allowedCookies) {
290                    const allowedWebsites = JSON.parse(unescape(allowedCookies));
291
292                    return allowedWebsites[CURRENT_WEBSITE_ID] === 1;
293                }
294                return false;
295            },
296            getGroupByCookieName(name) {
297                const cookieConsentConfig = window.cookie_consent_config || {};
298                let group = null;
299                for (let prop in cookieConsentConfig) {
300                    if (!cookieConsentConfig.hasOwnProperty(prop)) continue;
301                    if (cookieConsentConfig[prop].includes(name)) {
302                        group = prop;
303                        break;
304                    }
305                }
306                return group;
307            },
308            isCookieAllowed(name) {
309                const cookieGroup = this.getGroupByCookieName(name);
310                return cookieGroup
311                    ? window.cookie_consent_groups[cookieGroup]
312                    : this.isWebsiteAllowedToSaveCookie();
313            },
314            saveTempStorageCookies() {
315                for (const [name, data] of Object.entries(cookieTempStorage)) {
316                    if (this.isCookieAllowed(name)) {
317                        this.set(name, data['value'], data['days'], data['skipSetDomain']);
318                        delete cookieTempStorage[name];
319                    }
320                }
321            }
322        };
323
324        hyva.getCookie = (name) => {
325            const cookieConfig = window.COOKIE_CONFIG || {};
326
327            if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) {
328                return cookieTempStorage[name] ? cookieTempStorage[name]['value'] : null;
329            }
330
331            return internalCookie.get(name);
332        }
333
334        hyva.setCookie = (name, value, days, skipSetDomain) => {
335            const cookieConfig = window.COOKIE_CONFIG || {};
336
337            if (cookieConfig.cookie_restriction_enabled && ! internalCookie.isCookieAllowed(name)) {
338                cookieTempStorage[name] = {value, days, skipSetDomain};
339                return;
340            }
341            return internalCookie.set(name, value, days, skipSetDomain);
342        }
343
344
345        hyva.setSessionCookie = (name, value, skipSetDomain) => {
346            return hyva.setCookie(name, value, sessionCookieMarker, skipSetDomain)
347        }
348
349        hyva.getBrowserStorage = () => {
350            const browserStorage = window.localStorage || window.sessionStorage;
351            if (!browserStorage) {
352                console.warn('Browser Storage is unavailable');
353                return false;
354            }
355            try {
356                browserStorage.setItem('storage_test', '1');
357                browserStorage.removeItem('storage_test');
358            } catch (error) {
359                console.warn('Browser Storage is not accessible', error);
360                return false;
361            }
362            return browserStorage;
363        }
364
365        hyva.postForm = (postParams) => {
366            const form = document.createElement("form");
367
368            let data = postParams.data;
369
370            if (! postParams.skipUenc && ! data.uenc) {
371                data.uenc = btoa(window.location.href);
372            }
373            form.method = "POST";
374            form.action = postParams.action;
375
376            Object.keys(postParams.data).map(key => {
377                const field = document.createElement("input");
378                field.type = 'hidden'
379                field.value = postParams.data[key];
380                field.name = key;
381                form.appendChild(field);
382            });
383
384            const form_key = document.createElement("input");
385            form_key.type = 'hidden';
386            form_key.value = hyva.getFormKey();
387            form_key.name="form_key";
388            form.appendChild(form_key);
389
390            document.body.appendChild(form);
391
392            form.submit();
393        }
394
395        hyva.getFormKey = function () {
396            let formKey = hyva.getCookie('form_key');
397
398            if (!formKey) {
399                formKey = generateRandomString();
400                hyva.setCookie('form_key', formKey);
401            }
402
403            return formKey;
404        }
405
406        hyva.formatPrice = (value, showSign, options = {}) => {
407            const formatter = new Intl.NumberFormat(
408                'en\u002DUS',
409                Object.assign({
410                    style: 'currency',
411                    currency: 'USD',
412                    signDisplay: showSign ? 'always' : 'auto'
413                }, options)
414            );
415            return (typeof Intl.NumberFormat.prototype.formatToParts === 'function') ?
416                formatter.formatToParts(value).map(({type, value}) => {
417                    switch (type) {
418                        case 'currency':
419                            return '\u0024' || value;
420                        case 'minusSign':
421                            return '- ';
422                        case 'plusSign':
423                            return '+ ';
424                        default :
425                            return value;
426                    }
427                }).reduce((string, part) => string + part) :
428                formatter.format(value);
429        }
430
431        const formatStr = function (str, nStart) {
432            const args = Array.from(arguments).slice(2);
433
434            return str.replace(/(%+)([0-9]+)/g, (m, p, n) => {
435                const idx = parseInt(n) - nStart;
436
437                if (args[idx] === null || args[idx] === void 0) {
438                    return m;
439                }
440                return p.length % 2
441                    ? p.slice(0, -1).replace('%%', '%') + args[idx]
442                    : p.replace('%%', '%') + n;
443            })
444        }
445
446        hyva.str = function (string) {
447            const args = Array.from(arguments);
448            args.splice(1, 0, 1);
449
450            return formatStr.apply(undefined, args);
451        }
452
453        hyva.strf = function () {
454            const args = Array.from(arguments);
455            args.splice(1, 0, 0);
456
457            return formatStr.apply(undefined, args);
458        }
459
460        /**
461         * Take a html string as `content` parameter and
462         * extract an element from the DOM to replace in
463         * the current page under the same selector,
464         * defined by `targetSelector`
465         */
466        hyva.replaceDomElement = (targetSelector, content) => {
467            // Parse the content and extract the DOM node using the `targetSelector`
468            const parser = new DOMParser();
469            const doc = parser.parseFromString(content, 'text/html');
470            const contentNode = doc.querySelector(targetSelector);
471
472            // Bail if content can't be found
473            if (!contentNode) {
474                return;
475            }
476
477            hyva.activateScripts(contentNode)
478
479            // Replace the old DOM node with the new content
480            document.querySelector(targetSelector).replaceWith(contentNode);
481
482            // Reload customerSectionData and display cookie-messages if present
483            window.dispatchEvent(new CustomEvent("reload-customer-section-data"));
484            hyva.initMessages();
485        }
486
487        hyva.activateScripts = (contentNode) => {
488            // Extract all the script tags from the content.
489            // Script tags won't execute when inserted into a dom-element directly,
490            // therefore we need to inject them to the head of the document.
491            const tmpScripts = contentNode.getElementsByTagName('script');
492
493            if (tmpScripts.length > 0) {
494                // Push all script tags into an array
495                // (to prevent dom manipulation while iterating over dom nodes)
496                const scripts = [];
497                for (let i = 0; i < tmpScripts.length; i++) {
498                    scripts.push(tmpScripts[i]);
499                }
500
501                // Iterate over all script tags and duplicate+inject each into the head
502                for (let i = 0; i < scripts.length; i++) {
503                    let script = document.createElement('script');
504                    script.innerHTML = scripts[i].innerHTML;
505
506                    document.head.appendChild(script);
507
508                    // Remove the original (non-executing) node from the content
509                    scripts[i].parentNode.removeChild(scripts[i]);
510                }
511            }
512            return contentNode;
513        }
514
515        const replace = {['+']: '-', ['/']: '_', ['=']: ','};
516        hyva.getUenc = () => btoa(window.location.href).replace(/[+/=]/g, match => replace[match]);
517
518        let currentTrap;
519
520        const focusableElements = (rootElement) => {
521            const selector = 'button, [href], input, select, textarea, details, [tabindex]:not([tabindex="-1"]';
522            return Array.from(rootElement.querySelectorAll(selector))
523                .filter(el => {
524                    return el.style.display !== 'none'
525                        && !el.disabled
526                        && el.tabIndex !== -1
527                        && (el.offsetWidth || el.offsetHeight || el.getClientRects().length)
528                })
529        }
530
531        const focusTrap = (e) => {
532            const isTabPressed = e.key === 'Tab' || e.keyCode === 9;
533            if (!isTabPressed) return;
534
535            const focusable = focusableElements(currentTrap)
536            const firstFocusableElement = focusable[0]
537            const lastFocusableElement = focusable[focusable.length - 1]
538
539            e.shiftKey
540                ? document.activeElement === firstFocusableElement && (lastFocusableElement.focus(), e.preventDefault())
541                : document.activeElement === lastFocusableElement && (firstFocusableElement.focus(), e.preventDefault())
542        };
543
544        hyva.releaseFocus = (rootElement) => {
545            if (currentTrap && (!rootElement || rootElement === currentTrap)) {
546                currentTrap.removeEventListener('keydown', focusTrap)
547                currentTrap = null
548            }
549        }
550        hyva.trapFocus = (rootElement) => {
551            if (!rootElement) return;
552            hyva.releaseFocus()
553            currentTrap = rootElement
554            rootElement.addEventListener('keydown', focusTrap)
555            const firstElement = focusableElements(rootElement)[0]
556            firstElement && firstElement.focus()
557        }
558
559                hyva.alpineInitialized = (fn) => window.addEventListener('alpine:initialized', fn, {once: true})
560                window.addEventListener('user-allowed-save-cookie', () => internalCookie.saveTempStorageCookies())
561
562    }( window.hyva = window.hyva || {} ));
563</script>
vendor: 1 bytes, line 563
563
564<script>
565    if (!window.IntersectionObserver) {
566        window.IntersectionObserver = function (callback) {
567            this.observe = el => el && callback(this.takeRecords());
568            this.takeRecords = () => [{isIntersecting: true, intersectionRatio: 1}];
569            this.disconnect = () => {};
570            this.unobserve = () => {};
571        }
572    }
573</script>
573
574<div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><button id="open-chatbox" aria-label="Open chat"><svg position="right" class="sc-1k07fow-1 cbnSms" width="24px" height="24px" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M10,18 L6,22 L6,18 L10,18 Z M17,6 C19.7614237,6 22,8.23857625 22,11 C22,13.7614237 19.7614237,16 17,16 L17,16 L7,16 C4.23857625,16 2,13.7614237 2,11 C2,8.23857625 4.23857625,6 7,6 L7,6 Z" transform="translate(12.000000, 14.000000) scale(-1, 1) translate(-12.000000, -14.000000) "></path></svg></button>
575<script>
576// Lightweight click handler: if Zendesk is already available, open messenger and hide the button.
577// If Zendesk is not available yet we do nothing here — the DOMContentLoaded handler below is
578// responsible for loading the script (avoids double-loading the Zendesk snippet).
579(function () {
580    const btn = document.getElementById('open-chatbox');
581    if (!btn) return;
582
583    btn.addEventListener('click', function () {
584        if (typeof zE !== 'undefined') {
585            try {
586                zE('messenger', 'open');
587            } catch (e) {
588                // ignore if API is not ready yet
589            }
590            this.style.display = 'none';
591            this.setAttribute('aria-hidden', 'true');
592        }
593        // If zE is not defined we intentionally don't load the script here to avoid
594        // duplicate loading. The DOMContentLoaded listener below will handle loading.
595    });
596})();
597</script>
vendor: 2 bytes, line 597
597
598<script>
599/* ===== Load UserWay on click ===== */
600document.addEventListener('DOMContentLoaded', function () {
601  
602  const userWayButton = document.getElementById('uw-widget-custom-trigger');
603  const zendeskButton = document.getElementById('open-chatbox');
604
605    /* ---- UserWay Script Functions ---- */
606    function initUserWay() {
607    if (window.UserWay) {
608      window.UserWay.widgetToggle();
609      return;
610    }
611    }
612
613    function loadUserWay() {
614      if (window.UserWay) return; // Skip if already loaded
615    
616    const userwayScript = document.createElement('script');
617    userwayScript.src = 'https://cdn.userway.org/widget.js';
618    userwayScript.type = 'text/javascript';
619    userwayScript.async = true;
620    userwayScript.crossOrigin = 'anonymous';
621    userwayScript.setAttribute('data-account', 'vfvO52o2Kn');
622    document.head.append(userwayScript);
623
624    /* Hide UserWay accessibility icon when initialized */
625    document.addEventListener('userway:init_completed', function (event) {
626      const instance = event.detail.userWayInstance;
627      instance.iconVisibilityOff();
628
629      const userwayIframe = document.getElementById("launcher");
630      if (userwayIframe) {
631        const userwaySiblings = Array.from(userwayIframe.parentNode.children);
632        const userwaySiblingDiv = userwaySiblings.find(el => el.tagName === 'DIV');
633        if (userwaySiblingDiv) {
634          userwaySiblingDiv.id = 'userway-live-chat';
635        }
636      }
637    }, { once: true });
638  }
639
640  if (userWayButton) {
641    userWayButton.addEventListener('click', initUserWay);
642  }
643
644  /* ---- Load UserWay on Scroll ---- */
645  let hasLoaded = false;
646  function handleScroll() {
647    if (!hasLoaded) {
648      hasLoaded = true;
649      loadUserWay();
650      // Remove scroll listener after loading
651      window.removeEventListener('scroll', handleScroll);
652    }
653  }
654  
655  window.addEventListener('scroll', handleScroll);
656
657  /* ---- Load Zendesk Script ---- */
658  function hideChatButton() {
659    try {
660      if (zendeskButton) {
661        zendeskButton.style.display = 'none';
662        zendeskButton.setAttribute('aria-hidden', 'true');
663      }
664    } catch (e) {
665      // ignore
666    }
667  }
668
669  function loadZendesk() {
670    // If already loaded, open messenger and hide the button
671    if (window.zE) {
672      try { zE('messenger', 'open'); } catch (e) { }
673      hideChatButton();
674      return;
675    }
676
677    // If script is already injected, do nothing (we'll open on load)
678    if (document.getElementById('ze-snippet')) return;
679
680    const zendeskScript = document.createElement('script');
681    zendeskScript.id = 'ze-snippet';
682    zendeskScript.src = 'https://static.zdassets.com/ekr/snippet.js?key=f007eb69-6b5d-407a-bdff-0706af960a4d';
683
684    zendeskScript.onload = function () {
685      // Wait a short moment to ensure widget initializes
686      setTimeout(() => {
687        if (typeof zE !== 'undefined') {
688          try { zE('messenger', 'open'); } catch (e) { }
689          hideChatButton();
690        }
691      }, 300);
692    };
693
694    document.head.append(zendeskScript);
695  }
696
697  if (zendeskButton) {
698    zendeskButton.addEventListener('click', loadZendesk);
699  }
700
701});
702</script>
702
703
704<style>
705.checkout-index-index button#open-chatbox{display:none}
706.uw-widget-custom-trigger{background-image:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" style="&%2310; fill: %2374767e;&%2310;"><circle cx="16" cy="16" r="15.5" fill="%23fff" stroke="%2374767e" class="circle-wrapper" style="&%2310; stroke: %2374767e;&%2310;"/><path d="M16 11.583a2.083 2.083 0 1 0 0-4.166 2.083 2.083 0 0 0 0 4.166ZM23.917 12.417H8.083a.834.834 0 0 0 0 1.666H13.5v11.459a1.041 1.041 0 1 0 2.083 0V19.5h.834v6.042a1.041 1.041 0 1 0 2.083 0V14.083h5.417a.833.833 0 0 0 0-1.666Z"/></svg>');}
707</style></div>
708<script>
709    window.addEventListener('load', function () {
710        window.magentoStorefrontEvents = magentoStorefrontEvents;
711        magentoStorefrontEvents.context.setStorefrontInstance(
712            {"storeUrl":"https:\/\/www.flooringinc.com\/","websiteId":1,"websiteCode":"base","storeId":1,"storeCode":"main_website_store","storeViewId":1,"storeViewCode":"default","websiteName":"Flooring Inc.","storeName":"Main Website Store","storeViewName":"Default Store View","baseCurrencyCode":"USD","storeViewCurrencyCode":"USD","catalogExtensionVersion":"103.4.28","environmentId":"a90eb89f-1f93-44b0-81d9-2a9af649b47f","environment":"Production","storefrontTemplate":"Hyva"}        );
713        magentoStorefrontEvents.context.setMagentoExtension({
714            magentoExtensionVersion: "8.0.1",
715        });
716        magentoStorefrontEvents.context.setDataServicesExtension({
717            version: "8.0.1",
718        });
719        magentoStorefrontEvents.context.setPage({
720            pageType: "Default"
721        });
722        magentoStorefrontEvents.context.setContext("pageExtended", {
723            action: "page-view"
724        });
725
726        
727        magentoStorefrontEvents.publish.pageView();
728    });
729</script>
729
730</head>
731<body class="pl-thm-dcw pl-thm-dcw-hyvadesktop prgdpr-dcw prgdpr-dcw-hyvadesktop mst-nav__theme-hyva-reset mst-nav__theme-hyva-default mst-nav__theme-dcw-hyvadesktop checkout-cart-index page-layout-1column" id="html-body">
732<div id="dcw-share-cart-restore-overlay" aria-live="polite" aria-busy="true">
733    <p>Loading your shared cart...</p>
734</div>
735<form id="dcw-share-cart-restore-form"
736      method="post"
737      action="https://www.flooringinc.com/sharecart/cart/apply/"
738      style="display: none;">
739    <input type="hidden" name="form_key" value="tGAOudjzgYs06SIA">
740    <input type="hidden" name="share_cart_apply" value="1">
741    <input type="hidden" name="token" value="">
742</form>
743<script>
744    (function () {
745        if (!document.documentElement.classList.contains('dcw-share-cart-restoring')) {
746            return;
747        }
748
749        var hash = window.location.hash.replace(/^#/, '');
750        var params = new URLSearchParams(hash);
751        var token = (params.get('token') || '').trim();
752        var form = document.getElementById('dcw-share-cart-restore-form');
753
754        if (!token || !form) {
755            document.documentElement.classList.remove('dcw-share-cart-restoring');
756            return;
757        }
758
759        form.querySelector('[name="token"]').value = token;
760        form.submit();
761    })();
762</script>
762
763<!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, lines 763-764
763
764<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
764GTM-5XR7MB7
vendor: 85 bytes, lines 764-765
764"
765height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
766<!-- End Google Tag Manager (noscript) -->
767
768<script  nonce="N2Q3enk5eGFoZ3hyejB4MzJxOThhNGsyd2lybnZpbno=">
769var prCookieConsentApi = {
770    CUSTOMER_CONSENT: 'pr-cookie-consent',
771    SYSTEM_COOKIES: [
772        'PHPSESSID',
773        this.CUSTOMER_CONSENT,
774        'user_allowed_save_cookie',
775    ],
776    config: {},
777    whitelist: {},
778    isConfigured: false,
779    /**
780     * Contains callbacks that run after all configuration come
781     *
782     * @type {function[]}
783     */
784    configuredCallbacks: [],
785    initCookieBlocking: function () {
786        var cookieDesc = Object.getOwnPropertyDescriptor(Document.prototype, 'cookie')
787            || Object.getOwnPropertyDescriptor(HTMLDocument.prototype, 'cookie');
788        if (cookieDesc && cookieDesc.configurable) {
789            var api = this;
790            Object.defineProperty(document, 'cookie', {
791                get: function () {
792                    return cookieDesc.get.call(document);
793                },
794                set: function (cookie) {
795                    let cookieName = cookie.substring(0, cookie.indexOf('=')).trim();
796                    document.dispatchEvent(new CustomEvent('pr-cookie-consent-api:cookie-blocking:validation', {
797                        detail: {cookieName: cookieName, isAllowed: api.isAllowed(cookieName), cookie: cookie}
798                    }));
799
800                    if (! api.isAllowed(cookieName)) {
801                        api.logger.warn('CookieConsent: blocked cookie "' + cookieName + '"');
802                        return;
803                    }
804                    cookieDesc.set.call(document, cookie);
805                }
806            });
807        }
808    },
809    getCookieValue: function (name) {
810        var values = document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)');
811        return values ? decodeURIComponent(values.pop()) : '';
812    },
813    configure: function (configJson) {
814        this.logger.init();
815        this.userScript.init();
816        try {
817            this.config = JSON.parse(configJson);
818            if (this.config.canManageCookie === null) {
819                console.error('CookieConsent: restriction config is invalid');
820            }
821            this.isConfigured = true;
822
823            this.configuredCallbacks.forEach(function (callback) {
824                callback();
825            }.bind(this));
826
827            this.clearRejectedCookie();
828        } catch (e) {
829            console.error('CookieConsent: error has happened during parse JSON');
830            return false;
831        }
832
833        document.dispatchEvent(new Event('pr-cookie-consent-api:configured'));
834    },
835    /**
836     * @param {function} callback
837     * @returns {prCookieConsentApi}
838     */
839    addConfiguredCallback: function (callback) {
840        this.configuredCallbacks.push(callback);
841        return this;
842    },
843        isAllowedCategory: function (categoryKey) {
844        if (! this.config.canManageCookie) {
845            return true;
846        }
847        if (this.isEssentialCategory(categoryKey)) {
848            return true;
849        }
850        if (this.isOptIn()) {
851            if (this.isAllCategoriesAllowed()) {
852                return true;
853            }
854            return this.consent.get().includes(categoryKey);
855        }
856        return this.config.canUseCookieBeforeOptIn;
857    },
858    getDomain: function (cookieName) {
859        return this.config.cookies[cookieName] ? this.config.cookies[cookieName].domain : null;
860    },
861        isAllowed: function (cookieName) {
862        if (this.isSystemCookie(cookieName)) {
863            return true;
864        }
865        if (! this.config.canManageCookie) {
866            return true;
867        }
868        if (this.whitelist[cookieName]) {
869            return true;
870        }
871        cookieName = this.getTrueCookieName(cookieName);
872        if (! this.isOptIn()) {
873            if (this.config.canUseCookieBeforeOptIn) {
874                return true;
875            }
876            if (this.isKnownCookie(cookieName)) {
877                return this.isInEssentialCategory(cookieName);
878            }
879            return false;
880        }
881        if (! this.isKnownCookie(cookieName)) {
882            return ! this.config.canBlockUnknownCookie;
883        }
884        return this.isInAllowedCategory(cookieName);
885    },
886    isAllCategoriesAllowed: function () {
887        if (null === this.cache.get('allowAllCategories')) {
888            var customerConsent = this.consent.get();
889            if (customerConsent && customerConsent.includes('all') ) {
890                this.cache.set('allowAllCategories', true);
891            } else {
892                var allowedWebsites = this.websiteRestriction.getAllowed();
893                this.cache.set('allowAllCategories', allowedWebsites[this.config.mage.website] === 1);
894            }
895        }
896        return this.cache.get('allowAllCategories');
897    },
898    isEssentialCategory: function (categoryKey) {
899        return this.config.essentialCategoryKeys.includes(categoryKey);
900    },
901    isInEssentialCategory: function (cookieName) {
902        return this.isEssentialCategory(this.getCookieCategory(cookieName));
903    },
904    isInAllowedCategory: function (cookieName) {
905        return this.isAllowedCategory(this.getCookieCategory(cookieName));
906    },
907    getCookieCategory: function (cookieName) {
908        return this.config.cookieToCategoryMapping[cookieName];
909    },
910    isOptIn: function () {
911        var allowedWithDefaultCookie = this.websiteRestriction.getAllowed()[this.config.mage.website] === 1;
912        return Boolean(this.consent.get()) || allowedWithDefaultCookie;
913    },
914    isSystemCookie: function (cookieName) {
915        return this.SYSTEM_COOKIES.includes(cookieName);
916    },
917    isKnownCookie: function (cookieName) {
918        return this.config.cookieToCategoryMapping.hasOwnProperty(cookieName);
919    },
920    getTrueCookieName: function (cookieName) {
921        var keys = Object.keys(this.config.dynamicNamesPatterns), key;
922        for (var i = 0, length = keys.length; i < length; i++) {
923            key = keys[i];
924            if (new RegExp(this.config.dynamicNamesPatterns[key]).test(cookieName)) {
925                return key;
926            }
927        }
928        return cookieName;
929    },
930    clearRejectedCookie: function () {
931        let cookies = prCookieService.get();
932        Object.keys(cookies).forEach(function(cookieName) {
933            if (this.isAllowed(cookieName)) {
934                return;
935            }
936
937            var encodedCookieName = cookieName = encodeURIComponent(String(cookieName))
938                .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent)
939                .replace(/[\(\)]/g, escape);
940
941            this.whitelist[encodedCookieName] = true;
942            if (this.getDomain(cookieName)) {
943                prCookieService.remove(cookieName, {domain: this.getDomain(cookieName)});
944            } else {
945                prCookieService.remove(cookieName);
946                if (this.config.cookie.parentDomain) {
947                    prCookieService.remove(cookieName, {domain: this.config.cookie.parentDomain});
948                }
949            }
950            this.logger.warn('CookieConsent: remove cookie "' + cookieName + '"');
951            if (typeof prCookieService.get(cookieName) !== 'undefined') {
952                this.logger.error('CookieConsent: fail to remove cookie "' + cookieName + '"');
953            }
954            this.whitelist[encodedCookieName] = false;
955        }.bind(this));
956    }
957};
958
959prCookieConsentApi.userScript = {
960    /**
961     * List of callbacks and categories they depend on.
962     */
963    pendingScripts: [],
964    /**
965     * Run script after model is configured or after user provided consent.
966     */
967    init: function () {
968        prCookieConsentApi.addConfiguredCallback(this.executePendingScripts.bind(this));
969        prCookieConsentApi.consent.addCallback(this.executePendingScripts.bind(this));
970    },
971    /**
972     * Run or delay script.
973     *
974     * @param {function} callback
975     * @param {string}   categoryKey
976     */
977    execute: function (callback, categoryKey) {
978        if (prCookieConsentApi.isConfigured && prCookieConsentApi.isAllowedCategory(categoryKey)) {
979            callback();
980            return;
981        }
982
983        this.pendingScripts.push({callback: callback, categoryKey: categoryKey, executed: false});
984    },
985    /**
986     * Run pending scripts.
987     */
988    executePendingScripts: function () {
989        this.pendingScripts.forEach(function (script) {
990            if (false === script.executed && prCookieConsentApi.isAllowedCategory(script.categoryKey)) {
991                script.callback();
992                script.executed = true;
993            }
994        }.bind(this));
995    },
996};
997
998prCookieConsentApi.websiteRestriction = {
999    getAllowed: function () {
1000        var allowedWebsites = prCookieConsentApi.getCookieValue(prCookieConsentApi.config.mage.cookieName);
1001        return allowedWebsites ? JSON.parse(allowedWebsites) : {};
1002    },
1003    allowCurrent: function () {
1004        return this.set(prCookieConsentApi.config.mage.website, true);
1005    },
1006    disallowCurrent: function () {
1007        return this.set(prCookieConsentApi.config.mage.website, false);
1008    },
1009    /**
1010     * @param {number} website
1011     * @param {boolean} flag
1012     * @return {CookieRestriction.websiteRestriction}
1013     */
1014    set: function (website, flag) {
1015        var allowedWebsites = this.getAllowed();
1016
1017        if (flag) {
1018            allowedWebsites[website] = 1;
1019        } else {
1020            delete allowedWebsites[website];
1021        }
1022
1023        prCookieService.set(prCookieConsentApi.config.mage.cookieName, allowedWebsites, {
1024            path: prCookieConsentApi.config.cookie.path,
1025            expires: prCookieConsentApi.config.mage.lifetime ? Math.ceil(prCookieConsentApi.config.mage.lifetime / 86400) : 0
1026        });
1027
1028        return this;
1029    }
1030};
1031
1032prCookieConsentApi.cache = {
1033    cacheData: {allowAllCategories: null},
1034    get: function (key) {
1035        return this.cacheData[key];
1036    },
1037    set: function (key, value) {
1038        this.cacheData[key] = value;
1039    },
1040    reset: function () {
1041        this.cacheData = {allowAllCategories: null};
1042    }
1043};
1044
1045prCookieConsentApi.logger = {
1046    level: 0, /* disabled */
1047        init: function () {
1048        if (window.location.hash === '#pr-enable-cookie-log') {
1049            this.level = 1; /* only warnings and errors */
1050        }
1051        if (window.location.hash === '#pr-enable-cookie-log-all') {
1052            this.level = 2; /* all logs */
1053        }
1054    },
1055    log: function () {
1056        this.level > 1 && console.log.apply(console, arguments);
1057    },
1058    warn: function () {
1059        this.level > 0 && console.warn.apply(console, arguments);
1060    },
1061    error: function () {
1062        this.level > 0 && console.error.apply(console, arguments);
1063    }
1064};
1065
1066prCookieConsentApi.consent = {
1067    /**
1068     * Contains callbacks that run after user consent.
1069     *
1070     * @type {function[]}
1071     */
1072    callbacks: [],
1073    allowAllCategories: function () {
1074        prCookieConsentApi.cache.reset();
1075        prCookieConsentApi.consent.set(['all']);
1076        return this;
1077    },
1078    declineAll: function () {
1079        prCookieConsentApi.cache.reset();
1080        prCookieConsentApi.consent.set([]);
1081        return this;
1082    },
1083    set: function (allowedCategories) {
1084        prCookieService.set(prCookieConsentApi.CUSTOMER_CONSENT, JSON.stringify(allowedCategories), {
1085            expires: prCookieConsentApi.config.consent.expiry,
1086            path: prCookieConsentApi.config.cookie.path,
1087            domain: prCookieConsentApi.config.cookie.domain
1088        });
1089
1090        if (allowedCategories.includes('all')) {
1091            prCookieConsentApi.websiteRestriction.allowCurrent();
1092        } else {
1093            prCookieConsentApi.websiteRestriction.disallowCurrent();
1094        }
1095        prCookieConsentApi.cache.reset();
1096
1097        var isAccepting = allowedCategories.length;
1098
1099        this.callbacks.forEach(function (callback) {
1100            callback(allowedCategories)
1101        });
1102
1103        fetch(prCookieConsentApi.config.consent.logUrl, {
1104            method: 'POST',
1105            headers: {
1106                'Content-Type': 'application/json',
1107                'X-Requested-With': 'XMLHttpRequest'
1108            },
1109            body: JSON.stringify({acceptedKeys: allowedCategories})
1110        })
1111            .then(this.pageReloadAfterAction.bind(this, isAccepting));
1112    },
1113    /**
1114     * Reload page by configuration and action
1115     *
1116     * @param isAccepting
1117     */
1118    pageReloadAfterAction: function (isAccepting) {
1119        if (isAccepting && prCookieConsentApi.config.consent.reloadAfterAccept) {
1120            window.location.reload();
1121        }
1122
1123        if (! isAccepting && prCookieConsentApi.config.consent.reloadAfterDecline) {
1124            window.location.reload();
1125        }
1126    },
1127    get: function () {
1128        var consent = prCookieConsentApi.getCookieValue(prCookieConsentApi.CUSTOMER_CONSENT);
1129        return consent ? JSON.parse(consent) : false;
1130    },
1131    addCallback: function (callback) {
1132        this.callbacks.push(callback);
1133        return this;
1134    },
1135};
1136
1137prCookieConsentApi.configure('\u007B\u0022canManageCookie\u0022\u003Afalse,\u0022canUseCookieBeforeOptIn\u0022\u003Afalse,\u0022canBlockUnknownCookie\u0022\u003Afalse,\u0022consent\u0022\u003A\u007B\u0022isLoggedIn\u0022\u003Atrue,\u0022logUrl\u0022\u003A\u0022https\u003A\u005C\u002F\u005C\u002Fwww.flooringinc.com\u005C\u002Fpr\u002Dcookie\u002Dconsent\u005C\u002Fconsent_customer\u005C\u002Fupdate\u005C\u002F\u0022,\u0022reloadAfterAccept\u0022\u003Atrue,\u0022reloadAfterDecline\u0022\u003Afalse,\u0022expiry\u0022\u003A365\u007D,\u0022cookie\u0022\u003A\u007B\u0022path\u0022\u003A\u0022\u005C\u002F\u0022,\u0022domain\u0022\u003A\u0022www.flooringinc.com\u0022,\u0022parentDomain\u0022\u003A\u0022.flooringinc.com\u0022\u007D,\u0022cookies\u0022\u003A\u007B\u0022pr\u002Dcookie\u002Dnotice\u002Dstatus\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022user_allowed_save_cookie\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022guest\u002Dview\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022login_redirect\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dmessages\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022section_data_ids\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022store\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022amz_auth_err\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022amz_auth_logout\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dcache\u002Dsessid\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dcache\u002Dstorage\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022stf\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022recently_viewed_product\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022recently_viewed_product_previous\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dtranslation\u002Dstorage\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dtranslation\u002Dfile\u002Dversion\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022product_data_storage\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022recently_compared_product\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022recently_compared_product_previous\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dcache\u002Dstorage\u002Dsection\u002Dinvalidation\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_ga\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_ga_\u002A\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_gid\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_gat\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_dc_gtm_\u002A\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mg_dnt\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022last_visited_store\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022pr\u002Dgpc\u002Dnotification\u002Dshown\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022pr\u002Dgpc\u002Dsignal\u002Dhandled\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_clck\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022_clsk\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022CLID\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022MR\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022MUID\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022pr\u002Dcookie\u002Dconsent\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022pr\u002Dcookie\u002Dconsent\u002Did\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022form_key\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022X\u002DMagento\u002DVary\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022private_content_version\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022persistent_shopping_cart\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022add_to_cart\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022mage\u002Dbanners\u002Dcache\u002Dstorage\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D,\u0022remove_from_cart\u0022\u003A\u007B\u0022domain\u0022\u003A\u0022\u0022\u007D\u007D,\u0022mage\u0022\u003A\u007B\u0022website\u0022\u003A1,\u0022cookieName\u0022\u003A\u0022user_allowed_save_cookie\u0022,\u0022lifetime\u0022\u003A31536000\u007D,\u0022cookieToCategoryMapping\u0022\u003A\u007B\u0022pr\u002Dcookie\u002Dnotice\u002Dstatus\u0022\u003A\u0022necessary\u0022,\u0022user_allowed_save_cookie\u0022\u003A\u0022necessary\u0022,\u0022guest\u002Dview\u0022\u003A\u0022necessary\u0022,\u0022login_redirect\u0022\u003A\u0022necessary\u0022,\u0022mage\u002Dmessages\u0022\u003A\u0022necessary\u0022,\u0022section_data_ids\u0022\u003A\u0022necessary\u0022,\u0022store\u0022\u003A\u0022necessary\u0022,\u0022amz_auth_err\u0022\u003A\u0022necessary\u0022,\u0022amz_auth_logout\u0022\u003A\u0022necessary\u0022,\u0022mage\u002Dcache\u002Dsessid\u0022\u003A\u0022necessary\u0022,\u0022mage\u002Dcache\u002Dstorage\u0022\u003A\u0022necessary\u0022,\u0022stf\u0022\u003A\u0022necessary\u0022,\u0022recently_viewed_product\u
11370022\u003A\u0022necessary\u0022,\u0022recently_viewed_product_previous\u0022\u003A\u0022necessary\u0022,\u0022mage\u002Dtranslation\u002Dstorage\u0022\u003A\u0022necessary\u0022,\u0022mage\u002Dtranslation\u002Dfile\u002Dversion\u0022\u003A\u0022necessary\u0022,\u0022product_data_storage\u0022\u003A\u0022necessary\u0022,\u0022recently_compared_product\u0022\u003A\u0022necessary\u0022,\u0022recently_compared_product_previous\u0022\u003A\u0022necessary\u0022,\u0022mage\u002Dcache\u002Dstorage\u002Dsection\u002Dinvalidation\u0022\u003A\u0022necessary\u0022,\u0022_ga\u0022\u003A\u0022statistics\u0022,\u0022_ga_\u002A\u0022\u003A\u0022statistics\u0022,\u0022_gid\u0022\u003A\u0022statistics\u0022,\u0022_gat\u0022\u003A\u0022statistics\u0022,\u0022_dc_gtm_\u002A\u0022\u003A\u0022statistics\u0022,\u0022mg_dnt\u0022\u003A\u0022necessary\u0022,\u0022last_visited_store\u0022\u003A\u0022necessary\u0022,\u0022pr\u002Dgpc\u002Dnotification\u002Dshown\u0022\u003A\u0022necessary\u0022,\u0022pr\u002Dgpc\u002Dsignal\u002Dhandled\u0022\u003A\u0022necessary\u0022,\u0022_clck\u0022\u003A\u0022statistics\u0022,\u0022_clsk\u0022\u003A\u0022statistics\u0022,\u0022CLID\u0022\u003A\u0022statistics\u0022,\u0022MR\u0022\u003A\u0022statistics\u0022,\u0022MUID\u0022\u003A\u0022statistics\u0022,\u0022pr\u002Dcookie\u002Dconsent\u0022\u003A\u0022necessary\u0022,\u0022pr\u002Dcookie\u002Dconsent\u002Did\u0022\u003A\u0022necessary\u0022,\u0022form_key\u0022\u003A\u0022necessary\u0022,\u0022X\u002DMagento\u002DVary\u0022\u003A\u0022necessary\u0022,\u0022private_content_version\u0022\u003A\u0022necessary\u0022,\u0022persistent_shopping_cart\u0022\u003A\u0022necessary\u0022,\u0022add_to_cart\u0022\u003A\u0022statistics\u0022,\u0022mage\u002Dbanners\u002Dcache\u002Dstorage\u0022\u003A\u0022necessary\u0022,\u0022remove_from_cart\u0022\u003A\u0022statistics\u0022\u007D,\u0022essentialCategoryKeys\u0022\u003A\u005B\u0022necessary\u0022\u005D,\u0022dynamicNamesPatterns\u0022\u003A\u007B\u0022_dc_gtm_\u002A\u0022\u003A\u0022_dc_gtm_.\u002A\u0022,\u0022_ga_\u002A\u0022\u003A\u0022_ga_.\u002A\u0022\u007D\u007D');
1138prCookieConsentApi.initCookieBlocking();
1139
1140if (typeof define === 'function') {
1141    define('prCookieService', function () {return prCookieService});
1142    define('prCookieConsentApi', function () {return prCookieConsentApi;});
1143}
1144</script>
1144
1145
1146
1147    
1147<script type="text/javascript"  nonce="N2Q3enk5eGFoZ3hyejB4MzJxOThhNGsyd2lybnZpbno=">
1148        (() => {
1149            document.addEventListener('pr-cookie-consent-api:cookie-blocking:validation', (event) => {
1150                if ('mg_dnt' !== event.detail.cookieName) {
1151                    return;
1152                }
1153
1154                setTimeout(() => {
1155                    const categoryKey = 'marketing';
1156                    let cookieValue = (event.detail.cookie.match(/^[^=]+=(.*?)(?:$|;)/) || [])[1]?.trim();
1157
1158                    if (prCookieConsentApi.isAllowedCategory(categoryKey) && cookieValue.length) {
1159                        prCookieService.remove('mg_dnt', prCookieConsentApi.config.cookie);
1160                        return;
1161                    }
1162
1163                    if (! prCookieConsentApi.isAllowedCategory(categoryKey) && ! cookieValue.length) {
1164                        prCookieService.set('mg_dnt', true, { ...prCookieConsentApi.config.cookie, expires: null });
1165                    }
1166                }, 100);
1167            });
1168
1169            let handleCookieConsent = () => {
1170                const categoryKey = 'marketing';
1171                if (prCookieConsentApi.isAllowedCategory(categoryKey)) {
1172                    prCookieService.remove('mg_dnt', prCookieConsentApi.config.cookie);
1173                } else {
1174                    prCookieService.set('mg_dnt', true, { ...prCookieConsentApi.config.cookie, expires: null });
1175                }
1176            };
1177
1178            prCookieConsentApi.consent.addCallback(handleCookieConsent);
1179            handleCookieConsent();
1180        })();
1181    </script>
1181
1182
1183    
1183<script>
1184        (function () {
1185            'use strict';
1186
1187            window.amRecaptchaModel = {
1188                formsToProtect: "form\u005Baction\u002A\u003D\u0022faq\u002Findex\u002Fsave\u0022\u005D",
1189                isEnabledOnPayments: "",
1190                checkoutRecaptchaValidateUrl: "https://www.flooringinc.com/amcapthca/checkout/validate/",
1191                invisibleCaptchaCustomForm: "\u002D1",
1192                recaptchaConfig: {
1193                    lang: "hl\u003Den" || 'hl=en',
1194                    theme: "light",
1195                    badge: "bottomright",
1196                    sitekey: "6Lc6gcYqAAAAADiXHrgCFqC4Sewhxs-nrHYgN4oo",
1197                    size: "normal"
1198                },
1199                url: 'https://www.google.com/recaptcha/api.js',
1200                isCaptchaScriptLoaded: false,
1201                isInvisible: "normal" === 'invisible',
1202
1203                /**
1204                 * Submit event
1205                 *
1206                 * @param {Object} $event
1207                 * @return {void}
1208                 */
1209                execute: function ($event) {
1210                    const eventTarget = $event?.target;
1211                    if (this.isCaptchaScriptLoaded) {
1212                        this.executeCaptcha(eventTarget);
1213                    } else {
1214                        window.addEventListener('amcaptcha-script-loaded', () => {
1215                            this.isCaptchaScriptLoaded = true;
1216                            this.executeCaptcha(eventTarget);
1217                            this.initAmcaptchaBadges();
1218                        });
1219
1220                        this.loadRecaptchaScript();
1221                    }
1222                },
1223
1224                /**
1225                 * Execute original submit
1226                 *
1227                 * @param {Object} $event
1228                 * @param {HTMLElement} $el
1229                 * @return {void}
1230                 */
1231                recaptchaCallback: function ($event, $el) {
1232                    this.shouldExecuteCallback($event, $el) && $el.dispatchEvent(new CustomEvent('amrecaptcha-executable-callback'));
1233                },
1234
1235                /**
1236                 * Reset captcha
1237                 *
1238                 * @param {Object} $event
1239                 * @param {HTMLElement} $el
1240                 */
1241                expiredCallback: function($event, $el) {
1242                    this.shouldExecuteCallback($event, $el) && grecaptcha.reset($event.detail.widgetId);
1243                },
1244
1245                /**
1246                 * Checks if event is fired on submitted element
1247                 *
1248                 * @param {Object} $event
1249                 * @param {HTMLElement} $el
1250                 * @return {boolean}
1251                 */
1252                shouldExecuteCallback: function($event, $el) {
1253                    const eventWidgetId = $event.detail.widgetId;
1254                    const elementWidgetId = $el.dataset.amCaptchaWidgetId || $el.closest('form')?.dataset.amCaptchaWidgetId;
1255
1256                    return eventWidgetId === elementWidgetId;
1257                },
1258
1259                /**
1260                 * Run captcha for widget by id
1261                 *
1262                 * @param {HTMLElement} eventTarget
1263                 * @return {void}
1264                 */
1265                executeCaptcha: function(eventTarget) {
1266                    if (!eventTarget.dataset.hasOwnProperty('amCaptchaRendered')) {
1267                        this.bindCaptchaGlobalCallbacks(eventTarget);
1268                        this.renderCaptcha(eventTarget);
1269                        eventTarget.dataset.amCaptchaRendered = '';
1270                    }
1271
1272                    const widgetId = this.getWidgetId(eventTarget);
1273
1274                    if (!widgetId) {
1275                        typeof window.dispatchMessages !== "undefined" && window.dispatchMessages([
1276                            {
1277                                type: "error",
1278                                text: 'Recaptcha\u0020cannot\u0020properly\u0020validate\u0020form.'
1279                            }
1280                        ]);
1281                        return;
1282                    }
1283
1284                    window.dispatchEvent(new CustomEvent('amcaptcha-loading-start'));
1285                    grecaptcha.reset(widgetId);
1286
1287                    if (!this.isInvisible) {
1288                        this.stopAmcaptchaLoading();
1289                        return;
1290                    }
1291
1292                    grecaptcha.execute(widgetId)
1293                        .then(() => this.stopAmcaptchaLoading())
1294                        .catch(() => this.stopAmcaptchaLoading());
1295                },
1296
1297                /**
1298                 * Add recaptcha script to page
1299                 *
1300                 * @return {void}
1301                 */
1302                loadRecaptchaScript: function () {
1303                    const lang = window.amRecaptchaModel.recaptchaConfig.lang;
1304                    const url = `${window.amRecaptchaModel.url}?onload=amRecaptchaLoadCallback&render=explicit&${lang}`;
1305                    const script = document.createElement('script');
1306
1307                    script.type = 'text/javascript';
1308                    script.src = url;
1309                    script.async = true;
1310                    document.head.appendChild(script);
1311                },
1312
1313                /**
1314                 * Stop loader on page
1315                 *
1316                 * @return {void}
1317                 */
1318                stopAmcaptchaLoading: function () {
1319                    window.dispatchEvent(new CustomEvent('amcaptcha-loading-stop'));
1320                },
1321
1322                /**
1323                 * Add attributes to hide captcha badge
1324                 *
1325                 * @return {void}
1326                 */
1327                initAmcaptchaBadges: function () {
1328                    if (!this.isInvisible) {
1329                        return;
1330                    }
1331
1332                    document.querySelectorAll('.grecaptcha-badge')?.forEach(captchaBadge => {
1333                        captchaBadge?.setAttribute('x-data', '{ visible: true }');
1334                        captchaBadge?.setAttribute('x-on:amcaptcha-loading-start.window', 'visible = true');
1335                        captchaBadge?.setAttribute('x-on:amcaptcha-loading-stop.window', 'visible = false');
1336                        captchaBadge?.setAttribute(':class', '!visible && "invisible"');
1337                    });
1338                },
1339
1340                /**
1341                 * Get form widgetId
1342                 *
1343                 * @param {HTMLElement} eventTarget
1344                 * @return {string}
1345                 */
1346                getWidgetId: function (eventTarget) {
1347                    return eventTarget.dataset.amCaptchaWidgetId
1348                        || eventTarget.closest('form')?.dataset.amCaptchaWidgetId;
1349                },
1350
1351                /**
1352                 * Add captcha badge or checkbox to protected form.
1353                 * Store widgetId in dataset to pass this info in callbacks
1354                 *
1355                 * @param {HTMLElement} eventTarget
1356                 * @return {void}
1357                 */
1358                renderCaptcha: function (eventTarget) {
1359                    const captchaElement = document.createElement('div');
1360                    const formContent = eventTarget.closest('form')?.querySelector('[data-element="form-content"]')
1361                        ?? eventTarget.closest('form');
1362                    formContent?.appendChild(captchaElement);
1363
1364                    eventTarget.dataset.amCaptchaWidgetId = grecaptcha.render(captchaElement, {
1365                        ...window.amRecaptchaModel?.recaptchaConfig,
1366                        callback: () => {
1367                            window.dispatchEvent(new CustomEvent(
1368                                'amrecaptcha-callback', {
1369                                    detail: this.getCaptchaCallbackDetail(eventTarget)
1370                                }));
1371                        },
1372                        'expired-callback': () => {
1373                            window.dispatchEvent(new CustomEvent(
1374                                'amrecaptcha-expired-callback', {
1375                                    detail: this.getCaptchaCallbackDetail(eventTarget)
1376                                }));
1377                        }
1378                    });
1379                },
1380
1381                /**
1382                 * Get detail property for callback event
1383                 *
1384                 * @param {HTMLElement} eventTarget
1385                 * @return {object}
1386                 */
1387                getCaptchaCallbackDetail: function (eventTarget) {
1388                    return {
1389                        widgetId: eventTarget.dataset.amCaptchaWidgetId,
1390                        form: eventTarget
1391                    }
1392                },
1393
1394                /**
1395                 * Add functions that will be called on the global state
1396                 *
1397                 * @param {HTMLElement} eventTarget
1398                 * @return {void}
1399                 */
1400                bindCaptchaGlobalCallbacks: function (eventTarget) {
1401                    eventTarget.setAttribute(
1402                        'x-on:amrecaptcha-callback.window',
1403                        `amRecaptchaModel.recaptchaCallback($event, $el)`
1404                    );
1405                    eventTarget.setAttribute(
1406                        'x-on:amrecaptcha-expired-callback.window',
1407                        'amRecaptchaModel.expiredCallback($event, $el)'
1408                    );
1409                }
1410            };
1411        })(window.amRecaptchaModel = window.amRecaptchaModel || {});
1412
1413        window.amRecaptchaLoadCallback = function () {
1414            window.dispatchEvent(new CustomEvent('amcaptcha-script-loaded'));
1415        }
1416    </script>
1416
1417
1418
1419        <!--suppress HtmlUnknownTarget -->
1420    <!-- BV | Magento Extension 9.1.7 -->
1421    
1421<script>
1422        window.addEventListener('init-external-scripts', () => {
1423            const bvScript = document.createElement('script');
1424            bvScript.src = '//apps.bazaarvoice.com/deployments/incstores/main_site/production/en_US/bv.js';
1425            bvScript.type = 'text/javascript';
1426            bvScript.async = true;
1427            document.head.append(bvScript);
1428        }, {once: true, passive: true});
1429    </script>
vendor: 1 bytes, line 1429
1429
1430<script>
1431    function initSocialLoginPost() {
1432        return {
1433            submitForm(form) {
1434                event.preventDefault();
1435                var loginRefererElement = document.getElementById("sociallogin-login-referer");
1436                var value = loginRefererElement.value;
1437                fetch(form.action, {
1438                    headers: {
1439                        contentType: "application/json;charset=utf-8",
1440                    },
1441                    body: new URLSearchParams({
1442                        form_key: hyva.getFormKey(),
1443                        'refress-redirect-url':value
1444                    }),
1445                    method: "POST",
1446                    mode: "cors",
1447                    credentials: "include",
1448                }).then(response => {
1449                    if (response.redirected) {
1450                        window.location.href = response.url;
1451                    } else {
1452                        window.dispatchMessages("warning", "Post request failed", 5000);
1453                    }
1454                })
1455            }
1456        }
1457    }
1458</script>
1458
1459<form style="display:none;" class="form" x-data="initSocialLoginPost()" @submit="submitForm($el)"
1460      action="https://www.flooringinc.com/sociallogin/account/loginPost/"
1461      method="post"
1462      id="sociallogin-login-form"
1463>
1464    <input id="sociallogin-login-referer" name="refress-redirect-url" type="hidden" value="" />
1465    <input id="sociallogin-login-submit" type="submit" value="sociallogin" style="font-size:0"/>
1466</form>
1467
1468<style>
1469    .pr-cookie-setting-bar-overlay,
1470    .pr-cookie-setting-bar-container {
1471        z-index: 999999999999999;
1472    }
1473</style>
1474
1475<script>
1476    'use strict';
1477    var prCookieSettingBar = {
1478        config: {"categories":[{"key":"necessary","is_essential":true,"is_pre_checked":false,"name":"Strictly necessary cookies","description":"These cookies are essential for you to browse our store and use its features, such as accessing secure areas of the website. Cookies that allow holding your cart items, cookies that keep you logged-in and cookies that save your customized preferences are an example of strictly necessary cookies. These cookies are essential to a website's functionality and cannot be disabled by users.","sort_order":0,"details":[{"name":"First party","is_third_party":false,"cookies":[{"name":"pr-cookie-notice-status","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Stores close status of cookie notice."},{"name":"user_allowed_save_cookie","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":31536000,"durationLabel":"365 days","description":"Stores built-in cookie consent per website."},{"name":"guest-view","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Stores the Order ID that guest shoppers use to retrieve their order status. Guest orders view. Used in \u201cOrders and Returns\u201d widgets."},{"name":"login_redirect","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Preserves the destination page the customer was loading before being directed to log in."},{"name":"mage-messages","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":31536000,"durationLabel":"365 days","description":"Tracks error messages and other notifications that are shown to the user, such as the cookie consent message, and various error messages. The message is deleted from the cookie after it is shown to the shopper."},{"name":"section_data_ids","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Stores customer-specific information related to shopper-initiated actions such as display wish list, checkout information, etc."},{"name":"store","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":31536000,"durationLabel":"365 days","description":"Tracks the specific store view \/ locale selected by the shopper."},{"name":"amz_auth_err","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":31536000,"durationLabel":"365 days","description":"Used if Enable Login with Amazon is enabled. Value 1 indicates an authorization error."},{"name":"amz_auth_logout","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Used if Enable Login with Amazon is enabled. Value 1 indicates that the user should be logged out."},{"name":"mage-cache-sessid","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"The value of this cookie triggers the cleanup of local cache storage. When the cookie is removed by the backend application, the Admin cleans up local storage, and sets the cookie value to true."},{"name":"mage-cache-storage","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Local storage of visitor-specific content that enables ecommerce functions."},{"name":"stf","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Records the time messages are sent by the SendFriend (Email a Friend) module."},{"name":"recently_viewed_product","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Stores product IDs of recently viewed products for easy navigation."},{"name":"recently_viewed_product_previous","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Stores product IDs of recently previously viewed products for easy navigation."},{"name":"mage-translation-storage","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Stores translated content when requested by the shopper. Used when Translation Strategy is configured as \"Dictionary (Translation on Storefront side)\"."},{"name":"mage-translation-file-version","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Tracks the version of translations in local storage. Used when Translation Strategy is configured as Dictionary (Translation on Storefront side)."},{"name":"product_data_storage","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Stores configuration for product data related to Recently Viewed \/ Compared Products."},{"name":"recently_compared_product","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Stores product IDs of recently compared products."},{"name":"recently_compared_product_previous","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Stores product IDs of previously compared products for easy navigation."},{"name":"mage-cache-storage-section-invalidation","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Forces local storage of specific content sections that should be invalidated."},{"name":"mg_dnt","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Used to restrict Adobe Commerce data collection functionality if the user has opted out of tracking."},{"name":"last_visited_store","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"last_visited_store"},{"name":"pr-gpc-notification-shown","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Stores whether the GPC opt-out notification was shown to and closed by the user."},{"name":"pr-gpc-signal-handled","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Stores whether the Global Privacy Control (GPC) signal has been detected on the front end and the associated handling logic has been executed for the current user."},{"name":"pr-cookie-consent","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":365,"durationLabel":"less than an hour","description":"Keeps your cookie consent."},{"name":"pr-cookie-consent-id","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":365,"durationLabel":"less than an hour","description":"Keeps your cookie consent id."},{"name":"form_key","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":3600,"durationLabel":"1 hour","description":"A security measure that appends a random string to all form submissions to protect the data from Cross-Site Request Forgery (CSRF)."},{"name":"X-Magento-Vary","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":3600,"durationLabel":"1 hour","description":"Configuration setting that improves performance when using Varnish static content caching."},{"name":"private_content_version","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":31536000,"durationLabel":"365 days","description":"Appends a random, unique number and time to pages with customer content to prevent them from being cached on the server."},{"name":"persistent_shopping_cart","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":31536000,"durationLabel":"365 days","description":"Stores the key (ID) of persistent cart to make it possible to restore the cart for an anonymous shopper."},{"name":"mage-banners-cache-storage","category_key":"necessary","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":3600,"durationLabel":"1 hour","description":"Stores banner content locally to improve performance."}]}],"show_details":false},{"key":"preferences","is_essential":false,"is_pre_checked":false,"name":"Preferences cookies","description":"Preferences cookies are also known as \u201cfunctionality cookies\u201d. These cookies allow a website to remember choices you have made in the past, like what language you prefer, your favourite search f
1478ilters, or what your user name and password are so you can automatically log in.","sort_order":0,"details":[],"show_details":false},{"key":"statistics","is_essential":false,"is_pre_checked":false,"name":"Statistics cookies","description":"Statistics cookies are also known as \u201cperformance cookies\u201d. These cookies collect information about how you use a website, like which pages you visited and which links you clicked on. None of this information can be used to identify you. It is all aggregated and, therefore, anonymized. Their sole purpose is to improve website functions. This includes cookies from third-party analytics services, such as visitor analytics, heatmaps and social media analytics.","sort_order":0,"details":[{"name":"First party","is_third_party":false,"cookies":[{"name":"_ga","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":63072000,"durationLabel":"730 days","description":"Used to distinguish users."},{"name":"_ga_*","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":63072000,"durationLabel":"730 days","description":"Used to persist session state."},{"name":"_gid","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Used to distinguish users."},{"name":"_gat","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":86400,"durationLabel":"1 day","description":"Used to throttle request rate."},{"name":"_dc_gtm_*","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":60,"durationLabel":"less than an hour","description":"Used to throttle request rate."},{"name":"_clck","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Persists the Microsoft Clarity User ID and preferences, unique to that site is attributed to the same user ID."},{"name":"_clsk","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":0,"durationLabel":"Session","description":"Connects multiple page views by a user into a single Microsoft Clarity session recording."},{"name":"add_to_cart","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":3600,"durationLabel":"1 hour","description":"Used by Google Tag Manager. Captures the product SKU, name, price and quantity removed from the cart, and makes the information available for future integration by third-party scripts."},{"name":"remove_from_cart","category_key":"statistics","type":"first","typeLabel":"1st Party","domain":"","domainLabel":"www.flooringinc.com","duration":3600,"durationLabel":"1 hour","description":"Used by Google Tag Manager. Captures the product SKU, name, price and quantity added to the cart, and makes the information available for future integration by third-party scripts."}]},{"name":"","is_third_party":true,"cookies":[{"name":"CLID","category_key":"statistics","type":"third","typeLabel":"3rd Party","domain":"","domainLabel":"","duration":31536000,"durationLabel":"365 days","description":"Identifies the first time Microsoft Clarity saw the current user on any site using the service"},{"name":"MR","category_key":"statistics","type":"third","typeLabel":"3rd Party","domain":"","domainLabel":"","duration":31536000,"durationLabel":"365 days","description":"Used by Microsoft to track users for analytics purposes."},{"name":"MUID","category_key":"statistics","type":"third","typeLabel":"3rd Party","domain":"","domainLabel":"","duration":31536000,"durationLabel":"365 days","description":"Identifies unique web browsers visiting Microsoft sites. These cookies are used for advertising, site analytics, and other operational purposes."}]}],"show_details":false},{"key":"marketing","is_essential":false,"is_pre_checked":false,"name":"Marketing cookies","description":"The
1478se cookies track your online activity to help advertisers deliver more relevant advertising or to limit how many times you see an ad. These cookies can share that information with other organizations or advertisers. These are persistent cookies and almost always of third-party provenance.","sort_order":0,"details":[],"show_details":false}],"displayStyle":"left_bar","canShowCookieDetails":true,"overview":{"title":"Privacy and Cookies","text":"<p>A cookie is information stored on your computer by a website you visit. Cookies provide a way for the site to recognize you and keep track of your preferences. Ecommerce websites place cookies on visitors' browsers to retain login credentials, identify customers, and provide a customized shopping experience.<\/p>\r\n<p>We respect the privacy of individuals and recognize the importance of personal data entrusted to us by our customers. Any website visitor may choose not to allow some types of cookies. Click on cookie category headings and cookie details to find out more and change our default settings. However, blocking some types of cookies may impact your website experience and prevent you from using all the features on our store.<\/p>"},"consentPreferences":{"header":"Manage Consent Preferences","essential_category_status":"Always Active","cookie_details_link":"Cookie Details"},"design":{"textColor":"inherit","backgroundColor":"inherit"},"acceptButtonConfig":{"label":"Accept All","text_color":null,"text_color_on_hover":null,"background_color":null,"background_color_on_hover":null},"declineButtonConfig":{"enabled":true,"label":"Decline All","text_color":null,"text_color_on_hover":null,"background_color":null,"background_color_on_hover":null},"confirmButtonConfig":{"label":"Confirm My Choices","text_color":null,"text_color_on_hover":null,"background_color":null,"background_color_on_hover":null},"cookieDetailsIsOpen":false},
1479        show: function () {},
1480        hide: function () {},
1481        syncCategoriesDataWithConsent: function () {
1482            this.config.categories = this.config.categories.map(category => {
1483                category.is_allowed = prCookieConsentApi.isAllowedCategory(category.key);
1484                return category;
1485            });
1486        },
1487        allowAll: function () {
1488            prCookieConsentApi.consent.allowAllCategories();
1489            this.syncCategoriesDataWithConsent();
1490            window.prCookieSettingBar.hide();
1491        },
1492        declineAll: function () {
1493            prCookieConsentApi.consent.declineAll();
1494            this.syncCategoriesDataWithConsent();
1495            window.prCookieSettingBar.hide();
1496        },
1497        confirm: function () {
1498            var allowedCategories = [...prCookieConsentApi.config.essentialCategoryKeys];
1499            this.config.categories.forEach((category) => {
1500                if (allowedCategories.includes(category.key) || !category.is_allowed) {
1501                    return;
1502                }
1503
1504                allowedCategories.push(category.key);
1505            });
1506
1507            prCookieConsentApi.consent.set(allowedCategories);
1508            this.syncCategoriesDataWithConsent();
1509            window.prCookieSettingBar.hide();
1510        }
1511    };
1512</script>
1512
1513
1514<div x-data="{...hyva.modal(), init() {
1515            window.prCookieSettingBar.show = this.show.bind(this, 'pr-cookie-setting-bar', event);
1516            window.prCookieSettingBar.hide = this.hide.bind(this);
1517    }}" x-init="init()">
1518    <div x-cloak    x-bind="overlay('pr-cookie-setting-bar')"
1519    x-spread="overlay('pr-cookie-setting-bar')"
1520    class="fixed inset-0 bg-black bg-opacity-50 z-50 pr-cookie-setting-bar-overlay">
1521    <div class="fixed flex justify-center items-center text-left z-40 pr-cookie-setting-bar-container inset-0">
1522        <div x-ref="pr-cookie-setting-bar" role="dialog" aria-modal="true"
1523                                                  class="inline-block bg-white shadow-xl rounded-lg p-10 max-h-screen overflow-auto overscroll-y-contain pr-cookie-setting-bar rounded-none px-0 py-0 fixed top-0 bottom-0 left-0 w-[400px] max-w-full">
1524            <div class="pr-cookie-setting-bar-wrap text-[13px] px-4 pt-2 pb-4 relative"
1525     id="pr-cookie-setting-bar"
1526     :class="config.cookieDetailsIsOpen && 'h-screen overflow-hidden'"
1527     x-data="prCookieSettingBar"
1528     x-init="syncCategoriesDataWithConsent()"
1529>
1530    <button @click="hide" class="ml-auto -mt-2 -mr-4 block top-2 right-2 p-2">
1531        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-4 h-4" width="24" height="24" role="img">
1532  <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/>
1533<title>x</title></svg>
1534    </button>
1535    <h3 class="font-bold text-xl leading-normal mb-3" x-text="config.overview.title"></h3>
1536    <div class="pr-cookie-description" x-html="config.overview.text"></div>
1537    <div class="pr-actions-buttons flex flex-wrap items-center justify-center py-4 mb-6 border-container border-b">
1538        <button type="button" class="action btn btn-primary m-2" x-text="config.acceptButtonConfig.label" @click="allowAll();"></button>
1539        <button type="button" class="action btn btn-secondary m-2" x-text="config.declineButtonConfig.label" @click="declineAll()"></button>
1540    </div>
1541    <h3 class="pr-cookie-manage-title font-bold text-xl mb-0" x-text="config.consentPreferences.header"></h3>
1542    <ul class="message-system-list mt-8">
1543        <template x-for="category in config.categories">
1544            <li class="mt-0 mb-4">
1545                <div class="accordion-title">
1546                    <div class="pr-cookie-option flex justify-between pb-2 mt-8 text-sm">
1547                        <strong class="option-label mr-4" x-text="category.name"></strong>
1548                        <template x-if="category.is_essential">
1549                            <strong class="option-status whitespace-nowrap text-green-700" x-text="config.consentPreferences.essential_category_status"></strong>
1550                        </template>
1551                        <template x-if="! category.is_essential">
1552                            <div class="pr-cookie-switch">
1553                                <label class="switch-label" aria-label="Switch">
1554                                    <input type="checkbox"
1555                                           class="sr-only"
1556                                           x-model="category.is_allowed"
1557                                           x-bind:name="category.key"
1558                                    >
1559                                    <span class="switch-area flex items-center w-11 h-6 rounded-3xl border border-container cursor-pointer transition-all"
1560                                          :class="category.is_allowed ? 'bg-green-500 border-green-700' : 'bg-gray-200 border-gray-300'"
1561                                    >
1562                                        <span class="switch-nob block w-5 h-5 rounded-full transition-all"
1563                                              :class="category.is_allowed ? 'bg-white ml-auto mr-[2px]' : 'bg-gray-500 mr-auto ml-[2px]'"
1564                                        ></span>
1565                                    </span>
1566                                </label>
1567                            </div>
1568                        </template>
1569                    </div>
1570                    <div class="first-details" x-data="{ isOpen: false }">
1571                        <div class="pr-cookie-category-description text-gray-700 mb-4" x-text="category.description"></div>
1572                        <template x-if="config.canShowCookieDetails">
1573                            <div>
1574                                <div class="lvl1">
1575                                    <span class="pr-cookie-details text-blue-700 cursor-pointer underline hover:no-underline"
1576                                          x-on:click="isOpen = true; config.cookieDetailsIsOpen = isOpen"
1577                                          x-text="config.consentPreferences.cookie_details_link"
1578                                          x-bind:data-category-key="category.key"></span>
1579                                </div>
1580                                <div class="second-details absolute bg-white px-4 pt-2 pb-4 inset-0 h-full"
1581                                     x-show="isOpen"
1582                                >
1583                                    <div class="pr-cookie-view flex flex-col h-full">
1584                                        <template x-if="isOpen">
1585                                            <button @click="hide" class="ml-auto -mt-2 -mr-2 block top-2 right-2 p-2">
1586                                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-4 h-4" width="24" height="24" role="img">
1587  <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/>
1588<title>x</title></svg>
1589                                            </button>
1590                                        </template>
1591                                        <div class="flex justify-between items-center text-sm mb-2">
1592                                            <button class="pr-cookie-details-hide px-3 -ml-3 mr-3 flex items-center cursor-pointer hover:text-blue-800"
1593                                                    x-show="isOpen"
1594                                                    x-on:click="isOpen = false; config.cookieDetailsIsOpen = isOpen">
1595                                                <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="w-3 h-3 mr-2 flex-shrink-0" width="24" height="24" role="img">
1596  <path fill-rule="evenodd" d="M9.707 16.707a1 1 0 01-1.414 0l-6-6a1 1 0 010-1.414l6-6a1 1 0 011.414 1.414L5.414 9H17a1 1 0 110 2H5.414l4.293 4.293a1 1 0 010 1.414z" clip-rule="evenodd"/>
1597<title>arrow-left</title></svg>
1598                                                Back
1599                                            </button>
1600                                            <strong class="option-label" x-text="category.name"></strong>
1601                                        </div>
1602                                        <div class="pr-cookies-list h-full px-4 -mx-4 mb-3 overflow-auto">
1603                                            <h3 class="pr-cookie-view-title mb-2 font-bold text-base">Cookies List</h3>
1604                                            <template x-if="category.details.length > 0">
1605                                                <template x-for="group in category.details">
1606                                                    <div class="pr-cookie-item text-xs py-2 border-container border-b">
1607                                                        <h4 class="pr-cookie-details-title font-semibold mb-1" x-text="group.name"></h4>
1608                                                        <details class="pr-cookie-details-info">
1609                                                            <summary class="cursor-pointer text-blue-600 hover:text-blue-500">
1610                                                                <h5 class="inline-block font-semibold">
1611                                                                    View Cookies
1612                                                                </h5>
1613                                                            </summary>
1614                                                            <div class="pr-cookie-group-wrp">
1615                                                                <template x-for="cookie in group.cookies">
1616                                                                    <div class="pr-cookie-group mt-1 mb-4 p-4 bg-gray-100 rounded">
1617                                                                        <div class="pr-cookie-group-row mb-2 flex">
1618                                                                            <sp
1618an class="w-24 flex-shrink-0 mr-4">Name</span>
1619                                                                            <span class="truncate" x-text="cookie.name"></span>
1620                                                                        </div>
1621                                                                        <div class="pr-cookie-group-row mb-2 flex">
1622                                                                            <span class="w-24 flex-shrink-0 mr-4">Domain</span>
1623                                                                            <span class="truncate" x-text="cookie.domainLabel"></span>
1624                                                                        </div>
1625                                                                        <div class="pr-cookie-group-row mb-2 flex">
1626                                                                            <span class="w-24 flex-shrink-0 mr-4">Duration</span>
1627                                                                            <span x-text="cookie.durationLabel"></span>
1628                                                                        </div>
1629                                                                        <div class="pr-cookie-group-row mb-2 flex">
1630                                                                            <span class="w-24 flex-shrink-0 mr-4">Type</span>
1631                                                                            <span x-text="cookie.typeLabel"></span>
1632                                                                        </div>
1633                                                                        <div class="pr-cookie-group-row mb-2 flex">
1634                                                                            <span class="w-24 flex-shrink-0 mr-4">Category</span>
1635                                                                            <span x-text="cookie.category_key"></span>
1636                                                                        </div>
1637                                                                        <div class="pr-cookie-group-row flex">
1638                                                                            <span class="w-24 flex-shrink-0 mr-4">Description</span>
1639                                                                            <span x-text="cookie.description"></span>
1640                                                                        </div>
1641                                                                    </div>
1642                                                                </template>
1643                                                            </div>
1644                                                        </details>
1645                                                    </div>
1646                                                </template>
1647                                            </template>
1648                                            <template x-if="category.details.length === 0">
1649                                                <p>There are no cookies.</p>
1650                                            </template>
1651                                        </div>
1652
1653                                        <template x-if="isOpen">
1654                                            <div>
1655                                                <button class="action btn btn-primary"
1656                                                        :style="`color: ${config.confirmButtonConfig.text_color}; background-color: ${config.confirmButtonConfig.background_color}; border-color: ${config.confirmButtonConfig.background_color}`"
1657                                                        x-text="config.confirmButtonConfig.label"
1658                                                        @click="prCookieSettingBar.confirm()">
1659                                                </button>
1660                                            </div>
1661                                        </template>
1662                                    </div>
1663                                </div>
1664                            </div>
1665                        </template>
1666                    </div>
1667                </div>
1668            </li>
1669        </template>
1670        <button class="action btn btn-primary"
1671                :style="`color: ${config.confirmButtonConfig.text_color}; background-color: ${config.confirmButtonConfig.background_color}; border-color: ${config.confirmButtonConfig.background_color}`"
1672                x-text="config.confirmButtonConfig.label"
1673                @click="prCookieSettingBar.confirm()">
1674        </button>
1675    </ul>
1676</div>
1677        </div>
1678    </div>
1679    </div>
1680</div>
1681<script type="text/javascript"  nonce="N2Q3enk5eGFoZ3hyejB4MzJxOThhNGsyd2lybnZpbno=">
1682    (() => {
1683        const updateCookieConsentConfig = () => {
1684            const categoryMap = {};
1685            Object.entries(prCookieConsentApi.config.cookieToCategoryMapping).forEach(([cookieName, categoryName]) => {
1686                if (! categoryMap[categoryName]) {
1687                    categoryMap[categoryName] = [];
1688                }
1689                categoryMap[categoryName].push(cookieName);
1690            });
1691
1692            Object.entries(categoryMap).forEach(([category, cookies]) => {
1693                const existingList = window.cookie_consent_config[category] || [];
1694                window.cookie_consent_config[category] = Array.from(new Set(existingList.concat(cookies)));
1695            });
1696
1697            let cookieCategories = ["necessary","preferences","statistics","marketing"];
1698            window.cookie_consent_groups = {};
1699            cookieCategories.forEach((category) => {
1700                window.cookie_consent_groups[category] = prCookieConsentApi.isAllowedCategory(category);
1701            });
1702        }
1703
1704        const updateConsent = () => {
1705            window.cookie_consent_groups = window.cookie_consent_groups || {}
1706            Object.keys(window.cookie_consent_groups).forEach(categoryKey => {
1707                window.cookie_consent_groups[categoryKey] = prCookieConsentApi.isAllowedCategory(categoryKey);
1708            });
1709            window.dispatchEvent(new CustomEvent('user-allowed-save-cookie'));
1710        }
1711
1712        document.addEventListener('pr-cookie-consent-api:configured', () => {
1713            updateCookieConsentConfig();
1714            prCookieConsentApi.consent.addCallback(updateConsent);
1715        });
1716
1717        if (prCookieConsentApi.isConfigured) {
1718            updateCookieConsentConfig();
1719            prCookieConsentApi.consent.addCallback(updateConsent);
1720        }
1721    })();
1722</script>
1722
1723<div id="prgdpr-consentpopups-container"
1724     x-data="prDataPrivacyConsentPopupsLoadInit()"
1725     @private-content-loaded.window="receiveCustomerData($event.detail.data)"
1726></div>
1727<script>
1728    function prDataPrivacyConsentPopupsLoadInit() {
1729        return {
1730            receiveCustomerData: function (data) {
1731                if (! data.hasOwnProperty('data_privacy')) {
1732                    return;
1733                }
1734
1735                if (data.data_privacy.countNotifies !== 0 || data.data_privacy.countPopups !== 0) {
1736                    this.loadPopups();
1737                }
1738            },
1739            loadPopups: function () {
1740                fetch('https://www.flooringinc.com/data-privacy/consentpopups/load/')
1741                    .then((response) => {
1742                        if (! response.ok) {
1743                            throw new Error('Network response was not ok');
1744                        }
1745
1746                        return response.json();
1747                    })
1748                    .then(data => this.$el.innerHTML = data.html)
1749                    .catch(error => console.warn(error));
1750            }
1751        }
1752    }
1753
1754    function prDataPrivacyConsentPopupsInit(popups, notifies) {
1755        return {
1756            popups: popups,
1757            notifies: notifies,
1758            data: null,
1759            isShowModal: true,
1760            init: function () {
1761                for (popup of this.popups) {
1762                    popup.isShowModal = true;
1763                }
1764
1765                for (notify of this.notifies) {
1766                    notify.isShowModal = true;
1767                }
1768            },
1769            closeModal(popup) {
1770                popup.isShowModal = false;
1771            },
1772            sendRequest: function (url, consent) {
1773                if (consent.cms_page) {
1774                    consent.checkboxLabel = 'I agree';
1775                }
1776
1777                fetch(url, {
1778                    method: 'POST',
1779                    headers: {'X-Requested-With': 'XMLHttpRequest'},
1780                    body: JSON.stringify({'consent': consent})
1781                });
1782            },
1783            print: function (popup) {
1784                let printWindow = window.open('', 'Print', 'height=600,width=800');
1785                printWindow.document.write(
1786                    `<html><head><title>${popup.cms_page.title}</title></head><body>${popup.cms_page.content}</body></html`
1787                );
1788                printWindow.document.close();
1789                printWindow.focus();
1790                printWindow.print();
1791                printWindow.onafterprint = function () {
1792                    printWindow.close();
1793                };
1794
1795                return true;
1796            }
1797        }
1798    }
1799</script>
1799
1800
1801<script  nonce="N2Q3enk5eGFoZ3hyejB4MzJxOThhNGsyd2lybnZpbno=">
1802    (() => {
1803        const updateConsents = () => {
1804                        if (! Array.isArray(prCookieConsentApi.consent.get()) || prCookieConsentApi.consent.get().length > 0) {
1805                prCookieConsentApi.consent.declineAll();
1806            }
1807                    }
1808
1809        prGlobalPrivacyControlApi.signalHandlers.addHandler(updateConsents);
1810    })();
1811</script>
1811
1812<input name="form_key" type="hidden" value="tGAOudjzgYs06SIA" />
1813    
1813<script>
1814        window.amRecaptchaModel = window.amRecaptchaModel || {};
1815    </script>
1815
1816<div class="page-wrapper"><div class="container hidden">
1817    <div class="pt-2 pb-2 flex flex-row items-end justify-end">
1818                    <div class="pl-3">
1819                <a href="https://www.flooringinc.com/knowledge-base/" class="hover:underline">
1820    FAQ</a>
1821            </div>
1822            </div>
1823</div>
1824<header class="page-header"><div class="panel wrapper"><div class="header_top flex justify-between items-center" x-data="notificationAjaxCall()" x-init="initNotificationFunc()">
1825    <div class="header_left_notification text-size14 font-normal" x-html="left_notification_html"></div>
1826    <div class="header_middle_notification flex">
1827        <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div class="flex items-center"><a href="#" class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="29" height="20" viewBox="0 0 29 20" fill="none">
1828<path d="M18.125 0V9.09091H0V0H18.125ZM19.9375 0H29V9.09091H19.9375V0ZM10.875 20V10.9091H29V20H10.875ZM0 20V10.9091H9.0625V20H0Z" fill="#15324C"/>
1829</svg> 500+ Million Sqft Covered</a></div>
1830
1831<div class="flex items-center"><a href="https://www.flooringinc.com/reviews" class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none">
1832<path d="M8.99984 0.666504L11.5748 5.88317L17.3332 6.72484L13.1665 10.7832L14.1498 16.5165L8.99984 13.8082L3.84984 16.5165L4.83317 10.7832L0.666504 6.72484L6.42484 5.88317L8.99984 0.666504Z" fill="#15324C" stroke="#15324C" stroke-linecap="round" stroke-linejoin="round"/>
1833</svg> 125K+ Verified Reviews</a></div>
1834
1835<div class="flex items-center"><a href="/price-match" class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none">
1836<path d="M17.1582 11.1748L11.1832 17.1498C11.0284 17.3048 10.8446 17.4277 10.6422 17.5116C10.4399 17.5955 10.223 17.6386 10.004 17.6386C9.78498 17.6386 9.5681 17.5955 9.36577 17.5116C9.16344 17.4277 8.97963 17.3048 8.82484 17.1498L1.6665 9.99984V1.6665H9.99984L17.1582 8.82484C17.4686 9.13711 17.6428 9.55953 17.6428 9.99984C17.6428 10.4401 17.4686 10.8626 17.1582 11.1748Z" fill="#15324C"/>
1837<path d="M5.83317 5.83317H5.8415M17.1582 11.1748L11.1832 17.1498C11.0284 17.3048 10.8446 17.4277 10.6422 17.5116C10.4399 17.5955 10.223 17.6386 10.004 17.6386C9.78498 17.6386 9.5681 17.5955 9.36577 17.5116C9.16344 17.4277 8.97963 17.3048 8.82484 17.1498L1.6665 9.99984V1.6665H9.99984L17.1582 8.82484C17.4686 9.13711 17.6428 9.55953 17.6428 9.99984C17.6428 10.4401 17.4686 10.8626 17.1582 11.1748Z" stroke="#15324C" stroke-linecap="round" stroke-linejoin="round"/>
1838<circle cx="5" cy="5" r="1" fill="white"/>
1839</svg> Price Match Guarantee</a></div>
1840
1841<div class="flex items-center"><a href="/moneybackguarantee" class="flex items-center gap-2">
1842<svg xmlns="http://www.w3.org/2000/svg" width="14" height="18" viewBox="0 0 14 18" fill="none">
1843<path d="M7 0.75V18.4499M11.1667 3.75H4.91667C4.14312 3.75 3.40125 4.02656 2.85427 4.51884C2.30729 5.01113 2 5.67881 2 6.375C2 7.07119 2.30729 7.73887 2.85427 8.23116C3.40125 8.72344 4.14312 9 4.91667 9H9.08333C9.85688 9 10.5987 9.27656 11.1457 9.76885C11.6927 10.2611 12 10.9288 12 11.625C12 12.3212 11.6927 12.9889 11.1457 13.4812C10.5987 13.9734 9.85688 14.25 9.08333 14.25H2" stroke="#15324C" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
1844</svg> Money Back Guarantee</a></div>
1845</div>    </div>
1846    <div class="header_right_notifications font-normal">
1847        <style>#html-body [data-pb-style=GSTQRKU]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</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="GSTQRKU"><div data-content-type="text" data-appearance="default" data-element="main"><ul>
1848<li><a href="/contact">Contact Us</a></li>
1849<li><a href="/sales/guest/form">Track Order</a></li>
1850</ul></div></div></div>    </div>
1851</div>
1852
1853<script>
1854  function notificationAjaxCall() {
1855    return {
1856        availability_notification: '',
1857        left_notification_html: '',
1858        right_notification_html: '',
1859        initNotificationFunc: function () {
1860            fetch(BASE_URL+'notifications/index/show', {
1861                method: "GET",
1862                headers: { 'Content-Type': 'application/json' },
1863            })
1864            .then(response => {
1865                if (! response.ok) console.warn('GET request failed');
1866                return response.json();
1867            })
1868            .then(data => {
1869                if (data) {
1870                  this.availability_notification = data.availability_notification;
1871                  this.left_notification_html = data.left_notification_html;
1872                  this.right_notification_html = data.right_notification_html;
1873                }
1874            });
1875        }
1876    }
1877  }
1878</script>
1878</div><div class="header content">
1878<script>
1879    function initQuoteCartDrawer() {
1880        return {
1881            open: false,
1882            cartData: {},
1883            getQuoteCartData(data) {
1884                if (data.quotecart) {
1885                    this.cartData = data.quotecart
1886                    this.setCartItems();
1887                }
1888            },
1889            cartItems: [],
1890            setCartItems() {
1891                this.cartItems = this.cartData && this.cartData.items.sort(function(a,b) { return a.item_id - b.item_id }) || {}
1892            },
1893            deleteItemFromCart(itemId) {
1894                var formKey = document.querySelector('input[name=form_key]').value;
1895                fetch(BASE_URL+"amasty_quote/sidebar/removeItem/", {
1896                    "headers": {
1897                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
1898                    },
1899                    "body": "form_key="+ formKey + "&item_id="+itemId,
1900                    "method": "POST",
1901                    "mode": "cors",
1902                    "credentials": "include"
1903                }).then(function (response) {
1904                    if (response.redirected) {
1905                        window.location.href = response.url;
1906                    } else if (response.ok) {
1907                        return response.json();
1908                    } else {
1909                        typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
1910                            [{
1911                                type: "warning",
1912                                text: "Could not remove item from quote."
1913                            }], 5000
1914                        );
1915                    }
1916                }).then(function (response) {
1917                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
1918                        [{
1919                            type: response.success ? "success" : "error",
1920                            text: response.success
1921                                ? "You removed the item."
1922                                : response.error_message
1923                        }], 5000
1924                    );
1925                    var reloadCustomerDataEvent = new CustomEvent("reload-customer-section-data");
1926                    window.dispatchEvent(reloadCustomerDataEvent);
1927                });
1928            }
1929        }
1930    }
1931</script>
1931
1932<section id="cart-quote-drawer"
1933         x-data="initQuoteCartDrawer()"
1934         @private-content-loaded.window="getQuoteCartData(event.detail.data)"
1935         @toggle-quote-cart.window="open=true;"
1936         @keydown.window.escape="open=false"
1937>
1938    <template x-if="cartData && cartData.summary_count">
1939        <div role="dialog"
1940             aria-labelledby="cart-drawer-title"
1941             aria-modal="true"
1942             @click.away="open = false"
1943             class="fixed inset-y-0 right-0 z-30 flex max-w-full">
1944            <div class="backdrop"
1945                 x-show="open"
1946                 x-transition:enter="ease-in-out duration-500"
1947                 x-transition:enter-start="opacity-0"
1948                 x-transition:enter-end="opacity-100"
1949                 x-transition:leave="ease-in-out duration-500"
1950                 x-transition:leave-start="opacity-100"
1951                 x-transition:leave-end="opacity-0"
1952                 @click="open = false"
1953                 aria-label="Close panel"></div>
1954            <div class="relative w-screen max-w-md shadow-2xl"
1955                 x-show="open"
1956                 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700"
1957                 x-transition:enter-start="translate-x-full"
1958                 x-transition:enter-end="translate-x-0"
1959                 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700"
1960                 x-transition:leave-start="translate-x-0"
1961                 x-transition:leave-end="translate-x-full"
1962            >
1963                <div
1964                    x-show="open"
1965                    x-transition:enter="ease-in-out duration-500"
1966                    x-transition:enter-start="opacity-0"
1967                    x-transition:enter-end="opacity-100"
1968                    x-transition:leave="ease-in-out duration-500"
1969                    x-transition:leave-start="opacity-100"
1970                    x-transition:leave-end="opacity-0" class="absolute top-0 right-0 flex mr-3 mt-2">
1971                    <button @click="open = false" aria-label="Close panel"
1972                            class="p-2 text-gray-300 transition duration-150 ease-in-out hover:text-black">
1973                        <svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
1974                            <path stroke-linecap="round" stroke-linejoin="round"
1975                                  stroke-width="2" d="M6 18L18 6M6 6l12 12">
1976                            </path>
1977                        </svg>
1978                    </button>
1979                </div>
1980                <div class="flex flex-col h-full py-6 space-y-6 bg-white shadow-xl">
1981                    <header class="px-4 sm:px-6">
1982                        <div id="cart-drawer-title" class="text-lg font-medium leading-7 text-gray-900">
1983                            My Quote Cart                        </div>
1984                    </header>
1985                    <div class="relative grid gap-6 px-4 py-6 overflow-y-auto bg-white border-b
1986                        sm:gap-8 sm:px-6 border-container">
1987                        <template x-for="item in cartItems">
1988                            <div class="flex items-start p-3 -m-3 space-x-4 transition duration-150
1989                                ease-in-out rounded-lg hover:bg-gray-100">
1990                                <a :href="item.product_url" class="w-1/4">
1991                                    <img
1992                                        :src="item.product_image.src"
1993                                        :width="item.product_image.width"
1994                                        :height="item.product_image.height"
1995                                        loading="lazy"
1996                                    />
1997                                </a>
1998                                <div class="w-3/4 relative">
1999                                    <div>
2000                                        <div class="text-xl">
2001                                            <a :href="item.product_url" class="hover:underline">
2002                                                <span x-html="item.qty"></span> x <span x-html="item.product_name"></span>
2003                                            </a>
2004                                        </div>
2005                                        <div class="text-sm"><span x-html="item.product_sku"></div>
2006                                    </div>
2007                                    <template x-for="option in item.options">
2008                                        <div class="pt-2">
2009                                            <p class="font-semibold" x-text="option.label + ':'"></p>
2010                                            <p class="text-secondary" x-html="option.value"></p>
2011                                        </div>
2012                                    </template>
2013                                    <div><span x-html="item.product_price"></span></div>
2014                                    <div class="pt-4">
2015                                        <a :href="item.configure_url"
2016                                           x-show="item.product_type !== 'grouped'"
2017                                            class="inline-flex p-2 mr-2 btn btn-primary">
2018                                            <svg fill="none" viewBox="0 0 24 24" stroke="currentColor"
2019                                                 size="16" class="w-5 h-5">
2020                                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
2021                                                      d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536
2022                                                      3.536L6.5 21.036H3v-3.572L16.732 3.732z">
2023                                                </path>
2024                                            </svg>
2025                                        </a>
2026                                        <button class="inline-flex p-2 btn btn-primary"
2027                                                @click="deleteItemFromCart(item.item_id)"
2028                                        >
2029                                            <svg fill="none" viewBox="0 0 24 24" stroke="currentColor"
2030                                                 size="16" class="w-5 h-5">
2031                                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
2032                                                      d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0
2033                                                      01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1
2034                                                      0 00-1 1v3M4 7h16">
2035                                                </path>
2036                                            </svg>
2037                                        </button>
2038                                    </div>
2039                                </div>
2040                            </div>
2041                        </template>
2042                    </div>
2043                    <div class="relative grid gap-6 px-4 py-6 bg-white sm:gap-8 sm:px-6">
2044                        <div class="w-full p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg
2045                            hover:bg-gray-100">
2046                            <span>Cart Subtotal:</span>
2047                            <span class="text-gray-900 font-bold" x-text="hyva.formatPrice(cartData.subtotalAmount)"></span>
2048                        </div>
2049                        <div class="w-full">
2050                            <a href="https://www.flooringinc.com/amasty_quote/cart/"
2051                               class="btn btn-secondary justify-center">
2052                                View and Edit Cart                            </a>
2053                        </div>
2054                    </div>
2055                </div>
2056            </div>
2057        </div>
2058    </template>
2059</section>
2060<div class="widget block block-static-block">
2061    <style>#html-body [data-pb-style=J86NFKS]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</style><div data-content-type="row" data-appearance="full-bleed" 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="main" data-pb-style="J86NFKS"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div x-data="globalNotificationAjaxCall()" x-init="initGlobalNotificationFunc()">
2062    <div class="notification4 pt-2 pb-2 text-center text-size13 font-normal text-white bg-custom-green" style="display:none" x-html="global_notification_text"></div>
2063</div>
2064
2065<script>
2066function globalNotificationAjaxCall() {
2067    return {
2068        global_notification_text: '',
2069        initGlobalNotificationFunc: function () {
2070            fetch(BASE_URL+'notifications/index/GlobalNotification?full_action_name=checkout_cart_index&cat_prod_id=', {
2071                method: "GET",
2072                headers: { 'Content-Type': 'application/json' },
2073            })
2074            .then(response => {
2075                if (! response.ok) console.warn('GET request failed');
2076                return response.json();
2077            })
2078            .then(data => {
2079                if (data) {
2080                    if (data.notification_text !='') {
2081                        document.querySelector('.notification4.bg-custom-green').style.display = 'block';
2082                        this.global_notification_text = data.notification_text;
2083                    }
2084                }
2085            });
2086        }
2087    }
2088}
2089</script>
2089</div></div></div>
2090</div>
2090<script>
2091    function initHeader () {
2092        return {
2093            searchOpen: false,
2094            cart: {},
2095            quoteCart: {},
2096            activeCartType: 'cart',
2097            getData(data) {
2098                if (data.cart) {
2099                    this.cart = data.cart;
2100                   // this.cart.summary_count=this.cart.items.length;
2101                }
2102                if (data.quotecart) {
2103                    this.quoteCart = data.quotecart;
2104                }
2105                if (data.active_cart_icon) {
2106                    this.activeCartType = data.active_cart_icon;
2107                }
2108            }
2109        }
2110    }
2111    function initCompareHeader() {
2112        return {
2113            compareProducts: null,
2114            itemCount: 0,
2115            receiveCompareData(data) {
2116                if (data['compare-products']) {
2117                    this.compareProducts = data['compare-products'];
2118                    this.itemCount = this.compareProducts.count;
2119                }
2120            }
2121        }
2122    }
2123</script>
2123
2124
2125<div id="header"
2126     class="relative z-30 w-full bg-white"
2127     x-data="initHeader()"
2128     @keydown.window.escape="searchOpen = false;"
2129     @private-content-loaded.window="getData(event.detail.data)"
2130>
2131    <div class="content flex flex-wrap items-center justify-between w-full pt-4 pb-4 mx-auto mt-0">
2132        <!--Logo-->
2133        <div class="logo relative z-20">
2134            <div class="order-1 sm:order-2 lg:order-1 w-full pb-2 sm:w-auto sm:pb-0">
2135    <a class="flex items-center text-xl font-medium tracking-wide text-gray-800
2136        no-underline hover:no-underline font-title"
2137       href="https://www.flooringinc.com/"
2138       title="Flooring&#x20;Inc.&#x20;The&#x20;Flooring&#x20;Superstore"
2139       aria-label="store logo">
2140        <picture><source type="image/webp" srcset="https://www.flooringinc.com/media/logo/stores/1/logo.webp"><img src="https://www.flooringinc.com/media/logo/stores/1/logo.jpg" title="Flooring&#x20;Inc.&#x20;The&#x20;Flooring&#x20;Superstore" alt="Flooring&#x20;Inc.&#x20;The&#x20;Flooring&#x20;Superstore" fetchpriority="high" width="266" height="31" /></picture>
2141    </a>
2142</div>
2143        </div>
2144
2145        <!--Main Navigation-->
2146        <div x-data="initMenuMobile_6ab67d17cd4a9()"
2147     class="z-50 order-2 sm:order-1 lg:order-2 navigation xl:hidden"
2148>
2149    <!-- mobile -->    
2150    <div @load.window="setActiveMenu($root)"
2151         class="mobile-menu bg-lightblue"
2152         :class="{'h-screen fixed top-0 left-0 w-full' : open}"
2153         @toggle-mobile-menu.window="open = !open"
2154         @keydown.window.escape="open=false"
2155    >
2156        <div class="flex items-baseline justify-between ml-0 menu-icon">
2157            <div class="flex justify-end w-full">
2158                <a @click="$dispatch('toggle-mobile-menu')"
2159                       class="flex items-center justify-center cursor-pointer"
2160                       :class="{ 'ml-auto': open }">                       
2161                       <span class="close-icon px-5 py-2 text-size12 font-normal text-custom-blue rounded-md absolute" :class="{ 'hidden' : !open, 'block': open }">CLOSE</span>
2162                    <picture class="menu_icon -mt-0 mr-2 block"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-icon.webp"><img class="menu_icon -mt-0 mr-2 block" :class="{ 'block' : !open, 'hidden': open }" src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-icon.png" width="25" height="17" alt="menu-icon"></picture>
2163                </a>
2164            </div>
2165        </div>
2166        <div class="menu-overlay hidden" :class="{ 'hidden' : !open }" @click="$dispatch('toggle-mobile-menu')"></div>
2167        <nav
2168            class="hidden w-full h-full duration-150 ease-in-out transform transition-display pt-5 pr-5 pl-12"
2169            :class="{ 'hidden' : !open }"
2170        >
2171        <span class="menu-label text-size28 font-medium text-black pt-1 pb-4" :class="{ 'hidden' : !open, 'block': open }">Menu</span>
2172        <div class="nav-in overflow-y-auto overflow-x-hidden h-5/6">
2173                    <div class="level-0">               
2174                <span class="flex items-center transition-transform duration-150 ease-in-out transform mb-3">
2175                    <a class="flex items-center w-full cursor-pointer level-0 text-size24 font-medium text-black no-underline"
2176                                                    @click="mobilePanelActiveId =
2177                            mobilePanelActiveId === 'category-node-1826' ?
2178                            0 : 'category-node-1826'"
2179                                               title="Flooring&#x20;By&#x20;Category">
2180                        Flooring By Category                    </a>
2181                                        <a class="absolute right-0 cursor-pointer menu_arw1" :class="{
2182                        'active' : mobilePanelActiveId,
2183                        '' : !mobilePanelActiveId
2184                    }"
2185                          @click="mobilePanelActiveId =
2186                          mobilePanelActiveId === 'category-node-1826' ?
2187                           0 : 'category-node-1826'"
2188                    >
2189                        <picture><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.png" width="17" height="10" alt="menu-arw"></picture>
2190                    </a>
2191                                    </span>
2192                                    <div
2193                        class="w-full h-full transition-transform duration-200 ease-in-out block transform"
2194                        :class="{
2195                            'block' : mobilePanelActiveId !== 'category-node-1826',
2196                            'hidden' : mobilePanelActiveId === 'category-node-1826',
2197                        }"
2198                    >
2199                                                    
2200                            <li class="imgcat list-none relative" x-data="{ show: false }" >
2201                            <a 
2202                                                            @click="show = !show"
2203                                                           title="Rubber&#x20;Flooring"
2204                               class="flex items-center w-full cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
2205                            >
2206                                <span>
2207                                    Rubber Flooring                                </span>
2208                            </a>
2209                            
2210                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
2211                             <ul class="z-10 w-full" x-show="show"> 
2212                                                                    <li class="level-2">
2213                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html"
2214                                           title="All&#x20;Rubber&#x20;Flooring"
2215                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2216                                           All Rubber Flooring</a>
2217                                    </li>
2218                                                                                                        <li class="level-2">
2219                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/rubber-rolls.html"
2220                                           title="Rubber&#x20;Flooring&#x20;Rolls"
2221                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2222                                           Rubber Flooring Rolls</a>
2223                                    </li>
2224                                                                                                        <li class="level-2">
2225                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/rubber-tiles.html"
2226                                           title="Rubber&#x20;Floor&#x20;Tiles"
2227                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2228                                           Rubber Floor Tiles</a>
2229                                    </li>
2230                                                                                                        <li class="level-2">
2231                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/rubber-mats.html"
2232                                           title="Rubber&#x20;Mats"
2233                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2234                                           Rubber Mats</a>
2235                                    </li>
2236                                                                                                        <li class="level-2">
2237                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/playground-flooring.html"
2238                                           title="Playground&#x20;Flooring"
2239                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2240                                           Playground Flooring</a>
2241                                    </li>
2242                                                                                                        <li class="level-2">
2243                                        <a href="https://www.flooringinc.com/shop/rubber-flooring/outdoor-rubber-flooring.html"
2244                                           title="Outdoor&#x20;Rubber&#x20;Flooring"
2245                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2246                                           Outdoor Rubber Flooring</a>
2247                                    </li>
2248                                                                  </ul>
2249                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/rubber-flooring.html" x-show="show">View All</a>
2250                                             
2251                                                        
2252                                                    
2253                            <li class="imgcat list-none relative" x-data="{ show: false }" >
2254                            <a 
2255                                                            @click="show = !show"
2256                                                           title="Garage&#x20;Flooring"
2257                               class="flex items-center w-full cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
2258                            >
2259                                <span>
2260                                    Garage Flooring                                </span>
2261                            </a>
2262                            
2263                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
2264                             <ul class="z-10 w-full" x-show="show"> 
2265                                                                    <li class="level-2">
2266                                        <a href="https://www.flooringinc.com/shop/garage-flooring/all-garage-flooring.html"
2267                                           title="All&#x20;Garage&#x20;Flooring"
2268                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2269                                           All Garage Flooring</a>
2270                                    </li>
2271                                                                                                        <li class="level-2">
2272                                        <a href="https://www.flooringinc.com/shop/garage-flooring/garage-rolls.html"
2273                                           title="Garage&#x20;Flooring&#x20;Rolls"
2274                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2275                                           Garage Flooring Rolls</a>
2276                                    </li>
2277                                                                                                        <li class="level-2">
2278                                        <a href="https://www.flooringinc.com/shop/garage-flooring/garage-tiles.html"
2279                                           title="Garage&#x20;Floor&#x20;Tiles"
2280                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2281                                           Garage Floor Tiles</a>
2282                                    </li>
2283                                                                                                        <li class="level-2">
2284                                        <a href="https://www.flooringinc.com/shop/garage-flooring/garage-gym-flooring.html"
2285                                           title="Garage&#x20;Gym&#x20;Flooring"
2286                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2287                                           Garage Gym Flooring</a>
2288                                    </li>
2289                                                                                                        <li class="level-2">
2290                                        <a href="https://www.flooringinc.com/shop/garage-flooring/coatings-epoxy.html"
2291                                           title="Garage&#x20;Floor&#x20;Epoxy"
2292                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2293                                           Garage Floor Epoxy</a>
2294                                    </li>
2295                                                                                                        <li class="level-2">
2296                                        <a href="https://www.flooringinc.com/shop/garage-flooring/trailer-flooring.html"
2297                                           title="Trailer&#x20;Flooring"
2298                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2299                                           Trailer Flooring</a>
2300                                    </li>
2301                                                                  </ul>
2302                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/garage-flooring.html" x-show="show">View All</a>
2303                                             
2304                                                        
2305                                                    
2306                            <li class="imgcat list-none relative" x-data="{ show: false }" >
2307                            <a 
2308                                                            @click="show = !show"
2309                                                           title="Dance&#x20;Flooring"
2310                               class="flex items-center w-full cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
2311                            >
2312                                <span>
2313                                    Dance Flooring                                </span>
2314                            </a>
2315                            
2316                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
2317                             <ul class="z-10 w-full" x-show="show"> 
2318                                                                    <li class="level-2">
2319                                        <a href="https://www.flooringinc.com/shop/dance-flooring/marley-flooring.html"
2320                                           title="Marley&#x20;Floor&#x20;Rolls"
2321                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2322                                           Marley Floor Rolls</a>
2323                                    </li>
2324                                                                                                        <li class="level-2">
2325                                        <a href="https://www.flooringinc.com/shop/dance-flooring/dance-floor-tiles.html"
2326                                           title="Dance&#x20;Floor&#x20;Tiles"
2327                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2328                                           Dance Floor Tiles</a>
2329                                    </li>
2330                                                                                                        <li class="level-2">
2331                                        <a href="https://www.flooringinc.com/shop/dance-flooring/portable-dance-floor-kits.html"
2332                                           title="Portable&#x20;Dance&#x20;Floors&#x20;&amp;&#x20;Kits"
2333                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2334                                           Portable Dance Floors &amp; Kits</a>
2335                                    </li>
2336                                                                                                        <li class="level-2">
2337                                        <a href="https://www.flooringinc.com/shop/dance-flooring/subflooring.html"
2338                                           title="Subflooring"
2339                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2340                                           Subflooring</a>
2341                                    </li>
2342                                                                                                        <li class="level-2">
2343                                        <a href="https://www.flooringinc.com/shop/dance-flooring/adhesives-cleaners-accessories.html"
2344                                           title="Adhesives,&#x20;Cleaners&#x20;&amp;&#x20;Accessories"
2345                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2346                                           Adhesives, Cleaners &amp; Accessories</a>
2347                                    </li>
2348                                                                                                        <li class="level-2">
2349                                        <a href="https://www.flooringinc.com/shop/dance-flooring/all-dance-flooring.html"
2350                                           title="All&#x20;Dance&#x20;Flooring"
2351                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2352                                           All Dance Flooring</a>
2353                                    </li>
2354                                                                  </ul>
2355                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/dance-flooring.html" x-show="show">View All</a>
2356                                             
2357                                                        
2358                                                    
2359                            <li class="imgcat list-none relative" x-data="{ show: false }" >
2360                            <a 
2361                                                            @click="show = !show"
2362                                                           title="Foam&#x20;Flooring"
2363                               class="flex items-center w-full cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
2364                            >
2365                                <span>
2366                                    Foam Flooring                                </span>
2367                            </a>
2368                            
2369                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
2370                             <ul class="z-10 w-full" x-show="show"> 
2371                                                                    <li class="level-2">
2372                                        <a href="https://www.flooringinc.com/shop/foam-flooring/foam-tiles.html"
2373                                           title="Foam&#x20;Floor&#x20;Tiles"
2374                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2375                                           Foam Floor Tiles</a>
2376                                    </li>
2377                                                                                                        <li class="level-2">
2378                                        <a href="https://www.flooringinc.com/shop/foam-flooring/kids-baby-play-mats.html"
2379                                           title="Kids&#x20;&amp;&#x20;Baby&#x20;Play&#x20;Mats"
2380                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2381                                           Kids &amp; Baby Play Mats</a>
2382                                    </li>
2383                                                                                                        <li class="level-2">
2384                                        <a href="https://www.flooringinc.com/shop/foam-flooring/gymnastic-folding-mats.html"
2385                                           title="Gymnastics&#x20;Mats&#x20;"
2386                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2387                                           Gymnastics Mats </a>
2388                                    </li>
2389                                                                                                        <li class="level-2">
2390                                        <a href="https://www.flooringinc.com/shop/foam-flooring/wrestling-mats.html"
2391                                           title="Wrestling&#x20;Mats"
2392                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2393                                           Wrestling Mats</a>
2394                                    </li>
2395                                                                                                        <li class="level-2">
2396                                        <a href="https://www.flooringinc.com/shop/foam-flooring/martial-arts-mats.html"
2397                                           title="Martial&#x20;Arts&#x20;Mats&#x20;"
2398                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2399                                           Martial Arts Mats </a>
2400                                    </li>
2401                                                                                                        <li class="level-2">
2402                                        <a href="https://www.flooringinc.com/shop/foam-flooring/trade-show-flooring.html"
2403                                           title="Trade&#x20;Show&#x20;Flooring"
2404                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2405                                           Trade Show Flooring</a>
2406                                    </li>
2407                                                                  </ul>
2408                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/foam-flooring.html" x-show="show">View All</a>
2409                                             
2410                                                        
2411                                                    
2412                            <li class="imgcat list-none relative" x-data="{ show: false }" >
2413                            <a 
2414                                                            @click="show = !show"
2415                                                           title="Outdoor&#x20;Flooring"
2416                               class="flex items-center w-full cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
2417                            >
2418                                <span>
2419                                    Outdoor Flooring                                </span>
2420                            </a>
2421                            
2422                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
2423                             <ul class="z-10 w-full" x-show="show"> 
2424                                                                    <li class="level-2">
2425                                        <a href="https://www.flooringinc.com/shop/outdoor-flooring/playground-flooring.html"
2426                                           title="Playground&#x20;Flooring"
2427                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2428                                           Playground Flooring</a>
2429                                    </li>
2430                                                                                                        <li class="level-2">
2431                                        <a href="https://www.flooringinc.com/shop/outdoor-flooring/sport-and-court-flooring.html"
2432                                           title="Sports&#x20;Flooring&#x20;&amp;&#x20;Court&#x20;Tiles"
2433                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2434                                           Sports Flooring &amp; Court Tiles</a>
2435                                    </li>
2436                                                                                                        <li class="level-2">
2437                                        <a href="https://www.flooringinc.com/shop/outdoor-flooring/artificial-grass.html"
2438                                           title="Turf&#x20;&amp;&#x20;Artificial&#x20;Grass"
2439                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2440                                           Turf &amp; Artificial Grass</a>
2441                                    </li>
2442                                                                                                        <li class="level-2">
2443                                        <a href="https://www.flooringinc.com/shop/outdoor-flooring/composite-decking.html"
2444                                           title="Composite&#x20;Decking"
2445                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2446                                           Composite Decking</a>
2447                                    </li>
2448                                                                                                        <li class="level-2">
2449                                        <a href="https://www.flooringinc.com/shop/outdoor-flooring/rooftop-deck-flooring.html"
2450                                           title="Rooftop&#x20;Deck&#x20;Flooring"
2451                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2452                                           Rooftop Deck Flooring</a>
2453                                    </li>
2454                                                                                                        <li class="level-2">
2455                                        <a href="https://www.flooringinc.com/shop/outdoor-flooring/drainage-tiles.html"
2456                                           title="Drainage&#x20;Tile&#x20;&amp;&#x20;Mats"
2457                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2458                                           Drainage Tile &amp; Mats</a>
2459                                    </li>
2460                                                                  </ul>
2461                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/outdoor-flooring.html" x-show="show">View All</a>
2462                                             
2463                                                        
2464                                                    
2465                            <li class="imgcat list-none relative" x-data="{ show: false }" >
2466                            <a 
2467                                                            @click="show = !show"
2468                                                           title="Turf&#x20;&amp;&#x20;Artificial&#x20;Grass"
2469                               class="flex items-center w-full cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
2470                            >
2471                                <span>
2472                                    Turf &amp; Artificial Grass                                </span>
2473                            </a>
2474                            
2475                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
2476                             <ul class="z-10 w-full" x-show="show"> 
2477                                                                    <li class="level-2">
2478                                        <a href="https://www.flooringinc.com/shop/artificial-grass/sport-field-turf.html"
2479                                           title="Sport&#x20;&amp;&#x20;Gym&#x20;Turf"
2480                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2481                                           Sport &amp; Gym Turf</a>
2482                                    </li>
2483                                                                                                        <li class="level-2">
2484                                        <a href="https://www.flooringinc.com/shop/artificial-grass/landscape-turf.html"
2485                                           title="Landscape&#x20;Turf"
2486                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2487                                           Landscape Turf</a>
2488                                    </li>
2489                                                                                                        <li class="level-2">
2490                                        <a href="https://www.flooringinc.com/shop/artificial-grass/pet-turf.html"
2491                                           title="Pet&#x20;Turf"
2492                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2493                                           Pet Turf</a>
2494                                    </li>
2495                                                                                                        <li class="level-2">
2496                                        <a href="https://www.flooringinc.com/shop/artificial-grass/putting-greens.html"
2497                                           title="Golf&#x20;&amp;&#x20;Putting&#x20;Green&#x20;Turf"
2498                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2499                                           Golf &amp; Putting Green Turf</a>
2500                                    </li>
2501                                                                                                        <li class="level-2">
2502                                        <a href="https://www.flooringinc.com/shop/artificial-grass/turf-accessories.html"
2503                                           title="Turf&#x20;Accessories"
2504                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2505                                           Turf Accessories</a>
2506                                    </li>
2507                                                                                                        <li class="level-2">
2508                                        <a href="https://www.flooringinc.com/shop/artificial-grass/all-artificial-grass.html"
2509                                           title="All&#x20;Turf&#x20;&amp;&#x20;Artificial&#x20;Grass"
2510                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2511                                           All Turf &amp; Artificial Grass</a>
2512                                    </li>
2513                                                                  </ul>
2514                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/artificial-grass.html" x-show="show">View All</a>
2515                                             
2516                                                        
2517                                                    
2518                            <li class="imgcat list-none relative" x-data="{ show: false }" >
2519                            <a 
2520                                                            @click="show = !show"
2521                                                           title="Carpet&#x20;Tiles&#x20;&amp;&#x20;Rolls"
2522                               class="flex items-center w-full cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
2523                            >
2524                                <span>
2525                                    Carpet Tiles &amp; Rolls                                </span>
2526                            </a>
2527                            
2528                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
2529                             <ul class="z-10 w-full" x-show="show"> 
2530                                                                    <li class="level-2">
2531                                        <a href="https://www.flooringinc.com/shop/carpet/carpet-tiles.html"
2532                                           title="Carpet&#x20;Tiles"
2533                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2534                                           Carpet Tiles</a>
2535                                    </li>
2536                                                                                                        <li class="level-2">
2537                                        <a href="https://www.flooringinc.com/shop/carpet/carpet-rolls.html"
2538                                           title="Carpet&#x20;Rolls"
2539                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2540                                           Carpet Rolls</a>
2541                                    </li>
2542                                                                                                        <li class="level-2">
2543                                        <a href="https://www.flooringinc.com/shop/carpet/home-theater-carpet.html"
2544                                           title="Home&#x20;Theater&#x20;Carpet"
2545                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2546                                           Home Theater Carpet</a>
2547                                    </li>
2548                                                                                                        <li class="level-2">
2549                                        <a href="https://www.flooringinc.com/shop/carpet/peel-stick-carpet.html"
2550                                           title="Peel&#x20;and&#x20;Stick&#x20;Carpet&#x20;Tiles"
2551                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2552                                           Peel and Stick Carpet Tiles</a>
2553                                    </li>
2554                                                                                                        <li class="level-2">
2555                                        <a href="https://www.flooringinc.com/shop/carpet/outdoor-carpet.html"
2556                                           title="Outdoor&#x20;Carpet"
2557                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2558                                           Outdoor Carpet</a>
2559                                    </li>
2560                                                                                                        <li class="level-2">
2561                                        <a href="https://www.flooringinc.com/shop/carpet/waterproof-carpet.html"
2562                                           title="Waterproof&#x20;Carpet"
2563                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2564                                           Waterproof Carpet</a>
2565                                    </li>
2566                                                                  </ul>
2567                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/carpet.html" x-show="show">View All</a>
2568                                             
2569                                                        
2570                                                    
2571                            <li class="imgcat list-none relative" x-data="{ show: false }" >
2572                            <a 
2573                                                            @click="show = !show"
2574                                                           title="Vinyl&#x20;Flooring"
2575                               class="flex items-center w-full cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
2576                            >
2577                                <span>
2578                                    Vinyl Flooring                                </span>
2579                            </a>
2580                            
2581                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
2582                             <ul class="z-10 w-full" x-show="show"> 
2583                                                                    <li class="level-2">
2584                                        <a href="https://www.flooringinc.com/shop/vinyl/vinyl-sheet.html"
2585                                           title="Vinyl&#x20;Sheet&#x20;Flooring"
2586                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2587                                           Vinyl Sheet Flooring</a>
2588                                    </li>
2589                                                                                                        <li class="level-2">
2590                                        <a href="https://www.flooringinc.com/shop/vinyl/vinyl-tiles-planks.html"
2591                                           title="Vinyl&#x20;Tiles&#x20;&amp;&#x20;Planks"
2592                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2593                                           Vinyl Tiles &amp; Planks</a>
2594                                    </li>
2595                                                                                                        <li class="level-2">
2596                                        <a href="https://www.flooringinc.com/shop/vinyl/waterproof-vinyl.html"
2597                                           title="Waterproof&#x20;Vinyl&#x20;Flooring"
2598                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2599                                           Waterproof Vinyl Flooring</a>
2600                                    </li>
2601                                                                                                        <li class="level-2">
2602                                        <a href="https://www.flooringinc.com/shop/vinyl/rigid-core-vinyl.html"
2603                                           title="Rigid&#x20;Core&#x20;Vinyl&#x20;Flooring"
2604                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2605                                           Rigid Core Vinyl Flooring</a>
2606                                    </li>
2607                                                                                                        <li class="level-2">
2608                                        <a href="https://www.flooringinc.com/shop/vinyl/commercial-vinyl.html"
2609                                           title="Commercial&#x20;Vinyl&#x20;Flooring"
2610                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2611                                           Commercial Vinyl Flooring</a>
2612                                    </li>
2613                                                                                                  </ul>
2614                             
2615                                                        
2616                                                    
2617                            <li class="imgcat list-none relative" x-data="{ show: false }" >
2618                            <a 
2619                                                            @click="show = !show"
2620                                                           title="Wood&#x20;&amp;&#x20;Laminate&#x20;Flooring"
2621                               class="flex items-center w-full cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
2622                            >
2623                                <span>
2624                                    Wood &amp; Laminate Flooring                                </span>
2625                            </a>
2626                            
2627                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
2628                             <ul class="z-10 w-full" x-show="show"> 
2629                                                                    <li class="level-2">
2630                                        <a href="https://www.flooringinc.com/shop/wood-laminate/waterproof-laminate.html"
2631                                           title="Waterproof&#x20;Laminate&#x20;Flooring"
2632                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2633                                           Waterproof Laminate Flooring</a>
2634                                    </li>
2635                                                                                                        <li class="level-2">
2636                                        <a href="https://www.flooringinc.com/shop/wood-laminate/laminate.html"
2637                                           title="Laminate&#x20;Flooring"
2638                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2639                                           Laminate Flooring</a>
2640                                    </li>
2641                                                                                                        <li class="level-2">
2642                                        <a href="https://www.flooringinc.com/shop/wood-laminate/hardwood.html"
2643                                           title="Engineered&#x20;Hardwood&#x20;Flooring"
2644                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2645                                           Engineered Hardwood Flooring</a>
2646                                    </li>
2647                                                                                                        <li class="level-2">
2648                                        <a href="https://www.flooringinc.com/shop/wood-laminate/oak.html"
2649                                           title="Oak&#x20;Wood&#x20;Flooring"
2650                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2651                                           Oak Wood Flooring</a>
2652                                    </li>
2653                                                                                                        <li class="level-2">
2654                                        <a href="https://www.flooringinc.com/shop/wood-laminate/commercial-wood-laminate.html"
2655                                           title="Commercial&#x20;Wood&#x20;&amp;&#x20;Laminate"
2656                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2657                                           Commercial Wood &amp; Laminate</a>
2658                                    </li>
2659                                                                                                  </ul>
2660                             
2661                                                        
2662                                                    
2663                            <li class="imgcat list-none relative" x-data="{ show: false }" >
2664                            <a 
2665                                                            @click="show = !show"
2666                                                           title="Commercial&#x20;Flooring"
2667                               class="flex items-center w-full cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
2668                            >
2669                                <span>
2670                                    Commercial Flooring                                </span>
2671                            </a>
2672                            
2673                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
2674                             <ul class="z-10 w-full" x-show="show"> 
2675                                                                    <li class="level-2">
2676                                        <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-rubber-flooring.html"
2677                                           title="Commercial&#x20;Rubber&#x20;Flooring"
2678                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2679                                           Commercial Rubber Flooring</a>
2680                                    </li>
2681                                                                                                        <li class="level-2">
2682                                        <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-garage-flooring.html"
2683                                           title="Commercial&#x20;Garage&#x20;Flooring"
2684                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2685                                           Commercial Garage Flooring</a>
2686                                    </li>
2687                                                                                                        <li class="level-2">
2688                                        <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-carpet.html"
2689                                           title="Commercial&#x20;Carpet&#x20;Tiles"
2690                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2691                                           Commercial Carpet Tiles</a>
2692                                    </li>
2693                                                                                                        <li class="level-2">
2694                                        <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-vinyl.html"
2695                                           title="Commercial&#x20;Vinyl&#x20;Flooring"
2696                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2697                                           Commercial Vinyl Flooring</a>
2698                                    </li>
2699                                                                                                        <li class="level-2">
2700                                        <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-wood-laminate.html"
2701                                           title="Commercial&#x20;Wood&#x20;&amp;&#x20;Laminate&#x20;Flooring"
2702                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2703                                           Commercial Wood &amp; Laminate Flooring</a>
2704                                    </li>
2705                                                                                                        <li class="level-2">
2706                                        <a href="https://www.flooringinc.com/shop/commercial-flooring/gym-floor-covers-protection.html"
2707                                           title="Gym&#x20;Floor&#x20;Covers&#x20;&#x7C;&#x20;Floor&#x20;Protection"
2708                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2709                                           Gym Floor Covers | Floor Protection</a>
2710                                    </li>
2711                                                                  </ul>
2712                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/commercial-flooring.html" x-show="show">View All</a>
2713                                             
2714                                                        
2715                                                    
2716                            <li class="imgcat list-none relative" x-data="{ show: false }" >
2717                            <a 
2718                                                            @click="show = !show"
2719                                                           title="Floors&#x20;by&#x20;Activity"
2720                               class="flex items-center w-full cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
2721                            >
2722                                <span>
2723                                    Floors by Activity                                </span>
2724                            </a>
2725                            
2726                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
2727                             <ul class="z-10 w-full" x-show="show"> 
2728                                                                    <li class="level-2">
2729                                        <a href="https://www.flooringinc.com/shop/shop-by-activity/fitness-flooring.html"
2730                                           title="Fitness&#x20;Flooring"
2731                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2732                                           Fitness Flooring</a>
2733                                    </li>
2734                                                                                                        <li class="level-2">
2735                                        <a href="https://www.flooringinc.com/shop/shop-by-activity/dance-marley-flooring.html"
2736                                           title="Dance&#x20;Flooring&#x20;&#x7C;&#x20;Marley&#x20;Floor"
2737                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2738                                           Dance Flooring | Marley Floor</a>
2739                                    </li>
2740                                                                                                        <li class="level-2">
2741                                        <a href="https://www.flooringinc.com/shop/shop-by-activity/sport-and-court-flooring.html"
2742                                           title="Sport&#x20;&amp;&#x20;Court&#x20;Flooring"
2743                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2744                                           Sport &amp; Court Flooring</a>
2745                                    </li>
2746                                                                                                        <li class="level-2">
2747                                        <a href="https://www.flooringinc.com/shop/shop-by-activity/martial-arts-flooring.html"
2748                                           title="Martial&#x20;Arts&#x20;Mats&#x20;"
2749                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2750                                           Martial Arts Mats </a>
2751                                    </li>
2752                                                                                                        <li class="level-2">
2753                                        <a href="https://www.flooringinc.com/shop/shop-by-activity/cheer-mats.html"
2754                                           title="Cheer&#x20;Mats"
2755                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2756                                           Cheer Mats</a>
2757                                    </li>
2758                                                                                                        <li class="level-2">
2759                                        <a href="https://www.flooringinc.com/shop/shop-by-activity/wrestling-mats.html"
2760                                           title="Wrestling&#x20;Mats"
2761                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2762                                           Wrestling Mats</a>
2763                                    </li>
2764                                                                  </ul>
2765                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/shop-by-activity.html" x-show="show">View All</a>
2766                                             
2767                                                        
2768                                                    
2769                            <li class="imgcat list-none relative" x-data="{ show: false }" >
2770                            <a 
2771                                                            @click="show = !show"
2772                                                           title="Floors&#x20;by&#x20;Space"
2773                               class="flex items-center w-full cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
2774                            >
2775                                <span>
2776                                    Floors by Space                                </span>
2777                            </a>
2778                            
2779                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
2780                             <ul class="z-10 w-full" x-show="show"> 
2781                                                                    <li class="level-2">
2782                                        <a href="https://www.flooringinc.com/shop/shop-by-space/kitchen-flooring.html"
2783                                           title="Kitchen&#x20;Flooring"
2784                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2785                                           Kitchen Flooring</a>
2786                                    </li>
2787                                                                                                        <li class="level-2">
2788                                        <a href="https://www.flooringinc.com/shop/shop-by-space/bathroom-flooring.html"
2789                                           title="Bathroom&#x20;Flooring"
2790                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2791                                           Bathroom Flooring</a>
2792                                    </li>
2793                                                                                                        <li class="level-2">
2794                                        <a href="https://www.flooringinc.com/shop/shop-by-space/commercial-flooring.html"
2795                                           title="Commercial&#x20;Flooring"
2796                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2797                                           Commercial Flooring</a>
2798                                    </li>
2799                                                                                                        <li class="level-2">
2800                                        <a href="https://www.flooringinc.com/shop/shop-by-space/gym-flooring.html"
2801                                           title="Gym&#x20;Flooring"
2802                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2803                                           Gym Flooring</a>
2804                                    </li>
2805                                                                                                        <li class="level-2">
2806                                        <a href="https://www.flooringinc.com/shop/shop-by-space/garage-flooring.html"
2807                                           title="Garage&#x20;Flooring"
2808                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2809                                           Garage Flooring</a>
2810                                    </li>
2811                                                                                                        <li class="level-2">
2812                                        <a href="https://www.flooringinc.com/shop/shop-by-space/outdoor-flooring.html"
2813                                           title="Outdoor&#x20;Flooring"
2814                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2815                                           Outdoor Flooring</a>
2816                                    </li>
2817                                                                  </ul>
2818                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/shop-by-space.html" x-show="show">View All</a>
2819                                             
2820                                                        
2821                                                    
2822                            <li class="imgcat list-none relative" x-data="{ show: false }" >
2823                            <a 
2824                                                            @click="show = !show"
2825                                                           title="Underlayment&#x20;&amp;&#x20;Flooring&#x20;Accessories"
2826                               class="flex items-center w-full cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
2827                            >
2828                                <span>
2829                                    Underlayment &amp; Flooring Accessories                                </span>
2830                            </a>
2831                            
2832                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
2833                             <ul class="z-10 w-full" x-show="show"> 
2834                                                                    <li class="level-2">
2835                                        <a href="https://www.flooringinc.com/shop/installation-care/adhesives-glue.html"
2836                                           title="Flooring&#x20;Adhesives&#x20;&amp;&#x20;Glue"
2837                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2838                                           Flooring Adhesives &amp; Glue</a>
2839                                    </li>
2840                                                                                                        <li class="level-2">
2841                                        <a href="https://www.flooringinc.com/shop/installation-care/tape.html"
2842                                           title="Floor&#x20;and&#x20;Mat&#x20;Tape"
2843                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2844                                           Floor and Mat Tape</a>
2845                                    </li>
2846                                                                                                        <li class="level-2">
2847                                        <a href="https://www.flooringinc.com/shop/installation-care/accessories.html"
2848                                           title="Installation&#x20;Accessories"
2849                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2850                                           Installation Accessories</a>
2851                                    </li>
2852                                                                                                        <li class="level-2">
2853                                        <a href="https://www.flooringinc.com/shop/installation-care/trims-moldings.html"
2854                                           title="Floor&#x20;Trims&#x20;&amp;&#x20;Moldings"
2855                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2856                                           Floor Trims &amp; Moldings</a>
2857                                    </li>
2858                                                                                                        <li class="level-2">
2859                                        <a href="https://www.flooringinc.com/shop/installation-care/underlayment.html"
2860                                           title="Flooring&#x20;Underlayment"
2861                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2862                                           Flooring Underlayment</a>
2863                                    </li>
2864                                                                                                        <li class="level-2">
2865                                        <a href="https://www.flooringinc.com/shop/installation-care/cleaners.html"
2866                                           title="Flooring&#x20;Cleaners"
2867                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2868                                           Flooring Cleaners</a>
2869                                    </li>
2870                                                                  </ul>
2871                                                                        <a class="text-size16 font-normal text-black underline pl-5 mt-2 mb-6 inline-block" href="https://www.flooringinc.com/shop/installation-care.html" x-show="show">View All</a>
2872                                             
2873                                                        
2874                                                    
2875                            <li class="imgcat list-none relative" x-data="{ show: false }" >
2876                            <a 
2877                                                            @click="show = !show"
2878                                                           title="Specials"
2879                               class="flex items-center w-full cursor-pointer text-size18 font-normal text-black mb-4 mob-width-adjust"
2880                            >
2881                                <span>
2882                                    Specials                                </span>
2883                            </a>
2884                            
2885                                                            <picture class="absolute menu_arw"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/menu-arw.png" width="13" height="8" alt="menu-arw" @click="show = !show" class="absolute menu_arw" x-bind:class="show ? 'active' : ''"></picture>
2886                             <ul class="z-10 w-full" x-show="show"> 
2887                                                                    <li class="level-2">
2888                                        <a href="https://www.flooringinc.com/shop/specials/hot-buys.html"
2889                                           title="Flooring&#x20;Deals"
2890                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2891                                           Flooring Deals</a>
2892                                    </li>
2893                                                                                                        <li class="level-2">
2894                                        <a href="https://www.flooringinc.com/shop/specials/made-in-usa.html"
2895                                           title="American&#x20;Made"
2896                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2897                                           American Made</a>
2898                                    </li>
2899                                                                                                        <li class="level-2">
2900                                        <a href="https://www.flooringinc.com/shop/specials/quick-ship.html"
2901                                           title="Quick&#x20;Ship"
2902                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2903                                           Quick Ship</a>
2904                                    </li>
2905                                                                                                        <li class="level-2">
2906                                        <a href="https://www.flooringinc.com/shop/specials/new-arrivals.html"
2907                                           title="New&#x20;Arrivals"
2908                                           class="level-2 pl-5 flex items-center w-full cursor-pointer text-size16 font-normal text-black mb-4">                                                                                                       
2909                                           New Arrivals</a>
2910                                    </li>
2911                                                                                                  </ul>
2912                             
2913                                                        
2914                                            </div>
2915                
2916                
2917            </div>
2918                <div class="menu_static_links">
2919            <style>#html-body [data-pb-style=QGH21I8]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</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="QGH21I8"><div data-content-type="text" data-appearance="default" data-element="main"><ul>
2920<li><a tabindex="0" href="/shop-by-category/specials/hot-buys.html">Sale</a></li>
2921<li><a tabindex="0" href="/blog">Get Inspired &amp; How To</a></li>
2922</ul></div></div></div>        </div>
2923    </div>
2924        </nav>
2925    </div>
2926</div>
2927<script>
2928    'use strict';
2929
2930    const initMenuMobile_6ab67d17cd4a9 = () => {
2931        return {
2932            mobilePanelActiveId: null,
2933            open: false,
2934            setActiveMenu(menuNode) {
2935                Array.from(menuNode.querySelectorAll('a')).filter(link => {
2936                    return link.href === window.location.href.split('?')[0];
2937                }).map(item => {
2938                    item.classList.add('underline');
2939                    item.closest('div.level-0') &&
2940                    item.closest('div.level-0').querySelector('a.level-0').classList.add('underline');
2941                });
2942            }
2943        }
2944    }    
2945
2946    window.addEventListener("scroll", function() {
2947        successMsgSticky2();
2948    });
2949
2950    // sticky header
2951    function successMsgSticky2() {
2952        if (window.innerWidth < 767) {
2953            var headerHeight = document.querySelector('.page-header .panel.wrapper').offsetHeight;
2954            var headerMainHeight = document.getElementById('header').offsetHeight;
2955            var scrollTop = window.scrollY;
2956
2957            if (scrollTop >= headerHeight) {
2958                document.body.classList.add('scroll-reached-hHgt');
2959                document.body.style.paddingTop = headerMainHeight + 'px';
2960            } else {
2961                document.body.classList.remove('scroll-reached-hHgt');
2962                document.body.style.paddingTop = '0';
2963            }
2964        }
2965    }
2966
2967    window.addEventListener("load", function() {
2968        successMsgSticky2();
2969    });
2970</script>
2970
2971<div x-data="initMenuDesktop_6ab67d17d86df()"
2972    class="z-20 order-2 sm:order-1 lg:order-2 navigation hidden xl:flex desktop__menu"
2973>
2974    <!-- desktop -->
2975    <div @load.window="setActiveMenu($root)"
2976        class="justify-between items-center mx-auto w-full max-w-7xl pl-2"
2977    >
2978        <nav
2979                class="flex flex-wrap"
2980        >
2981                                                            <div class="level-0 flex py-2 items-center border-transparent transition transition-colors duration-500 group megamenu_items" :class="{ 'block' : open}"
2982                    @mouseover.stop="hoverTopPosition = $event.currentTarget.offsetTop + $event.currentTarget.getBoundingClientRect().height"
2983                    @mouseenter="desktopMegaMenuShow = true" @mouseleave="desktopMegaMenuShow = false"
2984                    x-data="{ desktopMegaMenuShow: false }"
2985                >
2986                    <!-- <a href="https://www.flooringinc.com/shop.html" -->
2987                    <a 
2988                                        @focus="hoverTopPosition = $event.currentTarget.parentNode.offsetTop + $event.currentTarget.parentNode.getBoundingClientRect().height"
2989                    title="Flooring&#x20;By&#x20;Category"
2990                    class="level-0 block p-2 text-base font-medium text-black whitespace-nowrap cursor-pointer megamenu_items_link">
2991                        <span>Flooring By Category</span>
2992                                                    <span class="inline items-center releat">
2993                                <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">
2994  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
2995<title>chevron-down</title></svg>
2996                            </span>
2997                                            </a>
2998                                            <template x-if="desktopMegaMenuShow">
2999                        <div class="absolute left-0 right-0 top-full z-10 -mt-3 w-3/4 mx-auto bg-white opacity-0 transition-opacity ease-out pointer-events-none group-hover:opacity-100 focus-within:opacity-100 group-hover:pointer-events-auto megamenu"
3000                            style="display:none;"
3001                            :style="`margin-top: 0; top: ${hoverTopPosition}px;`"
3002                        >
3003                            <div class="flex justify-between mt-0 mb-0 sub-megamenu">
3004                                                                <div class="mx-auto w-full">
3005                                    <ul class="grid flex-1 w-full gap-y-0 gap-x-0 py-4 px-5 relative">
3006                                                                                                                            
3007                                            <li :class="{ 'active': show }" class="level-1 level1 display-first"  x-data="{ show: true }"  
3008                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
3009                                                                                        >
3010                                                <a 
3011                                                title="Rubber&#x20;Flooring"
3012                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
3013                                                
3014                                                    >
3015                                                    Rubber Flooring
3016                                                                                                            <span class="inline items-center rotate-180 absolute">
3017                                                            <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">
3018  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
3019<title>chevron-down</title></svg>
3020                                                        </span>
3021                                                                                                    </a>
3022                                                 
3023                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
3024                                    <style>#html-body [data-pb-style=IIM6H46]{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=U0GMW4D]{border-style:none}#html-body [data-pb-style=CSIHBUF],#html-body [data-pb-style=HQMCF2E]{max-width:100%;height:auto}#html-body [data-pb-style=D3FJGJ6]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=RR2V2I7]{display:flex;width:100%}#html-body [data-pb-style=PYIYA0A]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=P1TMDVT]{text-align:left}#html-body [data-pb-style=F6SSOOO]{display:inline-block}#html-body [data-pb-style=K11XLVI]{text-align:center}@media only screen and (max-width: 768px) { #html-body [data-pb-style=U0GMW4D]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" 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="main" data-pb-style="IIM6H46"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="U0GMW4D"><a href="/next-day-rubber-rolls-14003.html" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/powered-by-rfi-image.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/powered-by-rfi-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="HQMCF2E" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/powered-by-rfi-image.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/powered-by-rfi-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="CSIHBUF" loading="lazy"></picture></a></figure><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="D3FJGJ6"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="RR2V2I7"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="PYIYA0A"><div class="text-size14 font-medium text-custom-black text-left pt-5 pb-1" data-content-type="text" data-appearance="default" data-element="main"><p>Powered By <picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/website-logo-powerd-by-color-rfi.webp"><img src="https://www.flooringinc.com/media/wysiwyg/website-logo-powerd-by-color-rfi.png" alt="" width="87" height="15"></picture></p></div><div class="text-size18 text-custom-black font-bold text-left pt-2 pb-4" data-content-type="text" data-appearance="default" data-element="main"><h2><span style="font-size: 18px;">Premium Rubber Solutions</span></h2></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="P1TMDVT" class="free__Shipping__btn"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="F6SSOOO"><a class="pagebuilder-button-primary" href="/next-day-rubber-rolls-14003.html" target="" data-link-type="default" data-element="link" data-pb-style="K11XLVI"><span data-element="link_text">SHOP NOW</span></a></div></div></div></div></div></div>                                </div>
3025                                
3026                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
3027                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Rubber Flooring</span>
3028
3029                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
3030                                                            <a href="https://www.flooringinc.com/shop/rubber-flooring/all-rubber-flooring.html"
3031                                                            title="All&#x20;Rubber&#x20;Flooring"
3032                                                            class="level-2 block">
3033                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/all_rubber_main.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/all_rubber_main.jpg" alt="All&#x20;Rubber&#x20;Flooring" title="All&#x20;Rubber&#x20;Flooring" /></picture>   
3034                                                                                                                                                                                        
3035                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">All Rubber Flooring</span></a>
3036                                                        </li>
3037                                                           
3038                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3039                                                            <a href="https://www.flooringinc.com/shop/rubber-flooring/rubber-rolls.html"
3040                                                            title="Rubber&#x20;Flooring&#x20;Rolls"
3041                                                            class="level-2 block">
3042                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/rubber_rolls_category_main_1_.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/rubber_rolls_category_main_1_.jpg" alt="Rubber&#x20;Flooring&#x20;Rolls" title="Rubber&#x20;Flooring&#x20;Rolls" /></picture>   
3043                                                                                                                                                                                        
3044                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Rubber Flooring Rolls</span></a>
3045                                                        </li>
3046                                                           
3047                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3048                                                            <a href="https://www.flooringinc.com/shop/rubber-flooring/rubber-tiles.html"
3049                                                            title="Rubber&#x20;Floor&#x20;Tiles"
3050                                                            class="level-2 block">
3051                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/rubbertiles-main-category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/rubbertiles-main-category_1.jpg" alt="Rubber&#x20;Floor&#x20;Tiles" title="Rubber&#x20;Floor&#x20;Tiles" /></picture>   
3052                                                                                                                                                                                        
3053                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Rubber Floor Tiles</span></a>
3054                                                        </li>
3055                                                           
3056                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3057                                                            <a href="https://www.flooringinc.com/shop/rubber-flooring/rubber-mats.html"
3058                                                            title="Rubber&#x20;Mats"
3059                                                            class="level-2 block">
3060                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/rubbermats-main-category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/rubbermats-main-category_1.jpg" alt="Rubber&#x20;Mats" title="Rubber&#x20;Mats" /></picture>   
3061                                                                                                                                                                                        
3062                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Rubber Mats</span></a>
3063                                                        </li>
3064                                                           
3065                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3066                                                            <a href="https://www.flooringinc.com/shop/rubber-flooring/playground-flooring.html"
3067                                                            title="Playground&#x20;Flooring"
3068                                                            class="level-2 block">
3069                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Playground_Flooring_Category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Playground_Flooring_Category.jpg" alt="Playground&#x20;Flooring" title="Playground&#x20;Flooring" /></picture>   
3070                                                                                                                                                                                        
3071                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Playground Flooring</span></a>
3072                                                        </li>
3073                                                           
3074                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3075                                                            <a href="https://www.flooringinc.com/shop/rubber-flooring/outdoor-rubber-flooring.html"
3076                                                            title="Outdoor&#x20;Rubber&#x20;Flooring"
3077                                                            class="level-2 block">
3078                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_rubber_flooring_outdoor_rubber_flooing_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_rubber_flooring_outdoor_rubber_flooing_1.jpg" alt="Outdoor&#x20;Rubber&#x20;Flooring" title="Outdoor&#x20;Rubber&#x20;Flooring" /></picture>   
3079                                                                                                                                                                                        
3080                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Outdoor Rubber Flooring</span></a>
3081                                                        </li>
3082                                                           
3083                                                        
3084                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/rubber-flooring.html" >View All</a>
3085                                             
3086
3087                                                </ul>
3088                                            </li>
3089                                            
3090                                            
3091                                                                                                                            
3092                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
3093                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
3094                                                                                        >
3095                                                <a 
3096                                                title="Garage&#x20;Flooring"
3097                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
3098                                                
3099                                                    >
3100                                                    Garage Flooring
3101                                                                                                            <span class="inline items-center rotate-180 absolute">
3102                                                            <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">
3103  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
3104<title>chevron-down</title></svg>
3105                                                        </span>
3106                                                                                                    </a>
3107                                                 
3108                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
3109                                    <style>#html-body [data-pb-style=H2Q94UM]{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=C5CAQFQ]{border-style:none}#html-body [data-pb-style=FY780K4],#html-body [data-pb-style=P2NDU5I]{max-width:100%;height:auto}#html-body [data-pb-style=RFW0BPB]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=MX73IJ8]{display:flex;width:100%}#html-body [data-pb-style=YYPRLU8]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=TU662D2]{text-align:left}#html-body [data-pb-style=EXLNMTV]{display:inline-block}#html-body [data-pb-style=N31DM3P]{text-align:center}@media only screen and (max-width: 768px) { #html-body [data-pb-style=C5CAQFQ]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" 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="main" data-pb-style="H2Q94UM"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="C5CAQFQ"><a href="https://www.flooringinc.com/shop/flex-nitro-tiles-8985.html" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/nav-nitro-flex.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/nav-nitro-flex.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="FY780K4" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/nav-nitro-flex.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/nav-nitro-flex.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="P2NDU5I" loading="lazy"></picture></a></figure><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="RFW0BPB"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="MX73IJ8"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="YYPRLU8"><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="TU662D2" class="free__Shipping__btn"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="EXLNMTV"><a class="pagebuilder-button-primary" href="https://www.flooringinc.com/shop/flex-nitro-tiles-8985.html" target="" data-link-type="default" data-element="link" data-pb-style="N31DM3P"><span data-element="link_text">SHOP NOW</span></a></div></div></div></div></div></div>                                </div>
3110                                
3111                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
3112                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Garage Flooring</span>
3113
3114                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
3115                                                            <a href="https://www.flooringinc.com/shop/garage-flooring/all-garage-flooring.html"
3116                                                            title="All&#x20;Garage&#x20;Flooring"
3117                                                            class="level-2 block">
3118                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/All_Garage_Flooring.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/All_Garage_Flooring.jpg" alt="All&#x20;Garage&#x20;Flooring" title="All&#x20;Garage&#x20;Flooring" /></picture>   
3119                                                                                                                                                                                        
3120                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">All Garage Flooring</span></a>
3121                                                        </li>
3122                                                           
3123                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3124                                                            <a href="https://www.flooringinc.com/shop/garage-flooring/garage-rolls.html"
3125                                                            title="Garage&#x20;Flooring&#x20;Rolls"
3126                                                            class="level-2 block">
3127                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/garagerools-main-category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/garagerools-main-category_1.jpg" alt="Garage&#x20;Flooring&#x20;Rolls" title="Garage&#x20;Flooring&#x20;Rolls" /></picture>   
3128                                                                                                                                                                                        
3129                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Garage Flooring Rolls</span></a>
3130                                                        </li>
3131                                                           
3132                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3133                                                            <a href="https://www.flooringinc.com/shop/garage-flooring/garage-tiles.html"
3134                                                            title="Garage&#x20;Floor&#x20;Tiles"
3135                                                            class="level-2 block">
3136                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/garagetiles-main-category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/garagetiles-main-category_1.jpg" alt="Garage&#x20;Floor&#x20;Tiles" title="Garage&#x20;Floor&#x20;Tiles" /></picture>   
3137                                                                                                                                                                                        
3138                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Garage Floor Tiles</span></a>
3139                                                        </li>
3140                                                           
3141                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3142                                                            <a href="https://www.flooringinc.com/shop/garage-flooring/garage-gym-flooring.html"
3143                                                            title="Garage&#x20;Gym&#x20;Flooring"
3144                                                            class="level-2 block">
3145                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_garage_flooring_garage_gym_flooring_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_garage_flooring_garage_gym_flooring_1.jpg" alt="Garage&#x20;Gym&#x20;Flooring" title="Garage&#x20;Gym&#x20;Flooring" /></picture>   
3146                                                                                                                                                                                        
3147                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Garage Gym Flooring</span></a>
3148                                                        </li>
3149                                                           
3150                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3151                                                            <a href="https://www.flooringinc.com/shop/garage-flooring/coatings-epoxy.html"
3152                                                            title="Garage&#x20;Floor&#x20;Epoxy"
3153                                                            class="level-2 block">
3154                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_garage_flooring_coatings_epoxy_1_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_garage_flooring_coatings_epoxy_1_1.jpg" alt="Garage&#x20;Floor&#x20;Epoxy" title="Garage&#x20;Floor&#x20;Epoxy" /></picture>   
3155                                                                                                                                                                                        
3156                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Garage Floor Epoxy</span></a>
3157                                                        </li>
3158                                                           
3159                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3160                                                            <a href="https://www.flooringinc.com/shop/garage-flooring/trailer-flooring.html"
3161                                                            title="Trailer&#x20;Flooring"
3162                                                            class="level-2 block">
3163                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_garage_flooring_trailer_flooring_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_garage_flooring_trailer_flooring_1.jpg" alt="Trailer&#x20;Flooring" title="Trailer&#x20;Flooring" /></picture>   
3164                                                                                                                                                                                        
3165                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Trailer Flooring</span></a>
3166                                                        </li>
3167                                                           
3168                                                        
3169                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/garage-flooring.html" >View All</a>
3170                                             
3171
3172                                                </ul>
3173                                            </li>
3174                                            
3175                                            
3176                                                                                                                            
3177                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
3178                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
3179                                                                                        >
3180                                                <a 
3181                                                title="Dance&#x20;Flooring"
3182                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
3183                                                
3184                                                    >
3185                                                    Dance Flooring
3186                                                                                                            <span class="inline items-center rotate-180 absolute">
3187                                                            <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">
3188  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
3189<title>chevron-down</title></svg>
3190                                                        </span>
3191                                                                                                    </a>
3192                                                 
3193                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
3194                                    <style>#html-body [data-pb-style=DE1KPIK]{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=I9PHOLE]{border-style:none}#html-body [data-pb-style=PGOIAVD],#html-body [data-pb-style=XRTA8XP]{max-width:100%;height:auto}@media only screen and (max-width: 768px) { #html-body [data-pb-style=I9PHOLE]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" 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="main" data-pb-style="DE1KPIK"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="I9PHOLE"><a href="https://www.flooringinc.com/shop/prostep-dance-floor-rolls-9876.html" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/by-brand-ad.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/by-brand-ad.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="XRTA8XP" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/by-brand-ad.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/by-brand-ad.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="PGOIAVD" loading="lazy"></picture></a></figure></div>                                </div>
3195                                
3196                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
3197                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Dance Flooring</span>
3198
3199                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
3200                                                            <a href="https://www.flooringinc.com/shop/dance-flooring/marley-flooring.html"
3201                                                            title="Marley&#x20;Floor&#x20;Rolls"
3202                                                            class="level-2 block">
3203                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Marley_Dance_Floor_Rolls_Category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Marley_Dance_Floor_Rolls_Category_1.jpg" alt="Marley&#x20;Floor&#x20;Rolls" title="Marley&#x20;Floor&#x20;Rolls" /></picture>   
3204                                                                                                                                                                                        
3205                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Marley Floor Rolls</span></a>
3206                                                        </li>
3207                                                           
3208                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3209                                                            <a href="https://www.flooringinc.com/shop/dance-flooring/dance-floor-tiles.html"
3210                                                            title="Dance&#x20;Floor&#x20;Tiles"
3211                                                            class="level-2 block">
3212                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Dance_Floor_Tiles_Category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Dance_Floor_Tiles_Category_1.jpg" alt="Dance&#x20;Floor&#x20;Tiles" title="Dance&#x20;Floor&#x20;Tiles" /></picture>   
3213                                                                                                                                                                                        
3214                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Dance Floor Tiles</span></a>
3215                                                        </li>
3216                                                           
3217                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3218                                                            <a href="https://www.flooringinc.com/shop/dance-flooring/portable-dance-floor-kits.html"
3219                                                            title="Portable&#x20;Dance&#x20;Floors&#x20;&amp;&#x20;Kits"
3220                                                            class="level-2 block">
3221                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Portable_Dance_Floor_Kits_Category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Portable_Dance_Floor_Kits_Category_1.jpg" alt="Portable&#x20;Dance&#x20;Floors&#x20;&amp;&#x20;Kits" title="Portable&#x20;Dance&#x20;Floors&#x20;&amp;&#x20;Kits" /></picture>   
3222                                                                                                                                                                                        
3223                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Portable Dance Floors &amp; Kits</span></a>
3224                                                        </li>
3225                                                           
3226                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3227                                                            <a href="https://www.flooringinc.com/shop/dance-flooring/subflooring.html"
3228                                                            title="Subflooring"
3229                                                            class="level-2 block">
3230                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Dance_Subflooring_Category_1_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Dance_Subflooring_Category_1_1.jpg" alt="Subflooring" title="Subflooring" /></picture>   
3231                                                                                                                                                                                        
3232                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Subflooring</span></a>
3233                                                        </li>
3234                                                           
3235                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3236                                                            <a href="https://www.flooringinc.com/shop/dance-flooring/adhesives-cleaners-accessories.html"
3237                                                            title="Adhesives,&#x20;Cleaners&#x20;&amp;&#x20;Accessories"
3238                                                            class="level-2 block">
3239                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Dance_Floor_Accessories.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Dance_Floor_Accessories.jpg" alt="Adhesives,&#x20;Cleaners&#x20;&amp;&#x20;Accessories" title="Adhesives,&#x20;Cleaners&#x20;&amp;&#x20;Accessories" /></picture>   
3240                                                                                                                                                                                        
3241                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Adhesives, Cleaners &amp; Accessories</span></a>
3242                                                        </li>
3243                                                           
3244                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3245                                                            <a href="https://www.flooringinc.com/shop/dance-flooring/all-dance-flooring.html"
3246                                                            title="All&#x20;Dance&#x20;Flooring"
3247                                                            class="level-2 block">
3248                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/All_Dance_Flooring_Category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/All_Dance_Flooring_Category.jpg" alt="All&#x20;Dance&#x20;Flooring" title="All&#x20;Dance&#x20;Flooring" /></picture>   
3249                                                                                                                                                                                        
3250                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">All Dance Flooring</span></a>
3251                                                        </li>
3252                                                           
3253                                                        
3254                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/dance-flooring.html" >View All</a>
3255                                             
3256
3257                                                </ul>
3258                                            </li>
3259                                            
3260                                            
3261                                                                                                                            
3262                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
3263                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
3264                                                                                        >
3265                                                <a 
3266                                                title="Foam&#x20;Flooring"
3267                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
3268                                                
3269                                                    >
3270                                                    Foam Flooring
3271                                                                                                            <span class="inline items-center rotate-180 absolute">
3272                                                            <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">
3273  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
3274<title>chevron-down</title></svg>
3275                                                        </span>
3276                                                                                                    </a>
3277                                                 
3278                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
3279                                    <style>#html-body [data-pb-style=V4QEB1B]{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=RATJYYQ]{border-style:none}#html-body [data-pb-style=C8AYEH6],#html-body [data-pb-style=K3BTVRB]{max-width:100%;height:auto}#html-body [data-pb-style=C9LYQAD]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=WFJJ3YQ]{display:flex;width:100%}#html-body [data-pb-style=IJTR1TW]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=UUFOJKP]{text-align:left}#html-body [data-pb-style=LCUDGB3]{display:inline-block}#html-body [data-pb-style=E91VWL4]{text-align:center}@media only screen and (max-width: 768px) { #html-body [data-pb-style=RATJYYQ]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" 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="main" data-pb-style="V4QEB1B"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="RATJYYQ"><a href="/shop/foam-flooring.html" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/powered-by-ft-image.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/powered-by-ft-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="K3BTVRB" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/powered-by-ft-image.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/powered-by-ft-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="C8AYEH6" loading="lazy"></picture></a></figure><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="C9LYQAD"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="WFJJ3YQ"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="IJTR1TW"><div class="text-size14 font-medium text-custom-black text-left pt-5 pb-1" data-content-type="text" data-appearance="default" data-element="main"><p>Powered By <picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/6000x2556_FT.webp"><img src="https://www.flooringinc.com/media/wysiwyg/6000x2556_FT.png" alt="" width="100" height="26"></picture></p></div><div class="text-size18 text-custom-black font-bold text-left pt-2 pb-4" data-content-type="text" data-appearance="default" data-element="main"><h2><span style="font-size: 18px;">Elite Sports Surfaces</span></h2></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="UUFOJKP" class="free__Shipping__btn"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="LCUDGB3"><a class="pagebuilder-button-primary" href="/shop/foam-flooring.html" target="" data-link-type="default" data-element="link" data-pb-style="E91VWL4"><span data-element="link_text">SHOP NOW</span></a></div></div></div></div></div></div>                                </div>
3280                                
3281                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
3282                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Foam Flooring</span>
3283
3284                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
3285                                                            <a href="https://www.flooringinc.com/shop/foam-flooring/foam-tiles.html"
3286                                                            title="Foam&#x20;Floor&#x20;Tiles"
3287                                                            class="level-2 block">
3288                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/foamtiles-main-category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/foamtiles-main-category_1.jpg" alt="Foam&#x20;Floor&#x20;Tiles" title="Foam&#x20;Floor&#x20;Tiles" /></picture>   
3289                                                                                                                                                                                        
3290                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Foam Floor Tiles</span></a>
3291                                                        </li>
3292                                                           
3293                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3294                                                            <a href="https://www.flooringinc.com/shop/foam-flooring/kids-baby-play-mats.html"
3295                                                            title="Kids&#x20;&amp;&#x20;Baby&#x20;Play&#x20;Mats"
3296                                                            class="level-2 block">
3297                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Kids_Baby_Play_Mats.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Kids_Baby_Play_Mats.jpg" alt="Kids&#x20;&amp;&#x20;Baby&#x20;Play&#x20;Mats" title="Kids&#x20;&amp;&#x20;Baby&#x20;Play&#x20;Mats" /></picture>   
3298                                                                                                                                                                                        
3299                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Kids &amp; Baby Play Mats</span></a>
3300                                                        </li>
3301                                                           
3302                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3303                                                            <a href="https://www.flooringinc.com/shop/foam-flooring/gymnastic-folding-mats.html"
3304                                                            title="Gymnastics&#x20;Mats&#x20;"
3305                                                            class="level-2 block">
3306                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Gymnastics_Mat_Category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Gymnastics_Mat_Category_1.jpg" alt="Gymnastics&#x20;Mats&#x20;" title="Gymnastics&#x20;Mats&#x20;" /></picture>   
3307                                                                                                                                                                                        
3308                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Gymnastics Mats </span></a>
3309                                                        </li>
3310                                                           
3311                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3312                                                            <a href="https://www.flooringinc.com/shop/foam-flooring/wrestling-mats.html"
3313                                                            title="Wrestling&#x20;Mats"
3314                                                            class="level-2 block">
3315                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Wrestling_Mats_Category_2.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Wrestling_Mats_Category_2.jpg" alt="Wrestling&#x20;Mats" title="Wrestling&#x20;Mats" /></picture>   
3316                                                                                                                                                                                        
3317                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Wrestling Mats</span></a>
3318                                                        </li>
3319                                                           
3320                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3321                                                            <a href="https://www.flooringinc.com/shop/foam-flooring/martial-arts-mats.html"
3322                                                            title="Martial&#x20;Arts&#x20;Mats&#x20;"
3323                                                            class="level-2 block">
3324                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Martial_Arts_Mats_Category_1_.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Martial_Arts_Mats_Category_1_.jpg" alt="Martial&#x20;Arts&#x20;Mats&#x20;" title="Martial&#x20;Arts&#x20;Mats&#x20;" /></picture>   
3325                                                                                                                                                                                        
3326                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Martial Arts Mats </span></a>
3327                                                        </li>
3328                                                           
3329                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3330                                                            <a href="https://www.flooringinc.com/shop/foam-flooring/trade-show-flooring.html"
3331                                                            title="Trade&#x20;Show&#x20;Flooring"
3332                                                            class="level-2 block">
3333                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Trade_Show_Flooring.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Trade_Show_Flooring.jpg" alt="Trade&#x20;Show&#x20;Flooring" title="Trade&#x20;Show&#x20;Flooring" /></picture>   
3334                                                                                                                                                                                        
3335                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Trade Show Flooring</span></a>
3336                                                        </li>
3337                                                           
3338                                                        
3339                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/foam-flooring.html" >View All</a>
3340                                             
3341
3342                                                </ul>
3343                                            </li>
3344                                            
3345                                            
3346                                                                                                                            
3347                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
3348                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
3349                                                                                        >
3350                                                <a 
3351                                                title="Outdoor&#x20;Flooring"
3352                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
3353                                                
3354                                                    >
3355                                                    Outdoor Flooring
3356                                                                                                            <span class="inline items-center rotate-180 absolute">
3357                                                            <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">
3358  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
3359<title>chevron-down</title></svg>
3360                                                        </span>
3361                                                                                                    </a>
3362                                                 
3363                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
3364                                    <style>#html-body [data-pb-style=ALQ4JPY]{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=TAKV2W6]{border-style:none}#html-body [data-pb-style=HFLT9TD],#html-body [data-pb-style=Q8I554G]{max-width:100%;height:auto}#html-body [data-pb-style=FM097SK]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=P04UNTQ]{display:flex;width:100%}#html-body [data-pb-style=DWKW6WK]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=UW72WSA]{text-align:left}#html-body [data-pb-style=GY38RBS]{display:inline-block}#html-body [data-pb-style=W6R7Y9S]{text-align:center}@media only screen and (max-width: 768px) { #html-body [data-pb-style=TAKV2W6]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" 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="main" data-pb-style="ALQ4JPY"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="TAKV2W6"><a href="/helios-deck-tiles-13850.html" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/outdoor-flooring-image.
3364webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/outdoor-flooring-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="Q8I554G" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/outdoor-flooring-image.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/outdoor-flooring-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="HFLT9TD" loading="lazy"></picture></a></figure><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="FM097SK"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="P04UNTQ"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="DWKW6WK"><div class="text-size14 font-medium text-custom-black text-left pt-5" data-content-type="text" data-appearance="default" data-element="main"><p><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Helios_Color.webp"><img src="https://www.flooringinc.com/media/wysiwyg/Helios_Color.png" alt="" width="100" height="33"></picture></p></div><div class="text-size18 text-custom-black font-bold text-left pt-1 pb-5" data-content-type="text" data-appearance="default" data-element="main"><h2><span style="font-size: 18px;">Helios Deck Tiles</span></h2></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="UW72WSA" class="free__Shipping__btn"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="GY38RBS"><a class="pagebuilder-button-primary" href="/helios-deck-tiles-13850.html" target="" data-link-type="default" data-element="link" data-pb-style="W6R7Y9S"><span data-element="link_text">SHOP NOW</span></a></div></div></div></div></div></div>                                </div>
3365                                
3366                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
3367                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Outdoor Flooring</span>
3368
3369                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
3370                                                            <a href="https://www.flooringinc.com/shop/outdoor-flooring/playground-flooring.html"
3371                                                            title="Playground&#x20;Flooring"
3372                                                            class="level-2 block">
3373                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Playground_Flooring_Category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Playground_Flooring_Category_1.jpg" alt="Playground&#x20;Flooring" title="Playground&#x20;Flooring" /></picture>   
3374                                                                                                                                                                                        
3375                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Playground Flooring</span></a>
3376                                                        </li>
3377                                                           
3378                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3379                                                            <a href="https://www.flooringinc.com/shop/outdoor-flooring/sport-and-court-flooring.html"
3380                                                            title="Sports&#x20;Flooring&#x20;&amp;&#x20;Court&#x20;Tiles"
3381                                                            class="level-2 block">
3382                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/court-main-category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/court-main-category_1.jpg" alt="Sports&#x20;Flooring&#x20;&amp;&#x20;Court&#x20;Tiles" title="Sports&#x20;Flooring&#x20;&amp;&#x20;Court&#x20;Tiles" /></picture>   
3383                                                                                                                                                                                        
3384                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Sports Flooring &amp; Court Tiles</span></a>
3385                                                        </li>
3386                                                           
3387                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3388                                                            <a href="https://www.flooringinc.com/shop/outdoor-flooring/artificial-grass.html"
3389                                                            title="Turf&#x20;&amp;&#x20;Artificial&#x20;Grass"
3390                                                            class="level-2 block">
3391                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_outdoor_flooring_artifical_grass_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_outdoor_flooring_artifical_grass_1.jpg" alt="Turf&#x20;&amp;&#x20;Artificial&#x20;Grass" title="Turf&#x20;&amp;&#x20;Artificial&#x20;Grass" /></picture>   
3392                                                                                                                                                                                        
3393                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Turf &amp; Artificial Grass</span></a>
3394                                                        </li>
3395                                                           
3396                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3397                                                            <a href="https://www.flooringinc.com/shop/outdoor-flooring/composite-decking.html"
3398                                                            title="Composite&#x20;Decking"
3399                                                            class="level-2 block">
3400                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Composite_Decking_Category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Composite_Decking_Category.jpg" alt="Composite&#x20;Decking" title="Composite&#x20;Decking" /></picture>   
3401                                                                                                                                                                                        
3402                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Composite Decking</span></a>
3403                                                        </li>
3404                                                           
3405                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3406                                                            <a href="https://www.flooringinc.com/shop/outdoor-flooring/rooftop-deck-flooring.html"
3407                                                            title="Rooftop&#x20;Deck&#x20;Flooring"
3408                                                            class="level-2 block">
3409                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Rooftop_Deck_Flooring_Category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Rooftop_Deck_Flooring_Category_1.jpg" alt="Rooftop&#x20;Deck&#x20;Flooring" title="Rooftop&#x20;Deck&#x20;Flooring" /></picture>   
3410                                                                                                                                                                                        
3411                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Rooftop Deck Flooring</span></a>
3412                                                        </li>
3413                                                           
3414                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3415                                                            <a href="https://www.flooringinc.com/shop/outdoor-flooring/drainage-tiles.html"
3416                                                            title="Drainage&#x20;Tile&#x20;&amp;&#x20;Mats"
3417                                                            class="level-2 block">
3418                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Drainage_Tiles_Category_01.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Drainage_Tiles_Category_01.jpg" alt="Drainage&#x20;Tile&#x20;&amp;&#x20;Mats" title="Drainage&#x20;Tile&#x20;&amp;&#x20;Mats" /></picture>   
3419                                                                                                                                                                                        
3420                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Drainage Tile &amp; Mats</span></a>
3421                                                        </li>
3422                                                           
3423                                                        
3424                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/outdoor-flooring.html" >View All</a>
3425                                             
3426
3427                                                </ul>
3428                                            </li>
3429                                            
3430                                            
3431                                                                                                                            
3432                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
3433                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
3434                                                                                        >
3435                                                <a 
3436                                                title="Turf&#x20;&amp;&#x20;Artificial&#x20;Grass"
3437                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
3438                                                
3439                                                    >
3440                                                    Turf &amp; Artificial Grass
3441                                                                                                            <span class="inline items-center rotate-180 absolute">
3442                                                            <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">
3443  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
3444<title>chevron-down</title></svg>
3445                                                        </span>
3446                                                                                                    </a>
3447                                                
3448                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
3449                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Turf &amp; Artificial Grass</span>
3450
3451                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
3452                                                            <a href="https://www.flooringinc.com/shop/artificial-grass/sport-field-turf.html"
3453                                                            title="Sport&#x20;&amp;&#x20;Gym&#x20;Turf"
3454                                                            class="level-2 block">
3455                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/10079_0_1_3_.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/10079_0_1_3_.jpg" alt="Sport&#x20;&amp;&#x20;Gym&#x20;Turf" title="Sport&#x20;&amp;&#x20;Gym&#x20;Turf" /></picture>   
3456                                                                                                                                                                                        
3457                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Sport &amp; Gym Turf</span></a>
3458                                                        </li>
3459                                                           
3460                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3461                                                            <a href="https://www.flooringinc.com/shop/artificial-grass/landscape-turf.html"
3462                                                            title="Landscape&#x20;Turf"
3463                                                            class="level-2 block">
3464                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_artifical_grass_landscape_turf_2.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_artifical_grass_landscape_turf_2.jpg" alt="Landscape&#x20;Turf" title="Landscape&#x20;Turf" /></picture>   
3465                                                                                                                                                                                        
3466                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Landscape Turf</span></a>
3467                                                        </li>
3468                                                           
3469                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3470                                                            <a href="https://www.flooringinc.com/shop/artificial-grass/pet-turf.html"
3471                                                            title="Pet&#x20;Turf"
3472                                                            class="level-2 block">
3473                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_artifical_grass_pet_turf_3.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_artifical_grass_pet_turf_3.jpg" alt="Pet&#x20;Turf" title="Pet&#x20;Turf" /></picture>   
3474                                                                                                                                                                                        
3475                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Pet Turf</span></a>
3476                                                        </li>
3477                                                           
3478                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3479                                                            <a href="https://www.flooringinc.com/shop/artificial-grass/putting-greens.html"
3480                                                            title="Golf&#x20;&amp;&#x20;Putting&#x20;Green&#x20;Turf"
3481                                                            class="level-2 block">
3482                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_artifical_grass_putting_greens_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_artifical_grass_putting_greens_1.jpg" alt="Golf&#x20;&amp;&#x20;Putting&#x20;Green&#x20;Turf" title="Golf&#x20;&amp;&#x20;Putting&#x20;Green&#x20;Turf" /></picture>   
3483                                                                                                                                                                                        
3484                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Golf &amp; Putting Green Turf</span></a>
3485                                                        </li>
3486                                                           
3487                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3488                                                            <a href="https://www.flooringinc.com/shop/artificial-grass/turf-accessories.html"
3489                                                            title="Turf&#x20;Accessories"
3490                                                            class="level-2 block">
3491                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Untitled_design_1_.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Untitled_design_1_.png" alt="Turf&#x20;Accessories" title="Turf&#x20;Accessories" /></picture>   
3492                                                                                                                                                                                        
3493                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Turf Accessories</span></a>
3494                                                        </li>
3495                                                           
3496                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3497                                                            <a href="https://www.flooringinc.com/shop/artificial-grass/all-artificial-grass.html"
3498                                                            title="All&#x20;Turf&#x20;&amp;&#x20;Artificial&#x20;Grass"
3499                                                            class="level-2 block">
3500                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/All_Artificial_Grass2_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/All_Artificial_Grass2_1.jpg" alt="All&#x20;Turf&#x20;&amp;&#x20;Artificial&#x20;Grass" title="All&#x20;Turf&#x20;&amp;&#x20;Artificial&#x20;Grass" /></picture>   
3501                                                                                                                                                                                        
3502                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">All Turf &amp; Artificial Grass</span></a>
3503                                                        </li>
3504                                                           
3505                                                        
3506                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/artificial-grass.html" >View All</a>
3507                                             
3508
3509                                                </ul>
3510                                            </li>
3511                                            
3512                                            
3513                                                                                                                            
3514                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
3515                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
3516                                                                                        >
3517                                                <a 
3518                                                title="Carpet&#x20;Tiles&#x20;&amp;&#x20;Rolls"
3519                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
3520                                                
3521                                                    >
3522                                                    Carpet Tiles &amp; Rolls
3523                                                                                                            <span class="inline items-center rotate-180 absolute">
3524                                                            <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">
3525  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
3526<title>chevron-down</title></svg>
3527                                                        </span>
3528                                                                                                    </a>
3529                                                
3530                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
3531                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Carpet Tiles &amp; Rolls</span>
3532
3533                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
3534                                                            <a href="https://www.flooringinc.com/shop/carpet/carpet-tiles.html"
3535                                                            title="Carpet&#x20;Tiles"
3536                                                            class="level-2 block">
3537                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Carpet_Tiles_Category_01.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Carpet_Tiles_Category_01.jpg" alt="Carpet&#x20;Tiles" title="Carpet&#x20;Tiles" /></picture>   
3538                                                                                                                                                                                        
3539                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Carpet Tiles</span></a>
3540                                                        </li>
3541                                                           
3542                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3543                                                            <a href="https://www.flooringinc.com/shop/carpet/carpet-rolls.html"
3544                                                            title="Carpet&#x20;Rolls"
3545                                                            class="level-2 block">
3546                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_carpet_carpet_rolls_3.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_carpet_carpet_rolls_3.jpg" alt="Carpet&#x20;Rolls" title="Carpet&#x20;Rolls" /></picture>   
3547                                                                                                                                                                                        
3548                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Carpet Rolls</span></a>
3549                                                        </li>
3550                                                           
3551                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3552                                                            <a href="https://www.flooringinc.com/shop/carpet/home-theater-carpet.html"
3553                                                            title="Home&#x20;Theater&#x20;Carpet"
3554                                                            class="level-2 block">
3555                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Home_Theater_Carpet_Category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Home_Theater_Carpet_Category.jpg" alt="Home&#x20;Theater&#x20;Carpet" title="Home&#x20;Theater&#x20;Carpet" /></picture>   
3556                                                                                                                                                                                        
3557                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Home Theater Carpet</span></a>
3558                                                        </li>
3559                                                           
3560                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3561                                                            <a href="https://www.flooringinc.com/shop/carpet/peel-stick-carpet.html"
3562                                                            title="Peel&#x20;and&#x20;Stick&#x20;Carpet&#x20;Tiles"
3563                                                            class="level-2 block">
3564                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_carpet_peel_stick_carpet_3.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_carpet_peel_stick_carpet_3.jpg" alt="Peel&#x20;and&#x20;Stick&#x20;Carpet&#x20;Tiles" title="Peel&#x20;and&#x20;Stick&#x20;Carpet&#x20;Tiles" /></picture>   
3565                                                                                                                                                                                        
3566                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Peel and Stick Carpet Tiles</span></a>
3567                                                        </li>
3568                                                           
3569                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3570                                                            <a href="https://www.flooringinc.com/shop/carpet/outdoor-carpet.html"
3571                                                            title="Outdoor&#x20;Carpet"
3572                                                            class="level-2 block">
3573                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_carpet_outdoor_carpet_3.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_carpet_outdoor_carpet_3.jpg" alt="Outdoor&#x20;Carpet" title="Outdoor&#x20;Carpet" /></picture>   
3574                                                                                                                                                                                        
3575                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Outdoor Carpet</span></a>
3576                                                        </li>
3577                                                           
3578                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3579                                                            <a href="https://www.flooringinc.com/shop/carpet/waterproof-carpet.html"
3580                                                            title="Waterproof&#x20;Carpet"
3581                                                            class="level-2 block">
3582                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_carpet_waterproof_carpet_3.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_carpet_waterproof_carpet_3.jpg" alt="Waterproof&#x20;Carpet" title="Waterproof&#x20;Carpet" /></picture>   
3583                                                                                                                                                                                        
3584                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Waterproof Carpet</span></a>
3585                                                        </li>
3586                                                           
3587                                                        
3588                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/carpet.html" >View All</a>
3589                                             
3590
3591                                                </ul>
3592                                            </li>
3593                                            
3594                                            
3595                                                                                                                            
3596                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
3597                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
3598                                                                                        >
3599                                                <a 
3600                                                title="Vinyl&#x20;Flooring"
3601                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
3602                                                
3603                                                    >
3604                                                    Vinyl Flooring
3605                                                                                                            <sp
3605an class="inline items-center rotate-180 absolute">
3606                                                            <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">
3607  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
3608<title>chevron-down</title></svg>
3609                                                        </span>
3610                                                                                                    </a>
3611                                                 
3612                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
3613                                    <style>#html-body [data-pb-style=EM115TO]{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=IKTB4TW]{border-style:none}#html-body [data-pb-style=GIF1L08],#html-body [data-pb-style=XQRKPTA]{max-width:100%;height:auto}#html-body [data-pb-style=L8H5BBD]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=R47C5CN]{display:flex;width:100%}#html-body [data-pb-style=KQ2WCHQ]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=DKAF2SH]{text-align:left}#html-body [data-pb-style=PYFOHXW]{display:inline-block}#html-body [data-pb-style=PNB90JW]{text-align:center}@media only screen and (max-width: 768px) { #html-body [data-pb-style=IKTB4TW]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" 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="main" data-pb-style="EM115TO"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="IKTB4TW"><a href="/tritoncore-pro-7-rigid-core-vinyl-planks-12596.html" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/vinyl-ad-5.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/vinyl-ad-5.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="XQRKPTA" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/vinyl-ad-5.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/vinyl-ad-5.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="GIF1L08" loading="lazy"></picture></a></figure><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="L8H5BBD"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="R47C5CN"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="KQ2WCHQ"><div class="text-size18 text-custom-black font-bold text-left pt-5 pb-1" data-content-type="text" data-appearance="default" data-element="main"><h2><span style="font-size: 18px;">TritonCore Pro 7"</span><br><span style="font-size: 18px;">Rigid Core Vinyl Planks</span></h2></div><div class="text-size14 font-medium text-custom-black text-left pt-1 pb-3" data-content-type="text" data-appearance="default" data-element="main"><p>Functional beauty for busy households.</p></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="DKAF2SH" class="free__Shipping__btn"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="PYFOHXW"><a class="pagebuilder-button-primary" href="/tritoncore-pro-7-rigid-core-vinyl-planks-12596.html" target="" data-link-type="default" data-element="link" data-pb-style="PNB90JW"><span data-element="link_text">SHOP NOW</span></a></div></div></div></div></div></div>                                </div>
3614                                
3615                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
3616                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Vinyl Flooring</span>
3617
3618                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
3619                                                            <a href="https://www.flooringinc.com/shop/vinyl/vinyl-sheet.html"
3620                                                            title="Vinyl&#x20;Sheet&#x20;Flooring"
3621                                                            class="level-2 block">
3622                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_vinyl_vinyl_sheet_3.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_vinyl_vinyl_sheet_3.jpg" alt="Vinyl&#x20;Sheet&#x20;Flooring" title="Vinyl&#x20;Sheet&#x20;Flooring" /></picture>   
3623                                                                                                                                                                                        
3624                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Vinyl Sheet Flooring</span></a>
3625                                                        </li>
3626                                                           
3627                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3628                                                            <a href="https://www.flooringinc.com/shop/vinyl/vinyl-tiles-planks.html"
3629                                                            title="Vinyl&#x20;Tiles&#x20;&amp;&#x20;Planks"
3630                                                            class="level-2 block">
3631                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/main-category-vinyl.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/main-category-vinyl.jpg" alt="Vinyl&#x20;Tiles&#x20;&amp;&#x20;Planks" title="Vinyl&#x20;Tiles&#x20;&amp;&#x20;Planks" /></picture>   
3632                                                                                                                                                                                        
3633                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Vinyl Tiles &amp; Planks</span></a>
3634                                                        </li>
3635                                                           
3636                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3637                                                            <a href="https://www.flooringinc.com/shop/vinyl/waterproof-vinyl.html"
3638                                                            title="Waterproof&#x20;Vinyl&#x20;Flooring"
3639                                                            class="level-2 block">
3640                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_vinyl_waterproof_vinyl_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_vinyl_waterproof_vinyl_1.jpg" alt="Waterproof&#x20;Vinyl&#x20;Flooring" title="Waterproof&#x20;Vinyl&#x20;Flooring" /></picture>   
3641                                                                                                                                                                                        
3642                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Waterproof Vinyl Flooring</span></a>
3643                                                        </li>
3644                                                           
3645                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3646                                                            <a href="https://www.flooringinc.com/shop/vinyl/rigid-core-vinyl.html"
3647                                                            title="Rigid&#x20;Core&#x20;Vinyl&#x20;Flooring"
3648                                                            class="level-2 block">
3649                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_vinyl_rigid_core_vinyl_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_vinyl_rigid_core_vinyl_1.jpg" alt="Rigid&#x20;Core&#x20;Vinyl&#x20;Flooring" title="Rigid&#x20;Core&#x20;Vinyl&#x20;Flooring" /></picture>   
3650                                                                                                                                                                                        
3651                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Rigid Core Vinyl Flooring</span></a>
3652                                                        </li>
3653                                                           
3654                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3655                                                            <a href="https://www.flooringinc.com/shop/vinyl/commercial-vinyl.html"
3656                                                            title="Commercial&#x20;Vinyl&#x20;Flooring"
3657                                                            class="level-2 block">
3658                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_vinyl_commercial_vinyl_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_vinyl_commercial_vinyl_1.jpg" alt="Commercial&#x20;Vinyl&#x20;Flooring" title="Commercial&#x20;Vinyl&#x20;Flooring" /></picture>   
3659                                                                                                                                                                                        
3660                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Commercial Vinyl Flooring</span></a>
3661                                                        </li>
3662                                                           
3663                                                                                                            
3664                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/vinyl.html" >View All</a>
3665                                             
3666
3667                                                </ul>
3668                                            </li>
3669                                            
3670                                            
3671                                                                                                                            
3672                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
3673                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
3674                                                                                        >
3675                                                <a 
3676                                                title="Wood&#x20;&amp;&#x20;Laminate&#x20;Flooring"
3677                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
3678                                                
3679                                                    >
3680                                                    Wood &amp; Laminate Flooring
3681                                                                                                            <sp
3681an class="inline items-center rotate-180 absolute">
3682                                                            <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">
3683  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
3684<title>chevron-down</title></svg>
3685                                                        </span>
3686                                                                                                    </a>
3687                                                
3688                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
3689                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Wood &amp; Laminate Flooring</span>
3690
3691                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
3692                                                            <a href="https://www.flooringinc.com/shop/wood-laminate/waterproof-laminate.html"
3693                                                            title="Waterproof&#x20;Laminate&#x20;Flooring"
3694                                                            class="level-2 block">
3695                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_waterproof_laminate_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_waterproof_laminate_1.jpg" alt="Waterproof&#x20;Laminate&#x20;Flooring" title="Waterproof&#x20;Laminate&#x20;Flooring" /></picture>   
3696                                                                                                                                                                                        
3697                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Waterproof Laminate Flooring</span></a>
3698                                                        </li>
3699                                                           
3700                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3701                                                            <a href="https://www.flooringinc.com/shop/wood-laminate/laminate.html"
3702                                                            title="Laminate&#x20;Flooring"
3703                                                            class="level-2 block">
3704                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_laminate_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_laminate_1.jpg" alt="Laminate&#x20;Flooring" title="Laminate&#x20;Flooring" /></picture>   
3705                                                                                                                                                                                        
3706                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Laminate Flooring</span></a>
3707                                                        </li>
3708                                                           
3709                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3710                                                            <a href="https://www.flooringinc.com/shop/wood-laminate/hardwood.html"
3711                                                            title="Engineered&#x20;Hardwood&#x20;Flooring"
3712                                                            class="level-2 block">
3713                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_hardwood_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_hardwood_1.jpg" alt="Engineered&#x20;Hardwood&#x20;Flooring" title="Engineered&#x20;Hardwood&#x20;Flooring" /></picture>   
3714                                                                                                                                                                                        
3715                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Engineered Hardwood Flooring</span></a>
3716                                                        </li>
3717                                                           
3718                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3719                                                            <a href="https://www.flooringinc.com/shop/wood-laminate/oak.html"
3720                                                            title="Oak&#x20;Wood&#x20;Flooring"
3721                                                            class="level-2 block">
3722                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_oak_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_oak_1.jpg" alt="Oak&#x20;Wood&#x20;Flooring" title="Oak&#x20;Wood&#x20;Flooring" /></picture>   
3723                                                                                                                                                                                        
3724                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Oak Wood Flooring</span></a>
3725                                                        </li>
3726                                                           
3727                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3728                                                            <a href="https://www.flooringinc.com/shop/wood-laminate/commercial-wood-laminate.html"
3729                                                            title="Commercial&#x20;Wood&#x20;&amp;&#x20;Laminate"
3730                                                            class="level-2 block">
3731                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_commercial_wood_laminate_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_wood_laminate_commercial_wood_laminate_1.jpg" alt="Commercial&#x20;Wood&#x20;&amp;&#x20;Laminate" title="Commercial&#x20;Wood&#x20;&amp;&#x20;Laminate" /></picture>   
3732                                                                                                                                                                                        
3733                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Commercial Wood &amp; Laminate</span></a>
3734                                                        </li>
3735                                                           
3736                                                                                                            
3737                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/wood-laminate.html" >View All</a>
3738                                             
3739
3740                                                </ul>
3741                                            </li>
3742                                            
3743                                            
3744                                                                                                                            
3745                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
3746                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
3747                                                                                        >
3748                                                <a 
3749                                                title="Commercial&#x20;Flooring"
3750                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
3751                                                
3752                                                    >
3753                                                    Commercial Flooring
3754                                                                                                            <sp
3754an class="inline items-center rotate-180 absolute">
3755                                                            <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">
3756  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
3757<title>chevron-down</title></svg>
3758                                                        </span>
3759                                                                                                    </a>
3760                                                 
3761                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
3762                                    <style>#html-body [data-pb-style=O02YD59]{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=OOE2A60]{border-style:none}#html-body [data-pb-style=GIBTE8V],#html-body [data-pb-style=I3MEDCP]{max-width:100%;height:auto}#html-body [data-pb-style=YUV11TT]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=BOTYRR2]{display:flex;width:100%}#html-body [data-pb-style=Y56PEM0]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=AAF7UJB]{text-align:left}#html-body [data-pb-style=MN0A9R6]{display:inline-block}#html-body [data-pb-style=GVKGSEM]{text-align:center}@media only screen and (max-width: 768px) { #html-body [data-pb-style=OOE2A60]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" 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="main" data-pb-style="O02YD59"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="OOE2A60"><a href="/shaw-intellect-carpet-tile-9127.html" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/commercial-ad-image.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/commercial-ad-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="I3MEDCP" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/commercial-ad-image.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/commercial-ad-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="GIBTE8V" loading="lazy"></picture></a></figure><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="YUV11TT"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="BOTYRR2"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="Y56PEM0"><div class="text-size14 font-medium text-custom-black text-left pt-5" data-content-type="text" data-appearance="default" data-element="main"><p><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/shaw-logo-copy.webp"><img style="width: 100px;" src="https://www.flooringinc.com/media/wysiwyg/shaw-logo-copy.png" alt="" width="100"></picture></p></div><div class="text-size18 text-custom-black font-bold text-left pt-1 pb-5" data-content-type="text" data-appearance="default" data-element="main"><h2><span style="font-size: 18px;">Shaw Intellect<br>Carpet Tile</span></h2></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="AAF7UJB" class="free__Shipping__btn"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="MN0A9R6"><a class="pagebuilder-button-primary" href="/shaw-intellect-carpet-tile-9127.html" target="" data-link-type="default" data-element="link" data-pb-style="GVKGSEM"><span data-element="link_text">SHOP NOW</span></a></div></div></div></div></div></div>                                </div>
3763                                
3764                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
3765                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Commercial Flooring</span>
3766
3767                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
3768                                                            <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-rubber-flooring.html"
3769                                                            title="Commercial&#x20;Rubber&#x20;Flooring"
3770                                                            class="level-2 block">
3771                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/main-category-commercial-rubber.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/main-category-commercial-rubber.jpg" alt="Commercial&#x20;Rubber&#x20;Flooring" title="Commercial&#x20;Rubber&#x20;Flooring" /></picture>   
3772                                                                                                                                                                                        
3773                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Commercial Rubber Flooring</span></a>
3774                                                        </li>
3775                                                           
3776                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3777                                                            <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-garage-flooring.html"
3778                                                            title="Commercial&#x20;Garage&#x20;Flooring"
3779                                                            class="level-2 block">
3780                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_commercial_flooring_commercial_garage_flooring_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_commercial_flooring_commercial_garage_flooring_1.jpg" alt="Commercial&#x20;Garage&#x20;Flooring" title="Commercial&#x20;Garage&#x20;Flooring" /></picture>   
3781                                                                                                                                                                                        
3782                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Commercial Garage Flooring</span></a>
3783                                                        </li>
3784                                                           
3785                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3786                                                            <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-carpet.html"
3787                                                            title="Commercial&#x20;Carpet&#x20;Tiles"
3788                                                            class="level-2 block">
3789                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_commercial_flooring_commercial_carpet_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_commercial_flooring_commercial_carpet_1.jpg" alt="Commercial&#x20;Carpet&#x20;Tiles" title="Commercial&#x20;Carpet&#x20;Tiles" /></picture>   
3790                                                                                                                                                                                        
3791                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Commercial Carpet Tiles</span></a>
3792                                                        </li>
3793                                                           
3794                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3795                                                            <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-vinyl.html"
3796                                                            title="Commercial&#x20;Vinyl&#x20;Flooring"
3797                                                            class="level-2 block">
3798                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_commercial_flooring_commercial_vinyl_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_commercial_flooring_commercial_vinyl_1.jpg" alt="Commercial&#x20;Vinyl&#x20;Flooring" title="Commercial&#x20;Vinyl&#x20;Flooring" /></picture>   
3799                                                                                                                                                                                        
3800                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Commercial Vinyl Flooring</span></a>
3801                                                        </li>
3802                                                           
3803                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3804                                                            <a href="https://www.flooringinc.com/shop/commercial-flooring/commercial-wood-laminate.html"
3805                                                            title="Commercial&#x20;Wood&#x20;&amp;&#x20;Laminate&#x20;Flooring"
3806                                                            class="level-2 block">
3807                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_commercial_flooring_commercial_wood_laminate_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_commercial_flooring_commercial_wood_laminate_1.jpg" alt="Commercial&#x20;Wood&#x20;&amp;&#x20;Laminate&#x20;Flooring" title="Commercial&#x20;Wood&#x20;&amp;&#x20;Laminate&#x20;Flooring" /></picture>   
3808                                                                                                                                                                                        
3809                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Commercial Wood &amp; Laminate Flooring</span></a>
3810                                                        </li>
3811                                                           
3812                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3813                                                            <a href="https://www.flooringinc.com/shop/commercial-flooring/gym-floor-covers-protection.html"
3814                                                            title="Gym&#x20;Floor&#x20;Covers&#x20;&#x7C;&#x20;Floor&#x20;Protection"
3815                                                            class="level-2 block">
3816                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Gym_Floor_Covers_Category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Gym_Floor_Covers_Category.jpg" alt="Gym&#x20;Floor&#x20;Covers&#x20;&#x7C;&#x20;Floor&#x20;Protection" title="Gym&#x20;Floor&#x20;Covers&#x20;&#x7C;&#x20;Floor&#x20;Protection" /></picture>   
3817                                                                                                                                                                                        
3818                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Gym Floor Covers | Floor Protection</span></a>
3819                                                        </li>
3820                                                           
3821                                                        
3822                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/commercial-flooring.html" >View All</a>
3823                                             
3824
3825                                                </ul>
3826                                            </li>
3827                                            
3828                                            
3829                                                                                                                            
3830                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
3831                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
3832                                                                                        >
3833                                                <a 
3834                                                title="Floors&#x20;by&#x20;Activity"
3835                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
3836                                                
3837                                                    >
3838                                                    Floors by Activity
3839                                                                                                            <span class="inline items-center rotate-180 absolute">
3840                                                            <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">
3841  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
3842<title>chevron-down</title></svg>
3843                                                        </span>
3844                                                                                                    </a>
3845                                                 
3846                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
3847                                    <style>#html-body [data-pb-style=KFA34BQ]{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=SWIWRMK]{border-style:none}#html-body [data-pb-style=CW1JEO7],#html-body [data-pb-style=YR16OUN]{max-width:100%;height:auto}#html-body [data-pb-style=JE5OVK0]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=KFIHXY2]{display:flex;width:100%}#html-body [data-pb-style=PAOFWTU]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:100%;align-self:stretch}#html-body [data-pb-style=GGMYAMB]{text-align:left}#html-body [data-pb-style=H9XX0T5]{display:inline-block}#html-body [data-pb-style=VQK95N0]{text-align:center}@media only screen and (max-width: 768px) { #html-body [data-pb-style=SWIWRMK]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" 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="main" data-pb-style="KFA34BQ"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="SWIWRMK"><a href="/progame-sports-tiles-13636.html" target="" data-link-type="default" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/by-activity-ad-image.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/by-activity-ad-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="CW1JEO7" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/by-activity-ad-image.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/by-activity-ad-image.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="YR16OUN" loading="lazy"></picture></a></figure><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="JE5OVK0"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="KFIHXY2"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="PAOFWTU"><div class="text-size14 font-medium text-custom-black text-left pt-5" data-content-type="text" data-appearance="default" data-element="main"><p><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/Progame_Color.webp"><img id="BEVL1A7" style="width: 100px; height: 33px;" src="https://www.flooringinc.com/media/wysiwyg/Progame_Color.png" alt="" width="100" height="17"></picture></p></div><div class="text-size18 text-custom-black font-bold text-left pt-1 pb-5" data-content-type="text" data-appearance="default" data-element="main"><h2><span style="font-size: 18px;">ProGame Sports Tiles</span></h2></div><div data-content-type="buttons" data-appearance="inline" data-same-width="false" data-element="main" data-pb-style="GGMYAMB" class="free__Shipping__btn"><div data-content-type="button-item" data-appearance="default" data-element="main" data-pb-style="H9XX0T5"><a class="pagebuilder-button-primary" href="/progame-sports-tiles-13636.html" target="" data-link-type="default" data-element="link" data-pb-style="VQK95N0"><span data-element="link_text">SHOP NOW</span></a></div></div></div></div></div></div>                                </div>
3848                                
3849                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
3850                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Floors by Activity</span>
3851
3852                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
3853                                                            <a href="https://www.flooringinc.com/shop/shop-by-activity/fitness-flooring.html"
3854                                                            title="Fitness&#x20;Flooring"
3855                                                            class="level-2 block">
3856                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_shop_by_activity_fitness_flooring_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_shop_by_activity_fitness_flooring_1.jpg" alt="Fitness&#x20;Flooring" title="Fitness&#x20;Flooring" /></picture>   
3857                                                                                                                                                                                        
3858                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Fitness Flooring</span></a>
3859                                                        </li>
3860                                                           
3861                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3862                                                            <a href="https://www.flooringinc.com/shop/shop-by-activity/dance-marley-flooring.html"
3863                                                            title="Dance&#x20;Flooring&#x20;&#x7C;&#x20;Marley&#x20;Floor"
3864                                                            class="level-2 block">
3865                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/dance-main-category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/dance-main-category.jpg" alt="Dance&#x20;Flooring&#x20;&#x7C;&#x20;Marley&#x20;Floor" title="Dance&#x20;Flooring&#x20;&#x7C;&#x20;Marley&#x20;Floor" /></picture>   
3866                                                                                                                                                                                        
3867                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Dance Flooring | Marley Floor</span></a>
3868                                                        </li>
3869                                                           
3870                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3871                                                            <a href="https://www.flooringinc.com/shop/shop-by-activity/sport-and-court-flooring.html"
3872                                                            title="Sport&#x20;&amp;&#x20;Court&#x20;Flooring"
3873                                                            class="level-2 block">
3874                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Sport_Court_Category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Sport_Court_Category.jpg" alt="Sport&#x20;&amp;&#x20;Court&#x20;Flooring" title="Sport&#x20;&amp;&#x20;Court&#x20;Flooring" /></picture>   
3875                                                                                                                                                                                        
3876                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Sport &amp; Court Flooring</span></a>
3877                                                        </li>
3878                                                           
3879                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3880                                                            <a href="https://www.flooringinc.com/shop/shop-by-activity/martial-arts-flooring.html"
3881                                                            title="Martial&#x20;Arts&#x20;Mats&#x20;"
3882                                                            class="level-2 block">
3883                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_shop_by_activity_martial_arts_flooring_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_shop_by_activity_martial_arts_flooring_1.jpg" alt="Martial&#x20;Arts&#x20;Mats&#x20;" title="Martial&#x20;Arts&#x20;Mats&#x20;" /></picture>   
3884                                                                                                                                                                                        
3885                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Martial Arts Mats </span></a>
3886                                                        </li>
3887                                                           
3888                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3889                                                            <a href="https://www.flooringinc.com/shop/shop-by-activity/cheer-mats.html"
3890                                                            title="Cheer&#x20;Mats"
3891                                                            class="level-2 block">
3892                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Cheer_Mats_Category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Cheer_Mats_Category.jpg" alt="Cheer&#x20;Mats" title="Cheer&#x20;Mats" /></picture>   
3893                                                                                                                                                                                        
3894                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Cheer Mats</span></a>
3895                                                        </li>
3896                                                           
3897                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3898                                                            <a href="https://www.flooringinc.com/shop/shop-by-activity/wrestling-mats.html"
3899                                                            title="Wrestling&#x20;Mats"
3900                                                            class="level-2 block">
3901                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Wrestling_Mats_Category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Wrestling_Mats_Category_1.jpg" alt="Wrestling&#x20;Mats" title="Wrestling&#x20;Mats" /></picture>   
3902                                                                                                                                                                                        
3903                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Wrestling Mats</span></a>
3904                                                        </li>
3905                                                           
3906                                                        
3907                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/shop-by-activity.html" >View All</a>
3908                                             
3909
3910                                                </ul>
3911                                            </li>
3912                                            
3913                                            
3914                                                                                                                            
3915                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
3916                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
3917                                                                                        >
3918                                                <a 
3919                                                title="Floors&#x20;by&#x20;Space"
3920                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
3921                                                
3922                                                    >
3923                                                    Floors by Space
3924                                                                                                            <span class="inline items-center rotate-180 absolute">
3925                                                            <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">
3926  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
3927<title>chevron-down</title></svg>
3928                                                        </span>
3929                                                                                                    </a>
3930                                                
3931                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
3932                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Floors by Space</span>
3933
3934                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
3935                                                            <a href="https://www.flooringinc.com/shop/shop-by-space/kitchen-flooring.html"
3936                                                            title="Kitchen&#x20;Flooring"
3937                                                            class="level-2 block">
3938                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/kitchen-main-category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/kitchen-main-category.jpg" alt="Kitchen&#x20;Flooring" title="Kitchen&#x20;Flooring" /></picture>   
3939                                                                                                                                                                                        
3940                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Kitchen Flooring</span></a>
3941                                                        </li>
3942                                                           
3943                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3944                                                            <a href="https://www.flooringinc.com/shop/shop-by-space/bathroom-flooring.html"
3945                                                            title="Bathroom&#x20;Flooring"
3946                                                            class="level-2 block">
3947                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/bathroom-main-category.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/bathroom-main-category.jpg" alt="Bathroom&#x20;Flooring" title="Bathroom&#x20;Flooring" /></picture>   
3948                                                                                                                                                                                        
3949                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Bathroom Flooring</span></a>
3950                                                        </li>
3951                                                           
3952                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3953                                                            <a href="https://www.flooringinc.com/shop/shop-by-space/commercial-flooring.html"
3954                                                            title="Commercial&#x20;Flooring"
3955                                                            class="level-2 block">
3956                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_shop_by_space_commercial_flooring_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_shop_by_space_commercial_flooring_1.jpg" alt="Commercial&#x20;Flooring" title="Commercial&#x20;Flooring" /></picture>   
3957                                                                                                                                                                                        
3958                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Commercial Flooring</span></a>
3959                                                        </li>
3960                                                           
3961                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3962                                                            <a href="https://www.flooringinc.com/shop/shop-by-space/gym-flooring.html"
3963                                                            title="Gym&#x20;Flooring"
3964                                                            class="level-2 block">
3965                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/gym-main-category_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/gym-main-category_1.jpg" alt="Gym&#x20;Flooring" title="Gym&#x20;Flooring" /></picture>   
3966                                                                                                                                                                                        
3967                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Gym Flooring</span></a>
3968                                                        </li>
3969                                                           
3970                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3971                                                            <a href="https://www.flooringinc.com/shop/shop-by-space/garage-flooring.html"
3972                                                            title="Garage&#x20;Flooring"
3973                                                            class="level-2 block">
3974                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_shop_by_space_garage_flooring_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_shop_by_space_garage_flooring_1.jpg" alt="Garage&#x20;Flooring" title="Garage&#x20;Flooring" /></picture>   
3975                                                                                                                                                                                        
3976                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Garage Flooring</span></a>
3977                                                        </li>
3978                                                           
3979                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
3980                                                            <a href="https://www.flooringinc.com/shop/shop-by-space/outdoor-flooring.html"
3981                                                            title="Outdoor&#x20;Flooring"
3982                                                            class="level-2 block">
3983                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_shop_by_space_outdoor_flooring_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_shop_by_space_outdoor_flooring_1.jpg" alt="Outdoor&#x20;Flooring" title="Outdoor&#x20;Flooring" /></picture>   
3984                                                                                                                                                                                        
3985                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Outdoor Flooring</span></a>
3986                                                        </li>
3987                                                           
3988                                                        
3989                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/shop-by-space.html" >View All</a>
3990                                             
3991
3992                                                </ul>
3993                                            </li>
3994                                            
3995                                            
3996                                                                                                                            
3997                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
3998                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
3999                                                                                        >
4000                                                <a 
4001                                                title="Underlayment&#x20;&amp;&#x20;Flooring&#x20;Accessories"
4002                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
4003                                                
4004                                                    >
4005                                                    Underlayment &amp; Flooring Accessories
4006                                                                                                            <span class="inline items-center rotate-180 absolute">
4007                                                            <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">
4008  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
4009<title>chevron-down</title></svg>
4010                                                        </span>
4011                                                                                                    </a>
4012                                                 
4013                                <div class="2xl:block w-1/4 mega-menu-rightBlock absolute top-0 right-0" x-show="show">
4014                                    <style>#html-body [data-pb-style=LTPNQ8C]{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=R2I2333]{border-style:none}#html-body [data-pb-style=K97631E],#html-body [data-pb-style=WX0AV4C]{max-width:100%;height:auto}@media only screen and (max-width: 768px) { #html-body [data-pb-style=R2I2333]{border-style:none} }</style><div class="mega_menu_banner" data-content-type="row" data-appearance="full-bleed" 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="main" data-pb-style="LTPNQ8C"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="R2I2333"><a href="https://www.flooringinc.com/pro-advantage" target="" data-link-type="page" title="" data-element="link"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/nav-pro-adv-2-ad.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/nav-pro-adv-2-ad.jpg" alt="" title="" width="" height="" loading="lazy" data-element="desktop_image" data-pb-style="WX0AV4C" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/nav-pro-adv-2-ad.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/nav-pro-adv-2-ad.jpg" alt="" title="" width="" height="" loading="lazy" data-element="mobile_image" data-pb-style="K97631E" loading="lazy"></picture></a></figure></div>                                </div>
4015                                
4016                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
4017                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Underlayment &amp; Flooring Accessories</span>
4018
4019                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
4020                                                            <a href="https://www.flooringinc.com/shop/installation-care/adhesives-glue.html"
4021                                                            title="Flooring&#x20;Adhesives&#x20;&amp;&#x20;Glue"
4022                                                            class="level-2 block">
4023                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_installation_care_adhesives_glue_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_installation_care_adhesives_glue_1.jpg" alt="Flooring&#x20;Adhesives&#x20;&amp;&#x20;Glue" title="Flooring&#x20;Adhesives&#x20;&amp;&#x20;Glue" /></picture>   
4024                                                                                                                                                                                        
4025                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Flooring Adhesives &amp; Glue</span></a>
4026                                                        </li>
4027                                                           
4028                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
4029                                                            <a href="https://www.flooringinc.com/shop/installation-care/tape.html"
4030                                                            title="Floor&#x20;and&#x20;Mat&#x20;Tape"
4031                                                            class="level-2 block">
4032                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_installation_care_tape_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_installation_care_tape_1.jpg" alt="Floor&#x20;and&#x20;Mat&#x20;Tape" title="Floor&#x20;and&#x20;Mat&#x20;Tape" /></picture>   
4033                                                                                                                                                                                        
4034                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Floor and Mat Tape</span></a>
4035                                                        </li>
4036                                                           
4037                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
4038                                                            <a href="https://www.flooringinc.com/shop/installation-care/accessories.html"
4039                                                            title="Installation&#x20;Accessories"
4040                                                            class="level-2 block">
4041                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_installation_care_accessories_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_installation_care_accessories_1.jpg" alt="Installation&#x20;Accessories" title="Installation&#x20;Accessories" /></picture>   
4042                                                                                                                                                                                        
4043                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Installation Accessories</span></a>
4044                                                        </li>
4045                                                           
4046                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
4047                                                            <a href="https://www.flooringinc.com/shop/installation-care/trims-moldings.html"
4048                                                            title="Floor&#x20;Trims&#x20;&amp;&#x20;Moldings"
4049                                                            class="level-2 block">
4050                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_installation_care_trims_moldings_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_installation_care_trims_moldings_1.jpg" alt="Floor&#x20;Trims&#x20;&amp;&#x20;Moldings" title="Floor&#x20;Trims&#x20;&amp;&#x20;Moldings" /></picture>   
4051                                                                                                                                                                                        
4052                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Floor Trims &amp; Moldings</span></a>
4053                                                        </li>
4054                                                           
4055                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
4056                                                            <a href="https://www.flooringinc.com/shop/installation-care/underlayment.html"
4057                                                            title="Flooring&#x20;Underlayment"
4058                                                            class="level-2 block">
4059                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_installation_care_underlayment_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_installation_care_underlayment_1.jpg" alt="Flooring&#x20;Underlayment" title="Flooring&#x20;Underlayment" /></picture>   
4060                                                                                                                                                                                        
4061                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Flooring Underlayment</span></a>
4062                                                        </li>
4063                                                           
4064                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
4065                                                            <a href="https://www.flooringinc.com/shop/installation-care/cleaners.html"
4066                                                            title="Flooring&#x20;Cleaners"
4067                                                            class="level-2 block">
4068                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/fi_installation_care_cleaners_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/fi_installation_care_cleaners_1.jpg" alt="Flooring&#x20;Cleaners" title="Flooring&#x20;Cleaners" /></picture>   
4069                                                                                                                                                                                        
4070                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Flooring Cleaners</span></a>
4071                                                        </li>
4072                                                           
4073                                                        
4074                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/installation-care.html" >View All</a>
4075                                             
4076
4077                                                </ul>
4078                                            </li>
4079                                            
4080                                            
4081                                                                                                                            
4082                                            <li :class="{ 'active': show }" class="level-1 level1 "  x-data="{ show: false }"  
4083                                                                                        x-on:click="show = true; removeDisplayFirst()" @click.away="show = false"
4084                                                                                        >
4085                                                <a 
4086                                                title="Specials"
4087                                                class="level-1 w-1/4 py-1/5 px-6 text-size13 block text-sm rounded text-darkblack relative"
4088                                                
4089                                                    >
4090                                                    Specials
4091                                                                                                            <span class="inline items-center rotate-180 absolute">
4092                                                            <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">
4093  <path fill-rule="evenodd" d="M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z" clip-rule="evenodd"/>
4094<title>chevron-down</title></svg>
4095                                                        </span>
4096                                                                                                    </a>
4097                                                
4098                                                <ul class="z-10 w-1/2 absolute top-0 level2 flex flex-wrap pt-3 megamenu-extrablock" x-show="show">
4099                                                    <span class="block w-full text-size28 font-medium no-underline text-darkblack pb-2">Specials</span>
4100
4101                                                                                                            <li class="level-2 w-4/12 pr-6 pb-6">
4102                                                            <a href="https://www.flooringinc.com/shop/specials/hot-buys.html"
4103                                                            title="Flooring&#x20;Deals"
4104                                                            class="level-2 block">
4105                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Hot_Buys_2.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Hot_Buys_2.jpg" alt="Flooring&#x20;Deals" title="Flooring&#x20;Deals" /></picture>   
4106                                                                                                                                                                                        
4107                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Flooring Deals</span></a>
4108                                                        </li>
4109                                                           
4110                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
4111                                                            <a href="https://www.flooringinc.com/shop/specials/made-in-usa.html"
4112                                                            title="American&#x20;Made"
4113                                                            class="level-2 block">
4114                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Made_in_the_USA_2_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Made_in_the_USA_2_1.jpg" alt="American&#x20;Made" title="American&#x20;Made" /></picture>   
4115                                                                                                                                                                                        
4116                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">American Made</span></a>
4117                                                        </li>
4118                                                           
4119                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
4120                                                            <a href="https://www.flooringinc.com/shop/specials/quick-ship.html"
4121                                                            title="Quick&#x20;Ship"
4122                                                            class="level-2 block">
4123                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/Quick_Ship_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/Quick_Ship_1.jpg" alt="Quick&#x20;Ship" title="Quick&#x20;Ship" /></picture>   
4124                                                                                                                                                                                        
4125                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">Quick Ship</span></a>
4126                                                        </li>
4127                                                           
4128                                                                                                                                                                    <li class="level-2 w-4/12 pr-6 pb-6">
4129                                                            <a href="https://www.flooringinc.com/shop/specials/new-arrivals.html"
4130                                                            title="New&#x20;Arrivals"
4131                                                            class="level-2 block">
4132                                                                                                                                <picture class="menucatimg rounded w-full mb-2"><source type="image/webp" srcset="https://www.flooringinc.com//media/catalog/category/New_Arrivals_1_1.webp"><img class="menucatimg rounded w-full mb-2" src="https://www.flooringinc.com//media/catalog/category/New_Arrivals_1_1.jpg" alt="New&#x20;Arrivals" title="New&#x20;Arrivals" /></picture>   
4133                                                                                                                                                                                        
4134                                                            <span class="block text-sm font-medium no-underline text-darkblack pr-4">New Arrivals</span></a>
4135                                                        </li>
4136                                                           
4137                                                                                                            
4138                                                                                                <a class="view-all mt-2 underline-imp text-size12 font-medium text-darkblack absolute" style="top:410px;" href="https://www.flooringinc.com/shop/specials.html" >View All</a>
4139                                             
4140
4141                                                </ul>
4142                                            </li>
4143                                            
4144                                            
4145                                                                                
4146                                                                                    
4147                                                                                            <!--<a class="view-all main-cats mt-2 underline px-6 text-size12 font-medium text-darkblack" href="https://www.flooringinc.com/all-categories.html" >View All</a>-->
4147
4148                                         
4149                                    </ul>
4150                                </div>
4151                                
4152                            </div>
4153                        </div>
4154                        </template>
4155                                    </div>
4156                        <div class="menu_static_links">
4157                <style>#html-body [data-pb-style=QGH21I8]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</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="QGH21I8"><div data-content-type="text" data-appearance="default" data-element="main"><ul>
4158<li><a tabindex="0" href="/shop-by-category/specials/hot-buys.html">Sale</a></li>
4159<li><a tabindex="0" href="/blog">Get Inspired &amp; How To</a></li>
4160</ul></div></div></div>            </div>
4161        </nav>
4162    </div>
4163
4164</div>
4165<script>
4166  'use strict';
4167
4168  const initMenuDesktop_6ab67d17d86df = () => {
4169    return {
4170      hoverTopPosition: '100%',
4171      setActiveMenu(menuNode) {
4172        Array.from(menuNode.querySelectorAll('a')).filter(link => {
4173          return link.href === window.location.href.split('?')[0];
4174        }).map(item => {
4175          if (!item.classList.contains('level-0')) {
4176            item.classList.add('underline');
4177          }
4178          item.closest('div.level-0') &&
4179          item.closest('div.level-0').classList.add('border-secondary');
4180        });
4181      }
4182    }
4183  }
4184</script>
vendor: 1 bytes, line 4184
4184
4185<script>
4186    // Function to remove 'display-first' class from other list items
4187    function removeDisplayFirst() {
4188        var listItems = document.querySelectorAll('.level1');
4189        listItems.forEach(function(item) {
4190            if (item.id !== this.id) {
4191                item.classList.remove('display-first');
4192            }
4193        });
4194    }
4195</script>
4195
4196        <!--Search-->
4197        <div class="w-full"
4198             id="search-content"
4199             :class="{ 'block': searchOpen}"  
4200             @click.outside="searchOpen = false"
4201        >
4202            
4203<div class="py-0 px-0 pl-5 mx-auto text-black" x-data="initMirasvitSearch()" @click.away="closeSearch">
4204    <form class="form minisearch relative" id="search_mini_form" action="https://www.flooringinc.com/catalogsearch/result/" method="get" autocomplete="off">
4205        <label class="hidden" for="search" data-role="minisearch-label">
4206            <span>Search</span>
4207        </label>
4208        <input id="search" x-ref="searchInput" type="search" name="q" value="" placeholder="Find&#x20;it&#x20;here&#x2026;" maxlength="128" class="w-full px-5 py-0 text-sm  leading-normal transition appearance-none rounded-md 
4209                focus:outline-none focus:border-transparent font-normal" x-on:keyup.debounce.300="doSearch($refs.searchInput.value)" x-on:click.debounce.150="openSearch" x-on:keydown.debounce.100="startSearch($refs.searchInput.value)"/>
4210                <button class="action search absolute">btn</button>
4211    </form>
4212
4213    <div x-cloak x-show="isOpen" id="mirasvitSearchResults" class="search_box transition appearance-none absolute">
4214        <div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50"
4215     style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);"
4216     x-show="isLoading"
4217     x-transition:enter="ease-out duration-200"
4218     x-transition:enter-start="opacity-0"
4219     x-transition:enter-end="opacity-100"
4220     x-transition:leave="ease-in duration-200"
4221     x-transition:leave-start="opacity-100"
4222     x-transition:leave-end="opacity-0">
4223    <!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL -->
4224<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" stroke="currentColor" class="text-primary" width="57" height="57" role="img">
4225    <g fill="none" fill-rule="evenodd">
4226        <g transform="translate(1 1)" stroke-width="2">
4227            <circle cx="5" cy="50" r="5">
4228                <animate attributeName="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcMode="linear" repeatCount="indefinite"/>
4229                <animate attributeName="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcMode="linear" repeatCount="indefinite"/>
4230            </circle>
4231            <circle cx="27" cy="5" r="5">
4232                <animate attributeName="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcMode="linear" repeatCount="indefinite"/>
4233                <animate attributeName="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcMode="linear" repeatCount="indefinite"/>
4234            </circle>
4235            <circle cx="49" cy="50" r="5">
4236                <animate attributeName="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcMode="linear" repeatCount="indefinite"/>
4237                <animate attributeName="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcMode="linear" repeatCount="indefinite"/>
4238            </circle>
4239        </g>
4240    </g>
4241<title>loader</title></svg>
4242    <div class="ml-10 text-primary text-xl">
4243        Loading...    </div>
4244</div>
4245
4246        <template x-if="hotSearch">
4247            <div class="hotSearch">
4248                <p class="text-lg leading-normal transition appearance-none text-grey-800 lg:text-xl border-b border-100 p-2 flex">
4249                    Hot Searches                </p>
4250                <div class="my-3 flex flex-wrap">
4251                                    </div>
4252            </div>
4253        </template>
4254
4255        <template x-if="searchResults">
4256            <div class="search_box_content w-full flex flex-wrap ">
4257                                    <div class="search_box_left relative">
4258                    <p class="product_title text-size20 font-medium text-black">
4259                        Top Results                        <template x-if="searchProducts != ''">
4260                            <small class="text-size16 font-medium text-black hidden">(<span x-html="searchProductsTotal"></span>)</small>
4261                        </template>
4262                    </p>
4263                    <div class="viewAll absolute right-0">
4264                            <div>
4265                                <a x-bind:href="numberResultsUrl">
4266                                    <p class="text-size14 font-normal text-black underline number-results" x-html="numberResults"></p>
4267                                </a>
4268                            </div>
4269                        </div>
4270                    <div class="search_box_left_content lg:grid-cols-6">
4271                        <template x-for="item in searchProducts">
4272                            <div class="search_products flex">
4273                                <a x-bind:href="`${item.url}`" class="">
4274                                    <div class="w-full product-image">
4275                                        <img x-bind:src="`${item.imageUrl}`" width="275" height="182" class="w-full"/>
4276                                    </div>
4277                                </a>    
4278                                    <div class="w-full product-content">
4279                                    <a x-bind:href="`${item.url}`" class=""><h4 class="product-name text-size14 font-medium text-black" x-html="item.name"></h4></a>
4280                                        <template x-if="item.rating > 0">
4281                                            <div class="ratings flex item-center">
4282                                                <div x-html="item.rating"></div>(<span x-html="item.reviews"></span>)
4283                                            </div>
4284                                        </template>
4285                                        <template x-if="item.orderFreeSample > 0">
4286                                        <div x-cloak x-data="{showModal: false, htmlContent: '',pid: item.proId }">
4287                                            <button type="button" class="order-sample-link text-size14 font-medium text-blacck mb-1" x-on:click="showModal = true,fetchHtmlContent(pid)">Order Free Sample</button>
4288                                            <div class="modal order-free-sample-popup z-50" x-show="showModal">
4289                                                <div class="modal-overlay" x-on:click="showModal = false"></div>
4290                                                <button class="closemodal" type="button" x-on:click="showModal = false">Close X</button>
4291                                                <div class="modal-content">    
4292                                                    <div x-html="htmlContent" :class="'htmlcontent' + item.proId"></div>
4293                                                </div>
4294                                            </div>
4295                                        </div>
4296                                        </template>
4297                                        <!-- <p class="mt-2 text-gray-600 text-xs truncate" x-html="item.description"></p> -->
4298                                        <template x-if="item.colorCount > 0"> 
4299                                            <p class="text-size13 font-normal text-black truncate">                                            
4300                                                Available in <span x-html="item.colorCount"></span> colors                                                                                       
4301                                            </p>
4302                                        </template> 
4303                                        <!--<div class="truncate-content">
4304                                            <p class="text-size13 font-normal text-black truncate" x-html="item.dealOfTheMonth"></p>
4305                                            <p class="text-size13 font-normal text-black truncate" x-html="item.freeShipping"></p>
4306                                            <p class="text-size13 font-normal text-black truncate" x-html="item.shipNextDay"></p>
4307                                        </div>-->
4308                                        <div class="price_container flex item-center justify-between">
4309                                            <span class="text-size14 font-semibold text-black" x-html="item.price"></span>
4310                                        </div>
4311                                    </div>
4312                                
4313                            </div>
4314                        </template>
4315                        <template x-if="searchProducts == ''">
4316                            <p>No results found.</p>
4317                        </template>
4318                    </div>
4319                    </div>
4320                                        <div class="results-rightside">
4321                    <template x-if="searchCategories != ''">
4322                        <div class="mb-6 category-rest">
4323                            <p class="categorie-title text-size20 font-medium text-black pb-2">
4324                                In Categories                                <small class="text-size16 font-medium text-black hidden">(<span x-html="searchCategoriesTotal"></span>)</small>
4325                            </p>
4326                            <div class="catgry-list">
4327                                <template x-for="category in searchCategories">
4328                                    <a x-bind:href="`${category.url}`">
4329                                        <div class="text-size14 font-normal text-black">
4330                                            <span class="text-size14 font-normal text-black cursor-pointer" x-html="category.name.split('>').pop().trim()"></span>
4331                                        </div>
4332                                    </a>
4333                                </template>
4334                            </div>
4335                        </div>
4336                    </template>
4337
4338                   <!-- <template x-if="searchPages != ''">
4339                        <div class="mb-6">
4340                            <p class="text-lg leading-normal transition appearance-none text-grey-800 lg:text-xl border-b border-100 p-2 flex">
4341                                Pages                                <small class="text-size16 font-medium text-black">(<span x-html="searchPagesTotal"></span>)</small>
4342                            </p>
4343                            <div class="px-2">
4344                                <template x-for="page in searchPages">
4345                                    <a x-bind:href="`${page.url}`">
4346                                        <div class="my-2 flex flex-wrap">
4347                                            <span class="text-size14 font-normal text-black cursor-pointer" x-html="page.name"></span>
4348                                        </div>
4349                                    </a>
4350                                </template>
4351                            </div>
4352                        </div>
4353                    </template> -->
4354
4355                    <template x-if="searchPosts != ''">
4356                        <div class="search_box_right">
4357                            <p class="blog-title text-size20 font-medium text-black">
4358                                In Blogs                                <!-- <small class="<//?= $titleNumberCSS ?>">(<span x-html="searchPostsTotal"></span>)</small> -->
4359                            </p>
4360                            <div class="search_box_right_content">
4361                                <template x-for="item in searchPosts">
4362                                    <div>
4363                                        <a x-bind:href="`${item.url}`" class="blog-items block">
4364                                            <div>
4365                                                <span class="blog-name text-size14 font-normal text-black" x-html="item.name"></span>
4366                                            </div>
4367                                        </a>
4368                                        <span class="item_description text-size14 font-normal text-black opacity-50 mb-4 block" x-html="item.description"></span>
4369                                    </div>
4370                                </template>
4371                            </div>
4372                        </div>
4373                    </template>
4374                            </div>                
4375                
4376            </div>
4377        </template>
4378
4379        <template x-if="noResults">
4380            <div class="p-2 text-size20 font-medium text-black overflow-hidden">
4381                <p class="text-lg leading-normal transition appearance-none text-grey-800 lg:text-xl" x-html="noResultsText"></p>
4382            </div>
4383        </template>
4384    </div>
4385</div>
4386
4387<script>
4388    function initMirasvitSearch() {
4389        return {
4390            //initialize Variables
4391            hotSearch:             false,
4392            searchResults:         false,
4393            noResults:             false,
4394            isLoading:             false,
4395            isOpen:                false,
4396            blockConfig:           {"query":"","priceFormat":{"pattern":"$%s","precision":2,"requiredPrecision":2,"decimalSymbol":".","groupSymbol":",","groupLength":3,"integerRequired":false},"minSearchLength":3,"url":"https:\/\/www.flooringinc.com\/searchautocomplete\/ajax\/suggest\/","storeId":"1","delay":100,"isAjaxCartButton":false,"isShowCartButton":false,"isShowImage":true,"isShowPrice":true,"isShowSku":false,"isShowRating":true,"isShowDescription":true,"isShowStockStatus":false,"layout":"in-page","popularTitle":"Popular Suggestions","popularSearches":[],"isTypeaheadEnabled":false,"typeaheadUrl":"https:\/\/www.flooringinc.com\/searchautocomplete\/ajax\/typeahead\/","minSuggestLength":2,"currency":"USD","limit":24,"customerGroupId":0,"filterPosition":"filters_sidebar"},
4397            xhttp:                 false,
4398            noResultsText:         '',
4399            numberResults:         '',
4400            numberResultsUrl:      '',
4401            searchProductsTotal:   '',
4402            searchCategoriesTotal: '',
4403            searchPagesTotal:      '',
4404            
4405            searchProducts:   [],
4406            searchCategories: [],
4407            searchPages:      [],
4408            searchPosts:      [],
4409            
4410            searchMap: {
4411                'magento_cms_page':         'Pages',
4412                'magento_catalog_category': 'Categories',
4413                'magento_catalog_product':  'Products',
4414                'magefan_blog_post':        'Posts'
4415            },
4416            
4417            hotSearchClickEvent: function (ev) {
4418                var hotSearchClick = event.currentTarget.innerText;
4419                document.getElementById("search").value = hotSearchClick;
4420
4421                this.doSearch(hotSearchClick);
4422            },
4423            
4424            openSearch: function () {
4425                //this.isOpen = true;
4426                searchValue = document.getElementById("search").value.length;
4427
4428                if (searchValue >= this.blockConfig.minSearchLength) {
4429                    this.hideHotSearch();
4430                } else {
4431                    this.showHotSearch();
4432                    this.hideSearchResults();
4433                }
4434            },
4435            
4436            startSearch: function (e) {
4437                if (e) {
4438                    //this.isOpen = true;
4439                }
4440            },
4441
4442             getSearchresult: function () {
4443                this.isOpen = true;
4444            },
4445            
4446            closeSearch: function () {
4447                this.isOpen = false;
4448            },
4449            
4450            showHotSearch: function () {
4451                this.hotSearch = true;
4452            },
4453            
4454            hideHotSearch: function () {
4455                this.hotSearch = false;
4456               
4457            },
4458            
4459            showSearchResults: function () {
4460                this.searchResults = true;
4461               // this.isOpen = true;
4462            },
4463            
4464            hideSearchResults: function () {
4465                this.searchResults = false;
4466               // this.isOpen = false;
4467            },
4468
4469            showNoResults: function () {
4470                this.noResults = true;
4471            },
4472            
4473            hideNoResults: function () {
4474                this.noResults = false;
4475            },
4476            
4477            setNoResultsText(text) {
4478                if (!text) {
4479                    return;
4480                }
4481                console.log(text);
4482                this.noResultsText = text;
4483                this.isOpen = true;
4484            },
4485
4486            setNumberResults(text) {
4487                this.numberResults = text;
4488            },
4489            
4490            setNumberResultsUrl(text) {
4491                this.numberResultsUrl = text;
4492            },
4493            
4494            resetSearchData: function () {
4495                // Reinitialize Variables to avoid wrong search results.
4496                this.searchPages = [];
4497                this.searchPagesTotal = 0;
4498                this.searchCategories = [];
4499                this.searchCategoriesTotal = 0;
4500                this.searchProducts = [];
4501                this.searchProductsTotal = 0;
4502            },
4503            
4504            doSearch: function (query) {
4505                this.isOpen = false;
4506                var self = this;
4507                // Min search length
4508                if (query.length < this.blockConfig.minSearchLength) {
4509                    this.showHotSearch();
4510                    this.isLoading = false;
4511                    this.hideSearchResults();
4512                    this.hideNoResults();
4513
4514                    return;
4515                } else {
4516                    this.hideHotSearch();
4517                    this.isLoading = true;
4518                    this.showSearchResults();
4519                    this.hideNoResults();
4520                }
4521                
4522                // AJAX for searchautocomplete/ajax/suggest/
4523                if (this.xhttp) {
4524                    try {
4525                        this.xhttp.abort();
4526                    } catch {
4527                        
4528                    }
4529                }
4530                this.xhttp = new XMLHttpRequest();
4531                var xhttp = this.xhttp;
4532                
4533                var queryEncoded = encodeURIComponent(query);
4534                var url = this.blockConfig.url.replace(/\/$/, "") + "/?q=" + queryEncoded + "&store_id=" + this.blockConfig.storeId + "&cat=false";
4535                
4536                xhttp.open("GET", url, true);
4537                xhttp.setRequestHeader("Content-Type", "application/json");
4538                
4539                xhttp.onreadystatechange = function () {
4540                    if (this.readyState === 4 && this.status === 200) {
4541                        
4542                      
4543                        // Response from ajax call in JSON.
4544                        var response = JSON.parse(this.responseText);
4545                        console.log(response);
4546                        self.resetSearchData();
4547                        
4548                        // Product Search Results
4549                        for (index in response.indexes) {
4550                            
4551                            if (response.indexes[index].items.length > 0) {
4552                                self.getSearchresult();
4553                                var res = response.indexes[index];
4554                                var map = null;
4555                                
4556                                if (self.searchMap[res.identifier]) {
4557                                    map = self.searchMap[res.identifier];
4558                                    self['search' + map] = res.items;
4559                                    self['search' + map + 'Total'] = res.totalItems;
4560                                }
4561                            }
4562                        }
4563                        
4564                        // Extract totalItems from response.textAll and format if > 999
4565                        let textAll = response.textAll;
4566                        if (response.textAll) {          
4567                            // Remove the → symbol (or any trailing characters you'd like to remove)
4568                            textAll = textAll.replace(/→$/, '').trim();                  
4569                            // Find number within textAll using regex
4570                            let totalItemsMatch = textAll.match(/\d+/); // Extracts the first number found
4571                            if (totalItemsMatch) {
4572                                let totalItemsFromTextAll = parseInt(totalItemsMatch[0], 10);
4573                                if (totalItemsFromTextAll > 999) {
4574                                    // Format with comma if > 999
4575                                    textAll = textAll.replace(totalItemsMatch[0], totalItemsFromTextAll.toLocaleString());
4576                                }
4577                            }
4578                            console.log("Formatted textAll:", textAll);
4579                            self.setNumberResults(textAll); // Update the UI with the formatted textAll
4580                        }
4581                        
4582                        self.isLoading = false;
4583                        self.hideNoResults();
4584                        self.setNumberResults(textAll);
4585                        self.setNumberResultsUrl(response.urlAll);
4586                        
4587                        if (response.noResults) {console.log(response.textEmpty);
4588                            self.showNoResults();
4589                            self.setNoResultsText(response.textEmpty);
4590                            self.hideSearchResults();
4591                            
4592                        }
4593                    }else{
4594                       this.isOpen = false;  
4595                    }
4596                };
4597
4598                xhttp.send();
4599            }
4600        }
4601    }
4602</script>
4602         </div>
4603
4604        <div class="flex items-center order-3"> 
4605            <!--Compare Icon-->
4606            <a id="compare-link"
4607               class="relative invisible inline-block mx-1 no-underline sm:ml-3 hover:text-black"
4608               :class="{ 'invisible': !(itemCount > 0) }"
4609               href="https://www.flooringinc.com/catalog/product_compare/index/"
4610               title="Compare Products"
4611               x-data="initCompareHeader()"
4612               @private-content-loaded.window="receiveCompareData($event.detail.data)"
4613            >
4614                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-8 h-8 md:h-6 md:w-6 hover:text-black" width="25" height="25" role="img">
4615  <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"/>
4616<title>scale</title></svg>
4617
4618                <span class="sr-only label">
4619                   Compare Products                </span>
4620
4621                <span class="absolute top-0 right-0 h-5 px-2 py-1 -mt-5 -mr-4 text-xs font-semibold
4622                    leading-none text-center text-white uppercase transform -translate-x-1
4623                    translate-y-1/2 bg-yellow-500 rounded-full"
4624                >
4625                    <span x-text="itemCount"></span>
4626                    <span x-show="itemCount === 1" class="sr-only">
4627                        item                    </span>
4628                    <span x-show="itemCount > 1" class="sr-only">
4629                        items                    </span>
4630                </span>
4631            </a>
4632
4633            <!--Search Icon-->
4634            <button id="menu-search-icon"
4635                    class="inline-block ml-1 no-underline sm:ml-3 hover:text-black hidden"
4636                    @click.prevent="
4637                        searchOpen = !searchOpen;
4638                        $nextTick(function () { document.querySelector('#search').select(); });
4639                    "
4640            >
4641                <span class="sr-only label">
4642                    Search                </span>
4643
4644                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-8 h-8 md:h-6 md:w-6 hover:text-black" width="25" height="25" role="img">
4645  <path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"/>
4646<title>search</title></svg>
4647            </button>
4648
4649            <!--Customer Icon & Dropdown-->
4650            
4650<script>
4651"use strict";
4652
4653function initComponent() {
4654  return {
4655    cart: false,
4656    customer: false,
4657    receiveCustomerData(data) {
4658      if (data.cart) {
4659        this.cart = data.cart;
4660      }
4661      if (data.customer) {
4662        this.customer = data.customer;
4663      }
4664    }
4665  }
4666}
4667</script>
4667
4668
4669
4670<div x-data="{ open: false }" class="relative inline-block acc-dropdown">
4671        <div class="arrow-cus">
4672        <a
4673        href="https&#x3A;&#x2F;&#x2F;www.flooringinc.com&#x2F;customer&#x2F;account&#x2F;"
4674        id="customer-menu"
4675        class="block hover:text-black "
4676                    @click.prevent="$dispatch('popup-register',
4677                { open: true,openRegister : false,openLogin : true,openCreate :true,
4678                openButtonLogin :true,
4679                openButtonRegister :false,
4680            })"
4681                :aria-expanded="open ? 'true' : 'false'"
4682        aria-label="My&#x20;Account"
4683    >
4684            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
4685             class="w-8 h-8 md:h-6 md:w-6" aria-hidden="true">
4686            <circle fill="none" cx="12" cy="7" r="3"></circle>
4687            <path d="M12 2C9.243 2 7 4.243 7 7s2.243 5 5 5 5-2.243 5-5S14.757 2 12 2zM12 10c-1.654
4688                0-3-1.346-3-3s1.346-3 3-3 3 1.346 3 3S13.654 10 12 10zM21 21v-1c0-3.859-3.141-7-7-7h-4c-3.86
4689                0-7 3.141-7 7v1h2v-1c0-2.757 2.243-5 5-5h4c2.757 0 5 2.243 5 5v1H21z">
4690            </path>
4691        </svg>
4692           
4693    </a>
4694        </div>
4695            <nav class="absolute right-0 z-20 hidden w-40 pt-3 pb-4 mt-2 -mr-4 pl-4 pr-4 overflow-auto origin-top-right rounded-sm
4696        shadow-lg sm:w-48 lg:mt-3 bg-container-lighter"
4697         :class="{ 'hidden' : !open }"
4698         @click.outside="open = false"
4699         x-cloak x-show="open"
4700         aria-labelledby="customer-menu"
4701    >
4702                    
4703<a class="block&#x20;px-4&#x20;py-2&#x20;lg&#x3A;px-5&#x20;lg&#x3A;py-2&#x20;hover&#x3A;bg-gray-100"
4704   onclick="hyva.setCookie && hyva.setCookie(
4705       'login_redirect',
4706       window.location.href,
4707       1
4708   )"
4709   href="https://www.flooringinc.com/customer/account/index/">
4710        Sign In    </a>
4711<a class="block&#x20;px-4&#x20;py-2&#x20;lg&#x3A;px-5&#x20;lg&#x3A;py-2&#x20;hover&#x3A;bg-gray-100"
4712   href="https://www.flooringinc.com/customer/account/create/"
4713   title=""
4714   >
4715        Create an Account    </a>
4716            </nav>
4717</div>
4718            <!--Quote Cart Icon (show when activeCartType is 'quote' and quote has items)-->
4719            <template x-if="activeCartType === 'quote' && quoteCart.summary_count">
4720            <a id="menu-cart-quote-icon"
4721               class="relative inline-block ml-1 no-underline sm:ml-3 hover:text-black pl-3"
4722               :class="{
4723                        'hidden': !(activeCartType === 'quote' && quoteCart.summary_count),
4724                        'block': activeCartType === 'quote' && quoteCart.summary_count }"
4725               href="https://www.flooringinc.com/amasty_quote/cart/"
4726            >
4727             <span class="checkout-icon">
4728                <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="w-8 h-8 md:h-6 md:w-6 hover:text-black" width="25" height="25" role="img">
4729  <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"/>
4730<title>shopping-cart</title></svg>
4731                </span>
4732                 <span x-text="quoteCart.summary_count"
4733                      class="absolute top-0 right-0 h-5 px-2 py-1 -mt-5 -mr-4 text-xs font-semibold
4734                        leading-none text-center text-white uppercase transform -translate-x-1
4735                        translate-y-1/2 rounded-full bg-primary"
4736                      :class="{
4737                        'hidden': !quoteCart.summary_count,
4738                        'block': quoteCart.summary_count }"
4739                ></span>
4740            </a>
4741            </template>
4742            <!--Regular Cart Icon (show when activeCartType is 'cart' or when quote mode but quote empty - always show an icon)-->
4742
4743            <a id="menu-cart-icon"
4744               x-show="activeCartType === 'cart' || (activeCartType === 'quote' && !quoteCart.summary_count)"
4745               @click.prevent.stop="$dispatch('toggle-cart',{});"               class="relative inline-block ml-6 no-underline hover:text-black"
4746               href="https://www.flooringinc.com/checkout/cart/index/"
4747            >
4748                <span class="sr-only label">
4749                    Cart                </span>
4750
4751                <span class="cart-icon">
4752                    <img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/cart-icon.svg" alt="cart-icon" width="24" height="24">
4753                    <picture class="icon"><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/arrow.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/arrow.png" alt="arrow" width="8" height="6" class="icon"></picture>
4754                </span>
4755
4756                <span x-text="cart.summary_count"
4757                      class="absolute top-0 right-0 h-5 px-2 py-1 -mt-5 -mr-4 text-xs font-semibold
4758                        leading-none text-center text-white uppercase transform -translate-x-1
4759                        translate-y-1/2 rounded-full bg-primary"
4760                      :class="{
4761                        'hidden': !cart.summary_count,
4762                        'block': cart.summary_count }"
4763                ></span>
4764            </a>
4765
4766        </div>
4767    </div>
4768
4769    <!--Cart Drawer-->
4770    
4770<script>
4771    function initCartDrawer() {
4772        return {
4773            open: false,
4774            isLoading: false,
4775            cart: {},
4776            maxItemsToDisplay: 10,
4777            itemsCount: 0,
4778            totalCartAmount: 0,
4779            getData(data) {
4780                if (data.cart) {
4781                    this.cart = data.cart;
4782                    this.itemsCount = data.cart.items && data.cart.items.length || 0;
4783                    this.totalCartAmount = this.cart.summary_count; 
4784                    //this.cart.summary_count = this.itemsCount;
4785                    this.setCartItems();
4786                } 
4787                this.isLoading = false;
4788            },
4789            cartItems: [],
4790            getItemCountTitle() {
4791                return hyva.strf('(%0 of %1)', this.maxItemsToDisplay, this.totalCartAmount)
4792            },
4793            setCartItems() {
4794                if(this.cart.items){
4795                this.cartItems = this.cart.items && this.cart.items.sort((a, b) => b.item_id - a.item_id) || [];
4796                } else {
4797                    this.cartItems = [];
4798                }
4799                if (this.maxItemsToDisplay > 0) {
4800                    this.cartItems = this.cartItems.slice(0, parseInt(this.maxItemsToDisplay, 10));
4801                }
4802                getCustomerData(['customer'], function(data) {
4803                if(data.messages.messages[0]){
4804                var messagesType = data.messages.messages[0].type;
4805                var messagesText = data.messages.messages[0].text;
4806                if(messagesType === "success"){
4807                    dispatchMessages([
4808                    {
4809                        type: messagesType,
4810                        text: messagesText
4811                    }
4812                    ]);
4813                        this.openCartDrawer();
4814                } else {
4815                    dispatchMessages([
4816                    {
4817                        type: messagesType,
4818                        text: messagesText
4819                    }
4820                    ]);
4821                }
4822                }
4823                window.dispatchEvent(new CustomEvent('amcart-loading-stop'));
4824                });             
4825                
4826                if(document.querySelectorAll('.btn_cart')) {
4827                    var addtocartnew = document.querySelectorAll('.btn_cart');
4828
4829                    addtocartnew.forEach(addtocartnew => {
4830                      addtocartnew.addEventListener('click', () => {
4831                        setTimeout(() => {
4832                        }, 2500); 
4833                      });
4834                    });
4835                }
4836                if(document.getElementById('product-addtocart-button')) {
4837                    var addtocartnew2 = document.getElementById('product-addtocart-button');
4838                    
4839                    addtocartnew2.addEventListener('click', () => {
4840                        setTimeout(() => {
4841                        }, 2500); 
4842                    });
4843                }
4844
4845               
4846            },
4847            deleteItemFromCart(itemId) {
4848                this.isLoading = true;
4849
4850                const formKey = hyva.getFormKey();
4851                const postUrl = BASE_URL + 'amasty_quote/quote/removeFromMinicart';
4852                fetch(postUrl, {
4853                    "headers": {
4854                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
4855                    },
4856                    "body": "form_key=" + formKey + "&item_id=" + itemId,
4857                    "method": "POST",
4858                    "mode": "cors",
4859                    "credentials": "include"
4860                }).then(response => {
4861                    window.location.href = window.location.pathname; // Reload the page after item remove
4862                    if (response.redirected) {
4863                        window.location.href = response.url;
4864                    } else if (response.ok) {
4865                        return response.json();
4866                    } else {
4867                        window.dispatchMessages && window.dispatchMessages([{
4868                            type: 'warning',
4869                            text: 'Could\u0020not\u0020remove\u0020item\u0020from\u0020quote.'
4870                        }]);
4871                        this.isLoading = false;
4872                    }
4873                }).then(result => {
4874                    window.dispatchMessages && window.dispatchMessages([{
4875                        type: result.success ? 'success' : 'error',
4876                        text: result.success
4877                            ? 'You\u0020removed\u0020the\u0020item.'
4878                            : result.error_message
4879                    }], result.success ? 5000 : 0)
4880                    window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
4881                });
4882            },
4883            toggleCartDrawer(event) {
4884                if (event.detail && event.detail.isOpen !== undefined) {
4885                    if (event.detail.isOpen) {
4886                        this.openCartDrawer()
4887                    } else {
4888                        this.open = false
4889                        this.$refs && this.$refs.cartDialogContent && hyva.releaseFocus(this.$refs.cartDialogContent)
4890                    }
4891                } else {
4892                                        this.openCartDrawer()
4893                }
4894            },
4895            openCartDrawer() {
4896                this.open = true;
4897                this.$nextTick(() => {
4898                    this.$refs && this.$refs.cartDialogContent && hyva.trapFocus(this.$refs.cartDialogContent)
4899                })
4900            },
4901            closeCartDrawer() {
4902                this.$dispatch('toggle-cart', { isOpen: false })
4903            }
4904        }
4905    }
4906    function getCustomerData(sections, callback) {
4907          fetch('/customer/section/load/?sections=')
4908            .then(response => response.json())
4909            .then(data => callback(data))
4910            .catch(error => console.error('Error fetching customer data:', error));
4911        }
4912</script>
4912
4913<section x-cloak
4914         x-show="cart"
4915         id="cart-drawer"
4916         x-data="initCartDrawer()"
4917         @private-content-loaded.window="getData($event.detail.data)"
4918         @toggle-cart.window="toggleCartDrawer($event)"
4919         @keydown.window.escape="closeCartDrawer"
4920>
4921        <div role="dialog"
4922             aria-labelledby="cart-drawer-title"
4923             aria-modal="true"
4924             @click.outside="open=false"
4925             class="fixed inset-y-0 right-0 z-30 flex max-w-full">
4926            <div class="backdrop"
4927                 x-show="open"
4928                 x-transition:enter="ease-in-out duration-500"
4929                 x-transition:enter-start="opacity-0"
4930                 x-transition:enter-end="opacity-100"
4931                 x-transition:leave="ease-in-out duration-500"
4932                 x-transition:leave-start="opacity-100"
4933                 x-transition:leave-end="opacity-0"
4934             role="button"
4935             @click="closeCartDrawer"
4936             aria-label="Close&#x20;minicart"></div>
4937            <div class="relative w-screen max-w-md shadow-2xl"
4938                 x-show="open"
4939                 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700"
4940                 x-transition:enter-start="translate-x-full"
4941                 x-transition:enter-end="translate-x-0"
4942                 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700"
4943                 x-transition:leave-start="translate-x-0"
4944                 x-transition:leave-end="translate-x-full"
4945            >
4946                <div
4947                    x-show="open"
4948                    x-transition:enter="ease-in-out duration-500"
4949                    x-transition:enter-start="opacity-0"
4950                    x-transition:enter-end="opacity-100"
4951                    x-transition:leave="ease-in-out duration-500"
4952                    x-transition:leave-start="opacity-100"
4953                    x-transition:leave-end="opacity-0" class="absolute top-0 right-0 flex pr-6 pt-19">
4954                    <button @click="open=false" aria-label="Close panel"
4955                            class="p-0 text-black transition duration-150 ease-in-out hover:text-black">
4956                        <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">
4957  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
4958<title>x</title></svg>
4959                    </button>
4960                </div>
4961                <div class="flex flex-col h-full bg-lightblue">
4962                    
4963                    <header class="px-4 pt-19 pb-6">
4964                        <h2 id="cart-drawer-title" class="text-size18 font-medium text-black">
4965                        <template x-if="!itemsCount">
4966                            <div>My Cart</div></template>
4967<template x-if="itemsCount">
4968                            <div class="minicart-item-count"><span class="minicart-total-cart-amount" x-html="totalCartAmount"></span> <span x-show="totalCartAmount > 1">items</span><span x-show="totalCartAmount == 1">item</span> in cart</div>
4969</template>
4970                            <span class="items-total text-xs text-black"
4971                                  x-show="maxItemsToDisplay && maxItemsToDisplay < itemsCount"
4972                                  x-text="getItemCountTitle()">
4973                            </span>
4974                        </h2>
4975                    </header>
4976
4977                    
4978<template x-if="!itemsCount">
4979                    <div class="relative px-4 py-6 border-bs sm:px-6 border-container">
4980                        Cart is empty                    </div>
4981                </template>
4982                    <div class="relative grid overflow-y-auto overflow-x-hidden bg-lightblue cart-items">
4983                        <template x-for="item in cartItems">
4984                            <div class="flex items-start cart-item px-4 pt-5 pb-6 transition duration-150
4985                                ease-in-out">
4986                                <template x-if="!item.product_has_url">
4987                                    <a :href="item.product_url" class="w-1/4 pr-6 image">
4988                                        <img
4989                                            :src="item.product_image.src"
4990                                            :width="item.product_image.width"
4991                                            :height="item.product_image.height"
4992                                            loading="lazy"
4993                                        />
4994                                    </a>
4995                                </template>
4996                                <template x-if="item.product_has_url == 1">
4997                                    <a :href="item.product_url" class="w-1/4 pr-6 image">
4998                                        <img
4999                                            :src="item.product_image.src"
5000                                            :width="item.product_image.width"
5001                                            :height="item.product_image.height"
5002                                            loading="lazy"
5003                                        />
5004                                    </a>
5005                                </template>
5006                                <div class="w-3/4">
5007                                    <div>
5008                                        <template x-if="!item.product_has_url">
5009                                            <a :href="item.product_url" class="prosku">
5010                                                <p><span class="product-title text-size16 font-semibold text-darkblack" x-html="item.product_name"></span></p>
5011                                            </a>
5012                                        </template>
5013                                        <template x-if="item.product_has_url == 1">
5014                                            <a :href="item.product_url" class="prosku">
5015                                                <p><span class="product-title text-size16 font-semibold text-darkblack" x-html="item.product_name"></span></p>
5016                                            </a>
5017                                        </template>
5018                                    </div>
5019                                    <template x-for="option in item.options">
5020                                    <div class="flex pt-2 pb-1 item-options w-full"
5021                                    x-show="option.label !== '' && !['Weight', 'Configurable Product SKU', 'Configurable Product Name', 'Configurable Product Category', 'Main Configurable Product Image Url', 'Main Configurable Product Image', 'Configurable Product Image', 'Color Display Name'].includes(option.label)">
5022                                            <div class="flex w-full">
5023                                                <p class="text-size14 font-medium text-black" x-show="option.label == 'Custom Length' || option.label == 'Roll Width' || option.label == 'Roll Length'" x-text="option.label + ':'"></p>
5024                                                <template x-if="!item.product_has_url">
5025                                                    <a :href="item.product_url" 
5026                                                    x-show="item.product_type !== 'grouped' && option.label != 'Configurable Product Image'"
5027                                                    class="inline-flex"><p class="pl-1 text-size14 font-normal text-black" x-html="option.value"></p></a>
5028                                                </template>
5029                                                <template x-if="item.product_has_url == 1">
5030                                                    <a :href="item.product_url"
5031                                                    x-show="item.product_type !== 'grouped' && option.label != 'Configurable Product Image'"
5032                                                    class="inline-flex"><p class="pl-1 text-size14 font-normal text-black" x-html="option.value"></p></a>
5033                                                </template>
5034                                            </div>
5035                                        </div>
5036                                    </template>
5037                                    <p class="pb-4 pt-1"><span x-html="item.product_price" class="text-size20 font-bold text-custom-blue pricebox"></span></p>
5038                                    <div class="text-xl flex qty-fields items-center">
5039                                        <p><span class="qty text-size14 font-semibold text-darkblack mr-1">QTY</span><span x-html="item.qty" class="qty-label text-center text-size16 font-semibold text-darkblack inline-block"></span></p>
5040                                        <div class="ml-auto">                                            
5041                                            <button 
5042                                                    @click="deleteItemFromCart(item.item_id)"
5043                                            >
5044                                                <picture><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/Delete.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/Delete.png" alt="Delete" width="12" height="16"></picture>
5045                                            </button>
5046                                        </div>
5047                                    </div>                                   
5048
5049                                </div>
5050                            </div>
5051                        </template>
5052                    </div>
5053<template x-if="itemsCount">
5054                    
5055                    <div class="relative bg-lightblue grid pt-3 pb-4">
5056                        <div class="w-full transition duration-150 ease-in-out sub-total">
5057                            <p class="text-darkgray text-size16 font-normal flex items-center pb-2">Subtotal: <span x-html="cart.subtotal" class="font-bold text-size22 text-custom-blue"></span></p>
5058                        </div>
5059                        
5060                        <div class="w-full transition duration-150 ease-in-out
5061                            chekout-btn">                            
5062                            <a href="https://www.flooringinc.com/checkout/cart/"
5063                               class="no-underline block relative font-medium text-size16 text-custom-white bg-custom-blue">
5064                                Proceed to Cart                            </a>
5065                        </div>
5066                                            </div>
5067</template>
5068                                    </div>
5069            </div>
5070            <div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50"
5071     style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);"
5072     x-show="isLoading"
5073     x-transition:enter="ease-out duration-200"
5074     x-transition:enter-start="opacity-0"
5075     x-transition:enter-end="opacity-100"
5076     x-transition:leave="ease-in duration-200"
5077     x-transition:leave-start="opacity-100"
5078     x-transition:leave-end="opacity-0">
5079    <!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL -->
5080<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" stroke="currentColor" class="text-primary" width="57" height="57" role="img">
5081    <g fill="none" fill-rule="evenodd">
5082        <g transform="translate(1 1)" stroke-width="2">
5083            <circle cx="5" cy="50" r="5">
5084                <animate attributeName="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcMode="linear" repeatCount="indefinite"/>
5085                <animate attributeName="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcMode="linear" repeatCount="indefinite"/>
5086            </circle>
5087            <circle cx="27" cy="5" r="5">
5088                <animate attributeName="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcMode="linear" repeatCount="indefinite"/>
5089                <animate attributeName="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcMode="linear" repeatCount="indefinite"/>
5090            </circle>
5091            <circle cx="49" cy="50" r="5">
5092                <animate attributeName="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcMode="linear" repeatCount="indefinite"/>
5093                <animate attributeName="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcMode="linear" repeatCount="indefinite"/>
5094            </circle>
5095        </g>
5096    </g>
5097<title>loader</title></svg>
5098    <div class="ml-10 text-primary text-xl">
5099        Loading...    </div>
5100</div>
5101        </div>
5102    </template>
5103</section>
5104
5105    <!--Authentication Pop-Up-->
5106    
5106<script>
5107    function initAuthentication() {
5108        return {
5109            open: false,
5110            forceAuthentication: false,
5111            checkoutUrl: 'https://www.flooringinc.com/checkout/index/',
5112            errors: 0,
5113            hasCaptchaToken: 0,
5114            displayErrorMessage: false,
5115            errorMessages: [],
5116            setErrorMessages: function setErrorMessages(messages) {
5117                this.errorMessages = [messages];
5118                this.displayErrorMessage = this.errorMessages.length;
5119            },
5120            submitForm: function () {
5121                // Do not rename $form, the variable is expected to be declared in the recaptcha output
5122                const $form = document.querySelector('#login-form-new');
5123                
5124                if (this.errors === 0) {
5125                    this.dispatchLoginRequest($form);
5126                }
5127            },
5128            onPrivateContentLoaded: function (data) {
5129                const isLoggedIn = data.customer && data.customer.firstname;
5130                if (data.cart && !isLoggedIn) {
5131                    this.forceAuthentication = !data.cart.isGuestCheckoutAllowed;
5132                }
5133            },
5134            redirectIfAuthenticated: function (event) {
5135                if (event.detail && event.detail.url) {
5136                    this.checkoutUrl = event.detail.url;
5137                }
5138                if (!this.forceAuthentication) {
5139                    window.location.href = this.checkoutUrl;
5140                }
5141            },
5142            dispatchLoginRequest: function(form) {
5143                this.isLoading = true;
5144                const username = this.$refs['customer-email'].value;
5145                const password = this.$refs['customer-password'].value;
5146                const formKey = hyva.getFormKey();
5147                const bodyFields = {
5148                    'username': username,
5149                    'password': password,
5150                    'formKey': formKey
5151                };
5152                                const fieldName = 'g\u002Drecaptcha\u002Dresponse';
5153                const recaptchaField = fieldName && form[fieldName];
5154                if (recaptchaField) {
5155                    bodyFields[fieldName] = recaptchaField.value;
5156                }
5157                fetch('https://www.flooringinc.com/customer/ajax/login/', {
5158                        method: 'POST',
5159                        headers: {
5160                            'Content-Type': 'application/json',
5161                            'X-Requested-With': 'XMLHttpRequest'
5162                        },
5163                        body: JSON.stringify(bodyFields)
5164                    }
5165                ).then(response => {
5166                        return response.json()
5167                    }
5168                ).then(data=> {
5169                    this.isLoading = false;
5170                    if (data.errors) {
5171                        dispatchMessages([{
5172                            type: 'error',
5173                            text: data.message
5174                        }], 5000);
5175                        this.errors = 1;
5176                        this.hasCaptchaToken = 0;
5177                    } else {
5178                        window.location.href = this.checkoutUrl;
5179                    }
5180                });
5181            }
5182        }
5183    }
5184</script>
5184
5185<section id="authentication-popup"
5186         x-data="initAuthentication()"
5187         @private-content-loaded.window="onPrivateContentLoaded($event.detail.data)"
5188         @toggle-authentication.window="open = forceAuthentication; redirectIfAuthenticated(event)"
5189         @keydown.window.escape="open = false"
5190>
5191        <div role="dialog"
5192             aria-modal="true"
5193             @click.outside="open = false"
5194             class="inset-y-0 right-0 z-30 flex max-w-full"
5195             :class="{'fixed': open }" x-cloak x-show="open"
5196        >
5197            <div class="relative w-screen max-w-md pt-16 bg-container-lighter"
5198                 x-show="open"
5199                 x-cloak=""
5200                 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700"
5201                 x-transition:enter-start="translate-x-full"
5202                 x-transition:enter-end="translate-x-0"
5203                 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700"
5204                 x-transition:leave-start="translate-x-0"
5205                 x-transition:leave-end="translate-x-full"
5206            >
5207                <div
5208                    x-show="open"
5209                    x-cloak=""
5210                    x-transition:enter="ease-in-out duration-500"
5211                    x-transition:enter-start="opacity-0"
5212                    x-transition:enter-end="opacity-100"
5213                    x-transition:leave="ease-in-out duration-500"
5214                    x-transition:leave-start="opacity-100"
5215                    x-transition:leave-end="opacity-0" class="absolute top-0 right-0 flex p-2 mt-2">
5216                    <button @click="open = false;" aria-label="Close panel"
5217                            class="p-2 text-gray-300 transition duration-150 ease-in-out hover:text-black">
5218                        <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">
5219  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
5220<title>x</title></svg>
5221                    </button>
5222                </div>
5223                <div class="flex flex-col h-full py-6 space-y-6 bg-white shadow-xl overflow-y-auto">
5224                    <div class="block-customer-login bg-container border border-container mx-4 p-4 shadow-sm">
5225                        <p id="authenticate-customer-login" class="text-lg leading-7 text-gray-900">
5226                            <strong class="font-medium">Checkout using your account</strong>
5227                        </p>
5228
5229                        <form class="form form-login"
5230                              method="post"
5231                              @submit.prevent="submitForm();"
5232                              id="login-form-new"
5233                        >
5234                                                        <div class="fieldset login">
5235                                <div class="field email required">
5236                                    <label class="label" for="form-login-username" form="login-form" >
5237                                        <span>Email Address</span>
5238                                    </label>
5239                                    <div class="control">
5240                                        <input name="username"
5241                                               id="form-login-username"
5242                                               x-ref="customer-email"
5243                                               @change="errors = 0"
5244                                               type="email"
5245                                               required
5246                                               class="form-input input-text"
5247                                        >
5248                                    </div>
5249                                </div>
5250                                <div class="field password required">
5251                                    <label for="form-login-password" class="label" form="login-form">
5252                                        <span>Password</span>
5253                                    </label>
5254                                    <div class="control">
5255                                        <input name="password"
5256                                               id="form-login-password"
5257                                               type="password"
5258                                               class="form-input input-text"
5259                                               required
5260                                               x-ref="customer-password"
5261                                               @change="errors = 0"
5262                                        >
5263                                    </div>
5264                                </div>
5265
5266                                <input name="context" type="hidden" value="checkout" />
5267                                <div class="actions-toolbar flex justify-between pt-6 pb-2 items-center">
5268                                    <button type="submit"                                            class="inline-flex btn btn-primary disabled:opacity-75"
5269                                    >
5270                                        Sign In                                    </button>
5271                                    <a href="https://www.flooringinc.com/customer/account/forgotpassword/"
5272                                    >
5273                                        Forgot Your Password?                                    </a>
5274                                </div>
5275
5276                            </div>
5277                        </form>
5278                    </div>
5279                    <div class="mx-4">
5280                                            </div>
5281                    <div class="block-new-customer bg-container border border-container mx-4 p-4 shadow-sm">
5282                        <p id="authenticate-new-customer" class="text-lg mb-2 leading-7 text-gray-900">
5283                            <strong class="font-medium">Checkout as a new customer</strong>
5284                        </p>
5285
5286                        <div class="block-content">
5287                            <p class="mb-1">
5288                                Creating an account has many benefits:                            </p>
5289                            <ul class="list-disc pl-5">
5290                                <li> See order and shipping status</li>
5291                                <li> Track order history</li>
5292                                <li> Check out faster</li>
5293                            </ul>
5294                            <div class="actions-toolbar flex justify-between mt-6 mb-2 items-center">
5295                                <a href="https://www.flooringinc.com/customer/account/create/"
5296                                   class="inline-flex btn btn-primary">
5297                                    Create an Account                                </a>
5298                            </div>
5299                        </div>
5300                    </div>
5301                </div>
5302            </div>
5303        </div>
5304</section>
5305
5306    <!--Cart Quote Drawer-->
5307    
5307<script>
5308    function initQuoteCartDrawer() {
5309        return {
5310            open: false,
5311            cartData: {},
5312            getQuoteCartData(data) {
5313                if (data.quotecart) {
5314                    this.cartData = data.quotecart
5315                    this.setCartItems();
5316                }
5317            },
5318            cartItems: [],
5319            setCartItems() {
5320                this.cartItems = this.cartData && this.cartData.items.sort(function(a,b) { return a.item_id - b.item_id }) || {}
5321            },
5322            deleteItemFromCart(itemId) {
5323                var formKey = document.querySelector('input[name=form_key]').value;
5324                fetch(BASE_URL+"amasty_quote/sidebar/removeItem/", {
5325                    "headers": {
5326                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
5327                    },
5328                    "body": "form_key="+ formKey + "&item_id="+itemId,
5329                    "method": "POST",
5330                    "mode": "cors",
5331                    "credentials": "include"
5332                }).then(function (response) {
5333                    if (response.redirected) {
5334                        window.location.href = response.url;
5335                    } else if (response.ok) {
5336                        return response.json();
5337                    } else {
5338                        typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
5339                            [{
5340                                type: "warning",
5341                                text: "Could not remove item from quote."
5342                            }], 5000
5343                        );
5344                    }
5345                }).then(function (response) {
5346                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
5347                        [{
5348                            type: response.success ? "success" : "error",
5349                            text: response.success
5350                                ? "You removed the item."
5351                                : response.error_message
5352                        }], 5000
5353                    );
5354                    var reloadCustomerDataEvent = new CustomEvent("reload-customer-section-data");
5355                    window.dispatchEvent(reloadCustomerDataEvent);
5356                });
5357            }
5358        }
5359    }
5360</script>
5360
5361<section id="cart-quote-drawer"
5362         x-data="initQuoteCartDrawer()"
5363         @private-content-loaded.window="getQuoteCartData(event.detail.data)"
5364         @toggle-quote-cart.window="open=true;"
5365         @keydown.window.escape="open=false"
5366>
5367    <template x-if="cartData && cartData.summary_count">
5368        <div role="dialog"
5369             aria-labelledby="cart-drawer-title"
5370             aria-modal="true"
5371             @click.away="open = false"
5372             class="fixed inset-y-0 right-0 z-30 flex max-w-full">
5373            <div class="backdrop"
5374                 x-show="open"
5375                 x-transition:enter="ease-in-out duration-500"
5376                 x-transition:enter-start="opacity-0"
5377                 x-transition:enter-end="opacity-100"
5378                 x-transition:leave="ease-in-out duration-500"
5379                 x-transition:leave-start="opacity-100"
5380                 x-transition:leave-end="opacity-0"
5381                 @click="open = false"
5382                 aria-label="Close panel"></div>
5383            <div class="relative w-screen max-w-md shadow-2xl"
5384                 x-show="open"
5385                 x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700"
5386                 x-transition:enter-start="translate-x-full"
5387                 x-transition:enter-end="translate-x-0"
5388                 x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700"
5389                 x-transition:leave-start="translate-x-0"
5390                 x-transition:leave-end="translate-x-full"
5391            >
5392                <div
5393                    x-show="open"
5394                    x-transition:enter="ease-in-out duration-500"
5395                    x-transition:enter-start="opacity-0"
5396                    x-transition:enter-end="opacity-100"
5397                    x-transition:leave="ease-in-out duration-500"
5398                    x-transition:leave-start="opacity-100"
5399                    x-transition:leave-end="opacity-0" class="absolute top-0 right-0 flex mr-3 mt-2">
5400                    <button @click="open = false" aria-label="Close panel"
5401                            class="p-2 text-gray-300 transition duration-150 ease-in-out hover:text-black">
5402                        <svg class="w-6 h-6" fill="none" viewBox="0 0 24 24" stroke="currentColor">
5403                            <path stroke-linecap="round" stroke-linejoin="round"
5404                                  stroke-width="2" d="M6 18L18 6M6 6l12 12">
5405                            </path>
5406                        </svg>
5407                    </button>
5408                </div>
5409                <div class="flex flex-col h-full py-6 space-y-6 bg-white shadow-xl">
5410                    <header class="px-4 sm:px-6">
5411                        <div id="cart-drawer-title" class="text-lg font-medium leading-7 text-gray-900">
5412                            My Quote Cart                        </div>
5413                    </header>
5414                    <div class="relative grid gap-6 px-4 py-6 overflow-y-auto bg-white border-b
5415                        sm:gap-8 sm:px-6 border-container">
5416                        <template x-for="item in cartItems">
5417                            <div class="flex items-start p-3 -m-3 space-x-4 transition duration-150
5418                                ease-in-out rounded-lg hover:bg-gray-100">
5419                                <a :href="item.product_url" class="w-1/4">
5420                                    <img
5421                                        :src="item.product_image.src"
5422                                        :width="item.product_image.width"
5423                                        :height="item.product_image.height"
5424                                        loading="lazy"
5425                                    />
5426                                </a>
5427                                <div class="w-3/4 relative">
5428                                    <div>
5429                                        <div class="text-xl">
5430                                            <a :href="item.product_url" class="hover:underline">
5431                                                <span x-html="item.qty"></span> x <span x-html="item.product_name"></span>
5432                                            </a>
5433                                        </div>
5434                                        <div class="text-sm"><span x-html="item.product_sku"></div>
5435                                    </div>
5436                                    <template x-for="option in item.options">
5437                                        <div class="pt-2">
5438                                            <p class="font-semibold" x-text="option.label + ':'"></p>
5439                                            <p class="text-secondary" x-html="option.value"></p>
5440                                        </div>
5441                                    </template>
5442                                    <div><span x-html="item.product_price"></span></div>
5443                                    <div class="pt-4">
5444                                        <a :href="item.configure_url"
5445                                           x-show="item.product_type !== 'grouped'"
5446                                            class="inline-flex p-2 mr-2 btn btn-primary">
5447                                            <svg fill="none" viewBox="0 0 24 24" stroke="currentColor"
5448                                                 size="16" class="w-5 h-5">
5449                                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
5450                                                      d="M15.232 5.232l3.536 3.536m-2.036-5.036a2.5 2.5 0 113.536
5451                                                      3.536L6.5 21.036H3v-3.572L16.732 3.732z">
5452                                                </path>
5453                                            </svg>
5454                                        </a>
5455                                        <button class="inline-flex p-2 btn btn-primary"
5456                                                @click="deleteItemFromCart(item.item_id)"
5457                                        >
5458                                            <svg fill="none" viewBox="0 0 24 24" stroke="currentColor"
5459                                                 size="16" class="w-5 h-5">
5460                                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
5461                                                      d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0
5462                                                      01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1
5463                                                      0 00-1 1v3M4 7h16">
5464                                                </path>
5465                                            </svg>
5466                                        </button>
5467                                    </div>
5468                                </div>
5469                            </div>
5470                        </template>
5471                    </div>
5472                    <div class="relative grid gap-6 px-4 py-6 bg-white sm:gap-8 sm:px-6">
5473                        <div class="w-full p-3 -m-3 space-x-4 transition duration-150 ease-in-out rounded-lg
5474                            hover:bg-gray-100">
5475                            <span>Cart Subtotal:</span>
5476                            <span class="text-gray-900 font-bold" x-text="hyva.formatPrice(cartData.subtotalAmount)"></span>
5477                        </div>
5478                        <div class="w-full">
5479                            <a href="https://www.flooringinc.com/amasty_quote/cart/"
5480                               class="btn btn-secondary justify-center">
5481                                View and Edit Cart                            </a>
5482                        </div>
5483                    </div>
5484                </div>
5485            </div>
5486        </div>
5487    </template>
5488</section>
5489
5490</div>
5491
5492<div x-data="initKlaviyoCustomerTracking()"
5493     @private-content-loaded.window="sendCustomerDataToKlaviyo(event.detail.data)"></div>
5494    
5494<script>
5495        function initKlaviyoCustomerTracking() {
5496            return {
5497                sendCustomerDataToKlaviyo(data) {
5498                    window.addEventListener('init-external-scripts', () => {
5499                    const _learnq = window._learnq || [];
5500                    const customer = data.customer;
5501                    var resource = document.createElement('script');
5502                    resource.async = "true";
5503                    resource.src = "https://static.klaviyo.com/onsite/js/klaviyo.js?company_id=WAwVDg";
5504                    var script = document.getElementsByTagName('script')[0];
5505                    script.parentNode.insertBefore(resource, script);
5506
5507                    if (customer && customer.email) {
5508                        script.addEventListener('load', function() {
5509                            _learnq.push(['identify', {
5510                                $email: customer.email,
5511                                $first_name: customer.firstname ? customer.firstname : '',
5512                                $last_name: customer.lastname ? customer.lastname : ''
5513                            }]);
5514                        });
5515                    }
5516                  }, {once: true, passive: true});
5517                }
5518            }
5519        }
5520    </script>
5520
5521<a class="action skip sr-only contentarea"
5522   href="#contentarea">
5523    <span>
5524        Skip to Content    </span>
5525</a>
5526<div class="widget block block-static-block">
5527    <div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div class="notification5 text-center text-size13 font-normal text-white bg-[#15324C]">		
5528		<style>#html-body [data-pb-style=LJM3NLA]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</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="LJM3NLA"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><center>
5529<p style="font-size: medium;">🍂 Fall Flooring Refresh - Save Up To 35% Off - Sale Ends Sunday 9/27 </p>
5530
5531</center>
5532</div></div></div></div></div></div>
5533</header><div class="top-container"><nav class="breadcrumbs order-2 w-full" aria-label="Breadcrumb">
5534    <div class="breadcrumbs-in py-8">
5535        <ol class="items list-reset rounded flex flex-wrap text-grey text-sm">
5536                            <li class="item flex Homepage">
5537                                                    <a href="/"
5538                       class="no-underline text-sm font-normal"
5539                       title="Homepage"
5540                    >Homepage</a>
5541                                </li>
5542                            <li class="item flex Shopping&#x20;Cart">
5543                                    <span aria-hidden="true" class="separator text-primary-lighter px-2 text-sm font-normal">/</span>
5544                                                    <a href=""
5545                       class="text-sm font-semibold current"
5546                       aria-current="page"
5547                    >Shopping Cart</a>
5548                                </li>
5549                    </ol>
5550    </div>
5551</nav>
5552</div><main id="maincontent" class="page-main"><div id="contentarea" tabindex="-1"></div>
5553<div class="page messages">
5553<script>
5554    function initMessages() {
5555        "use strict";
5556        return {
5557            messages: window.mageMessages || [],
5558            isEmpty() {
5559                return this.messages.reduce(
5560                    function (isEmpty, message) {
5561                        return isEmpty && message === undefined
5562                    }, true
5563                )
5564            },
5565            removeMessage(messageIndex) {
5566                this.messages[messageIndex] = undefined;
5567            },
5568            addMessages(messages, hideAfter) {
5569                messages.map((message) => {
5570                    /* Code to avoid multiple messages on the page */
5571					
5572					if (message.text.includes("A customer with the same email address already exists")) {
5573                        message.text = 'A customer with the same email address already exists in an associated website. If you would like to upgrade your account to a Pro Account - please <a href='+BASE_URL+'contact>contact customer service</a>.';
5574                    }
5575                    if(this.messages!="") {                        
5576                        this.messages=[];    
5577                    }
5578                    this.messages = this.messages.concat(message);
5579                    if (hideAfter) {
5580                        this.setHideTimeOut(this.messages.length -1, hideAfter);
5581                    }
5582                });
5583            },
5584            setHideTimeOut(messageIndex, hideAfter) {
5585                setTimeout((messageIndex) => {
5586                    this.removeMessage(messageIndex);
5587                }, hideAfter, messageIndex);
5588            },
5589            eventListeners: {
5590                ['@messages-loaded.window']() {
5591                   this.addMessages(event.detail.messages, event.detail.hideAfter)
5592                },
5593                ['@private-content-loaded.window'](event) {
5594                    const data = event.detail.data;
5595                    if (
5596                        data.messages &&
5597                        data.messages.messages &&
5598                        data.messages.messages.length
5599                    ) {
5600                        this.addMessages(data.messages.messages);
5601                    }
5602                },
5603                ['@clear-messages.window']() {
5604                    this.messages = [];
5605                }
5606            }
5607        }
5608    }
5609</script>
5609
5610<section id="messages"
5611         x-data="initMessages()"
5612         x-bind="eventListeners"
5613>
5614    <template x-if="!isEmpty()">
5615        <div class="w-full">
5616            <div role="alert" class="messages container">
5617                <template x-for="(message, index) in messages" :key="index">
5618                    <div>
5619                        <template x-if="message">
5620                            <div class="message" :class="message.type"
5621                                 :ui-id="'message-' + message.type"
5622                            >
5623                                <span x-html="message.text"></span>
5624                                <a href="#" class="close cursor-pointer" title="close"
5625                                   @click.prevent="removeMessage(index)">
5626                                    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" class="text-white" width="18" height="18" role="img">
5627  <path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12"/>
5628<title>x</title></svg>
5629                                </a>
5630                            </div>
5631                        </template>
5632                    </div>
5633                </template>
5634            </div>
5635        </div>
5636    </template>
5637</section></div><div class="container flex flex-col md:flex-row flex-wrap font-bold">
5638    <h1 class="text-gray-900 page-title title-font"
5639        >
5640						<span class="base" data-ui-id="page-title-wrapper" >Shopping Cart</span>		    </h1>
5641    </div>
5642<div class="widget block block-static-block">
5643    <style>#html-body [data-pb-style=UYH2DF7]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</style><div class="notification2 bg-custom-blue" data-content-type="row" data-appearance="full-bleed" 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="main" data-pb-style="UYH2DF7"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"></div></div></div>
5644<div class="widget block block-static-block">
5645    <style>#html-body [data-pb-style=A9GJREG]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}</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="A9GJREG"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"></div></div></div></div>
5646<div class="columns"><div class="column main">    
5646<script>
5647
5648    
5649</script>
vendor: 2 bytes, line 5649
5649
5650<script>
5651    function samplesubmit(mainproduct,inputValue,productids,colors,spidsColors,confproname,confproid,childproids) {
5652        this.isLoading = true;
5653        const formKey = hyva.getFormKey();
5654        const postUrl = BASE_URL + 'sampleproduct/Sample/Products/';
5655        fetch(postUrl, {
5656            "headers": {
5657                "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
5658            },
5659            "body": "form_key=" + formKey + "&action_type=" + inputValue+ "&pids=" + productids+ "&colors=" + colors+ "&spidsColors=" + spidsColors+ "&confproname=" + confproname+ "&confproid=" + confproid +"&childproid=" + childproids,
5660            "method": "POST",
5661            "mode": "cors",
5662            "credentials": "include"
5663        }).then(response => {
5664            //this.isLoading = false;
5665            //window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
5666            //fetchHtmlContent(mainproduct);
5667            if (! response.ok) console.warn('GET request failed');
5668            return response.json();
5669        }).then(result => {
5670            this.isLoading = false;
5671            window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
5672            fetchHtmlContent(mainproduct,result.is_sample_added); 
5673         }); 
5674    }
5675  </script>
5675  
5676  
5676<script>
5677  function fetchHtmlContent(pid,is_sample_added) {
5678    console.log('Fetching HTML content for PID:', pid);
5679    const formKey = hyva.getFormKey();
5680    const randomString = Math.random().toString(36).substring(2, 15);
5681    const postUrl = BASE_URL + 'sampleproduct/sample/popup/?pid='+pid;
5682    fetch(postUrl)
5683      .then(response => response.text())
5684      .then(html => {
5685        console.log('Response received:', html);
5686      let myDivelements = document.getElementsByClassName('htmlcontent'+pid);
5687      var numberofelements=myDivelements.length;
5688      for(var i=0;i<numberofelements;++i){
5689        myDivelements[i].innerHTML = html;
5690      }
5691      if(is_sample_added == 1 ){ //&& window.innerWidth <= 767
5692        document.querySelector(".order-free-sample-popup .closemodal").dispatchEvent(new Event('click'));
5693        document.querySelector("#menu-cart-icon").dispatchEvent(new Event('click'));
5694      }
5695    })
5696      .catch(error => {
5697        console.error(error);
5698      });
5699  }
5700</script>
5700  
5701    
5701<script>
5702        if (window.require) {
5703            require(['jquery', 'domReady!'], function($){
5704                if ($('.mfblogunveil').length) {
5705                    require(['Magefan_Blog/js/lib/mfblogunveil'], function(){
5706                        $('.mfblogunveil').mfblogunveil();
5707                    });
5708                }
5709            });
5710        } else {
5711            /* e.g. hyva theme */
5712            document.addEventListener("DOMContentLoaded", function(){
5713                var items =  document.getElementsByClassName('mfblogunveil');
5714                var el, url;
5715                if (items.length) {
5716                    for (var i=0; i<items.length;i++) {
5717                        el = items[i];
5718                        url = el.getAttribute('data-original');
5719                        if (!url) {
5720                            continue;
5721                        }
5722                        if ('IMG' == el.tagName) {
5723                            el.src = url;
5724                        } else {
5725                            el.style.backgroundImage = "url('" + url  + "')";
5726                        }
5727                    }
5728                }
5729            });
5730        }
5731    </script>
5731
5732
5733
5734<script>
5735    window.checkoutConfig = false;
5736    window.customerData = window.checkoutConfig.customerData;
5737    window.isCustomerLoggedIn = window.checkoutConfig.isCustomerLoggedIn;
5738</script>
5738
5739
5740<script>
5741    'use strict';
5742    (function( hyva, undefined ) {
5743        /**
5744         * Takes a form element and submits it through fetch,
5745         * then replaces the result into the document without
5746         * refreshing the page
5747         */
5748        hyva.postCart = (form) => {
5749            if (!form.action) {
5750                return;
5751            }
5752            const action = form.action;
5753            const formData = new FormData(form);
5754
5755            if (!formData.uenc) {
5756                formData.append('uenc', hyva.getUenc());
5757            }
5758
5759            formData.append('form_key', hyva.getFormKey());
5760
5761            window.fetch(action, {
5762                method: 'POST',
5763                body: formData
5764            }).then((result) => {
5765                return result.text()
5766            }).then((content) => {
5767                
5768                hyva.replaceDomElement('#maincontent', content);
5769                //Cart Improvements Start
5770                if (document.querySelector('.page.messages')) {
5771                    document.querySelector('.page.messages').style.display = 'none';
5772                }
5773
5774                setTimeout(() => {
5775                    let messageElement = document.querySelector('.message.success span');
5776                    let errorMessageElement = document.querySelector('.message.error span');
5777                    if (messageElement) {
5778                        let messageText = messageElement.innerText || messageElement.textContent;
5779                        if (messageText.includes('coupon code')) {
5780                            let parentContainer = messageElement.closest('.page.messages');
5781                            if (parentContainer) {
5782                                parentContainer.style.display = 'none';
5783                                let couponSuccessMsg = document.querySelector('.coupon-success-msg');
5784                                if (couponSuccessMsg) {
5785                                    couponSuccessMsg.innerText = messageText;
5786                                }
5787                            }
5788                        } else {
5789                            if (document.querySelector('.page.messages')) {
5790                                document.querySelector('.page.messages').style.display = 'block';
5791                            }
5792                        }
5793                    }
5794
5795                    if (errorMessageElement) {
5796                        let errorMessageText = errorMessageElement.innerText || errorMessageElement.textContent;
5797                        if (errorMessageText.includes('coupon code')) {
5798                            let parentContainer = errorMessageElement.closest('.page.messages');
5799                            if (parentContainer) {
5800                                parentContainer.style.display = 'none';
5801                                let couponErrorMsg = document.querySelector('.coupon-error-msg');
5802                                if (couponErrorMsg) {
5803                                    couponErrorMsg.innerText = errorMessageText;
5804                                }
5805                            }
5806                        } else {
5807                            if (document.querySelector('.page.messages')) {
5808                                document.querySelector('.page.messages').style.display = 'block';
5809                            }
5810                        }
5811                    }
5812                }, 50);
5813                //Cart Improvements End
5814
5815                // Select all tbody elements with a class that contains 'sku-'
5816                let elements = document.querySelectorAll("tbody[class*='sku-']");
5817                if (elements) {
5818                    let skuGroups = {};
5819                    elements.forEach(el => {
5820                        // Find the class that starts with 'sku-'
5821                        let skuClass = Array.from(el.classList).find(cls => cls.startsWith("sku-"));
5822
5823                        if (skuClass) {
5824                            // Initialize array for each SKU type
5825                            if (!skuGroups[skuClass]) {
5826                                skuGroups[skuClass] = [];
5827                            }
5828                            skuGroups[skuClass].push(el);
5829                        }
5830                    });
5831
5832                    // Loop through each SKU group and hide all except the last one
5833                    Object.values(skuGroups).forEach(group => {
5834                        group.forEach((el, index) => {
5835                            el.style.display = index === group.length - 1 ? "table-row-group" : "none";
5836                        });
5837                    });
5838                }
5839            }).catch((error) => {
5840                console.error(error);
5841                typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
5842                    [{
5843                        type: "error",
5844                        text: "Something\u0020went\u0020wrong.\u0020Please\u0020try\u0020again."
5845                    }], 10000
5846                );
5847            })
5848        }
5849    }( window.hyva = window.hyva || {} ));
5850</script>
5850
5851
5852<script>
5853
5854    function initCartForm(){
5855        return {
5856            cartIsEmpty: !!window.checkoutConfig,
5857            checkCartShouldUpdate(data) {
5858                const cart = data.cart;
5859
5860                if (this.cartIsEmpty !== !!window.checkoutConfig) {
5861                    this.cartIsEmpty = !!window.checkoutConfig;
5862                    this.reloadCartContent();
5863                    return;
5864                }
5865
5866                if (cart) {
5867                    if (!window.checkoutConfig) {
5868                        if (cart.items.length) {
5869                            this.reloadCartContent();
5870                        }
5871                        return;
5872                    }
5873
5874                    const roundUp = (number) => {
5875                        return Math.round(number * 100);
5876                    }
5877
5878                    const decimalNumbersAreEqual = (number1, number2) => {
5879                        return roundUp(number1) === roundUp(number2);
5880                    }
5881
5882                    if (window.checkoutConfig && cart) {
5883                        if (decimalNumbersAreEqual(
5884                            cart.items.reduce((totalQty, cartItem) => totalQty + cartItem.qty, 0),
5885                                window.checkoutConfig.quoteData.items_qty
5886                            ) &&
5887                            decimalNumbersAreEqual(
5888                                cart.subtotalAmount,
5889                                window.checkoutConfig.totalsData.total_segments.find((segment) => segment.code === "subtotal").value
5890                            )
5891                        ) {
5892                            return;
5893                        }
5894                    }
5895                }
5896                this.reloadCartContent();
5897            },
5898            reloadCartContent() {
5899                window.fetch(window.location.href, {
5900                    method: "GET"
5901                }).then((result) => {
5902                    return result.text()
5903
5904                }).then((body) => {
5905                    hyva.setCookie('mage-cache-sessid', '', -1, true);
5906                    window.checkoutConfig = null;
5907                    hyva.replaceDomElement('#maincontent', body)
5908
5909                }).catch((error) => {
5910                    console.error(error);
5911                    window.location.reload()
5912                })
5913            },
5914            onStorageChange(event) {
5915                if (event.key === 'private_content_version') {
5916                    window.dispatchEvent(new CustomEvent("reload-customer-section-data"));
5917                }
5918            }
5919        }
5920    }
5921</script>
5921
5922<div x-data="initCartForm()"
5923     class="cart-form clearfix"
5924     @private-content-loaded.window="checkCartShouldUpdate($event.detail.data)"
5925     @storage.window="onStorageChange($event)"
5926>
5927            <div class="cart-empty flex flex-wrap w-full py-8 items-center justify-center">
5928    <div class="cart-empty-left mr-8">
5929        <picture><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/shopping-cart-icon.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/shopping-cart-icon.png" alt="shopping-cart-icon" width="150" height="150"></picture>
5930    </div>
5931    <div class="cart-empty-right text-center">
5932                <h4 class="text-size24 font-medium text-black mb-2">Your cart&#039;s empty</h4>
5933                    <!-- Content for guest users -->
5934            <p class="text-size16 font-normal text-black mb-2">Have an account? Sign in to see your cart.</p>
5935            <p><a class="action" href="/customer/account/login/">Sign In</a></p>
5936                
5937            </div>    
5938</div>
5939    </div>
5940<script>
5941document.addEventListener("DOMContentLoaded", function () {
5942    // Select all tbody elements with a class that contains 'sku-'
5943    let elements = document.querySelectorAll("tbody[class*='sku-']");
5944    
5945    let skuGroups = {};
5946
5947    elements.forEach(el => {
5948        // Find the class that starts with 'sku-'
5949        let skuClass = Array.from(el.classList).find(cls => cls.startsWith("sku-"));
5950
5951        if (skuClass) {
5952            // Initialize array for each SKU type
5953            if (!skuGroups[skuClass]) {
5954                skuGroups[skuClass] = [];
5955            }
5956            skuGroups[skuClass].push(el);
5957        }
5958    });
5959
5960    // Loop through each SKU group and hide all except the last one
5961    Object.values(skuGroups).forEach(group => {
5962        group.forEach((el, index) => {
5963            el.style.display = index === group.length - 1 ? "table-row-group" : "none";
5964        });
5965    });
5966});
5967</script>
5967 
5967<script nonce="N2Q3enk5eGFoZ3hyejB4MzJxOThhNGsyd2lybnZpbno=">
5968    function hasWebP() {
5969        var elem = document.createElement('canvas');
5970
5971        if (!!(elem.getContext && elem.getContext('2d'))) {
5972            return elem.toDataURL('image/webp').indexOf('data:image/webp') === 0;
5973        }
5974        return false;
5975    }
5976
5977    if (hasWebP()) {
5978        document.body.classList.add("webp");
5979    } else {
5980        document.body.classList.add("no-webp");
5981    }</script>
5981    <div x-data="initKlaviyoCartTracking()" x-init="sendKlaviyoCartData()" x-defer="interact"></div>
5982    
5982<script>
5983        function initKlaviyoCartTracking() {
5984            return {
5985                sendKlaviyoCartData() {
5986                    fetch(
5987                        '/reclaim/checkout/reload?form_key=' + hyva.getFormKey(),
5988                        {
5989                            method: 'POST',
5990                            body: {},
5991                            headers: {contentType: 'application/json'}
5992                        }
5993                    )
5994                }
5995            }
5996        }
5997    </script>
5997
5998</div></div><div x-data="recommendedProducts_below_main_content()"
5999     x-init="initProductRecBlock()"
6000     id="recs_block_below_main_content"
6001     class="products__recommendations">
6002    <template x-if="productBanners">
6003        <div>
6004            <template x-for="banner in productBanners">
6005                <div class="product-slider" x-defer="intersect">
6006                    <section class="my-12 text-gray-700 body-font"
6007                        tabindex="0"
6008                        role="region"
6009                        aria-label="Recommended products carousel"
6010                        aria-roledescription="carousel"
6011                        @keydown.arrow-right.prevent="$refs.next.click()"
6012                        @keydown.arrow-left.prevent="$refs.prev.click()"
6013                    >
6014                        <div class="relative">
6015                        <div class="flex w-full">
6016                            <h3 x-text='banner.storefrontLabel'
6017                                class="font-semibold"></h3>
6018                        </div>
6019                        <div class="relative flex flex-nowrap w-full recommended-slider-items products_slider" data-content-type="recommended-products">
6020                            <div class="sr-only"
6021                                aria-live="polite"
6022                                x-text="'Showing ' + banner.products.length + ' recommended products'">
6023                            </div>
6024                            <div id="recommended-slider" class="overflow-x-hidden max-slide" data-role="glider-recommended">
6025                                <template x-for="product in banner.products">
6026                                    <div class="flex shrink-0 w-full js_slide md:w-1/3 lg:w-1/5 xl:w-1/6 recommended-slider-item">
6027                                        <form method="post" x-bind:action="createAddToCartUrl(product.productId)"
6028                                            @submit.prevent="addToCartRecsEvent($event.target, banner.unitId, product.productId)"
6029                                            class="item product product-item product_addtocart_form card card-interactive flex flex-col w-full catergory_slider_content bg-white">
6030                                            <input name="form_key" type="hidden" :value="hyva.getFormKey()"/>
6031                                            <input type="hidden" name="product" x-bind:value="product.productId">
6032                                            <a :href="new URL(product.url, window.location.origin).pathname" @click="recsClickEvent(banner.unitId, product.productId, product.url)"
6033                                            class="product photo product-item-photo block cursor-pointer"
6034                                            tabindex="-1">
6035                                                <div class="product-list-image relative w-full overflow-hidden"
6036                                                     x-data="recProductImage(product)"
6037                                                     :class="{ 'is-hovered': hovered }"
6038                                                     x-on:mouseenter="onEnter()"
6039                                                     x-on:mousemove.debounce.80ms="onMove()"
6040                                                     x-on:mouseleave="onLeave()">
6041                                                    <img class="product-list-image-primary hover:shadow-sm object-contain w-full"
6042                                                         loading="eager"
6043                                                         x-bind:alt="product.image?.label"
6044                                                         x-bind:title="product.image?.label"
6045                                                         x-bind:src="primarySrc"
6046                                                         width="360"
6047                                                         height="360"
6048                                                         decoding="async"
6049                                                         fetchpriority="high"
6050                                                         style="position: static !important;">
6051                                                    <template x-if="hoverUrl && hovered">
6052                                                        <img class="product-list-image-hover absolute inset-0 w-full h-full object-contain pointer-events-none"
6053                                                             x-bind:src="hoverUrl"
6054                                                             loading="lazy"
6055                                                             decoding="async"
6056                                                             fetchpriority="low"
6057                                                             width="360"
6058                                                             height="360"
6059                                                             x-bind:alt="product.image?.label"
6060                                                             aria-hidden="true">
6061                                                    </template>
6062                                                </div>
6063                                            </a>
6064                                            <div class="product-info flex flex-col flex-grow">
6065                                                <div
6066                                                    class="items-center justify-center font-semibold ">
6067                                                    <a :href="new URL(product.url, window.location.origin).pathname" class="product-item-link text-size16 text-black font-bold no-underline relative block cursor-pointer"
6068                                                    @click="recsClickEvent(banner.unitId, product.productId, product.url)"
6069                                                    x-text="product.name"></a>
6070                                                </div>
6071
6072                                                <div class="ratings" data-nosnippet>
6073                                                    <div data-bv-show="rating_summary"
6074                                                    x-bind:data-bv-product-id="product.sku"
6075                                                    x-bind:data-bv-redirect-url="product.url">
6076                                                    </div>
6077                                                </div>
6078                                                    
6079                                                <template x-if="product.prices">
6080                                                    <div class="pt-1 text-gray-900 price-box price-final_price" x-bind:data-product-id="product.productId">
6081                                                        <span class="normal-price">
6082                                                            <span class="price-container price-final_price">
6083                                                                <!-- <span x-show="product.prices.minimum.final !== product.prices.maximum.final"
6084                                                                    class="price-start-label">Starting From:</span> -->
6085                                                                <span id="product-price" class="price-wrapper ">
6086                                                                    <!-- <span class="price" x-text="hyva.formatPrice(product.prices.minimum.final)"></span> -->
6087                                                                    <div x-data="productPricing(product)">
6088                                                                        <div :class="priceContainerClasses" 
6089                                                                            :itemprop="schema ? 'offers' : ''" 
6090                                                                            :itemscope="schema ? true : false" 
6091                                                                            :itemtype="schema ? 'http://schema.org/Offer' : ''">
6092
6093                                                                            <!-- Price Wrapper -->
6094                                                                            <span :id="priceId" 
6095                                                                                :data-label="priceDisplayLabel" 
6096                                                                                :data-price-amount="priceAmount" 
6097                                                                                :data-price-type="priceType" 
6098                                                                                :class="priceWrapperClasses">
6099                                                                                <template x-if="priceType === 'finalPrice' && product.type === 'configurable'">
6100                                                                                    <span class="price-start-label">Starting From:</span>
6101                                                                                </template>
6102
6103                                                                                <!-- Adjusted Price Logic -->
6104                                                                                <template x-if="calculatorType && (coverage > 0 || (width > 0 && length > 0 && height > 0))">
6105                                                                                    <span>
6106                                                                                        <template x-if="minPriceVolume > 0">
6107                                                                                            <span>
6108                                                                                                <template x-if="regularPrice > specialPrice && specialPrice > 0">
6109                                                                                                    <span x-text="formatCurrency(specialPrice / minPriceVolume)"></span>
6110                                                                                                </template>
6111                                                                                                <template x-if="!(regularPrice > specialPrice && specialPrice > 0)">
6112                                                                                                    <span x-text="formatCurrency(regularPrice / minPriceVolume)"></span>
6113                                                                                                </template>
6114                                                                                                <span x-text="'/' + calculatorType"></span>
6115                                                                                            </span>
6116                                                                                        </template>
6117                                                                                    </span>
6118                                                                                </template>
6119                                                                                <template x-if="!calculatorType || minPriceVolume <= 0">
6120                                                                                    <sp
6120an class="price">
6121                                                                                        <span x-text="formatCurrency(displayValue)"></span>
6122                                                                                        <span x-text="displayValueType"></span>
6123                                                                                    </span>
6124                                                                                </template>
6125                                                                            </span>
6126
6127                                                                            <!-- MRP and Discount -->
6128                                                                            <!-- <template x-if="regularPrice > specialPrice && product.type === 'configurable'">
6129                                                                                <span class="price-mrp">
6130                                                                                    <template x-if="minPriceVolume > 0 && calculatorType">
6131                                                                                        <span class="price-mrp-new">
6132                                                                                            <span x-text="formatCurrency(regularPrice / minPriceVolume)"></span>
6133                                                                                            <span x-text="'/' + calculatorType"></span>
6134                                                                                        </span>
6135                                                                                        <span class="savePrice" x-text="'Save ' + discountPercentage + '%'"></span>
6136                                                                                    </template>
6137                                                                                    <template x-if="!(minPriceVolume > 0 && calculatorType)">
6138                                                                                        <span class="price-mrp-new">
6139                                                                                            <span x-text="formatCurrency(regularPrice)"></span>
6140                                                                                            <span>/each</span>
6141                                                                                        </span>
6142                                                                                        <span class="savePrice" x-text="'Save ' + discountPercentage + '%'"></span>
6143                                                                                    </template>
6144                                                                                </span>
6145                                                                            </template> -->
6146
6147                                                                            <!-- Adjustments -->
6148                                                                            <template x-if="adjustmentsHtml">
6149                                                                                <span x-html="adjustmentsHtml"></span>
6150                                                                            </template>
6151
6152                                                                            <!-- Schema -->
6153                                                                            <template x-if="schema">
6154                                                                                <meta itemprop="price" :content="priceAmount" />
6155                                                                                <meta itemprop="priceCurrency" :content="priceCurrency" />
6156                                                                            </template>
6157                                                                        </div>
6158                                                                    </div>                                                                   
6159                                                                </span>
6160                                                            </span>
6161                                                        </span>
6162                                                    </div>
6163                                                </template>
6164                                                    <!-- End of product price -->
6165                                            </div>                                            
6166                                        </form>
6167                                    </div>
6168                                </template>
6169                            </div>
6170                            <div class="carousel-nav flex items-center justify-center">
6171                                <button aria-label="Previous" aria-controls="recommended-slider" x-ref="prev" class="glider-prev1"></button> 
6172                                <button aria-label="Next" aria-controls="recommended-slider" x-ref="next" class="glider-next1"></button>
6173                            </div>
6174                        </div>
6175                    </div>
6176                </section>
6177                </div>
6178            </template>
6179        </div>
6180    </template>
6181</div>
6182
6183<script>
6184    function recommendedProducts_below_main_content() {
6185        return {
6186            productBanners: [],
6187            pagePreconfiguredDeferred: {},
6188            bannerPlacement: 'below-main-content',
6189            allProductIds: '',
6190            initProductRecBlock: function (placement) {
6191                let self = this;
6192                window.magentoStorefrontEvents.subscribe.recsResponseReceived(function () {
6193                    let recsData = window.magentoStorefrontEvents.context.getRecommendations();
6194                    self.renderProductRecs(recsData);
6195                });
6196            },
6197            renderProductRecs: function (recsData) {
6198                let self = this;
6199                let allProductIds = [];
6200
6201                recsData.units.sort((a, b) => a.displayOrder - b.displayOrder);
6202
6203                recsData.units.forEach(function (unit, index) {
6204                    if (unit.pagePlacement === self.bannerPlacement) {
6205                        self.productBanners.push(unit);
6206
6207                        // Collect all product IDs from this unit
6208                        if (unit.products && unit.products.length > 0) {
6209                            unit.products.forEach(function(product) {
6210                                allProductIds.push(product.productId);
6211                            });
6212                        }
6213
6214                        /** @todo move event outside of recsResponseReceived event **/
6215                        window.magentoStorefrontEvents.publish.recsUnitRender(
6216                            unit.unitId, magentoStorefrontEvents.context
6217                        );
6218                    }
6219                });
6220
6221                // Store comma-separated product IDs
6222                self.allProductIds = allProductIds.join(',');
6223                
6224                // Fetch calculated prices and hover images for all products at once
6225                if (self.allProductIds) {
6226                    self.fetchAllCalculatedPrices(self.allProductIds);
6227                    if (window.matchMedia('(hover: hover) and (pointer: fine)').matches) {
6228                        self.fetchAllHoverImages(self.allProductIds);
6229                    }
6230                }
6231            },
6232            fetchAllHoverImages: function (productIds) {
6233                const baseUrl = "https\u003A\u002F\u002Fwww.flooringinc.com\u002F";
6234                const fetchUrl = baseUrl + 'hyvaproductrecommendation/product/listhoverimage/productId/' + productIds;
6235
6236                if (!window.hoverImagesCachePromise) {
6237                    window.hoverImagesCachePromise = fetch(fetchUrl)
6238                        .then(response => response.json())
6239                        .then(data => {
6240                            window.hoverImagesCache = data.success && data.hoverImages
6241                                ? data.hoverImages
6242                                : {};
6243                            return window.hoverImagesCache;
6244                        })
6245                        .catch(() => {
6246                            window.hoverImagesCache = {};
6247                            return window.hoverImagesCache;
6248                        });
6249                }
6250
6251                return window.hoverImagesCachePromise;
6252            },
6253            fetchAllCalculatedPrices: function(productIds) {
6254                var baseUrl = "https://www.flooringinc.com/";
6255                var fetchUrl = baseUrl + 'hyvaproductrecommendation/product/calculatedprice/productId/' + productIds;
6256                
6257                // Create a promise that other components can wait for
6258                if (!window.calculatedPricesCachePromise) {
6259                    window.calculatedPricesCachePromise = fetch(fetchUrl)
6260                        .then(response => response.json())
6261                        .then(data => {
6262                            // Store the price data globally so productPricing can access it
6263                            if (!window.calculatedPricesCache) {
6264                                window.calculatedPricesCache = {};
6265                            }
6266                            window.calculatedPricesCache = data;
6267                            return data;
6268                        })
6269                        .catch(error => {
6270                            console.log('Error fetching calculated prices:', error);
6271                            return {};
6272                        });
6273                }
6274                return window.calculatedPricesCachePromise;
6275            },
6276            addToCartRecsEvent: function (e, unitId, productId) {
6277                // requires recommendationsContext to be set
6278                magentoStorefrontEvents.publish.recsItemAddToCartClick(
6279                    unitId, productId, magentoStorefrontEvents.context
6280                );
6281                // Timeout to prevent submission before event has fired.
6282                setTimeout(() => e.submit(), 500);
6283            },
6284            scrollViewEvent: function (unitId) {
6285                magentoStorefrontEvents.publish.recsUnitView(
6286                    unitId, magentoStorefrontEvents.context
6287                );
6288            },
6289            recsClickEvent: function (unitId, productId, productUrl) {
6290                magentoStorefrontEvents.publish.recsItemClick(
6291                    unitId, productId, magentoStorefrontEvents.context
6292                );
6293                // Timeout to prevent submission before event has fired.
6294                //setTimeout(() => window.location.href = productUrl, 500);
6295            },
6296            createAddToCartUrl: function (productId) {
6297                const currentLocationUENC = encodeURIComponent(
6298                    this.encodeUenc(BASE_URL),
6299                );
6300                return BASE_URL +
6301                    "checkout/cart/add/uenc/" +
6302                    currentLocationUENC +
6303                    "/product/" +
6304                    productId
6305            },
6306            encodeUenc: function (value) {
6307                const regex = /=/gi;
6308                return btoa(value).replace(regex, ",");
6309            },
6310        }
6311    }
6312</script>
vendor: 1 bytes, line 6312
6312
6313<script>
6314    'use strict';
6315(() => {
6316    const initCarousels = (elements) => {
6317        if (typeof Glider === 'undefined') {
6318            console.error("Glider.js is not loaded.");
6319            return;
6320        }
6321
6322        elements.forEach((carousel) => {
6323            const gliderElement = carousel.querySelector('[data-role="glider-recommended"]');
6324            if (!gliderElement) {
6325                console.warn("Glider element not found.");
6326                return;
6327            }
6328
6329            const gliderPrev = carousel.querySelector('.glider-prev1');
6330            const gliderNext = carousel.querySelector('.glider-next1');
6331
6332            const totalSlides = gliderElement.querySelectorAll('.js_slide').length;
6333
6334            // Hide arrows if slides are 6 or less
6335            if (totalSlides <= 6) {
6336                if (gliderPrev) gliderPrev.style.display = 'none';
6337                if (gliderNext) gliderNext.style.display = 'none';
6338            } else {
6339                if (gliderPrev) gliderPrev.style.display = '';
6340                if (gliderNext) gliderNext.style.display = '';
6341            }
6342            // Initialize Glider
6343            const glider = new Glider(gliderElement, {
6344                slidesToShow: 6,
6345                slidesToScroll: 1,
6346                scrollLock: false,
6347                draggable: true,
6348                dragVelocity: 1.3,
6349                arrows: {
6350                    prev: gliderPrev,
6351                    next: gliderNext,
6352                },
6353                responsive: [
6354                    { breakpoint: 768, settings: { slidesToShow: 2, slidesToScroll: 1 } },
6355                    { breakpoint: 1024, settings: { slidesToShow: 4, slidesToScroll: 1 } },
6356                    { breakpoint: 1366, settings: { slidesToShow: 6, slidesToScroll: 1} },
6357                ],
6358            });
6359          
6360            const preventDraggingOnInputs = (gliderElement) => {
6361                gliderElement.querySelectorAll('select, input').forEach((el) => {
6362                    el.addEventListener('mousedown', (event) => {                        
6363                        event.stopPropagation(); // Prevent Glider drag from starting
6364                    });
6365
6366                    el.addEventListener('touchstart', (event) => {
6367                        event.stopPropagation(); // Prevent drag on touch devices
6368                    });
6369                });
6370            };
6371
6372            // Call this inside initCarousels after Glider initialization
6373            preventDraggingOnInputs(gliderElement);
6374            
6375            // Add event listener to handle the disabled class
6376            gliderElement.addEventListener('glider-refresh', () => {
6377                requestAnimationFrame(() => {
6378                    const hasNext = gliderElement.scrollWidth - gliderElement.scrollLeft > gliderElement.clientWidth;
6379                    const hasPrev = gliderElement.scrollLeft > 0;
6380
6381                    gliderNext.classList.toggle('disabled', !hasNext);
6382                    gliderPrev.classList.toggle('disabled', !hasPrev);
6383                    gliderNext.setAttribute('aria-disabled', !hasNext);
6384                    gliderPrev.setAttribute('aria-disabled', !hasPrev);
6385                });
6386            });
6387
6388            // Force a refresh to ensure state is accurate on initialization
6389            glider.refresh();
6390        });
6391    };
6392
6393    const loadGliderScript = (callback) => {
6394        const script = document.createElement('script');
6395        script.type = 'text/javascript';
6396        script.src = "https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Magento_PageBuilder/js/glider.min.js";
6397        script.addEventListener('load', callback);
6398        document.head.appendChild(script);
6399    };
6400
6401    const observeCarousels = () => {
6402        const observer = new MutationObserver((mutationsList) => {
6403            let found = false;
6404
6405            for (const mutation of mutationsList) {
6406            if (mutation.type === 'childList') {
6407                for (const node of mutation.addedNodes) {
6408                if (node.nodeType === 1) {
6409                    const carousels = node.querySelectorAll?.('[data-content-type="recommended-products"]');
6410                    if (carousels.length) {
6411                    found = true;
6412                    requestAnimationFrame(() => {
6413                        observer.disconnect();
6414                        initCarousels(carousels);
6415                    });
6416                    break;
6417                    }
6418                }
6419                }
6420            }
6421            if (found) break;
6422            }
6423        });
6424
6425        observer.observe(document.body, { childList: true, subtree: true });
6426    };
6427
6428    window.addEventListener('DOMContentLoaded', () => {
6429        loadGliderScript(() => {
6430            // Check if carousels are already in the DOM
6431            const carouselElements = document.querySelectorAll('[data-content-type="recommended-products"]');
6432            if (carouselElements.length > 0) {
6433                initCarousels(carouselElements);
6434            } else {
6435                // Use MutationObserver to wait for dynamic content
6436                observeCarousels();                
6437            }
6438        });
6439    });
6440})();
6441</script>
6441
6442
6443<script>
6444    function recProductImage(product) {
6445        return {
6446            hovered: false,
6447            over: false,
6448            hoverTimer: null,
6449            hoverUrl: null,
6450            isDesktopHover: window.matchMedia('(hover: hover) and (pointer: fine)').matches,
6451            primarySrc() {
6452                const url = product.image?.url || '';
6453                if (!url) {
6454                    return '';
6455                }
6456                return url + (url.includes('?') ? '&' : '?') + 'width=428&height=210';
6457            },
6458            init() {
6459                if (!this.isDesktopHover) {
6460                    return;
6461                }
6462                this.resolveHoverUrl();
6463            },
6464            resolveHoverUrl() {
6465                const id = String(product.productId);
6466                const apply = (url) => {
6467                    if (url) {
6468                        this.hoverUrl = url;
6469                    }
6470                };
6471
6472                if (window.hoverImagesCache?.[id]) {
6473                    apply(window.hoverImagesCache[id]);
6474                    return;
6475                }
6476
6477                if (window.hoverImagesCachePromise) {
6478                    window.hoverImagesCachePromise.then(() => apply(window.hoverImagesCache?.[id]));
6479                }
6480            },
6481            onEnter() {
6482                if (!this.isDesktopHover || !this.hoverUrl) {
6483                    return;
6484                }
6485                this.over = true;
6486                clearTimeout(this.hoverTimer);
6487                this.hoverTimer = setTimeout(() => {
6488                    if (this.over) {
6489                        this.hovered = true;
6490                    }
6491                }, 80);
6492            },
6493            onMove() {
6494                if (!this.isDesktopHover || !this.over || !this.hoverUrl) {
6495                    return;
6496                }
6497                this.hovered = true;
6498            },
6499            onLeave() {
6500                this.over = false;
6501                this.hovered = false;
6502                clearTimeout(this.hoverTimer);
6503            },
6504            destroy() {
6505                clearTimeout(this.hoverTimer);
6506            },
6507        };
6508    }
6509
6510    function productPricing(product) {
6511        return {
6512            // Variables
6513            regularPrice: 0,
6514            specialPrice: 0,
6515            calculatorType: '',
6516            coverage: 0,
6517            width: 0,
6518            length: 0,
6519            height: 0,
6520            minPriceVolume: 0,
6521            displayValue: 0,
6522            priceAmount: 0,
6523            priceType: 'finalPrice',
6524            priceCurrency: 'USD',
6525            discountPercentage: 0,
6526            adjustmentsHtml: '', // Placeholder for adjustment logic
6527            schema: true,
6528            displayValueType: '/each',
6529
6530            // Dynamic Classes
6531            priceContainerClasses: 'price-container',
6532            priceWrapperClasses: 'price-wrapper',
6533            priceId: '', // Add logic for dynamic IDs if needed
6534            priceDisplayLabel: '',
6535
6536            // Initialization
6537            init() {
6538                // Load product attributes
6539                //console.log("product==="+JSON.stringify(product));
6540                const attributes = product.attributes;
6541
6542                // Regular and Special Prices
6543                this.regularPrice = product.prices.minimum.regular || 0;
6544                this.specialPrice = product.prices.minimum.final || this.regularPrice;
6545
6546                // Calculator Type and Dimensions
6547                this.calculatorType = attributes.incstores_pim_calculator_type || '';
6548                this.coverage = attributes.config_coverage || 0;
6549                this.width = (attributes.incstores_pim_width_inches || 0) / 12;
6550                this.length = (attributes.incstores_pim_length_inches || 0) / 12;
6551                this.height = (attributes.incstores_pim_height_inches || 0) / 12;
6552
6553                // Calculate Price per Volume
6554                if (this.calculatorType && (this.coverage > 0 || (this.width > 0 && this.length > 0 && this.height > 0))) {
6555                    if (this.calculatorType === 'case') {
6556                        this.minPriceVolume = this.coverage;
6557                    } else {
6558                        this.minPriceVolume = this.width * this.length * this.height;
6559                    }
6560
6561                    if (this.minPriceVolume > 0) {
6562                        const pricePerUnit =
6563                            this.regularPrice > this.specialPrice && this.specialPrice > 0
6564                                ? this.specialPrice / this.minPriceVolume
6565                                : this.regularPrice / this.minPriceVolume;
6566
6567                        this.displayValue = pricePerUnit;
6568                    }
6569                } else {
6570                    this.displayValue = this.regularPrice;
6571                }
6572
6573                const productId = product.productId;
6574                const self = this;
6575
6576                // Wait for the batch price cache to be ready
6577                if (window.calculatedPricesCachePromise) {
6578                    window.calculatedPricesCachePromise.then(() => {
6579                        // Now the cache should be populated
6580                        if (window.calculatedPricesCache && window.calculatedPricesCache[productId]) {
6581                            let productData = window.calculatedPricesCache[productId];
6582                            if (productData.success && productData.priceData && productData.priceData.price) {
6583                                let customPrice = productData.priceData.price;
6584                                let calType = productData.priceData.calType;
6585                                self.displayValue = customPrice;
6586                                self.displayValueType = '/' + calType;
6587                                if (calType == 'none') {
6588                                    self.displayValueType = '';
6589                                }
6590                            }
6591                        }
6592                    });
6593                } else {
6594                    // Fallback: fetch individual product price if batch call was not initiated
6595                    var baseUrl = "https://www.flooringinc.com/";
6596                    var fetchUrl = baseUrl + 'hyvaproductrecommendation/product/calculatedprice/productId/' + productId;
6597
6598                    fetch(fetchUrl)
6599                        .then(response => response.json())
6600                        .then(data => {
6601                            if (data.success) {
6602                                let customPrice = data.priceData.price;
6603                                if (data.priceData.price) {
6604                                    let calType = data.priceData.calType;
6605                                    self.displayValue = customPrice;
6606                                    self.displayValueType = '/' + calType;
6607                                    if (calType == 'none') {
6608                                        self.displayValueType = '';
6609                                    }
6610                                }
6611                            }
6612                        })
6613                        .catch(error => {
6614                            console.log(error);
6615                        });
6616                }
6617
6618                // Calculate Discount
6619                if (this.regularPrice > this.specialPrice) {
6620                    const savePrice = this.regularPrice - this.specialPrice;
6621                    this.discountPercentage = Math.round((savePrice * 100) / this.regularPrice);
6622                }
6623            },
6624
6625            // Utility Functions
6626            formatCurrency(value) {
6627                value = Number(String(value).replace(/,/g, ''));
6628                return `$${value.toFixed(2)}`;
6629            },
6630        };
6631    }
6632</script>
vendor: 1 bytes, line 6632
6632
6633<script>
6634    document.addEventListener("DOMContentLoaded", function () {
6635        let relatedProducts = document.querySelector(".related-products-section");
6636        let recommendations = document.querySelector(".products__recommendations");
6637
6638        if (relatedProducts && recommendations) {
6639            relatedProducts.parentNode.insertBefore(recommendations, relatedProducts.nextSibling);
6640        }
6641    });
6642</script>
6642
6643</main><footer class="page-footer"><div class="footer content">
6644<style>#html-body [data-pb-style=MQRPJ36],#html-body [data-pb-style=TCILD21]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=TCILD21]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=MQRPJ36]{align-self:stretch}#html-body [data-pb-style=L8W4GF3]{display:flex;width:100%}#html-body [data-pb-style=P3M9UW9]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:66.6667%;align-self:stretch}#html-body [data-pb-style=CJ8VT2Q]{border-style:none}#html-body [data-pb-style=CMMU4DK],#html-body [data-pb-style=SD11GJS]{max-width:100%;height:auto}#html-body [data-pb-style=PQE5PAT]{justify-content:flex-start;display:flex;flex-direction:column;width:33.3333%;align-self:stretch}#html-body [data-pb-style=O5JDDOV],#html-body [data-pb-style=PQE5PAT],#html-body [data-pb-style=S30DD27]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=S30DD27]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=O5JDDOV]{align-self:stretch}#html-body [data-pb-style=E1QMNND]{display:flex;width:100%}#html-body [data-pb-style=AGQGWH8],#html-body [data-pb-style=B6GEF9I]{justify-content:flex-start;display:flex;flex-direction:column;align-self:stretch}#html-body [data-pb-style=B6GEF9I]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:58.3333%}#html-body [data-pb-style=AGQGWH8]{width:41.6667%}#html-body [data-pb-style=AGQGWH8],#html-body [data-pb-style=AWDS0W8],#html-body [data-pb-style=W8FW3EE]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=W8FW3EE]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=AWDS0W8]{align-self:stretch}#html-body [data-pb-style=PHW76I9]{display:flex;width:100%}#html-body [data-pb-style=HVOCS1N],#html-body [data-pb-style=TPKYLUC]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}@media only screen and (max-width: 768px) { #html-body [data-pb-style=CJ8VT2Q]{border-style:none} }</style><div class="footer_top bg-white pb-2" data-content-type="row" data-appearance="full-bleed" 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="main" data-pb-style="TCILD21"><div class="pagebuilder-column-group" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="MQRPJ36"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="L8W4GF3"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="P3M9UW9"><figure data-content-type="image" data-appearance="full-width" data-element="main" data-pb-style="CJ8VT2Q"><picture class="pagebuilder-mobile-hidden"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/flooring_logo.webp"><img class="pagebuilder-mobile-hidden" src="https://www.flooringinc.com/media/wysiwyg/flooring_logo.png" alt="Logo" title="Logo" width="266" height="80" loading="lazy" data-element="desktop_image" data-pb-style="SD11GJS" loading="lazy"></picture><picture class="pagebuilder-mobile-only"><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/flooring_logo.webp"><img class="pagebuilder-mobile-only" src="https://www.flooringinc.com/media/wysiwyg/flooring_logo.png" alt="Logo" title="Logo" width="189" height="56" loading="lazy" data-element="mobile_image" data-pb-style="CMMU4DK" loading="lazy"></picture></figure></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="PQE5PAT"><div data-content-type="text" data-appearance="default" data-element="main"><ul>
6645<li><a tabindex="0" href="https://www.facebook.com/rubberflooringinc" target="_blank" rel="noopener"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon1.webp"><img id="BTPM32X" style="width: 10px; height: 20px;" src="https://www.flooringinc.com/media/wysiwyg/footer-icon1.png" alt="Facebook" width="10" height="20" loading="lazy" loading="lazy"></picture></a></li>
6646<li><a tabindex="0" href="https://www.instagram.com/flooring_inc/" target="_blank" rel="noopener"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon2.webp"><img id="PXIY4FF" style="width: 21px; height: 20px;" src="https://www.flooringinc.com/media/wysiwyg/footer-icon2.png" alt="Twitter" width="21" height="20" loading="lazy" loading="lazy"></picture></a></li>
6647<li><a tabindex="0" href="https://www.pinterest.com/flooringinc/" target="_blank" rel="noopener"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon3.webp">
6647<img style="width: 20px; height: 20px;" src="https://www.flooringinc.com/media/wysiwyg/footer-icon3.png" alt="print" width="20" height="20" loading="lazy" loading="lazy"></picture></a></li>
6648<li><a tabindex="0" href="https://www.youtube.com/user/flooringincvideos" target="_blank" rel="noopener"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/youtube-icon.webp"><img id="I49QFU6" style="width: 25px; height: 18px;" src="https://www.flooringinc.com/media/wysiwyg/youtube-icon.png" alt="Youtube" width="25" height="18" loading="lazy" loading="lazy"></picture></a></li>
6649</ul></div></div></div></div></div><div class="footer_middle bg-white pb-2" data-content-type="row" data-appearance="full-bleed" 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="main" data-pb-style="S30DD27"><div class="pagebuilder-column-group footer-wrap" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="O5JDDOV"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="E1QMNND"><div class="pagebuilder-column footer_middle_lft" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="B6GEF9I"><div data-content-type="block" data-appearance="default" data-element="main"><div class="widget block block-static-block">
6650    <style>#html-body [data-pb-style=CISRX33],#html-body [data-pb-style=K247IQ3]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll}#html-body [data-pb-style=K247IQ3]{justify-content:flex-start;display:flex;flex-direction:column}#html-body [data-pb-style=CISRX33]{align-self:stretch}#html-body [data-pb-style=GV5A1RW]{display:flex;width:100%}#html-body [data-pb-style=IE3QT2M],#html-body [data-pb-style=K294VVH],#html-body [data-pb-style=N7Q79IV]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:33.3333%;align-self:stretch}</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="K247IQ3"><div class="pagebuilder-column-group footer_middle_left" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="CISRX33"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="GV5A1RW"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="N7Q79IV"><h4 class="text-lg font-medium text-black mb-2" data-content-type="heading" data-appearance="default" data-element="main">Company info</h4><div data-content-type="text" data-appearance="default" data-element="main"><ul>
6651<li style="line-height: 10px;"><a id="T6SH02B" tabindex="0" href="/contact">Contact Us</a></li>
6652<li style="line-height: 10px;"><a tabindex="0" href="/about">About Us</a></li>
6653<li style="line-height: 10px;"><a id="EHRBRCU" tabindex="0" href="/careers">Careers</a></li>
6654<li style="line-height: 10px;"><a tabindex="0" href="/privacy-policy">Privacy Policy</a></li>
6655<li style="line-height: 10px;"><a tabindex="0" href="/affirm">Affirm</a></li>
6656<li style="line-height: 10px;"><a tabindex="0" href="/our-commitment-accessibility">Accessibility</a></li>
6657<li style="line-height: 10px;"><a tabindex="0" href="/terms-and-conditions">Terms &amp; Conditions</a></li>
6658</ul></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="K294VVH"><h4 class="text-lg font-medium text-black mb-2" data-content-type="heading" data-appearance="default" data-element="main">Customer Service</h4><div data-content-type="text" data-appearance="default" data-element="main"><ul>
6659<li><a tabindex="0" href="/shipping-info">Shipping</a></li>
6660<li><a id="ER5IYQ2" tabindex="0" href="/sales/guest/form">Track Order</a></li>
6661<li><a tabindex="0" href="/returns-exchanges">Returns &amp; Exchanges</a></li>
6662<li><a tabindex="0" href="/moneybackguarantee">Money Back Guarantee</a></li>
6663<li id="W8TRHHE"><a tabindex="0" href="/pro-advantage">Pro Advantage</a></li>
6664<li><a href="/dor-sites">Sales &amp; Use Tax</a></li>
6665</ul></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="IE3QT2M"><h4 class="text-lg font-medium text-black mb-2" data-content-type="heading" data-appearance="default" data-element="main">Quick Links</h4><div data-content-type="text" data-appearance="default" data-element="main"><ul>
6666<li><a tabindex="0" href="/knowledge-base">FAQs</a></li>
6667<li><a tabindex="0" href="/sample-request">Samples</a></li>
6668<li><a tabindex="0" href="https://flooringinc.cashstar.com/store/recipient?locale=en-us">Gift Cards</a></li>
6669<li><a href="/promotions-disclaimer">Promotions</a></li>
6670</ul></div></div></div></div></div></div></div>
6671</div></div><div class="pagebuilder-column pl-6 footer_middle_rgt" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="AGQGWH8"><div data-content-type="block" data-appearance="default" data-element="main"><div class="widget block block-static-block">
6672    <style>#html-body [data-pb-style=KSEJOAX]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=H19I5XA]{display:flex;width:100%}#html-body [data-pb-style=F8YKO2R],#html-body [data-pb-style=L0EMJM5]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:41.6667%;align-self:stretch}#html-body [data-pb-style=L0EMJM5]{width:58.3333%}#html-body [data-pb-style=K1G3B6J]{text-align:right}</style><div class="pagebuilder-column-group footer_middle_right" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="KSEJOAX"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="H19I5XA"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="F8YKO2R"><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><div class="w-full">
6673    <form class="form subscribe" action="https://www.flooringinc.com/newsletter/subscriber/new/" method="post" x-data="initNewsletterForm()" @submit.prevent="submitForm(
6673)" id="newsletter-validate-detail">
6674        <div class="mb-3 text-sm font-medium tracking-widest text-gray-900 uppercase title-font">
6675            <h4 class="text-lg font-medium text-black mb-1 capitalize">Get Ready To Be Floored!</h4>
6676            <p calss="sub_heading capitalize">Join our insider's club</p>
6677        </div>
6678        <div class="flex flex-wrap justify-center gap-2 md:justify-start">
6679            <label for="newsletter-subscribe" class="sr-only">
6680                Email Address            </label>
6681            <input name="email" type="email" required id="newsletter-subscribe" class="form-input inline-flex w-full" placeholder="Enter email address">
6682            <input name="form_key" type="hidden" value="tGAOudjzgYs06SIA">                        <button class="btn btn-primary">
6683                Subscribe Now            </button>
6684        </div>
6685        <div>
6686            <template x-if="displayErrorMessage">
6687                <p class="flex items-center text-red">
6688                    <span class="inline-block w-8 h-8 mr-3">
6689                        <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">
6690  <path stroke-linecap="round" stroke-linejoin="round" d="M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
6691<title>exclamation-circle</title></svg>
6692                    </span>
6693                    <template x-for="errorMessage in errorMessages">
6694                        <span x-html="errorMessage"></span>
6695                    </template>
6696                </p>
6697            </template>
6698        </div>
6699    </form>
6700    <div class="w-full">
6701            </div>
6702    
6702<script>
6703        function initNewsletterForm() {
6704            return {
6705                errors: 0,
6706                hasCaptchaToken: 0,
6707                displayErrorMessage: false,
6708                errorMessages: [],
6709                setErrorMessages(messages) {
6710                    this.errorMessages = [messages]
6711                    this.displayErrorMessage = this.errorMessages.length
6712                },
6713                submitForm() {
6714                    // Do not rename $form, the variable is expected to be declared in the recaptcha output
6715                    const $form = document.querySelector('#newsletter-validate-detail');
6716                    
6717                    if (this.errors === 0) {
6718                        $form.submit();
6719                    }
6720                }
6721            }
6722        }
6723    </script>
6723
6724</div>
6725
6726<div class="pr-4 lg:w-1/4 md:w-1/2">
6727
6728</div>    </div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="L0EMJM5"><h4 class="text-lg font-medium text-black mb-6" data-content-type="heading" data-appearance="default" data-element="main" data-pb-style="K1G3B6J">Flooring Inc.</h4><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: right;">1958 Almaville Road Suite #110</p></div><div data-content-type="text" data-appearance="default" data-element="main"><p id="JM1KPUH" style="text-align: right;">Smyrna, TN 37167</p></div><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: right;">p. <a tabindex="0" href="tel:8664166388">(866) 416-6388</a></p></div><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: right;">e. <a id="H0FVHR7" tabindex="0" href="/contact">[email protected]</a></p></div><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: right;"><strong>Hours (All times ET)</strong></p></div><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: right;">Mon - Fri &nbsp; 9 am - 6 pm</p></div><div data-content-type="text" data-appearance="default" data-element="main"><p style="text-align: right;">Saturday 9 am - 5 pm <strong>(Sales Chat Only)</strong></p></div></div></div></div></div>
6729</div></div></div></div></div><div class="footer_bottom bg-white" data-content-type="row" data-appearance="full-bleed" 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="main" data-pb-style="W8FW3EE"><div class="pagebuilder-column-group footer-wrap" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="AWDS0W8"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="PHW76I9"><div class="pagebuilder-column footer_bottom_lft" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="TPKYLUC"><div data-content-type="text" data-appearance="default" data-element="main"><p>&copy; Copyright 2010-2026 IncStores LLC. | All rights reserved.</p></div></div><div class="pagebuilder-column footer_bottom_rgt" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="HVOCS1N"><div data-content-type="block" data-appearance="default" data-element="main"><div class="widget block block-static-block">
6730    <style>#html-body [data-pb-style=UD4KGT3]{background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;align-self:stretch}#html-body [data-pb-style=QSS87SS]{display:flex;width:100%}#html-body [data-pb-style=IC77K1S],#html-body [data-pb-style=O5JWPM0]{justify-content:flex-start;display:flex;flex-direction:column;background-position:left top;background-size:cover;background-repeat:no-repeat;background-attachment:scroll;width:50%;align-self:stretch}</style><div class="pagebuilder-column-group footer_bottom_right" data-background-images="{}" data-content-type="column-group" data-appearance="default" data-grid-size="12" data-element="main" data-pb-style="UD4KGT3"><div class="pagebuilder-column-line" data-content-type="column-line" data-element="main" data-pb-style="QSS87SS"><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="IC77K1S"><div data-content-type="text" data-appearance="default" data-element="main"><ul>
6731<li><a title="Better Business Bureau - Flooring Inc." href="https://www.bbb.org/us/az/phoenix/profile/retail-floor-materials/flooringinccom-1126-97031168" target="_blank" rel="noopener"><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-bbb.webp"><img id="BQMJYDJ" style="width: 129px; height: 35px;" src="https://www.flooringinc.com/media/wysiwyg/footer-bbb.png" alt="" width="125" height="34" loading="lazy" loading="lazy"></picture></a></li>
6732<li>Checks <picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon5.webp"><img style="width: 12px; height: 12px;" src="https://www.flooringinc.com/media/wysiwyg/footer-icon5.png" alt="" width="12" height="12" loading="lazy" loading="lazy"></picture> accepted by mail</li>
6733</ul></div></div><div class="pagebuilder-column" data-content-type="column" data-appearance="full-height" data-background-images="{}" data-element="main" data-pb-style="O5JWPM0"><div data-content-type="text" data-appearance="default" data-element="main"><ul>
6734<li><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon6.webp"><img src="https://www.flooringinc.com/media/wysiwyg/footer-icon6.png" alt="" width="33" height="25" loading="lazy" loading="lazy"></picture></li>
6735<li><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon7.webp"><img src="https://www.flooringinc.com/media/wysiwyg/footer-icon7.png" alt="" width="30" height="19" loading="lazy" loading="lazy"></picture></li>
6736<li><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon8.webp"><img src="https://www.flooringinc.com/media/wysiwyg/footer-icon8.png" alt="" width="34" height="26" loading="lazy" loading="lazy"></picture></li>
6737<li><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon9.webp"><img src="https://www.flooringinc.com/media/wysiwyg/footer-icon9.png" alt="" width="33" height="21" loading="lazy" loading="lazy"></picture></li>
6738<li><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon10.webp"><img src="https://www.flooringinc.com/media/wysiwyg/footer-icon10.png" alt="" width="39" height="26" loading="lazy" loading="lazy"></picture></li>
6739<li><picture><source type="image/webp" srcset="https://www.flooringinc.com/media/wysiwyg/footer-icon11.webp"><img src="https://www.flooringinc.com/media/wysiwyg/footer-icon11.png" alt="" width="39" height="26" loading="lazy" loading="lazy"></picture></li>
6740<li><button id="uw-widget-custom-trigger" class="uw-widget-custom-trigger" aria-label="Accessibility Widget" data-uw-ignore-s25="true" data-uw-trigger="true" aria-haspopup="dialog"></button></li>
6741</ul></div></div></div></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true"><style>
6742.checkout-cart-index .summary-cart .cart-discount{display:block;}
6743.page-with-filter .products.wrapper.mode-list.products-list .item.product .catergory_slider_content .compare-buttons .compare-buttons-mobile{order:2;}
6744.checkout-payment-method .payment-method .payment-method-title.field.choice input#paypal_express+label{display:block;}.catalog-product-view .youMayAlso.products_slider a.priceBlock, .catalog-product-view .youMayAlso.products_slider .price-box{min-height: 95px;align-items: flex-start;}
6745@media(min-width:1280px){.mega_menu_banner img{max-width: 239px !important;}}
6746.cms-home .catergory_slider_content .product-item-link{font-size: .875rem;line-height: 1.313rem;}
6747@media(min-width: 768px){
6748.catergory_slider_content .compare-buttons .qty_fields{width:auto;order: 2;}.catergory_slider_content .compare-buttons .ship-fax-plp{width:100%;order: 1;border-bottom:1px solid rgb(178,178,178);}
6748.catergory_slider_content .compare-buttons .orderSampleContent{order:3;}
6749.catergory_slider_content .compare-buttons .ship-fax-plp .ship-iconsada{display: block;}
6750.page-products #maincontent .products.mode-grid .catergory_slider_content .compare-buttons .orderSampleContent{order: 3;}
6751   .category_banner .pagebuilder-column-group .pagebuilder-column-line .pagebuilder-column figure picture{height: 100% !important;object-fit:cover;}
6752[data-content-type=products][data-appearance=carousel] [data-role=glider-content] .item.product{min-width: 370px;width: 370px;max-width: 370px;}[data-content-type=products][data-appearance=carousel] [data-role=glider-content]{display: flex;flex-wrap: nowrap;overflow-x: auto;}
6753.cms-home [data-content-type=products][data-appearance=carousel] [data-role=glider-content] .item.product:not(.glider-slide){min-width: 370px;}
6754[data-content-type=products][data-appearance=carousel] [data-role=glider-content]:not(.glider)::-webkit-scrollbar{width: 10px;}
6755[data-content-type=products][data-appearance=carousel] [data-role=glider-content]:not(.glider)::-webkit-scrollbar-track {background: #ffffff !important;}
6756[data-content-type=products][data-appearance=carousel] [data-role=glider-content]:not(.glider)::-webkit-scrollbar-thumb {background: #ffffff !important;}
6757}
6758@media(min-width: 768px){
6759  .featured_partners .swiper-container:not(.swiper-initialized){display: flex;overflow-x: auto;flex-wrap: nowrap;width: 100%;max-width: 100%;min-width: 100%;transform: inherit;}
6760  .featured_partners .swiper-container:not(.swiper-initialized) .swiper-slide{width: 16%;}
6761  .featured_partners .swiper-container:not(.swiper-initialized)::-webkit-scrollbar{width: 10px;}
6762  .featured_partners .swiper-container:not(.swiper-initialized)::-webkit-scrollbar-track {background: #ffffff !important;}
6763  .featured_partners .swiper-container:not(.swiper-initialized)::-webkit-scrollbar-thumb {background: #ffffff !important;}
6764  .featured_partners .swiper-container:not(.swiper-initialized)::-webkit-scrollbar-thumb:hover {background: #ffffff !important;}
6765}
6766@media(max-width:767px){.page-products #maincontent .toolbar.toolbar-products .pages-items{justify-content: center;gap: 10px;box-shadow: none;}}
6767</style></div></div>
6768</div></div></div></div><div data-content-type="html" data-appearance="default" data-element="main" data-decoded="true">
6768<script>
6769    document.addEventListener('DOMContentLoaded', function () {
6770        const gallery = document.querySelector('#gallery');
6771        const header = document.querySelector('#header');
6772        if (!gallery || !header) return;
6773        const stickyTop = header.offsetHeight;
6774        // parent/container where sticky should stop
6775        const parent = gallery.parentElement;
6776        function checkSticky() {
6777            const rect = gallery.getBoundingClientRect();
6778            const parentRect = parent.getBoundingClientRect();
6779            // sticky active only while parent still has space
6780            const isSticky =
6781                rect.top <= stickyTop &&
6782                parentRect.bottom > rect.height + stickyTop;
6783            document.body.classList.toggle('gallery-sticky', isSticky);
6784        }
6785        checkSticky();
6786        window.addEventListener('scroll', checkSticky);
6787        window.addEventListener('resize', checkSticky);
6788    });
6789</script>
6789
6790<style>
6791@media (min-width: 1200px) {
6792    .megamenu_items:hover>.megamenu {
6793        max-width: 1440px;
6794    }
6795}
6796.products__recommendations .products_slider .catergory_slider_content .color_counts{margin-bottom: 15px;}
6797html.order_active .page-header #header{z-index: -1;}
6798html.order_active{overflow: hidden !important;}
6799@media(min-width: 768px){.checkout-cart-index #shopping-cart-table .cart.item .item-info td{flex-wrap: nowrap;}}
6800</style>
6801<style>
6802.cms-home .order-free-sample-popup{display: none;}
6803.cms-home.order_active .order-free-sample-popup{display: flex;}
6804@media(min-width:768px){
6805.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons{flex-wrap: wrap;}
6806.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons .ship-fax-plp{order:1;}
6807.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons .compare-buttons-mobile{width: 100%;order: 2;display: flex;justify-content: space-between;}
6808.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons .orderSampleContent .order_btn{margin-top: 10px;}
6809.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons{border-top: 0px;padding-top:0px;margin-top: 0px;}
6810.catalog-product-view .products_slider .compare-buttons .qty_fields .btn_cart{width:110px}
6811}
6812@media(max-width:767px){
6813.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons{flex-wrap: wrap;}
6814.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons .ship-fax-plp{order:1;width: 100%;}
6815.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons .compareBtn{order:2;justify-content: flex-start;width: auto;margin-top: 10px;}
6816.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons .orderSampleContent{order:3;margin-top: 10px;}
6817.page-with-filter .widget-product-carousel .catergory_slider_content .compare-buttons .compare-buttons-mobile{order:2;width: 100%;display: flex;justify-content: space-between;}
6818}
6819#related_cart_slider .js_slides{margin-right: 0;margin-left: 0;}
6820@media (min-width: 1024px) {
6821.container {
6822    max-width: 1440px !important;
6823}
6824}
6825.page-with-filter .product-item .product-info .price-box .price-container .price-wrapper span.price{font-size: 20px !important;color: #1e1e1e !important;}
6826.page-with-filter .product-item .product-info .price-box .price-container .price-wrapper{font-size: 20px !important;line-height: 20px !important}
6827.brand_logo_listpage img, div.brand_logo_listpage img{max-width:100px}
6828.catalog-product-view .product-item .product-info .price-box .price-container .price-wrapper{color: rgb(52 174 74 / var(--tw-text-opacity)) !important;line-height: 19px !important;}
6829
6830.catalog-product-view .product-info-main .quickship_swatch_option.incstores_pim_color_axis .color_swatches .swatch-attribute-options .selectOptionColor .select-none.swatch-option{display: none;}
6831
6832@media(max-width: 767px){
6833   .related_products_list_view .glider-track{width: 100% !important;flex-wrap: nowrap;align-items: flex-start;}
6834   .related_products_list_view .related_products_list_view_content{width: 100% !important;min-width: 280px;max-width: 280px;}
6835}
6836
6837.dcw-share-cart .space-y-4>:not([hidden])~:not([hidden]) {
6838    --tw-space-y-reverse: 0;
6839    margin-top: calc(1rem * (1 - var(--tw-space-y-reverse)));
6840    margin-bottom: calc(1rem * var(--tw-space-y-reverse));
6841}
6842.dcw-share-cart .bg-black\/50 {
6843    background-color: #00000080;
6844}
6845.dcw-share-cart .z-\[999\] {
6846    z-index: 999;
6847}
6848</style></div></div>
6849<script>
6850    window.addEventListener('init-external-scripts', () => {
6851        const klaviyoScript = document.createElement('script');
6852        klaviyoScript.src = '//static.klaviyo.com/onsite/js/klaviyo.js?company_id=WAwVDg';
6853        klaviyoScript.type = 'text/javascript';
6854        klaviyoScript.async = true;
6855        document.head.append(klaviyoScript);
6856    }, {once: true, passive: true});
6857</script>
vendor: 1 bytes, line 6857
6857
6858<script>
6859    document.addEventListener('DOMContentLoaded', function() {
6860        const buttons = document.querySelectorAll('.cms-home .order_btn');
6861        buttons.forEach(button => {
6862            button.addEventListener('click', function() {
6863                const modal = this.closest('.orderSampleContent').querySelector('.order-free-sample-popup');
6864                if (modal) {
6865                    modal.style.display = 'block';
6866                }
6867            });
6868        });
6869
6870        // Handle closing the modal
6871        document.querySelectorAll('.cms-home .order-free-sample-popup .closemodal').forEach(closeBtn => {
6872            closeBtn.addEventListener('click', function() {
6873                const modal = this.closest('.order-free-sample-popup');
6874                if (modal) {
6875                    modal.style.display = 'none';
6876                }
6877            });
6878        });
6879    });
6880</script>
6880
6881
6882<script>
6883    document.addEventListener('DOMContentLoaded', function () {
6884        function updateRatingsClass(ratingEl) {
6885            const hasReviews = ratingEl.querySelector('.bv_numReviews_component_container');
6886            ratingEl.classList.toggle('no-reviews', !hasReviews);
6887        }
6888        document.querySelectorAll('.ratings').forEach(ratingEl => {        
6889            updateRatingsClass(ratingEl);        
6890            const observer = new MutationObserver(() => {
6891                updateRatingsClass(ratingEl);
6892            });
6893            observer.observe(ratingEl, {
6894                childList: true,
6895                subtree: true
6896            });
6897        });
6898    });
6899</script>
6899
6900
6901<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/css/poppins.min.css" media="print" onload="this.media='all'"/>
6902<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/css/print.min.css" media="print" onload="this.media='all'"/>
6903<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/css/admin.min.css" media="print" onload="this.media='all'"/>
6904<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Bss_SocialLogin/css/jquery.fancybox.min.css" media="print" onload="this.media='all'"/>
6905<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Hyva_MirasvitLayeredNavigation/css/lib/nouislider.min.css" media="print" onload="this.media='all'"/>
6906<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Astound_Affirm/affirm-promo.min.css" media="print" onload="this.media='all'"/>
6907<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Dcw_CircularDesignerTool/css/base-global-header-footer.min.css" media="print" onload="this.media='all'"/>
6908<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Dcw_CircularDesignerTool/css/matdesigner.min.css" media="print" onload="this.media='all'"/>
6909<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Magefan_Blog/css/comments.min.css" media="print" onload="this.media='all'"/>
6910<link rel="stylesheet" type="text/css" href="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Plumrocket_GlobalPrivacyControl/css/gpc.min.css" media="print" onload="this.media='all'"/></div></footer>
6911<script>
6912    function dataServicesShoppingCartContextData()
6913    {
6914        return {
6915            initContext(cartData) {
6916                let contextCartItems = [];
6917
6918                cartData.items.forEach(function (item){
6919                    contextCartItems.push({
6920                        id: item.item_id,
6921                        formattedPrice: parseFloat(item.product_price_value ? item.product_price_value : 0),
6922                        quantity: item.qty,
6923                        product: {
6924                            productType: item.product_type,
6925                            productId: item.product_id,
6926                            name: item.product_name,
6927                            sku: item.product_sku,
6928                            mainImageUrl : item.product_image.src
6929                        },
6930                        prices: {
6931                            price: {
6932                                value: parseFloat(item.product_price_value ? item.product_price_value : 0)
6933                            }
6934                        }
6935                    })
6936                });
6937
6938                magentoStorefrontEvents.context.setShoppingCart({
6939                    id: cartData.dsCartId,
6940                    totalQuantity: cartData.summary_count,
6941                    prices: {
6942                        subtotalExcludingTax: {
6943                            value: parseFloat(cartData.subtotalAmountExclTax ? cartData.subtotalAmountExclTax : 0)
6944                        },
6945                        subtotalIncludingTax: {
6946                            value: parseFloat(cartData.subtotalAmount ? cartData.subtotalAmount : 0)
6947                        }
6948                    },
6949                    items: contextCartItems,
6950                    possibleOnepageCheckout: cartData.possible_onepage_checkout,
6951                    giftMessageSelected : false,
6952                    giftWrappingSelected : false
6953                });
6954
6955                window.dispatchEvent(new Event("shoppingCartContextSet"));
6956            }
6957        }
6958    }
6959</script>
6959
6960<div x-data="dataServicesShoppingCartContextData()"
6961     @private-content-loaded.window="initContext($event.detail.data.cart)"></div>
6962
6963    
6964<script>
6965    (function () {
6966        'use strict';
6967
6968        /**
6969         * Config to determine which element is responsible for the form submission
6970         *
6971         * @type {[{elementSelector: undefined|string, submitAttribute: string}]}
6972         */
6973        const formWrapperConfig = [{"elementSelector":null,"submitAttribute":"submit"},{"elementSelector":"[type=\"submit\"]","submitAttribute":"click"}];
6974
6975        /**
6976         * Replace protected forms submit with amRecaptchaModel.execute($event) method.
6977         * Call original submit on amrecaptcha-callback event after successful captcha validation.
6978         *
6979         * @return {void}
6980         */
6981        const wrapFormSubmit = function () {
6982            document.addEventListener("DOMContentLoaded", function () {
6983                const formsSelector = window.amRecaptchaModel?.formsToProtect || '';
6984                if (formsSelector.length === 0) {
6985                    return;
6986                }
6987
6988                document.querySelectorAll(formsSelector)?.forEach(formElement => {
6989                    if (!formElement) {
6990                        return;
6991                    }
6992
6993                    const { elementToWrap, attributeNameToWrap } = resolveElementWrapping(formElement);
6994                    if (!elementToWrap || !attributeNameToWrap) {
6995                        return;
6996                    }
6997
6998                    setElementAttributes(formElement, elementToWrap, attributeNameToWrap);
6999                });
7000            });
7001        };
7002
7003        /**
7004         * Find submit event and DOM element that has this event using formWrapperConfig.
7005         *
7006         * @param {HTMLElement} formElement
7007         * @return {{elementToWrap: undefined|string, attributeNameToWrap: undefined|string}}
7008         */
7009        const resolveElementWrapping = function (formElement) {
7010            let result = {
7011                elementToWrap: undefined,
7012                attributeNameToWrap: undefined
7013            };
7014
7015            formWrapperConfig.forEach(({ elementSelector, submitAttribute }) => {
7016                const elementToWrap = !!elementSelector ? formElement.querySelector(elementSelector) : formElement;
7017                if (!elementToWrap) {
7018                    return;
7019                }
7020
7021                const attributeNameToWrap = elementToWrap.getAttributeNames().find(
7022                    (elementAttribute) => {
7023                        /** @type {string[]} */
7024                        const submitAttributeVariations = ['@', 'x-on:'].map(variation => variation + submitAttribute);
7025
7026                        return submitAttributeVariations.some(
7027                            (submitAttributeVariation) => elementAttribute.startsWith(submitAttributeVariation)
7028                        )
7029                    }
7030                );
7031                if (!attributeNameToWrap) {
7032                    return;
7033                }
7034
7035                result.elementToWrap = elementToWrap;
7036                result.attributeNameToWrap = attributeNameToWrap;
7037            });
7038
7039            return result;
7040        }
7041
7042        /**
7043         *  Set attribute to wrap original submit, add eventListeners for captcha callbacks
7044         *
7045         * @param {HTMLElement} formElement
7046         * @param {HTMLElement} elementToWrap
7047         * @param {string} attributeNameToWrap
7048         */
7049        const setElementAttributes = function (formElement, elementToWrap, attributeNameToWrap) {
7050            const originalSubmit = elementToWrap.getAttribute(attributeNameToWrap);
7051            elementToWrap.removeAttribute(attributeNameToWrap);
7052
7053            /**
7054             * To properly set submit attribute - we need to replace '@' with 'x-on:'
7055             * and add preventDefault behaviour
7056             */
7057            elementToWrap.setAttribute(
7058                attributeNameToWrap.replace(/^@/, 'x-on:').replace(/.prevent$/, '') + '.prevent',
7059                'amRecaptchaModel.execute($event)'
7060            );
7061            elementToWrap.setAttribute(
7062                'x-on:amrecaptcha-executable-callback',
7063                originalSubmit
7064            );
7065        }
7066
7067        wrapFormSubmit();
7068    })(window.amRecaptchaModel = window.amRecaptchaModel || {});
7069</script>
7069
7070
7071<script>
7072    function initAuthenticationBss() {
7073        return {
7074            open: false,
7075            openLogin : false,
7076            openRegister : false,
7077            openForgot : false,
7078            openCreate : true,
7079            passwordsMatching: true,
7080            openMessage: false,
7081            errors: 0,
7082            message: "",
7083            hasCaptchaToken: 0,
7084            openButtonLogin : false,
7085            openButtonRegister : false,
7086            openSuccessMessage : false,
7087            checkUseReCaptcha: 1,
7088            recaptchaLoading: null,
7089            initSocial() {
7090                if (!this.checkUseReCaptcha) {
7091                    return Promise.resolve();
7092                }
7093                if (this.recaptchaLoading) {
7094                    return this.recaptchaLoading;
7095                }
7096                if (typeof window.grecaptcha !== 'undefined') {
7097                    this.recaptchaLoading = Promise.resolve();
7098                    return this.recaptchaLoading;
7099                }
7100                this.recaptchaLoading = new Promise((resolve, reject) => {
7101                    const recaptchaUrl = `https://www.google.com/recaptcha/api.js?render=6LdQFsgqAAAAAFaiT_SQ7C9UmCcxWxpMd6pIMAEO&hl=en`;
7102                    const script = document.createElement('script');
7103                    script.setAttribute('type', 'text/javascript');
7104                    script.setAttribute('src', recaptchaUrl);
7105                    script.onload = () => resolve();
7106                    script.onerror = () => reject(new Error('Failed to load reCAPTCHA'));
7107                    document.head.appendChild(script);
7108                });
7109                return this.recaptchaLoading;
7110            },
7111            loadRecaptchaOnInteraction() {
7112                if (!this.checkUseReCaptcha) {
7113                    return;
7114                }
7115                // Avoid scroll/mousemove/wheel — they fire on load / DevTools / trackpads.
7116                const events = ['pointerdown', 'keydown', 'touchstart'];
7117                const load = () => {
7118                    events.forEach((eventName) => {
7119                        window.removeEventListener(eventName, load, { capture: true });
7120                    });
7121                    this.initSocial();
7122                };
7123                events.forEach((eventName) => {
7124                    window.addEventListener(eventName, load, { once: true, passive: true, capture: true });
7125                });
7126            },
7127            checkPasswordsMatch() {
7128                if (document.getElementById('password').value ===
7129                    document.getElementById('password-confirmation').value) {
7130                    this.passwordsMatching = true;
7131                    return true;
7132                }
7133                this.passwordsMatching = false;
7134                return false;
7135            },
7136            submitForm: function () {
7137                const $form = document.querySelector('#login-form');
7138                if (this.errors === 0) {
7139                    this.dispatchLoginRequest($form);
7140                }
7141            },
7142            submitForgotForm : function () {
7143                const $form = document.querySelector('#fotgot-form');
7144                if (this.errors === 0) {
7145                    this.dispatchForgotRequest($form);
7146                }
7147            },
7148            submitRegisterForm : function () {
7149                const $form = document.querySelector('#create-form');
7150                if (this.errors === 0) {
7151                    this.dispatchRegisterRequest($form);
7152                }
7153            },
7154            validateCaptcha : async function () {
7155                await this.initSocial();
7156                return new Promise((resolve, reject) => {
7157                    if (typeof window.grecaptcha === 'undefined') {
7158                        return reject(new Error('reCAPTCHA is not available'));
7159                    }
7160                    grecaptcha.ready(function () {
7161                        grecaptcha.execute('6LdQFsgqAAAAAFaiT_SQ7C9UmCcxWxpMd6pIMAEO', {action: 'submit'}).then(function (token) {
7162                            return resolve(token);
7163                        }).catch(reject);
7164                    });
7165                });
7166            },
7167            dispatchLoginRequest:async function (form) {
7168                if (this.checkUseReCaptcha) {
7169                    let token = await this.validateCaptcha();
7170                    if(token)
7171                    {
7172                        document.getElementById("g-recaptcha-response").setAttribute('value',token);
7173                    }
7174                }
7175                const username = this.$refs['customer-email'].value;
7176                const password = this.$refs['customer-password'].value;
7177                const recaptchaValue = document.getElementById("g-recaptcha-response").value;
7178                const postUrl = "https://www.flooringinc.com/sociallogin/popup/login/";
7179                fetch(postUrl, {
7180                    headers: {
7181                        contentType: "application/x-www-form-urlencoded; charset=UTF-8",
7182                    },
7183                    body: new URLSearchParams({
7184                        username: username,
7185                        password: password,
7186                        ['g-recaptcha-response']: recaptchaValue,
7187                        form_key: hyva.getFormKey(),
7188                    }),
7189                    method: "POST",
7190                    mode: "cors",
7191                    credentials: "include",
7192                }).then(response => {
7193                        return response.json()
7194                    }
7195                ).then(data => {
7196                    this.isLoading = false;
7197                    if (data.error) {
7198                        this.message = data.message;
7199                        this.openMessage = true;
7200                        this.errors = 1;
7201                        this.hasCaptchaToken = 0;
7202                    } else {
7203                        this.message = data.message;
7204                        this.openMessage = false;
7205                        this.openSuccessMessage = true;
7206                        if (data.redirect !== '' && data.redirect != null) {
7207                            window.location.href = data.redirect;
7208                        } else {
7209                            location.reload(true);
7210                        }
7211                    }
7212                });
7213            },
7214            dispatchForgotRequest:async function (form) {
7215                if (this.checkUseReCaptcha) {
7216                    let token = await this.validateCaptcha();
7217                    if(token)
7218                    {
7219                        document.getElementById("g-recaptcha-response").setAttribute('value',token);
7220                    }
7221                }
7222                const email = form.querySelector("#email_address").value;
7223                const recaptchaValue = document.getElementById("g-recaptcha-response").value;
7224                const postUrl = "https://www.flooringinc.com/sociallogin/popup/forgot/";
7225                fetch(postUrl, {
7226                    headers: {
7227                        contentType: "application/x-www-form-urlencoded; charset=UTF-8",
7228                    },
7229                    body: new URLSearchParams({
7230                        email: email,
7231                        ['g-recaptcha-response']: recaptchaValue,
7232                        form_key: hyva.getFormKey(),
7233                    }),
7234                    method: "POST",
7235                    mode: "cors",
7236                    credentials: "include",
7237                }).then(response => {
7238                        return response.json()
7239                    }
7240                ).then(data => {
7241                    this.isLoading = false;
7242                    if (data.error) {
7243                        this.message = data.message;
7244                        this.openMessage = true;
7245                        this.errors = 1;
7246                        this.hasCaptchaToken = 0;
7247                    } else {
7248                        if (data.redirect !== '' && data.redirect != null) {
7249                            window.location.href = data.redirect;
7250                        } else {
7251                            location.reload(true);
7252                        }
7253                    }
7254                });
7255            },
7256            dispatchRegisterRequest:async function (form) {
7257                if (this.checkUseReCaptcha) {
7258                    let token = await this.validateCaptcha();
7259                    if(token)
7260                    {
7261                        document.getElementById("g-recaptcha-response").setAttribute('value',token);
7262                    }
7263                }
7264                const firstname = form.querySelector("#firstname").value;
7265                const lastname = form.querySelector("#lastname").value;
7266                const email = form.querySelector("#email_address").value;
7267                const password = form.querySelector("#password").value;
7268                const passwordConfirmation = form.querySelector("#password-confirmation").value;
7269                const recaptchaValue = document.getElementById("g-recaptcha-response").value;
7270                const postUrl = "https://www.flooringinc.com/sociallogin/popup/create/";
7271                fetch(postUrl, {
7272                    headers: {
7273                        contentType: "application/x-www-form-urlencoded; charset=UTF-8",
7274                    },
7275                    body: new URLSearchParams({
7276                        ['g-recaptcha-response']: recaptchaValue,
7277                        firstname: firstname,
7278                        lastname: lastname,
7279                        email: email,
7280                        password: password,
7281                        password_confirmation: passwordConfirmation,
7282                        form_key: hyva.getFormKey(),
7283                    }),
7284                    method: "POST",
7285                    mode: "cors",
7286                    credentials: "include",
7287                }).then(response => {
7288                        return response.json()
7289                    }
7290                ).then(data => {
7291                    this.isLoading = false;
7292                    if (data.error) {
7293                        this.message = data.message;
7294                        this.openMessage = true;
7295                        this.hasCaptchaToken = 0;
7296                    } else {
7297                        this.message = data.message;
7298                        this.openMessage = false;
7299                        this.openSuccessMessage = true;
7300                        if (data.redirect !== '' && data.redirect != null) {
7301                            window.location.href = data.redirect;
7302                        } else {
7303                            location.reload(true);
7304                        }
7305                    }
7306                });
7307            },
7308            eventListeners: {
7309                ['@popup-register.window']($event) {
7310                    this.open = true;
7311                    this.openRegister = $event.detail.openRegister;
7312                    this.openLogin = $event.detail.openLogin;
7313                    this.openCreate = $event.detail.openCreate;
7314                    this.openButtonLogin = $event.detail.openButtonLogin;
7315                    this.openButtonRegister = $event.detail.openButtonRegister;
7316                    this.initSocial();
7317                }
7318            }
7319        }
7320    }
7321</script>
7321
7322
7323<section id="authentication-popup-bss"
7324         x-data="initAuthenticationBss()" x-init="loadRecaptchaOnInteraction()"
7325         @keydown.window.escape="open = false"
7326<div role="dialog"
7327     aria-modal="true"
7328     class="hidden inset-y-0 right-0 z-30 flex max-w-full"
7329     :class="{ 'hidden': !open, 'fixed': open }"
7330     x-bind="eventListeners"
7331>
7332    <div class="relative bg-container-lighter bss_login_popup"
7333         x-show="open"
7334         @click.outside="open = false"
7335         x-transition:enter="transform transition ease-in-out duration-500 sm:duration-700"
7336         x-transition:enter-start="translate-x-full"
7337         x-transition:enter-end="translate-x-0"
7338         x-transition:leave="transform transition ease-in-out duration-500 sm:duration-700"
7339         x-transition:leave-start="translate-x-0"
7340         x-transition:leave-end="translate-x-full"
7341    >
7342        <div
7343            x-show="open"
7344            x-transition:enter="ease-in-out duration-500"
7345            x-transition:enter-start="opacity-0"
7346            x-transition:enter-end="opacity-100"
7347            x-transition:leave="ease-in-out duration-500"
7348            x-transition:leave-start="opacity-100"
7349            x-transition:leave-end="opacity-0" class="absolute flex close_icon" style="width: 11px;height: 11px;background: transparent;">
7350            <button @click="open = false;" aria-label="Close panel"
7351                    class="transition duration-150 ease-in-out text-black cursor-pointer">
7352                <picture><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/Close--icon.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/images/Close--icon.png" alt="Close--icon" width="11" height="11" /></picture>
7353            </button>
7354        </div>
7355        <div class="flex h-full flex-col bss_login_popup_in overflow-y-auto" >
7356            <div class="message mx-4 message-error" x-show="openMessage">
7357                <div>
7358                    <span x-html="message"></span>
7359                </div>
7360                <div class="cursor-pointer" title="close" @click="openMessage = false">
7361                    <svg class="fill-current text-white" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
7362                        <path d="M14.53 4.53l-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47
7363                                                4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z">
7364                        </path>
7365                    </svg>
7366                </div>
7367            </div>
7368            <div class="message mx-4 message-error success" x-show="openSuccessMessage">
7369                <div>
7370                    <span x-html="message"></span>
7371                </div>
7372                <div class="cursor-pointer" title="close" @click="openSuccessMessage = false">
7373                    <svg class="fill-current text-white" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
7374                        <path d="M14.53 4.53l-1.06-1.06L9 7.94 4.53 3.47 3.47 4.53 7.94 9l-4.47
7375                                                4.47 1.06 1.06L9 10.06l4.47 4.47 1.06-1.06L10.06 9z">
7376                        </path>
7377                    </svg>
7378                </div>
7379            </div>
7380                        <div class="block-customer-login for_got" x-show="openForgot">
7381    <h2 id="authenticate-customer-login" class="text-size18 font-medium text-darkblack">
7382        Forgot Password    </h2>
7383    <form class="form form-fotgotpassword"
7384          method="post"
7385          @submit.prevent="submitForgotForm();"
7386          id="fotgot-form">
7387        <fieldset class="fieldset">
7388            <div class="text-size14 font-normal text-black mb-4">Please enter your email address below to receive a password reset link.</div>
7389            <div class="field email required">
7390                <label for="email_address" class="label"><span>Email</span></label>
7391                <div class="control">
7392                    <input type="email" name="email" alt="email" id="email_address" class="form-input" required
7393                           value="">
7394                </div>
7395            </div>
7396        </fieldset>
7397        <div class="actions-toolbar">
7398            <div class="primary">
7399                <button type="submit" class="action submit primary"><span>Reset My Password</span></button>
7400            </div>
7401            <div class="secondary ml-4 self-center">
7402                <a class="action back cursor-pointer"
7403                   @click ="openForgot = false,openLogin = true,
7404                   openButtonLogin = true"
7405                >
7406                    <span class="text-size14 font-medium text-black">
7407                        Back                    </span>
7408                </a>
7409            </div>
7410        </div>
7411    </form>
7412</div>
7413
7414
7415            
7416            <div class="w-full">
7417                <input id="g-recaptcha-response" type="hidden" value=""/>
7418            </div>
7419            <div class="block-new-customer social_login"
7420                 x-show="openButtonLogin">
7421                <h2 id="authenticate-new-customer" class="text-size18 font-semibold text-darkblack">
7422                    Log In                </h2>
7423                <div class="block-content">
7424                                                <div id="add_button_login_byclass" x-data="bssButtonSocial()" x-ref="registerSocialButton">
7425                                <div class="">
7426                                    <div class="sociallogin-buttons" x-ref="loginSocialButton">
7427                                        <ul class="sociallogin-clearfix flex flex-wrap">
7428                                                                                            <li class="w-full text-size14 font-medium text-darkblack relative sociallogin-button
7429                                                    googleplus"  title="Login with Google">
7430                                                    <a class="sociallogin-button-link sociallogin-button-click" id="sociallogin-button-click" 
7431                                                       href="javascript:void(0);" data-href="https://accounts.google.com/o/oauth2/auth?response_type=code&redirect_uri=https%3A%2F%2Fwww.flooringinc.com%2Fsociallogin%2Faccount%2Flogin%2Ftype%2Fgoogleplus%2F&client_id=900046866587-mph1s7dsg2dcau694j9ukb0m26hukidu.apps.googleusercontent.com&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&state=&access_type=offline&approval_prompt=auto"
7432                                                       data-width="630"
7433                                                       data-height="650"
7434                                                       x-ref="googleplus"
7435                                                       @click="popupSocial($refs.googleplus)">
7436                                                         <span class="sociallogin-button-auto">
7437                                                            <span class="sociallogin-button-icon">
7438                                                                                                                            </span>
7439                                                                                                                            <span class="sociallogin-button-text">Login with Google</span>
7440                                                                                                                    </span>
7441                                                    </a>
7442                                                </li>
7443                                                                                                                                        </ul>
7444                                                                            </div>
7445
7446                                </div>
7447                                <div style="clear: both;"></div>
7448                            </div>
7449                                    </div>
7450            </div>
7451            <div class="block-customer-login" x-show="openLogin" x-data="{ show: false }">
7452    <span class="or-label text-size14 font-normal text-darkblack"> Or</span>
7453
7454    <form class="form form-login"
7455          method="post"
7456          @submit.prevent="submitForm();"
7457          id="login-form"
7458    >
7459                <div class="fieldset login">
7460            <div class="field email required">
7461                <label class="label hidden" for="customer-email">
7462                    <span>Email Address</span>
7463                </label>
7464                <div class="control">
7465                    <input name="username"
7466                           x-ref="customer-email"
7467                           @change="errors = 0"
7468                           type="email"
7469                           required
7470                           class="form-input input-text" id="customer-email" placeholder="Email address" 
7471                    >
7472                </div>
7473            </div>
7474            <div class="field password required" >
7475                <label for="pass" class="label hidden">
7476                    <span>Password</span>
7477                </label>
7478                <div class="control">
7479                    <input name="password"
7480                           type="password" 
7481                           class="form-input input-text" id="pass" placeholder="Password" 
7482                           required
7483                           x-ref="customer-password"
7484                           @change="errors = 0"
7485                    >
7486                </div>
7487            </div>
7488
7489            <input name="context" type="hidden" value="checkout"/>
7490             
7491            <div class="actions-toolbar flex justify-between items-center" >
7492                <div class="flex items-center">
7493                    <input type="checkbox" name="show-password" @click="showPassword()" id="show-password" value="" class="checkbox">
7494                    <label class="cursor-pointer text-size12 font-normal text-darkblack" style="margin:0;" for="show-password">Show password</label>                    
7495                    <!-- <span class="cursor-pointer text-size12 font-normal text-darkblack" @click="showPasswordForLable()" id="show-password-label" >
7496                        Show Password 
7497                    </span> -->
7498                </div>    
7499                   <span class="cursor-pointer text-size12 font-normal text-darkblack" @click="openForgot = true,openLogin = false,openButtonLogin = false">
7500                        Forgot Your Password?                    </span>
7501                    
7502            
7503            </div>
7504            <div class="actions-toolbar flex justify-between items-center">
7505                 <button type="submit" class="inline-flex btn btn-primary login_btn">
7506                        Log In                    </button>
7507            </div>       
7508        </div>
7509    </form>
7510</div>
7511
7512<script>
7513     function showPassword(){
7514        var showPwd=document.getElementById("show-password");
7515        var password=document.getElementById("pass");
7516        if(showPwd.checked==true) {
7517            password.type="text";
7518        } else {
7519           password.type="password";
7520        }
7521    }    
7522    function showPasswordForLable(){
7523        var password=document.getElementById("pass");
7524        if (password.type === "password") {
7525            password.type = "text";
7526        } else {
7527            password.type = "password";
7528        }
7529    } 
7530</script>
7530 
7531            <div class="block-new-customer new_customer text-center" x-show ="openCreate">
7532                <h2 id="authenticate-new-customer" class="text-size13 font-normal text-darkblack">
7533                    New Customer?                </h2>
7534                <div class="block-content">
7535                    <div class="actions-toolbar">
7536                        <a class="block btn btn-primary cursor-pointer text-size18 font-semibold text-custom-blue"
7537                        href="https://www.flooringinc.com/customer/account/create/"  >
7538                            Sign Up Now                        </a>
7539                    </div>
7540                    <div class="block-new-customer">
7541                        <h3 class="text-size16 font-normal text-black">
7542                            <a class="block underline"
7543                            href="https://www.flooringinc.com/pro-advantage/"
7544                            >
7545                                Become a Pro                            </a>
7546                        </h3>
7547                    </div>
7548                </div>
7549            </div>
7550            <div class="block-new-customer social_login margin" x-show="openButtonRegister">
7551                <h2 id="authenticate-new-customer" class="text-size18 font-medium text-darkblack">
7552                    Social Register                </h2>
7553                <div class="block-content">
7554                                                <div id="add_button_register_byclass" x-data="bssButtonSocial()" x-ref="registerSocialButton">
7555                                <div class="">
7556                                    <div class="sociallogin-buttons">
7557                                        <ul class="sociallogin-clearfix flex flex-wrap">
7558                                                                                            <li class="w-full text-size14 font-medium text-darkblack relative sociallogin-button googleplus"   title="Register with Google">
7559                                                    <a class="sociallogin-button-link sociallogin-button-click" id="sociallogin-button-click" 
7560                                                       href="javascript:void(0);" data-href="https://accounts.google.com/o/oauth2/auth?response_type=code&redirect_uri=https%3A%2F%2Fwww.flooringinc.com%2Fsociallogin%2Faccount%2Flogin%2Ftype%2Fgoogleplus%2F&client_id=900046866587-mph1s7dsg2dcau694j9ukb0m26hukidu.apps.googleusercontent.com&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&state=&access_type=offline&approval_prompt=auto"
7561                                                       data-width="630"
7562                                                       data-height="650"
7563                                                       x-ref="googleplus"
7564                                                       @click="popupSocial($refs.googleplus)">
7565                                                        <span class="sociallogin-button-auto">
7566                                                            <span class="sociallogin-button-icon">
7567                                                                                                                            </span>
7568                                                                                                                            <span class="sociallogin-button-text">Register with Google</span>
7569                                                                                                                    </span>
7570                                                    </a>
7571                                                </li>
7572                                                                                                                                        </ul>
7573                                                                            </div>
7574                                </div>
7575                                <div style="clear: both;"></div>
7576                            </div>
7577                                    </div>
7578            </div>          
7579        </div>
7580    </div>
7581</div>
7582</section>
7583<script>
7584        var classLogin = [".checkout-container .opc-wrapper"];
7585        var classRegister = [""];
7586    classLogin = classLogin[0].trim().split(/\s+/);
7587    classRegister = classRegister[0].trim().split(/\s+/);
7588    if(classLogin && classLogin.length > 0 && classLogin[0]){
7589        classLogin.forEach(element => {
7590            var classLoginElement = document.querySelector(element);
7591            var loginSocialButton = document.getElementById('add_button_login_byclass');
7592            if (classLoginElement && loginSocialButton) {
7593                const cloneLoginSocialButton = loginSocialButton.cloneNode(true);
7594                classLoginElement.appendChild(cloneLoginSocialButton);
7595                cloneLoginSocialButton.style.display='block';
7596            }
7597        });
7598    }
7599
7600    if(classRegister && classRegister.length > 0 && classRegister[0]){
7601        classRegister.forEach(element => {
7602            var classRegisterElement = document.querySelector(element);
7603            var registerSocialButton = document.getElementById('add_button_register_byclass');
7604            if (classRegisterElement && registerSocialButton) {
7605                const cloneRegisterSocialButton = registerSocialButton.cloneNode(true);
7606                classRegisterElement.appendChild(cloneRegisterSocialButton);
7607                cloneRegisterSocialButton.style.display='block';
7608            }
7609        });
7610    }
7611
7612    function bssButtonSocial() {
7613        return {
7614            renderShowmore : function (element) {
7615                var socialButton = element.querySelector('.sociallogin-clearfix').getElementsByTagName("li");
7616                for (let i = 0; i <= socialButton.length - 1; i++) {
7617                    socialButton[i].style.display = 'block';
7618                }
7619                element.querySelector('.sociallogin-showmore').style.display = 'none';
7620            },
7621            popupSocial: function (element) {
7622                var href = element.getAttribute('data-href');
7623                var width = element.getAttribute('data-width');
7624                var height = element.getAttribute('data-height');
7625                var popup_window = null;
7626                if (!width) {
7627                    width = 650;
7628                }
7629
7630                if(!height) {
7631                    height = 350;
7632                }
7633
7634                var left = parseInt((window.innerWidth- width) / 2);
7635                var top = parseInt((window.innerHeight - height) / 2);
7636
7637                var params = [
7638                    'resizable=yes',
7639                    'scrollbars=no',
7640                    'toolbar=no',
7641                    'menubar=no',
7642                    'location=no',
7643                    'directories=no',
7644                    'status=yes',
7645                    'width='+ width,
7646                    'height='+ height,
7647                    'left='+ left,
7648                    'top='+ top
7649                ];
7650
7651                if(popup_window) {
7652                    popup_window.close();
7653                }
7654
7655                if(href) {
7656                    popup_window = window.open(href,'',params.join(','));
7657                    popup_window.focus();
7658
7659                }else{
7660                    alert('This Login Application was not configured correctly. Please contact our customer support.');
7661                }
7662                return false;
7663            }
7664        }
7665    }
7666
7667</script>
7667
7668
7669
7670
7671    
7671<script>
7672        (() => {
7673            function changeNoCookieDomain() {
7674                const categoryKey = "marketing";
7675                if (! prCookieConsentApi.isAllowedCategory(categoryKey)) {
7676                    return;
7677                }
7678
7679                let iframes = document.querySelectorAll('iframe'),
7680                    youtubeNoCookieIframes = Array.from(iframes)
7681                        .filter((iframe) => iframe.src.indexOf('youtube-nocookie.com') !== -1);
7682
7683                youtubeNoCookieIframes.forEach((iframe) => {
7684                    iframe.src = iframe.src.replace('youtube-nocookie.com', 'youtube.com');
7685                });
7686            }
7687
7688            if (prCookieConsentApi) {
7689                changeNoCookieDomain();
7690                return;
7691            }
7692
7693            document.addEventListener('pr-cookie-consent-api:configured', changeNoCookieDomain);
7694        })();
7695    </script>
7695
7696
7697<script>
7698    'use strict';
7699
7700    (() => {
7701        window.addEventListener('DOMContentLoaded', () => {
7702            if (document.querySelectorAll('lite-youtube').length > 0) {
7703                const link = document.createElement('link'),
7704                      script = document.createElement('script');
7705
7706                link.rel = 'stylesheet';
7707                link.type = 'text/css';
7708                link.href = 'https\u003A\u002F\u002Fwww.flooringinc.com\u002Fstatic\u002Fversion1789462004\u002Ffrontend\u002FDcw\u002Fhyvadesktop\u002Fen_US\u002FMageQuest_LiteYouTube\u002Fcss\u002Flite\u002Dyt\u002Dembed.min.css';
7709                document.head.appendChild(link);
7710
7711                script.type = 'text/javascript';
7712                script.src = 'https\u003A\u002F\u002Fwww.flooringinc.com\u002Fstatic\u002Fversion1789462004\u002Ffrontend\u002FDcw\u002Fhyvadesktop\u002Fen_US\u002FMageQuest_LiteYouTube\u002Fjs\u002Flite\u002Dyt\u002Dembed.min.js';
7713                document.head.appendChild(script);
7714            }
7715        });
7716    })();
7717</script>
vendor: 1 bytes, line 7717
7717
7718<script data-mfmofile="true">
7719    document.addEventListener("DOMContentLoaded", function() {
7720        if (document.querySelectorAll('.mf-ytw-wrapper').length || document.querySelectorAll('[data-mf-ytw-youtube-link]').length) {
7721            !function (f, b, e, v, t, s) {
7722                if(f.mfytwcss)return;
7723                f.mfytwcss=1;
7724                t = b.createElement(e);
7725                t.rel = 'stylesheet';
7726                t.type = 'text/css';
7727                t.href = v;
7728                s = b.getElementsByTagName('HEAD')[0];
7729                s.appendChild(t)
7730            }(window, document, 'link', 'https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Magefan_YouTubeWidget/css/youtubewidget.min.css');
7731        }
7732        if (document.querySelectorAll('.mf-ytw-wrapper').length) {
7733            !function (f, b, e, v, t, s) {
7734                if(f.mfytwjs)return;
7735                f.mfytwjs=1;
7736                t = b.createElement(e);
7737                t.type = 'text/javascript';
7738                t.src = v;
7739                s = b.getElementsByTagName('HEAD')[0];
7740                s.appendChild(t)
7741            }(window, document, 'script', 'https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Magefan_YouTubeWidget/js/iframe.min.js');
7742        }
7743        if (document.querySelectorAll('[data-mf-ytw-youtube-link]').length) {
7744            !function (f, b, e, v, t) {
7745                if(f.mflinkjs)return;
7746                f.mflinkjs=1;
7747                t = b.createElement(e);
7748                t.type = 'text/javascript';
7749                t.src = v;
7750                s = b.getElementsByTagName('HEAD')[0];
7751                s.appendChild(t)
7752            }(window, document, 'script', 'https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Magefan_YouTubeWidget/js/link.min.js');
7753        }
7754    });
7755</script>
7755
7756
7757    <div id="pr-gpc-notification-modal" style="display: none;">
7758        <div class="pr-gpc-notification-wrap">
7759    <h2>Your Opt-Out Preferences Honored</h2>
7760<p>Your browser's privacy preference (GPC) has been detected.</p>
7761<p class="pr-gpc-text-with-icon"><picture><source type="image/webp" srcset="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Plumrocket_GlobalPrivacyControl/images/check_circle.webp"><img src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Plumrocket_GlobalPrivacyControl/images/check_circle.png" alt="GPC Icon" width="18" height="18"></picture> Non-essential cookies have been disabled on our website.</p>
7762</div>    </div>
7763
7764    
7764<script type="text/x-magento-init"  nonce="N2Q3enk5eGFoZ3hyejB4MzJxOThhNGsyd2lybnZpbno=">
7765        {
7766            "#pr-gpc-notification-modal": {
7767                "Plumrocket_GlobalPrivacyControl/js/opt-out-notification": {}
7768            }
7769        }
7770    </script>
7770
7771
7772
7773<script>
7774    (() => {
7775        function src_default(Alpine) {
7776            Alpine.directive("intersect", (el, { value, expression, modifiers }, { evaluateLater, cleanup }) => {
7777                let evaluate = evaluateLater(expression);
7778                let options = {
7779                    rootMargin: getRootMargin(modifiers),
7780                    threshold: getThreshhold(modifiers)
7781                };
7782                let observer = new IntersectionObserver((entries) => {
7783                    entries.forEach((entry) => {
7784                        if (entry.isIntersecting === (value === "leave"))
7785                            return;
7786                        evaluate();
7787                        modifiers.includes("once") && observer.disconnect();
7788                    });
7789                }, options);
7790                observer.observe(el);
7791                cleanup(() => {
7792                    observer.disconnect();
7793                });
7794            });
7795        }
7796        function getThreshhold(modifiers) {
7797            if (modifiers.includes("full"))
7798                return 0.99;
7799            if (modifiers.includes("half"))
7800                return 0.5;
7801            if (!modifiers.includes("threshold"))
7802                return 0;
7803            let threshold = modifiers[modifiers.indexOf("threshold") + 1];
7804            if (threshold === "100")
7805                return 1;
7806            if (threshold === "0")
7807                return 0;
7808            return Number(`.${threshold}`);
7809        }
7810        function getLengthValue(rawValue) {
7811            let match = rawValue.match(/^(-?[0-9]+)(px|%)?$/);
7812            return match ? match[1] + (match[2] || "px") : void 0;
7813        }
7814        function getRootMargin(modifiers) {
7815            const key = "margin";
7816            const fallback = "0px 0px 0px 0px";
7817            const index = modifiers.indexOf(key);
7818            if (index === -1)
7819                return fallback;
7820            let values = [];
7821            for (let i = 1; i < 5; i++) {
7822                values.push(getLengthValue(modifiers[index + i] || ""));
7823            }
7824            values = values.filter((v) => v !== void 0);
7825            return values.length ? values.join(" ").trim() : fallback;
7826        }
7827
7828        document.addEventListener("alpine:init", () => {
7829            window.Alpine.plugin(src_default);
7830        });
7831    })();
7832</script>
vendor: 1 bytes, line 7832
7832
7833<script>
7834    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"})) {
7835        document.querySelectorAll(selector).forEach(el => el.setAttribute('x-defer', `${deferUntil}`));
7836    }
7837</script>
vendor: 1 bytes, line 7837
7837
7838<script>
7839    (function () {
7840        "use strict";
7841
7842        const hasAlpine = new Promise(resolve => {
7843            window.addEventListener('alpine:initialized', resolve, {once: true, passive: true});
7844        });
7845
7846        const hasInteract = new Promise(resolve => {
7847            (events => {
7848                const onInteract = () => {
7849                    resolve();
7850                    events.forEach(type => window.removeEventListener(type, onInteract));
7851                }
7852                events.forEach(type => window.addEventListener(type, onInteract, {once: true, passive: true}))
7853            })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown'])
7854        });
7855
7856        const onIntersect = (el) => {
7857            return new Promise(resolve => {
7858                const observer = new IntersectionObserver(entries => {
7859                    for (const entry of entries) {
7860                        if (entry.isIntersecting) {
7861                            observer.disconnect()
7862                            resolve();
7863                        }
7864                    }
7865                }, {});
7866                observer.observe(el);
7867            });
7868        }
7869
7870        function runComponent(el) {
7871            hasAlpine.then(() => {
7872                el.removeAttribute('x-ignore');
7873                queueMicrotask(() => Alpine.initTree(el));
7874            });
7875        }
7876
7877        function initDeferredComponents() {
7878            document.querySelectorAll('[x-data][x-defer]').forEach(el => {
7879                el.setAttribute('x-ignore', '');
7880                const deferUntil = (el.getAttribute('x-defer') || '').trim();
7881                switch (deferUntil) {
7882                    case 'interact':
7883                        hasInteract.then(() => runComponent(el));
7884                        break;
7885                    case 'intersect':
7886                        onIntersect(el).then(() => runComponent(el))
7887                        break;
7888                    case 'idle':
7889                        window.requestIdleCallback
7890                            ? window.requestIdleCallback(() => runComponent(el), {timeout: 4000})
7891                            : setTimeout(() => runComponent(el), 4000);
7892                        break;
7893                    case 'eager':
7894                        runComponent(el);
7895                        break;
7896                    default:
7897                        if (deferUntil.startsWith('event:') && deferUntil.length > 6) {
7898                            window.addEventListener(deferUntil.substring(6), () => runComponent(el), {once: true, passive: true});
7899                        }
7900                }
7901            });
7902        }
7903
7904        window.addEventListener('alpine:init', initDeferredComponents, {once: true, passive: true});
7905    })()
7906</script>
7906
7907
7908<script type="module"
7909        src="https://www.flooringinc.com/static/version1789462004/frontend/Dcw/hyvadesktop/en_US/Hyva_Theme/js/alpine3.min.js"
7910        defer
7911        crossorigin
7912></script>
vendor: 1 bytes, line 7912
7912
7913<script>
7914    'use strict';
7915    function dispatchMessages(messages, hideAfter) {
7916        const messagesEvent = new CustomEvent("messages-loaded", {
7917            detail: {
7918                messages: messages,
7919                hideAfter: hideAfter
7920            }
7921        });
7922        window.dispatchEvent(messagesEvent);
7923    }
7924
7925    if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) {
7926        console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script");
7927    }
7928
7929    (function( hyva, undefined ) {
7930
7931        hyva.initFormKey = () => {
7932            const inputSelector = 'input[name="form_key"]',
7933                formKey = hyva.getFormKey();
7934
7935            Array.from(document.querySelectorAll(inputSelector)).map(function (input) {
7936                input.value = formKey
7937            });
7938        }
7939
7940        hyva.initMessages = () => {
7941            try {
7942                const messages = hyva.getCookie('mage-messages');
7943                window.mageMessages = messages ? JSON.parse(decodeURIComponent(messages).replace(/\+/g, ' ')) : [];
7944
7945                dispatchMessages(window.mageMessages);
7946
7947                                // empty `mage-messages` cookie
7948                const skipSetDomain = true;
7949                hyva.setCookie('mage-messages','', -1, skipSetDomain);
7950
7951            } catch (error) {
7952                console.warn('Error parsing Cookie Messages:', error);
7953            }
7954        }
7955
7956        window.addEventListener('DOMContentLoaded', hyva.initFormKey);
7957        hyva.alpineInitialized(hyva.initMessages)
7958
7959    }( window.hyva = window.hyva || {} ));
7960</script>
vendor: 1 bytes, line 7960
7960
7961<script>
7962    'use strict';
7963    {
7964        const private_content_key = 'mage-cache-storage';
7965        const private_content_expire_key = 'mage-cache-timeout';
7966        const private_content_version_key = 'private_content_version';
7967        const section_data_ids_key = 'section_data_ids';
7968        const mage_cache_session_id_key = 'mage-cache-sessid';
7969        const last_visited_store_key = 'last_visited_store';
7970
7971        const ttl = 3600;
7972
7973        if (typeof hyva === 'undefined' || (!hyva.getBrowserStorage || !hyva.getCookie || !hyva.setCookie)) {
7974            console.warn("Hyvä helpers are not loaded yet. Make sure they are included before this script");
7975        }
7976
7977        function loadSectionData () {
7978            const browserStorage = hyva.getBrowserStorage();
7979            if (!browserStorage) {
7980                typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
7981                    [{
7982                        type: "warning",
7983                        text: "Please enable LocalStorage in your browser."
7984                    }]
7985                );
7986                return;
7987            }
7988            try {
7989                let isInvalid = false;
7990
7991                if (hyva.getCookie(last_visited_store_key) !== CURRENT_STORE_CODE) {
7992                    isInvalid = true;
7993                }
7994                hyva.setCookie(last_visited_store_key, CURRENT_STORE_CODE, false, false);
7995
7996                if (!hyva.getCookie(mage_cache_session_id_key)) {
7997                    isInvalid = true;
7998                    browserStorage.removeItem(private_content_key);
7999                    const skipSetDomain = true;
8000                    const days = false;
8001                    hyva.setCookie(mage_cache_session_id_key, true, days, skipSetDomain)
8002                }
8003
8004                const cookieVersion = hyva.getCookie(private_content_version_key);
8005                const storageVersion = browserStorage.getItem(private_content_version_key);
8006
8007                if (cookieVersion && !storageVersion || cookieVersion !== storageVersion) {
8008                    isInvalid = true;
8009                }
8010
8011                const privateContentExpires = browserStorage.getItem(private_content_expire_key);
8012                if (privateContentExpires && new Date(privateContentExpires) < new Date()) {
8013                    browserStorage.removeItem(private_content_key);
8014                }
8015
8016                if (isInvalid && cookieVersion) {
8017                    fetchPrivateContent([]);
8018                } else if (cookieVersion && storageVersion && cookieVersion === storageVersion) {
8019                    const privateContent = JSON.parse(browserStorage.getItem(private_content_key));
8020                    if (
8021                        privateContent &&
8022                        privateContentExpires &&
8023                        privateContent.cart &&
8024                        privateContent.customer
8025                    ) {
8026                        dispatchPrivateContent(privateContent);
8027                    } else {
8028                        fetchPrivateContent([]);
8029                    }
8030                } else {
8031                    if (document.getElementById('default-section-data')) {
8032                        const privateContent = JSON.parse(document.getElementById('default-section-data').innerText.trim());
8033                        dispatchPrivateContent(privateContent);
8034                    } else {
8035                        dispatchPrivateContent({});
8036                    }
8037                }
8038
8039            } catch (error) {
8040                console.warn('Error retrieving Private Content:', error);
8041            }
8042        }
8043
8044        hyva.alpineInitialized(loadSectionData)
8045        window.addEventListener('reload-customer-section-data', loadSectionData);
8046
8047        function dispatchPrivateContent(data) {
8048            const privateContentEvent = new CustomEvent("private-content-loaded", {
8049                detail: {
8050                    data: data
8051                }
8052            });
8053            window.dispatchEvent(privateContentEvent);
8054        }
8055
8056        function fetchPrivateContent(sections) {
8057            fetch(`${BASE_URL}customer/section/load/?sections=${encodeURIComponent(sections.join(','))}`, {
8058                method: 'GET',
8059                headers: {
8060                    'Content-Type': 'application/json',
8061                    'X-Requested-With': 'XMLHttpRequest'
8062                }
8063            })
8064                .then(response => response.json())
8065                .then(
8066                    data => {
8067                        if (data) {
8068                            try {
8069                                const browserStorage = hyva.getBrowserStorage();
8070
8071                                // merge new data preserving non-invalidated sections
8072                                const oldSectionData = JSON.parse(browserStorage.getItem(private_content_key) || '{}') || {};
8073
8074                                if ((! data.cart || ! data.cart.cartId) && oldSectionData['checkout-data']) {
8075                                    delete oldSectionData['checkout-data'];
8076                                }
8077                                const newSectionData = Object.assign(oldSectionData, data);
8078
8079                                dispatchPrivateContent(newSectionData);
8080
8081                                // don't persist messages, they've been dispatched already
8082                                if (newSectionData.messages && newSectionData.messages.messages ) {
8083                                    newSectionData.messages.messages = [];
8084                                }
8085
8086                                browserStorage.setItem(private_content_key, JSON.stringify(newSectionData));
8087
8088                                const expiresAt = new Date(Date.now() + (ttl * 1000)).toISOString();
8089                                browserStorage.setItem(private_content_expire_key, expiresAt);
8090
8091                                const newCookieVersion = hyva.getCookie(private_content_version_key);
8092                                browserStorage.setItem(private_content_version_key, newCookieVersion);
8093
8094                                // We don't need the section_data_ids in Hyvä, but we store them for compatibility
8095                                // with Luma Fallback. Otherwise, not all sections are loaded in Luma Checkout
8096                                hyva.setCookie(
8097                                    section_data_ids_key,
8098                                    JSON.stringify(
8099                                        Object.keys(data).reduce((sectionDataIds, sectionKey) => {
8100                                            sectionDataIds[sectionKey] = data[sectionKey]['data_id'];
8101                                            return sectionDataIds;
8102                                        }, {})
8103                                    ),
8104                                    false,
8105                                    true
8106                                );
8107                            } catch (error) {
8108                                console.warn("Couldn't store privateContent", error);
8109                            }
8110                        }
8111                    }
8112                );
8113        }
8114    }
8115</script>
vendor: 1 bytes, line 8115
8115
8116<script>
8117    (() => {
8118        document.addEventListener('submit', event => event.target.action = event.target.action.replace('%25uenc%25', hyva.getUenc()));
8119    })()
8120</script>
vendor: 1 bytes, line 8120
8120
8121<script>
8122    (events => {
8123        const dispatchUserInteractionEvent = () => {
8124            events.forEach(type => window.removeEventListener(type, dispatchUserInteractionEvent))
8125            window.dispatchEvent(new Event('init-external-scripts'))
8126        };
8127        events.forEach(type => window.addEventListener(type, dispatchUserInteractionEvent, {once: true, passive: true}))
8128    })(['touchstart', 'mouseover', 'wheel', 'scroll', 'keydown'])
8129</script>
8129
8130<style>
8131[data-bv-show=inline_rating] .bv_sub_container .bv_numReviews_component_container .bv_text{margin: -2px 0 0 0 !important;display: flex !important;}
8132@media(max-width: 767px){
8133[data-bv-show=inline_rating] .bv_sub_container .bv_numReviews_component_container .bv_text{margin: 4px 0 0 0 !important;}
8134}
8135@media screen and (min-width: 768px) and (max-width: 1440px) {
8136    .product-item .product-info .price-box .price-container .price-wrapper span.price{font-size: 18px !important;}
8137    .product-item .product-info .price-box .price-container .price-wrapper{font-size: 18px;}
8138}
8139@media(max-width: 1550px){
8140.products__recommendations .product-slider .glider-track .recommended-slider-item{min-width:auto;}
8141}
8142.page-products .spot-light .catergory_slider_content{border-radius: 10px;}
8143.page-header .panel.wrapper .header_top .header_left_notification a.email_icon:before{background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="%2315324c" version="1.1" id="Capa_1" width="800px" height="800px" viewBox="0 0 388.424 388.424" xml:space="preserve"><g><path d="M384.202,59.111H4.209C1.888,59.111,0,61,0,63.33v261.766c0,2.33,1.888,4.217,4.209,4.217h379.993 c2.317,0,4.222-1.887,4.222-4.217V63.33C388.424,61,386.52,59.111,384.202,59.111z M319.937,92.888L194.212,185.09L68.485,92.888 H319.937z M354.647,295.535H33.779V109.328l157.935,115.82c1.494,1.089,3.508,1.089,5.004,0l157.934-115.82v186.207H354.647z"/></g></svg>');background-size: 22px 22px;}
8144@media(max-width: 767px){
8145.page-products .spot-light .catergory_slider_content .product-info{padding-left: 0 !important;padding-right: 0px !important;}
8146}
8147.page-products .spot-light .spot-bottom .order_btn{height: 35px;width: auto;color: rgb(255 255 255 / var(--tw-text-opacity))  !important;background: #296497 !important;border-radius: .375rem;padding: 0 1.25rem !important;text-align: center;text-decoration: none !important;    vertical-align: middle;font-size: .75rem;line-height: 1rem;font-weight: 400;transition-duration: .15s;line-height: 35px;display: block;
8148}
8149.page-products .spot-light .spot-bottom .order_btn:hover{background: #15324c  !important;transition-duration: .15s;}
8150.page-products .spot-light .catergory_slider_content .color_counts .color_count{font-size: 12px;color: rgb(127 127 127 / var(--tw-text-opacity)}
8151
8152
8153.category-top-filter .pagebuilder-column h3 span, .category-top-filter .pagebuilder-column h3 span a, .category-top-filter .pagebuilder-column h3 a{display: block;}
8154.checkout-payment-method .payment-method .payment-method-title.field.choice input#paypal_express+label {display: block;}
8155.catalog-product-view .product-info-main .color_swatches .swatch-attribute-options .select_none.swatch-option{display: none;}
8156@media(min-width: 768px){
8157   .checkout-cart-index #shopping-cart-table .cart.item .item-info td.col.item{flex-wrap: nowrap;}
8158}
8159@media(min-width: 1500px){
8160    .checkout-cart-index #shopping-cart-table .col.qty{min-width: 169px;max-width: 169px;width: 169px;}
8161}
8162@media only screen and (max-width: 1340px) and (min-width: 1000px){
8163    .checkout-cart-index #maincontent #shopping-cart-table .product-item-details{max-width: 40%;}
8164}
8165</style>
8166<script>
8167document.addEventListener('DOMContentLoaded', function() {
8168  if (window.innerWidth <= 767) {
8169    document.querySelectorAll('.page-with-filter.page-products .sidebar .filter-content .card .filter-options-title').forEach(function(title) {
8170      const span = title.querySelector('span');
8171      if (span && span.textContent.trim().includes('Revenue Ranking')) {
8172        const parentCard = title.closest('.card');
8173        if (parentCard && !parentCard.id) {
8174          parentCard.id = 'filter-id-revenue_ranking';
8175        }
8176      }
8177    });
8178  }
8179});
8180</script>
8180
8181<style>
8182.page-with-filter.page-products .sidebar .filter-content .card#filter-id-revenue_ranking{display: none;}
8183.checkout-index-index .kl_sms_phone_number-field{margin-bottom: 20px;}
8184@media(min-width: 768px){
8185 .catalog-product-view .modal.order-free-sample-popup .right .order-free-sample-prod-info .product-info:after{right: -10px;top: -10px;}
8186}
8187@media(max-width: 767px){
8188  .catalog-product-view .order-free-sample-popup .border .product-info:after{left: 35px;}
8189}
8190.checkout-index-index .notification4 {display: none}
8191   #related_cart_slider .js_slides{margin-right: 0;margin-left: 0;}
8192</style>
8193<script>
8194    function initConfigurableOptions(productId, optionConfig) {
8195
8196        function findPathParam(key) {
8197                        const baseUrl = (BASE_URL.substr(0, 2) === '//' ? 'http:' : '') + BASE_URL;
8198            const baseUrlParts = (new URL(baseUrl)).pathname.replace(/\/$/, '').split('/');
8199            const pathParts = window.location.pathname.split('/').slice(baseUrlParts.length + 3);
8200            for (let i = 0; i < pathParts.length; i += 2) {
8201                if (pathParts[i] === key && pathParts.length > i) {
8202                    return pathParts[i + 1];
8203                }
8204            }
8205        }
8206
8207        return {
8208            optionConfig,
8209            productId,
8210            attributeCode:'',
8211            itemId: (new URLSearchParams(window.location.search)).get('id') || findPathParam('id'),
8212            ssrGalleryChildId: 0,
8213            allowedAttributeOptions: [],
8214            selectedValues: [],
8215            init() {
8216                this.checkIsFirst();
8217                this.findAllowedAttributeOptions();
8218                this.$nextTick(() => {
8219                    if (typeof this.optionConfig.defaultValues === 'object') {
8220                        for (const [optionId, value] of Object.entries(this.optionConfig.defaultValues)) {
8221                            this.changeOption(optionId, value + '');
8222                        }
8223                    }
8224                });
8225            },
8226            checkIsFirst() {
8227                this.isLoadedFirst = true;
8228                setTimeout(() => {
8229                    this.isLoadedFirst = false;
8230                }, "3000");
8231            },
8232            findSimpleIndex() {
8233                                this.productIndex = this.calculateSimpleIndexForPartialSelection(this.selectedValues);
8234            },
8235            calculateSimpleIndexForPartialSelection(selectedValues) {
8236                if (selectedValues.length === 0) return 0;
8237                let productIndexIds = Object.keys(this.optionConfig.index);
8238                Object.keys(this.optionConfig.attributes).forEach((attribute) => {
8239                                        const productsWithAttributeMatch = selectedValues[attribute]
8240                        ? productIndexIds.filter((productIndex) => {
8241                            return this.optionConfig.index[productIndex][attribute] === this.selectedValues[attribute]
8242                        })
8243                        : [];
8244
8245                                        productIndexIds = productsWithAttributeMatch.length ? productsWithAttributeMatch : productIndexIds
8246                })
8247                return productIndexIds[0];
8248            },
8249            calculateSimpleIndexForFullSelection(selectedValues) {
8250                const productIndexes = this.optionConfig.index;
8251                return Object.keys(productIndexes).find(productIndex => {
8252                    const productCandidateOptions = productIndexes[productIndex];
8253
8254                    for (const productOption in productCandidateOptions) {
8255                        if (
8256                            ! selectedValues[productOption] ||
8257                            selectedValues[productOption] !== productCandidateOptions[productOption]
8258                        ) {
8259                            return false;
8260                        }
8261                    }
8262                    return productIndex;
8263                });
8264            },
8265            productIndex: 0,
8266            findAllowedAttributeOptions() {
8267                                this.allowedAttributeOptions = this.calculateAllowedAttributeOptions(this.selectedValues);
8268            },
8269            calculateAllowedAttributeOptions(selectedValues) {
8270                const allAttributes = this.optionConfig.attributes;
8271                const allAttributesSorted = Object.values(allAttributes).sort((a,b) => {
8272                    return a.position - b.position
8273                });
8274
8275                const selectionWithoutAttr = attrId => {
8276                                        return Object.keys(selectedValues).reduce((acc, id) => {
8277                        if (id !== attrId) acc[id] = selectedValues[id];
8278                        return acc;
8279                    }, {})
8280                }
8281
8282                const newAllowedAttributeOptions = [];
8283
8284                allAttributesSorted.forEach(attribute => {
8285                    const availableIndexes = this.calculateAvailableProductIndexes(selectionWithoutAttr(attribute.id));
8286					if (attribute?.code === 'incstores_pim_color_axis') {
8287					    newAllowedAttributeOptions[attribute.id] =
8288						    allAttributes[attribute.id].options
8289							    .filter(option => {
8290                                    return !!option.products.find(product => availableIndexes.includes(product));
8291                                })
8292							    .sort((a, b) => {
8293								    const cheapestA = this.findCheapestProductForPartialSelectionForSort({
8294									    ...selectedValues,
8295									    [attribute.id]: a.id
8296								    });
8297
8298								    const cheapestB = this.findCheapestProductForPartialSelectionForSort({
8299									    ...selectedValues,
8300									    [attribute.id]: b.id
8301								    });
8302
8303								    if (!cheapestA && !cheapestB) return 0;
8304								    if (!cheapestA) return 1;
8305								    if (!cheapestB) return -1;
8306
8307								    const priceA = this.optionConfig.optionPrices[cheapestA].customPrice.amount;
8308                                    const priceB = this.optionConfig.optionPrices[cheapestB].customPrice.amount;
8309
8310								    return priceA - priceB;
8311							    });
8312					} else {
8313                    newAllowedAttributeOptions[attribute.id] = allAttributes[attribute.id].options.filter(option => {
8314                        return !!option.products.find(product => {
8315                            //====== For Custom Design link - fetch child product id on page load  START ======
8316                            if(document.querySelector('input[name="selected_option_child_id"]')){
8317                                if(document.querySelector('input[name="selected_option_child_id"]').value == ''){
8318                                    document.querySelector('input[name="selected_option_child_id"]').value = product;
8319                                }
8320                            }
8321                            //====== For Custom Design link - fetch child product id on page load END ======
8322                            return availableIndexes.includes(product);
8323                        })
8324                    });
8325                    }
8326                });
8327                return newAllowedAttributeOptions;
8328            },
8329            calculateAvailableProductIndexes(selectedOptions) {
8330                if (Object.keys(selectedOptions).length === 0) {
8331                                        return Object.keys(this.optionConfig.index);
8332                }
8333
8334                                const selectedIds = Object.keys(selectedOptions);
8335                if (Object.values(this.optionConfig.salable || {}).length) {
8336                                        const selectedOptionIndexes = selectedIds.map(attrId => {
8337                        const optionValue = selectedOptions[attrId];
8338                        return this.optionConfig.salable[attrId] && this.optionConfig.salable[attrId][optionValue] || []
8339                    })
8340                                        return selectedOptionIndexes.reduce((acc, optionIndexes) => {
8341                        return acc.filter(index => optionIndexes.includes(index));
8342                    });
8343                } else {
8344                                        const productIndexes = this.optionConfig.index;
8345                    return Object.keys(productIndexes).filter(index => {
8346                        return selectedIds.find(
8347                                                attrId => productIndexes[index][attrId] === `${selectedOptions[attrId]}`
8348                                                )
8349                    });
8350                }
8351            },
8352            findAttributeByOptionId(optionId) {
8353                for (const attributeId in this.optionConfig.attributes) {
8354                    const attributeOptions = this.optionConfig.attributes[attributeId].options || [];
8355                    if (attributeOptions.find(option => option.id === optionId)) {
8356                        return attributeId;
8357                    }
8358                }
8359            },
8360            getAllowedAttributeOptions(attributeId) {
8361                return this.allowedAttributeOptions[attributeId] || []
8362            },
8363            getProductIdsForOption(option) {
8364                const attributeId = this.findAttributeByOptionId(option.id);
8365                const allOptions = this.optionConfig.attributes[attributeId];
8366                const opt = (allOptions && allOptions.options || []).find(o => o.id === option.id);
8367                return opt && opt.products
8368                    ? opt.products
8369                    : [];
8370            },
8371            findProductIdsForPartialSelection(optionSelection) {
8372                const candidateProducts = Object.values(optionSelection).reduce((candidates, optionId) => {
8373                    const newCandidates = this.getProductIdsForOption({id: optionId});
8374                    return candidates === null
8375                        ? newCandidates
8376                        : candidates.filter(productId => newCandidates.includes(productId));
8377                }, null);
8378                return candidateProducts || [];
8379            },
8380            findCheapestProductForPartialSelection(optionSelection) {
8381                const candidateProducts = this.findProductIdsForPartialSelection(optionSelection);
8382                return candidateProducts.reduce((cheapest, simpleIdx) => {
8383                    // in the first iteration we start with simpleIdx as the currently cheapest product
8384                    if (! this.optionConfig.optionPrices[cheapest]) return simpleIdx;
8385                    const knownCheapestPrice = this.optionConfig.optionPrices[cheapest].finalPrice.amount;
8386                    return knownCheapestPrice > this.optionConfig.optionPrices[simpleIdx].finalPrice.amount
8387                        ? simpleIdx
8388                        : cheapest;
8389                }, 0)
8390            },
8391			findCheapestProductForPartialSelectionForSort(optionSelection) {
8392                const candidateProducts = this.findProductIdsForPartialSelection(optionSelection);
8393                return candidateProducts.reduce((cheapest, simpleIdx) => {
8394                    // in the first iteration we start with simpleIdx as the currently cheapest product
8395                    if (! this.optionConfig.optionPrices[cheapest]) return simpleIdx;
8396                    const knownCheapestPrice = this.optionConfig.optionPrices[cheapest].customPrice.amount;
8397                    return knownCheapestPrice > this.optionConfig.optionPrices[simpleIdx].customPrice.amount
8398                        ? simpleIdx
8399                        : cheapest;
8400                }, 0)
8401            },
8402            findProductIdToUseForOptionPrice(option) {
8403                // try to find a product for a complete selection
8404                const attributeId = this.findAttributeByOptionId(option.id);
8405                const optionSelection = Object.assign({}, this.selectedValues, {[attributeId]: option.id});
8406                const matchingSimpleIndex = this.calculateSimpleIndexForFullSelection(optionSelection);
8407                // if there is no complete selection, use the cheapest product for the option
8408                return matchingSimpleIndex || this.findCheapestProductForPartialSelection(optionSelection);
8409            },
8410            getAttributeOptionLabel(option) {
8411                const optionProduct = this.findProductIdToUseForOptionPrice(option);
8412                if ((! optionProduct) || (optionProduct === this.productIndex)) {
8413                    return option.label;
8414                }
8415
8416                const currentPrice = this.getOptionPriceAdjustmentBasePrice();
8417
8418                if (this.optionConfig.optionPrices[optionProduct]) {
8419                    const optionPrice = this.optionConfig.optionPrices[optionProduct].finalPrice.amount;
8420                    if (optionPrice !== currentPrice){
8421                        return option.label + ' ' + hyva.formatPrice(optionPrice - currentPrice, true);
8422                    }
8423                }
8424                return option.label;
8425            },
8426            getOptionPriceAdjustmentBasePrice() {
8427                if (this.optionConfig.optionPrices[this.productIndex]) {
8428                    return this.optionConfig.optionPrices[this.productIndex].finalPrice.amount
8429                }
8430                const cheapestForSelection = this.findCheapestProductForPartialSelection(this.selectedValues);
8431                return this.optionConfig.optionPrices[cheapestForSelection]
8432                    ? this.optionConfig.optionPrices[cheapestForSelection].finalPrice.amount
8433                    : this.optionConfig.prices.finalPrice.amount; // default price if no option selection
8434            },
8435            changeOption(optionId, value) {
8436                if (value !== ''
8437                    && typeof this.optionIsEnabled === 'function'
8438                    && !this.optionIsEnabled(optionId, value)) {
8439                    return;
8440                }
8441                var checkbox = document.getElementById('overage_percent');
8442                if(checkbox){
8443                    checkbox.checked = true; // Check the checkbox
8444                }
8445                var galleryImgOpacity = document.querySelector('#gallery .prod_slider img.first-image');
8446                if (galleryImgOpacity) {
8447                    galleryImgOpacity.classList.add('opacity-0');
8448                }
8449                if (value === '') {
8450                    // create new array so the length property is reset if no option is selected (avoiding delete)
8451                    this.selectedValues = this.selectedValues.reduce((newSelection, val, opt) => {
8452                        if (opt !== optionId) {
8453                            newSelection[opt] = val;
8454                        }
8455                        return newSelection;
8456                    }, []);
8457                } else {
8458                    const currentUrl = window.location.href;
8459                    // Create a URL object
8460                    const url = new URL(currentUrl);
8461                    // Use searchParams to get the color option
8462                    const colorOption = url.searchParams.get('color-option');
8463                    const variantOption = url.searchParams.get('variant-option');
8464                    if(colorOption!==null && variantOption!==null){
8465                        if(this.optionConfig.attributes[optionId]['code'] == 'incstores_pim_color_axis')
8466                        {
8467                            this.selectedValues[optionId] = colorOption;
8468                        }
8469                        if(this.optionConfig.attributes[optionId]['code'] == 'incstores_pim_variant_axis')
8470                        {
8471                            this.selectedValues[optionId] = variantOption;
8472                        }
8473                    }
8474                    else if(colorOption!==null){
8475                        if(this.optionConfig.attributes[optionId]['code'] == 'incstores_pim_color_axis')
8476                        {
8477                            this.selectedValues[optionId] = colorOption;
8478                        }
8479
8480                    }
8481                    else if(this.isLoadedFirst == true && (0 > 0 || 0 > 0))
8482                    {
8483                        if(this.optionConfig.attributes[optionId]['code'] == 'incstores_pim_color_axis')
8484                        {
8485                            this.selectedValues[optionId] = '0';
8486                        }
8487                        if(this.optionConfig.attributes[optionId]['code'] == 'incstores_pim_variant_axis')
8488                        {
8489                            this.selectedValues[optionId] = '0';
8490                        }
8491                    }
8492                    else
8493                    {
8494                        this.selectedValues[optionId] = value;
8495                    }
8496
8497                    var addToCartButton = document.querySelector('.pdp-addtocart-btn');
8498                    if (addToCartButton) {
8499                        if (!addToCartButton.classList.contains('pointer-events-none')) {
8500                            addToCartButton.classList.add('pointer-events-none');
8501                            addToCartButton.classList.add('opacity-50');
8502                        }
8503                    }
8504
8505                    var productId = this.findProductIdsForPartialSelection(this.selectedValues)[0];
8506                    var baseUrl = "https://www.flooringinc.com/";
8507					
8508					if (typeof productId === 'undefined') {
8509					   let attributeCode = this.optionConfig.attributes[optionId]['code'];
8510					   setTimeout(() => {
8511						   if (attributeCode == 'incstores_pim_color_axis') {
8512							if (typeof this.autoSelectCompatibleOtherOption === 'function') {
8513								this.autoSelectCompatibleOtherOption(optionId);
8514							}
8515						} else if (attributeCode == 'incstores_pim_variant_axis'
8516                            || attributeCode == 'product_option') {
8517							if (typeof this.autoSelectCompatibleColorOption === 'function') {
8518								this.autoSelectCompatibleColorOption(optionId);
8519							}
8520						}
8521                    }, 300);
8522					} else {
8523                    var fetchUrl = baseUrl+'customattribute/index/index/productId/'+productId;
8524
8525                    fetch(fetchUrl)
8526                    .then(response => response.json())
8527                    .then(data => {
8528
8529                        if (document.getElementById('dimensions-attributes')) {
8530                            document.getElementById('dimensions-attributes').innerHTML= data.detailsHtml.dimensionsHtml;
8531                        }
8532
8533                        if (document.getElementById('details-attributes')) {
8534                            document.getElementById('details-attributes').innerHTML= data.detailsHtml.productDetails;
8535                        }
8536
8537                        if (document.getElementById('ship-to-text')) {
8538                            document.getElementById('ship-to-text').value= data.shipToText;
8539                        }
8540
8541                        var addToCartButton = document.querySelector('.pdp-addtocart-btn');
8542                        if (addToCartButton) {
8543                            addToCartButton.classList.remove('pointer-events-none');
8544                            addToCartButton.classList.remove('opacity-50');
8545                        }
8546                    })
8547                    .catch(error => {
8548                        console.log(error);
8549                    });
8550					}
8551
8552                }
8553                this.findSimpleIndex();
8554                this.findAllowedAttributeOptions();
8555                this.updateCalculatorType();// custom coding
8556                this.updateMinRollcut();// custom coding
8557                this.updateMaxRollLengthRestriction();// custom coding
8558                this.updateTileSizeArea(); // custom coding
8559                this.updateExactWidth(); // custom coding
8560                this.updateExactLength(); // custom coding
8561                this.updateExactHeight(); // custom coding
8562                this.updateCoveragePerCase(); // custom coding
8563                this.updateTileMinQty(); // custom coding
8564                this.updateShippingDetails(); // custom coding
8565                this.updatePrices();
8566                this.updateSquareFootage();
8567
8568                //If the page loads first time it will stop the gallery change, so configurable product image will display
8569                if (!this.isLoadedFirst) {
8570                    this.updateGallery();
8571                }
8572
8573                //====== For Custom Design link - fetch child product id when option clicked  START ======
8574                if(document.querySelector('input[name="selected_option_child_id"]')){
8575                    document.querySelector('input[name="selected_option_child_id"]').value = this.productIndex;
8576                }
8577                if(document.querySelector('input[name="custom_length"]') && document.getElementById('roll_length')){
8578                    document.querySelector('input[name="custom_length"]').value = document.getElementById('roll_length').value;
8579                }
8580                //====== For Custom Design link - fetch child product id when option clicked END ======
8581                window.dispatchEvent(
8582                    new CustomEvent(
8583                        'configurable-selection-changed',
8584                        {
8585                            detail: {
8586                                productId: this.productId,
8587                                optionId: optionId,
8588                                value: value,
8589                                productIndex: this.productIndex,
8590                                selectedValues: this.selectedValues,
8591                                attributeCode: this.optionConfig.attributes[optionId]['code'],
8592                                candidates: this.findProductIdsForPartialSelection(this.selectedValues),
8593                            }
8594                        }
8595                    )
8596                );
8597
8598                /* =============================== disabled product option checking & remove  START =============== */
8599                if (!this.optionConfig?.ship_region_enabled
8600                    && document.querySelector('.swatch-attribute .selectOptionColor')
8601                ) {
8602                    var quickship_lebel_should_show;
8603                    var quickship_active_color_option_exist = 0;
8604                    setTimeout(() => {
8605                        document.querySelectorAll('.swatch-attribute .selectOptionColor').forEach(function(option_box) {
8606                            if (!option_box.querySelector('div, label')) {
8607                                option_box.remove();
8608                            }
8609                        });
8610
8611                    }, 300);
8612                }
8613                /* ===============================  disabled product option checking & remove END =============== */
8614				
8615				/* ========== remove validation when click on available color start =============== */
8616                if(document.querySelector('.normal_color_swatch_option .selectOptionColor') ){
8617                    setTimeout(() => {
8618                        const colorBoxes = document.querySelectorAll(
8619							'.normal_color_swatch_option .selectOptionColor'
8620						);
8621						var colorNotAvailable = 0;
8622						const colorerrorDiv = document.getElementById('normal-color-swatch-option-error-msg');
8623
8624						colorBoxes.forEach((colorBox) => {
8625							if (colorBox.querySelector('.select_none label.checked')) {
8626								colorNotAvailable = 1;
8627							}
8628						});
8629						if (!colorNotAvailable){
8630							colorerrorDiv.textContent = '';
8631							colorerrorDiv.style.display = 'none';
8632						}
8633
8634                    }, 300);
8635                }
8636                /* ========== remove validation when click on available color end =============== */
8637
8638                /* =============================== color label show / hide if color option not showing  END =============== */
8639
8640                /* =============================== other label show / hide if the option not showing  START =============== */
8641                if (typeof this.syncOtherSwatchOptionVisibility === 'function') {
8642                    this.syncOtherSwatchOptionVisibility();
8643                } else {
8644                    const swatchAttribute = document.querySelector('.swatch-attribute.other_swatch_option');
8645                    if (swatchAttribute) {
8646                        setTimeout(() => {
8647                            const selectOptionColors = swatchAttribute.querySelectorAll('.selectOptionColor');
8648                            if (selectOptionColors.length > 1) {
8649                                swatchAttribute.style.display = 'block';
8650                            } else {
8651                                swatchAttribute.style.display = 'none';
8652                            }
8653                        }, 300);
8654                    }
8655                }
8656                /* =============================== other label show / hide if the option not showing  END =============== */
8657
8658            },
8659            calculateIsMinimalPrice() {
8660                return (
8661                    this.selectedValues.filter(value => !!value).length <
8662                        Object.keys(this.optionConfig.attributes).length
8663                );
8664            },
8665            updatePrices() {
8666                const value = this.productIndex ?
8667                    this.optionConfig.optionPrices[this.productIndex] :
8668                    this.optionConfig.prices;
8669
8670                window.dispatchEvent(
8671                    new CustomEvent(
8672                        "update-prices-" + this.productId,
8673                        {
8674                            detail: Object.assign(
8675                                value,
8676                                {
8677                                    isMinimalPrice: this.calculateIsMinimalPrice(),
8678                                    calculatorType: this.optionConfig?.calculator_type?.[this.productIndex] ?? '',
8679                                    getIncstoresPimCoverage: this.optionConfig?.coverage_per_case?.[this.productIndex] ?? '',
8680                                    unitOfMeasure: this.optionConfig?.unit_of_measure?.[this.productIndex] ?? '',
8681                                    altUnitOfMeasure: this.optionConfig?.alt_unit_of_measure?.[this.productIndex] ?? 'sqft',
8682                                    availableQuantity: this.optionConfig?.available_quantity?.[this.productIndex] ?? '',
8683                                }
8684                            )
8685                        }
8686                    )
8687                );
8688                setTimeout(() => {
8689                    var calculatorType = this.optionConfig.calculator_type[this.productIndex];
8690                    var priceElement = document.querySelector('div.items-baseline .final-price .price');
8691                    
8692                    if (priceElement && calculatorType != 'none' && calculatorType != 'pre_cut_roll') {
8693                        var customOptionPrice = priceElement.childNodes[0].nodeValue.trim();
8694                        let priceLabelElement = document.querySelector('.final-price .price-label');
8695                        var priceLabel = "";
8696
8697                        if (priceLabelElement) {
8698                            priceLabel = priceLabelElement.textContent.trim();
8699                        }
8700
8701                        document.querySelectorAll('.display-option-price').forEach(el => {
8702                            el.textContent = "("+customOptionPrice+priceLabel+")";
8703                        });
8704                    } else if (calculatorType == 'none') {
8705                        //None type
8706                        var priceElement = document.querySelector('.none .final-price .price');
8707                        var customOptionPrice = "";
8708
8709                        if (priceElement) {
8710                            customOptionPrice = priceElement.childNodes[0].nodeValue.trim();
8711                        }
8712                        document.querySelectorAll('.display-option-price').forEach(el => {
8713                            el.textContent = "("+customOptionPrice+")";
8714                        });
8715                    } else if (calculatorType == 'pre_cut_roll') {
8716						let priceLabelElement = document.querySelector('.final-price .price-label');
8717                        var priceLabel = "";
8718
8719                        if (priceLabelElement) {
8720                            priceLabel = priceLabelElement.textContent.trim();
8721                        }
8722                        var priceElement = document.querySelector('.pre_cut_roll .final-price .price');
8723                        var customOptionPrice = "";
8724
8725                        if (priceElement) {
8726                            customOptionPrice = priceElement.childNodes[0].nodeValue.trim();
8727                        }
8728                        document.querySelectorAll('.display-option-price').forEach(el => {
8729                            el.textContent = "("+customOptionPrice+priceLabel+")";
8730                        });
8731                    }
8732                }, "500");
8733            },
8734            updateTileSizeArea() {
8735                const overage_percent = this.optionConfig.overage_percent[this.productIndex];
8736                const coverage_per_case = this.optionConfig.coverage_per_case[this.productIndex];
8737                const exact_width = this.optionConfig.exact_width[this.productIndex];
8738                const exact_length = this.optionConfig.exact_length[this.productIndex];
8739                window.dispatchEvent(
8740                    new CustomEvent(
8741                        "update-tile-size-area-" + this.productId,
8742                        {
8743                            detail: {
8744                            overage_percent: overage_percent,
8745                            coverage_per_case: coverage_per_case,
8746                            exact_width: exact_width,
8747                            exact_length: exact_length,
8748                            calculator_type: this.optionConfig.calculator_type[this.productIndex],
8749                            }
8750                        }
8751                    )
8752                );
8753            },
8754            updateExactWidth() {
8755                const exact_width = this.optionConfig.exact_width[this.productIndex];
8756                window.dispatchEvent(
8757                    new CustomEvent(
8758                        "update-exact-width-" + this.productId,
8759                        {detail: exact_width}
8760                    )
8761                );
8762            },
8763            updateExactLength() {
8764                const exact_length = this.optionConfig.exact_length[this.productIndex];
8765                window.dispatchEvent(
8766                    new CustomEvent(
8767                        "update-exact-length-" + this.productId,
8768                        {detail: exact_length}
8769                    )
8770                );
8771            },
8772            updateExactHeight() {
8773                const exact_height = this.optionConfig.exact_height[this.productIndex];
8774                window.dispatchEvent(
8775                    new CustomEvent(
8776                        "update-exact-height-" + this.productId,
8777                        {detail: exact_height}
8778                    )
8779                );
8780            },
8781            updateCoveragePerCase() {
8782                const coverage_per_case = this.optionConfig.coverage_per_case[this.productIndex];
8783                //const tile_size_area = "";
8784                window.dispatchEvent(
8785                    new CustomEvent(
8786                        "update-coverage-per-case-" + this.productId,
8787                        {detail: coverage_per_case}
8788                    )
8789                );
8790            },
8791            updateTileMinQty() {
8792                const min_tile_quantity = this.optionConfig.min_tile_quantity[this.productIndex];
8793                window.dispatchEvent(
8794                    new CustomEvent(
8795                        "update-min-tile-quantity-" + this.productId,
8796                        {detail: min_tile_quantity}
8797                    )
8798                );
8799            },
8800			getAttributeIdByCode(attributeCode) {
8801                let attributes = this.optionConfig.attributes;
8802
8803				for (let id in attributes) {
8804					if (attributes[id].code === attributeCode) {
8805						return id;
8806					}
8807				}
8808
8809				return null;
8810            },
8811            updateCalculatorType() {
8812                const has_corner_border_center = this.optionConfig.has_corner_border_center[this.productIndex];
8813                const calculator_type = this.optionConfig.calculator_type[this.productIndex];
8814                if(calculator_type == 'sqft' && has_corner_border_center !=1){
8815                    var cbcelements = document.querySelectorAll('.cbc');
8816                    cbcelements.forEach(function(element) {
8817                    element.style.display = 'none';
8818                    });
8819                    var noneelements = document.querySelectorAll('.none');
8820                    noneelements.forEach(function(element) {
8821                    element.style.display = 'none';
8822                    });
8823                    var rollelements = document.querySelectorAll('.roll');
8824                    rollelements.forEach(function(element) {
8825                    element.style.display = 'none';
8826                    });
8827                    var cbcelements = document.querySelectorAll('.case');
8828                    cbcelements.forEach(function(element) {
8829                    element.style.display = 'none';
8830                    });
8831                    var elements = document.querySelectorAll('.sqft');
8832                    elements.forEach(function(element) {
8833                    element.style.display = 'block';
8834                    });
8835
8836                    var elements = document.querySelectorAll('.pre_cut_roll');
8837                    elements.forEach(function(element) {
8838                    element.style.display = 'none';
8839                    });
8840                    const button = document.getElementById("product-addtocart-button-fake");
8841                    if (button && button.getAttribute("data-flooring-handler") !== "addToCartClickVerify") {
8842                        button.setAttribute("data-flooring-handler", "addToCartClickVerify");
8843                    }
8844                } else if(calculator_type == 'sqft' && has_corner_border_center ==1){
8845                    var sqftelements = document.querySelectorAll('.sqft');
8846                    sqftelements.forEach(function(element) {
8847                    element.style.display = 'none';
8848                    });
8849                    var caseelements = document.querySelectorAll('.case');
8850                    caseelements.forEach(function(element) {
8851                    element.style.display = 'none';
8852                    });
8853                    var rollelements = document.querySelectorAll('.roll');
8854                    rollelements.forEach(function(element) {
8855                    element.style.display = 'none';
8856                    });
8857                    var noneelements = document.querySelectorAll('.none');
8858                    noneelements.forEach(function(element) {
8859                    element.style.display = 'none';
8860                    });
8861                    var elements = document.querySelectorAll('.cbc');
8862                    elements.forEach(function(element) {
8863                    element.style.display = 'block';
8864                    });
8865                    var elements = document.querySelectorAll('.price-details .sqft');
8866                    elements.forEach(function(element) {
8867                    element.style.display = 'none';
8868                    });
8869
8870                    var elements = document.querySelectorAll('.pre_cut_roll');
8871                    elements.forEach(function(element) {
8872                    element.style.display = 'none';
8873                    });
8874                    const button = document.getElementById("product-addtocart-button-fake");
8875                    if (button && button.getAttribute("data-flooring-handler") !== "addToCartClickVerify") {
8876                        button.setAttribute("data-flooring-handler", "addToCartClickVerify");
8877                    }
8878                }else if(calculator_type == 'case'){
8879                    var sqftelements = document.querySelectorAll('.sqft');
8880                    sqftelements.forEach(function(element) {
8881                    element.style.display = 'none';
8882                    });
8883                    var cbcelements = document.querySelectorAll('.cbc');
8884                    cbcelements.forEach(function(element) {
8885                    element.style.display = 'none';
8886                    });
8887                    var noneelements = document.querySelectorAll('.none');
8888                    noneelements.forEach(function(element) {
8889                    element.style.display = 'none';
8890                    });
8891                    var rollelements = document.querySelectorAll('.roll');
8892                    rollelements.forEach(function(element) {
8893                    element.style.display = 'none';
8894                    });
8895                    var elements = document.querySelectorAll('.case');
8896                    elements.forEach(function(element) {
8897                    element.style.display = 'block';
8898                    });
8899
8900                    var elements = document.querySelectorAll('.pre_cut_roll');
8901                    elements.forEach(function(element) {
8902                    element.style.display = 'none';
8903                    });
8904                    const button = document.getElementById("product-addtocart-button-fake");
8905                    if (button && button.getAttribute("data-flooring-handler") !== "addToCartClickVerify") {
8906                        button.setAttribute("data-flooring-handler", "addToCartClickVerify");
8907                    }
8908                } else if(calculator_type == 'roll'){
8909                    var sqftelements = document.querySelectorAll('.sqft');
8910                    sqftelements.forEach(function(element) {
8911                    element.style.display = 'none';
8912                    });
8913                    var cbcelements = document.querySelectorAll('.cbc');
8914                    cbcelements.forEach(function(element) {
8915                    element.style.display = 'none';
8916                    });
8917                    var caseelements = document.querySelectorAll('.case');
8918                    caseelements.forEach(function(element) {
8919                    element.style.display = 'none';
8920                    });
8921                    var noneelements = document.querySelectorAll('.none');
8922                    noneelements.forEach(function(element) {
8923                    element.style.display = 'none';
8924                    });
8925                    var elements = document.querySelectorAll('.roll');
8926                    elements.forEach(function(element) {
8927                    element.style.display = 'block';
8928                    });
8929                    const button = document.getElementById("product-addtocart-button-fake");
8930                    if (button && button.getAttribute("data-flooring-handler") !== "addToCartClickVerify") {
8931                        button.setAttribute("data-flooring-handler", "addToCartClickVerify");
8932                    }
8933
8934                    var elements = document.querySelectorAll('.pre_cut_roll');
8935                    elements.forEach(function(element) {
8936                    element.style.display = 'none';
8937                    });
8938                } else if(calculator_type == 'pre_cut_roll'){
8939                    var sqftelements = document.querySelectorAll('.sqft');
8940                    sqftelements.forEach(function(element) {
8941                        element.style.display = 'none';
8942                    });
8943                    var cbcelements = document.querySelectorAll('.cbc');
8944                    cbcelements.forEach(function(element) {
8945                        element.style.display = 'none';
8946                    });
8947                    var caseelements = document.querySelectorAll('.case');
8948                    caseelements.forEach(function(element) {
8949                        element.style.display = 'none';
8950                    });
8951                    var noneelements = document.querySelectorAll('.none');
8952                    noneelements.forEach(function(element) {
8953                        element.style.display = 'none';
8954                    });
8955                    var elements = document.querySelectorAll('.roll');
8956                    elements.forEach(function(element) {
8957                        element.style.display = 'none';
8958                    });
8959                    var elements = document.querySelectorAll('.pre_cut_roll');
8960                    elements.forEach(function(element) {
8961                        element.style.display = 'block';
8962                    });
8963                    const button = document.getElementById("product-addtocart-button-fake");
8964                    if (button && button.getAttribute("data-flooring-handler") !== "addToCartClickforPreCutRoll") {
8965                        button.setAttribute("data-flooring-handler", "addToCartClickforPreCutRoll");
8966                    }
8967                } else {
8968                    var sqftelements = document.querySelectorAll('.sqft');
8969                    sqftelements.forEach(function(element) {
8970                        element.style.display = 'none';
8971                    });
8972                    var cbcelements = document.querySelectorAll('.cbc');
8973                    cbcelements.forEach(function(element) {
8974                        element.style.display = 'none';
8975                    });
8976                    var caseelements = document.querySelectorAll('.case');
8977                    caseelements.forEach(function(element) {
8978                        element.style.display = 'none';
8979                    });
8980                    var rollelements = document.querySelectorAll('.roll');
8981                    rollelements.forEach(function(element) {
8982                        element.style.display = 'none';
8983                    });
8984                    var cbcelements = document.querySelectorAll('.case');
8985                    cbcelements.forEach(function(element) {
8986                        element.style.display = 'none';
8987                    });
8988                    var elements = document.querySelectorAll('.none');
8989                    elements.forEach(function(element) {
8990                        element.style.display = 'block';
8991                    });
8992                    const noneButton = document.getElementById("product-addtocart-button-fake");
8993                    if (noneButton && noneButton.getAttribute("data-flooring-handler") !== "addToCartClickforNone") {
8994                        noneButton.setAttribute("data-flooring-handler", "addToCartClickforNone");
8995                    }
8996
8997                    var elements = document.querySelectorAll('.pre_cut_roll');
8998                    elements.forEach(function(element) {
8999                        element.style.display = 'none';
9000                    });
9001                }
9002            },
9003           updateMinRollcut() {
9004                const min_rollcut = this.optionConfig.min_rollcut[this.productIndex];
9005				var exactlength = '';
9006                window.dispatchEvent(
9007                    new CustomEvent(
9008                        "update-min-rollcut-" + this.productId,
9009                        {detail: min_rollcut}
9010                    )
9011                );
9012            },
9013
9014            updateMaxRollLengthRestriction() {
9015                const max_roll_length_restriction = this.optionConfig.max_roll_length_restriction[this.productIndex];
9016                const exact_width = this.optionConfig.exact_width[this.productIndex];
9017                const exact_length = this.optionConfig.exact_length[this.productIndex];
9018                const min_rollcut = this.optionConfig.min_rollcut[this.productIndex];
9019
9020                window.dispatchEvent(
9021                    new CustomEvent(
9022                        "update-max-roll-length-restriction-" + this.productId,
9023                        {
9024                            detail: {
9025                            max_roll_length_restriction: max_roll_length_restriction,
9026                            min_rollcut: min_rollcut,
9027                            exact_width: exact_width,
9028                            exact_length: exact_length,
9029                            }
9030                        }
9031                    )
9032                );
9033            },
9034            updateShippingDetails() {
9035                const pdp_shipping_text = this.optionConfig.pdp_shipping_text[this.productIndex];
9036                const expected_days_ship = this.optionConfig.expected_days_ship[this.productIndex];
9037                window.dispatchEvent(
9038                    new CustomEvent(
9039                        "update-shipping-details-" + this.productId,
9040                        {
9041                            detail: {
9042                            pdp_shipping_text: pdp_shipping_text,
9043                            expected_days_ship: expected_days_ship,
9044                            }
9045                        }
9046                    )
9047                );
9048            },
9049            updateGallery () {
9050                if (this.isLoadedFirst && this.ssrGalleryChildId > 0) {
9051                    return;
9052                }
9053
9054                if (this.productIndex) {
9055                    const images = this.optionConfig.images[this.productIndex];
9056                    images && window.dispatchEvent(new CustomEvent(
9057                        "update-gallery",
9058                        { detail: this.sortImagesByPosition(images) }
9059                    ));
9060                } else {
9061                    window.dispatchEvent(new Event("reset-gallery"));
9062                }
9063            },
9064            updateSquareFootage () {
9065                let squareFootageElement = document.getElementsByName('square_footage');
9066                
9067                if (squareFootageElement.length > 0) {
9068                    var squareFootage = squareFootageElement[0].value;
9069
9070                    if (squareFootage) {
9071                        // Trigger the 'keyup' event
9072                        var event = new KeyboardEvent('keyup', {
9073                            'key': 'Enter', // You can set this to any key, like 'Enter'
9074                            'bubbles': true,
9075                            'cancelable': true
9076                        });
9077
9078                        squareFootageElement[0].dispatchEvent(event);
9079                    }
9080                }
9081            },
9082            sortImagesByPosition(images) {
9083                return images.sort((x, y) => {
9084                    return x.position === y.position ? 0 : (parseInt(x.position) > parseInt(y.position) ? 1 : -1)
9085                });
9086            },
9087            onGetCartData(data) {
9088                this.preselectCartItems(data);
9089                this.preselectQuerystringItems();
9090                this.preselectLocationHashItems();
9091            },
9092            preselectCartItems(data) {
9093                // pre-select options based on cart data for current (quote) itemId
9094                const cart = data && data.cart;
9095                if (cart && cart.items) {
9096                    const cartItem = cart.items.find((item) => {
9097                        return (
9098                            item.item_id === this.itemId
9099                            && item.product_id === this.productId
9100                        )
9101                    });
9102                    if (cartItem && cartItem.options && cartItem.options.length) {
9103                        cartItem.options.map(option => {
9104                            this.changeOption(option.option_id, option.option_value);
9105                        })
9106                    }
9107                }
9108            },
9109            preselectQuerystringItems() {
9110                // pre-select option like ?size=167
9111                const urlQueryParams = new URLSearchParams(window.location.search.replace('?',''));
9112                Object.values(this.optionConfig.attributes).map(attribute => {
9113                    urlQueryParams.get(attribute.code) &&
9114                    this.changeOption(attribute.id, urlQueryParams.get(attribute.code));
9115                });
9116            },
9117            preselectLocationHashItems() {
9118                // pre-select option like #144=167
9119                const urlHashParams = new URLSearchParams(window.location.hash.replace('#',''));
9120                Object.values(this.optionConfig.attributes).map(attribute => {
9121                    urlHashParams.get(attribute.id) &&
9122                    this.changeOption(attribute.id, urlHashParams.get(attribute.id));
9123                });
9124            }
9125        }
9126    }
9127
9128    function isOptionVisible(element) {
9129        const computedStyle = window.getComputedStyle(element);
9130        return computedStyle.display !== 'none' && computedStyle.visibility !== 'hidden';
9131    }
9132</script>
vendor: 1 bytes, line 9132
9132
9133<script>
9134    function initCompareOnProductList() {
9135        return {
9136            addToCompare(productId) {
9137                const formKey = hyva.getFormKey();
9138                const postUrl = BASE_URL + 'catalog/product_compare/add/';
9139
9140                fetch(postUrl, {
9141                    "headers": {
9142                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
9143                    },
9144                    "body": "form_key=" + formKey + "&product=" + productId + "&uenc=" + hyva.getUenc(),
9145                    "method": "POST",
9146                    "mode": "cors",
9147                    "credentials": "include"
9148                }).then(function (response) {
9149                    if (response.redirected) {
9150                        window.location.href = response.url;
9151                    }
9152                }).catch(function (error) {
9153                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
9154                        [{
9155                            type: "error",
9156                            text: error
9157                        }], 5000
9158                    );
9159                });
9160            }
9161        };
9162    }
9163</script>
vendor: 1 bytes, line 9163
9163
9164<script>
9165    function initWishlist() {
9166        return {
9167            addToWishlist(productId) {
9168                const formKey = hyva.getFormKey();
9169                const postUrl = BASE_URL + 'wishlist/index/add/';
9170
9171                fetch(postUrl, {
9172                    "headers": {
9173                        "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
9174                    },
9175                    "body": "form_key=" + formKey + "&product=" + productId + "&uenc=" + hyva.getUenc(),
9176                    "method": "POST",
9177                    "mode": "cors",
9178                    "credentials": "include"
9179                }).then(function (response) {
9180                    if (response.redirected) {
9181                        window.location.href = response.url;
9182                    } else if (response.ok) {
9183                        return response.json();
9184                    } else {
9185                        typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
9186                            [{
9187                                type: "warning",
9188                                text: "Could not add item to wishlist."
9189                            }], 5000
9190                        );
9191                    }
9192                }).then(function (response) {
9193                    if (!response) { return }
9194                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
9195                        [{
9196                            type: (response.success) ? "success" : "error",
9197                            text: (response.success)
9198                                ? "Product has been added to your Wish List."
9199                                : response.error_message
9200                        }], 5000
9201                    );
9202                    const reloadCustomerDataEvent = new CustomEvent("reload-customer-section-data");
9203                    window.dispatchEvent(reloadCustomerDataEvent);
9204                }).catch(function (error) {
9205                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
9206                        [{
9207                            type: "error",
9208                            text: error
9209                        }], 5000
9210                    );
9211                });
9212            }
9213        }
9214    }
9215</script>
vendor: 1 bytes, line 9215
9215
9216<script>
9217    function initSwatchOptions(swatchConfig, swatchLabelValues = null) {
9218        const normalizedSwatchLabelValues = (
9219            swatchLabelValues
9220            && typeof swatchLabelValues === 'object'
9221            && !Array.isArray(swatchLabelValues)
9222        ) ? swatchLabelValues : {};
9223
9224        return {
9225            swatchConfig,
9226            swatchLabelValues: normalizedSwatchLabelValues,
9227            resolveSwatchLabel(attributeId, optionId) {
9228                if (optionId === undefined || optionId === null || optionId === '') {
9229                    return '';
9230                }
9231
9232                const optionKey = String(optionId);
9233                const labels = (
9234                    this.swatchLabelValues
9235                    && typeof this.swatchLabelValues === 'object'
9236                    && !Array.isArray(this.swatchLabelValues)
9237                ) ? this.swatchLabelValues : {};
9238                const flatLabel = labels[optionKey] ?? labels[optionId];
9239                if (flatLabel !== undefined && flatLabel !== null && flatLabel !== '') {
9240                    return String(flatLabel);
9241                }
9242
9243                const attrConfig = this.swatchConfig?.[attributeId] ?? this.swatchConfig?.[String(attributeId)];
9244                const attrLabels = attrConfig?.swatchLabelValues;
9245                if (attrLabels) {
9246                    const attrLabel = attrLabels[optionKey] ?? attrLabels[optionId];
9247                    if (attrLabel !== undefined && attrLabel !== null && attrLabel !== '') {
9248                        return String(attrLabel);
9249                    }
9250                }
9251
9252                const swatchOption = attrConfig?.[optionKey] ?? attrConfig?.[optionId];
9253                if (swatchOption?.label) {
9254                    return String(swatchOption.label);
9255                }
9256
9257                return this.getOptionLabelFromOptionConfig(attributeId, optionId) || '';
9258            },
9259            getAttributeSwatchData(attributeId) {
9260                const attributeKey = String(attributeId);
9261                const rawConfig = this.swatchConfig?.[attributeId] ?? this.swatchConfig?.[attributeKey];
9262                const labels = (
9263                    this.swatchLabelValues
9264                    && typeof this.swatchLabelValues === 'object'
9265                    && !Array.isArray(this.swatchLabelValues)
9266                ) ? this.swatchLabelValues : {};
9267                if (!rawConfig) {
9268                    return {details: {}, swatchLabelValues: labels};
9269                }
9270                const swatchConfig = Object.assign({}, rawConfig);
9271                if (swatchConfig['additional_data']) {
9272                    try {
9273                        swatchConfig['details'] = JSON.parse(swatchConfig['additional_data']);
9274                    } catch (error) {
9275                        swatchConfig['details'] = {};
9276                    }
9277                } else {
9278                    swatchConfig['details'] = swatchConfig['details'] ?? {};
9279                }
9280                swatchConfig['swatchLabelValues'] = labels;
9281
9282                return swatchConfig;
9283            },
9284            getAllAttributeOptions(attributeId) {
9285                return (
9286                    this.optionConfig.attributes[attributeId] &&
9287                    this.optionConfig.attributes[attributeId].options
9288                ) || []
9289            },
9290            optionIsActive(attributeId, optionId) {
9291                const optionKey = String(optionId);
9292                return !!this.getAllowedAttributeOptions(attributeId).find(
9293                    option => String(option.id) === optionKey
9294                );
9295            },
9296            optionIsEnabled(attributeId, optionId) {
9297                const attributeKey = String(attributeId);
9298                const optionKey = String(optionId);
9299                const index = this.optionConfig?.index || {};
9300                for (const productId in index) {
9301                    const productOptions = index[productId] || {};
9302                    if (
9303                        String(productOptions[attributeKey]) === optionKey
9304                        || String(productOptions[attributeId]) === optionKey
9305                    ) {
9306                        return true;
9307                    }
9308                }
9309                const attributeOptions = (
9310                    this.optionConfig?.attributes?.[attributeId]?.options
9311                    || this.optionConfig?.attributes?.[attributeKey]?.options
9312                    || []
9313                );
9314                const match = attributeOptions.find((option) => String(option.id) === optionKey);
9315                if (!match?.products?.length) {
9316                    return false;
9317                }
9318                return match.products.some((childId) => {
9319                    const key = String(childId);
9320                    return Object.prototype.hasOwnProperty.call(index, key)
9321                        || Object.prototype.hasOwnProperty.call(index, childId);
9322                });
9323            },
9324            mapSwatchTypeNumberToTypeCode(typeNumber) {
9325                switch ("" + typeNumber) {
9326                    case "1":
9327                        return "color"
9328                    case "2":
9329                        return "image"
9330                    case "3":
9331                        return "empty"
9332                    case "0":
9333                    default:
9334                        return "text"
9335                }
9336            },
9337            getTypeOfFirstOption(attributeId) {
9338                for (const optionId in this.swatchConfig[attributeId]) {
9339                    const option = this.swatchConfig[attributeId][optionId];
9340                    if (typeof option.type !== 'undefined') {
9341                        return this.mapSwatchTypeNumberToTypeCode(option.type);
9342                    }
9343                }
9344            },
9345            getVisualSwatchType(attributeId, targetOptionId) {
9346                // If a type configuration is present for the given option id, use it
9347                const config = this.swatchConfig[attributeId];
9348                if (config[targetOptionId] && typeof config[targetOptionId].type !== 'undefined') {
9349                    return this.mapSwatchTypeNumberToTypeCode(config[targetOptionId].type);
9350                }
9351
9352                // Otherwise - if no config is present for the target option - use the type of the first option
9353                // with a type property from the attribute, thus assuming its the same type as the target option.
9354                // (This edge case condition can occur on single swatch products if some options are not salable)
9355                return this.getTypeOfFirstOption(attributeId);
9356            },
9357            getSwatchType(attributeId, optionId) {
9358                // Deserialize the attribute details the first time they are used
9359                if (this.swatchConfig[attributeId] && ! this.swatchConfig[attributeId].details) {
9360                    this.swatchConfig[attributeId] = this.getAttributeSwatchData(attributeId);
9361                }
9362                const type =  this.swatchConfig[attributeId] &&
9363                    this.swatchConfig[attributeId].details &&
9364                    this.swatchConfig[attributeId].details.swatch_input_type ||
9365                    "empty";
9366                return type === 'visual' ? this.getVisualSwatchType(attributeId, optionId) : type;
9367            },
9368            isTextSwatch(attributeId, optionId) {
9369                return this.getSwatchType(attributeId, optionId) === 'text';
9370            },
9371            isVisualSwatch(attributeId, optionId) {
9372                const type = this.getSwatchType(attributeId, optionId);
9373
9374                return ['image', 'color'].includes(type);
9375            },
9376            getSwatchBackgroundStyle(attributeId, optionId) {
9377                const config = this.getSwatchConfig(attributeId, optionId);
9378                const type = this.getSwatchType(attributeId, optionId);
9379
9380                if (type === "color") {
9381                        return 'background-color:' + config.value;
9382                } else if (type === "image") {
9383                        return "background: #ffffff url('" + config.value + "') no-repeat center";
9384                } else {
9385                    return '';
9386                }
9387            },
9388			getSwatchText(attributeId, optionId) {
9389                return this.resolveSwatchLabel(attributeId, optionId);
9390            },
9391            getLegacyColorSwatchImageHtml(attributeId, optionId) {
9392                const map = this._legacyColorSwatchImages || {};
9393                return this.getSwatchTextUrl(attributeId, optionId, map);
9394            },
9395            getSwatchTextUrl(attributeId, optionId, childSwatch) {
9396                const config = this.getSwatchConfig(attributeId, optionId);
9397                const optionKey = String(optionId);
9398                const swatchMap = (
9399                    childSwatch
9400                    && typeof childSwatch === 'object'
9401                    && !Array.isArray(childSwatch)
9402                ) ? childSwatch : {};
9403                const swatchUrl = swatchMap[optionKey] ?? swatchMap[optionId];
9404                if(swatchUrl != "" && swatchUrl != null && isValidURL(swatchUrl)){
9405					return "<img loading='lazy' src="+swatchUrl+" title="+swatchUrl+" alt="+swatchUrl+"/>";
9406				} else if(config && config.value!="" && config.value!= null && isValidURL(config.value)){
9407					return "<img loading='lazy' src="+config.value+" title="+config.value+" alt="+config.value+"/>";
9408				} else {
9409					 var placeHoldernew = BASE_URL+'media/catalog/product/placeholder/default/swatch_placeholder.png';
9410
9411					return "<img  width= '60px' height='60px' src="+placeHoldernew+" title="+placeHoldernew+" alt="+placeHoldernew+"/>";
9412				}
9413			},
9414            getOptionLabelFromOptionConfig(attributeId, optionId) {
9415                const optionKey = String(optionId);
9416                const option = this.getAllAttributeOptions(attributeId).find(
9417                    (entry) => String(entry.id) === optionKey
9418                );
9419                return option?.label || '';
9420            },
9421            getSwatchConfig(attributeId, optionId) {
9422                const attrConfig = this.swatchConfig[attributeId] ?? this.swatchConfig[String(attributeId)];
9423                if (!attrConfig) {
9424                    return false;
9425                }
9426                return attrConfig[optionId] ?? attrConfig[String(optionId)] ?? false;
9427            },
9428            activeTooltipItem: false,
9429            tooltipPositionElement: false,
9430            isTooltipVisible() {
9431                return this.activeTooltipItem &&
9432                    this.getSwatchConfig(
9433                        this.activeTooltipItem.attribute,
9434                        this.activeTooltipItem.item
9435                    );
9436            },
9437            getTooltipImageStyle(attributeId, optionId) {
9438                const config = this.getSwatchConfig(attributeId, optionId);
9439                const type = this.getSwatchType(attributeId, optionId);
9440
9441                if (type === "color") {
9442                    return 'background-color:' + config.value + '; width: 110px; height: 90px;';
9443                } else if (type === "image") {
9444                    return "background: #ffffff url('" + config.thumb +
9445                        "') center center no-repeat; width: 110px; height: 90px;";
9446                } else {
9447                    return 'display:none';
9448                }
9449            },
9450            getTooltipPosition() {
9451                if (!this.tooltipPositionElement) {
9452                    return '';
9453                }
9454                const rect = this.tooltipPositionElement.getBoundingClientRect();
9455                const elementWidth = rect.width;
9456                const elementHeight = rect.height;
9457                const container = document.querySelector('.swatch___render');
9458                if (!container) {
9459                    return '';
9460                }
9461                const containerRect = container.getBoundingClientRect();
9462                const topPosition = rect.top - containerRect.top + 10;
9463                const leftPosition = rect.left - containerRect.left;
9464
9465                return `                    
9466                    top: ${topPosition}px;
9467                    left: ${leftPosition}px;
9468                `;
9469            },
9470            getSwatchConfigLabel(attributeId, optionId) {
9471                const label = this.resolveSwatchLabel(attributeId, optionId);
9472                return label !== '' ? label : false;
9473            },
9474            getTooltipLabel() {
9475                return this.getSwatchConfigLabel(this.activeTooltipItem.attribute, this.activeTooltipItem.item);
9476                //return this.getSwatchConfig(this.activeTooltipItem.attribute, this.activeTooltipItem.item).label
9477            },
9478            focusedLabel: false,
9479            focusLabel(optionId) {
9480                this.focusedLabel = optionId;
9481            },
9482            blurLabel() {
9483                this.focusedLabel = false;
9484            },
9485            showSwatches: true,
9486            initShowSwatchesIntersect() {
9487                this.showSwatches = true;
9488            },
9489
9490            quickShipValidation(attributeCode, attributeId, optionId){
9491               if (optionId === undefined || optionId === null || optionId === '') {
9492                   return 0;
9493               }
9494               var is_quick_ship_color = 0;
9495                var optionConfigObj = this.optionConfig;
9496                if (!optionConfigObj || typeof optionConfigObj !== 'object') {
9497                    return 0;
9498                }
9499                if(attributeCode == 'incstores_pim_color_axis'){
9500                    var attributes = optionConfigObj.attributes;
9501                    if (!attributes || !attributes[attributeId] || !attributes[attributeId]['options']) {
9502                        return 0;
9503                    }
9504                    var quickShipColorIds = optionConfigObj.quick_ship_color_ids || [];
9505                    if (quickShipColorIds.length) {
9506                        return quickShipColorIds.some(function (id) {
9507                            return String(id) === String(optionId);
9508                        }) ? 1 : 0;
9509                    }
9510                    var quickShipMap = optionConfigObj.quick_ship;
9511                    if (!quickShipMap) {
9512                        return 0;
9513                    }
9514                    var attributes_options = attributes[attributeId]['options'];
9515
9516                    attributes_options.forEach(function(option_details) {
9517                        if(option_details['id'] == optionId){
9518                            option_details['products'].forEach(function(child_product_id) {
9519                                if(quickShipMap[String(child_product_id)] == 1 || quickShipMap[child_product_id] == 1){
9520                                    is_quick_ship_color = 1;
9521                                    return false;
9522                                }
9523                            });
9524                        }
9525                    });
9526                }
9527                return is_quick_ship_color;
9528            },
9529
9530            hasQuickShipColorOptions(attributeCode, attributeId) {
9531                if (!this.optionConfig?.attributes?.[attributeId]?.options?.length) {
9532                    return false;
9533                }
9534                if (this.selectedValues) {
9535                    Object.keys(this.selectedValues).forEach(function (key) {
9536                        void this.selectedValues[key];
9537                    }.bind(this));
9538                }
9539                var colorIds = this.optionConfig.quick_ship_color_ids || [];
9540                var options = this.optionConfig.attributes[attributeId].options;
9541                for (var i = 0; i < options.length; i++) {
9542                    var optionId = options[i].id;
9543                    var isQuick = colorIds.length
9544                        ? colorIds.some(function (id) { return String(id) === String(optionId); })
9545                        : (this.quickShipValidation(attributeCode, attributeId, optionId) === 1);
9546                    if (!isQuick) {
9547                        continue;
9548                    }
9549                    if (!this.optionIsEnabled(attributeId, optionId)) {
9550                        continue;
9551                    }
9552                    if (!this.optionIsActive(attributeId, optionId)) {
9553                        continue;
9554                    }
9555                    return true;
9556                }
9557                return false;
9558            },
9559
9560            hasNormalColorOptions(attributeCode, attributeId) {
9561                if (!this.optionConfig?.attributes?.[attributeId]?.options?.length) {
9562                    return false;
9563                }
9564                if (this.shipRegionZipActive && this.customerRegionCode) {
9565                    return false;
9566                }
9567                var colorIds = this.optionConfig.quick_ship_color_ids || [];
9568                var options = this.optionConfig.attributes[attributeId].options;
9569                for (var i = 0; i < options.length; i++) {
9570                    var optionId = options[i].id;
9571                    var isQuick = colorIds.length
9572                        ? colorIds.some(function (id) { return String(id) === String(optionId); })
9573                        : (this.quickShipValidation(attributeCode, attributeId, optionId) === 1);
9574                    if (!isQuick) {
9575                        if (!this.optionIsEnabled(attributeId, optionId)) {
9576                            continue;
9577                        }
9578                        if (!this.optionIsActive(attributeId, optionId)) {
9579                            continue;
9580                        }
9581                        return true;
9582                    }
9583                }
9584                return false;
9585            },
9586
9587            shouldShowQuickShipSection(attributeCode, attributeId) {
9588                if (this.shipRegionZipActive && this.customerRegionCode) {
9589                    return false;
9590                }
9591                return this.hasQuickShipColorOptions(attributeCode, attributeId);
9592            },
9593
9594            getOtherSwatchAttributeId(section = null) {
9595                const target = section || document.querySelector('.swatch-attribute.other_swatch_option');
9596                if (!target || !this.optionConfig?.attributes) {
9597                    return null;
9598                }
9599                for (const key in this.optionConfig.attributes) {
9600                    const code = this.optionConfig.attributes[key]?.code;
9601                    if (code && code !== 'incstores_pim_color_axis' && target.classList.contains(code)) {
9602                        return parseInt(key, 10);
9603                    }
9604                }
9605                for (const key in this.optionConfig.attributes) {
9606                    const code = this.optionConfig.attributes[key]?.code;
9607                    if (code && code !== 'incstores_pim_color_axis') {
9608                        return parseInt(key, 10);
9609                    }
9610                }
9611                return null;
9612            },
9613
9614            /**
9615             * Count salable/enabled options only. Disabled Magento variants stay out of the UI.
9616             * Hide "Select An Option" when fewer than two enabled options remain.
9617             */
9618            countEnabledOtherSwatchOptions(attrId) {
9619                if (!attrId) {
9620                    return 0;
9621                }
9622                const options = this.optionConfig?.attributes?.[attrId]?.options || [];
9623                return options.filter((option) => this.optionIsEnabled(attrId, option.id)).length;
9624            },
9625
9626            countVisibleOtherSwatchOptions() {
9627                return this.countEnabledOtherSwatchOptions(this.getOtherSwatchAttributeId());
9628            },
9629
9630            syncOtherSwatchOptionVisibility() {
9631                const sections = document.querySelectorAll('.swatch-attribute.other_swatch_option');
9632                if (!sections.length) {
9633                    return;
9634                }
9635                const self = this;
9636                const applyVisibility = () => {
9637                    sections.forEach((variantSection) => {
9638                        const attrId = self.getOtherSwatchAttributeId(variantSection);
9639                        if (!attrId) {
9640                            return;
9641                        }
9642                        const optionCount = self.countEnabledOtherSwatchOptions(attrId);
9643                        const shouldShow = optionCount > 1;
9644                        variantSection.classList.toggle('dcw-single-option-hidden', !shouldShow);
9645                        // Theme CSS defaults other_swatch_option to display:none — force block/none.
9646                        variantSection.style.setProperty(
9647                            'display',
9648                            shouldShow ? 'block' : 'none',
9649                            'important'
9650                        );
9651                        if (!shouldShow && optionCount === 1) {
9652                            const options = self.optionConfig?.attributes?.[attrId]?.options || [];
9653                            const enabledOption = options.find((option) => self.optionIsEnabled(attrId, option.id));
9654                            const optionId = enabledOption?.id;
9655                            if (optionId !== undefined
9656                                && String(self.selectedValues[attrId]) !== String(optionId)
9657                                && typeof self.changeOption === 'function') {
9658                                self.changeOption(attrId, optionId);
9659                            }
9660                        }
9661                    });
9662                };
9663                applyVisibility();
9664                window.setTimeout(applyVisibility, 300);
9665            },
9666
9667            /**
9668             * After color selection only (including disabled colors): if current variant/option
9669             * is incompatible, auto-select the cheapest compatible one. Never run on variant clicks.
9670             */
9671            autoSelectCompatibleOtherOption(colorAttrId) {
9672                if (!colorAttrId || !this.optionConfig?.attributes) {
9673                    return;
9674                }
9675                const selectedColor = this.selectedValues[colorAttrId];
9676                if (!selectedColor) {
9677                    return;
9678                }
9679
9680                let otherAttrId = null;
9681                if (typeof this.getAttributeIdByCode === 'function') {
9682                    otherAttrId = this.getAttributeIdByCode('incstores_pim_variant_axis')
9683                        || this.getAttributeIdByCode('product_option');
9684                }
9685                if (!otherAttrId) {
9686                    const section = document.querySelector('.swatch-attribute.other_swatch_option');
9687                    otherAttrId = this.getOtherSwatchAttributeId(section);
9688                }
9689                if (!otherAttrId || !this.optionConfig.attributes[otherAttrId]) {
9690                    return;
9691                }
9692
9693                const currentOther = this.selectedValues[otherAttrId];
9694                const isCurrentCompatible = currentOther
9695                    && typeof this.optionIsActive === 'function'
9696                    && this.optionIsActive(otherAttrId, currentOther);
9697
9698                if (isCurrentCompatible) {
9699                    return;
9700                }
9701
9702                const options = this.optionConfig.attributes[otherAttrId].options || [];
9703                let lowestPrice = null;
9704                let lowestOptionId = null;
9705
9706                options.forEach((option) => {
9707                    if (typeof this.optionIsEnabled === 'function'
9708                        && !this.optionIsEnabled(otherAttrId, option.id)) {
9709                        return;
9710                    }
9711                    const productIds = option.products || [];
9712                    productIds.forEach((productId) => {
9713                        const product = this.optionConfig.index[productId]
9714                            || this.optionConfig.index[String(productId)];
9715                        if (!product || String(product[colorAttrId]) !== String(selectedColor)) {
9716                            return;
9717                        }
9718                        const priceData = this.optionConfig.optionPrices[productId]
9719                            || this.optionConfig.optionPrices[String(productId)];
9720                        if (!priceData) {
9721                            return;
9722                        }
9723                        const price = priceData.finalPrice.amount;
9724                        if (lowestPrice === null || price < lowestPrice) {
9725                            lowestPrice = price;
9726                            lowestOptionId = option.id;
9727                        }
9728                    });
9729                });
9730
9731                if (lowestOptionId === null
9732                    || String(this.selectedValues[otherAttrId]) === String(lowestOptionId)) {
9733                    return;
9734                }
9735
9736                if (typeof this.changeOption === 'function') {
9737                    this.changeOption(otherAttrId, lowestOptionId);
9738                    return;
9739                }
9740
9741                const el = document.querySelector(
9742                    'input[name="super_attribute[' + otherAttrId + ']"][value="' + lowestOptionId + '"]'
9743                );
9744                if (el) {
9745                    el.click();
9746                }
9747            },
9748
9749            /**
9750             * After variant / Select An Option change: if current color is unavailable,
9751             * auto-select the cheapest compatible color. Never run on color clicks.
9752             */
9753            autoSelectCompatibleColorOption(otherAttrId) {
9754                if (!otherAttrId || !this.optionConfig?.attributes) {
9755                    return;
9756                }
9757                const selectedOther = this.selectedValues[otherAttrId];
9758                if (!selectedOther) {
9759                    return;
9760                }
9761
9762                let colorAttrId = null;
9763                if (typeof this.getAttributeIdByCode === 'function') {
9764                    colorAttrId = this.getAttributeIdByCode('incstores_pim_color_axis');
9765                }
9766                if (!colorAttrId && typeof this.getShipRegionColorAttributeId === 'function') {
9767                    colorAttrId = this.getShipRegionColorAttributeId();
9768                }
9769                if (!colorAttrId || !this.optionConfig.attributes[colorAttrId]) {
9770                    return;
9771                }
9772
9773                const currentColor = this.selectedValues[colorAttrId];
9774                const isCurrentCompatible = currentColor
9775                    && typeof this.optionIsActive === 'function'
9776                    && this.optionIsActive(colorAttrId, currentColor);
9777
9778                if (isCurrentCompatible) {
9779                    return;
9780                }
9781
9782                const options = this.optionConfig.attributes[colorAttrId].options || [];
9783                let lowestPrice = null;
9784                let lowestOptionId = null;
9785
9786                options.forEach((option) => {
9787                    if (typeof this.optionIsEnabled === 'function'
9788                        && !this.optionIsEnabled(colorAttrId, option.id)) {
9789                        return;
9790                    }
9791                    const productIds = option.products || [];
9792                    productIds.forEach((productId) => {
9793                        const product = this.optionConfig.index[productId]
9794                            || this.optionConfig.index[String(productId)];
9795                        if (!product || String(product[otherAttrId]) !== String(selectedOther)) {
9796                            return;
9797                        }
9798                        const priceData = this.optionConfig.optionPrices[productId]
9799                            || this.optionConfig.optionPrices[String(productId)];
9800                        if (!priceData) {
9801                            return;
9802                        }
9803                        const price = priceData.finalPrice.amount;
9804                        if (lowestPrice === null || price < lowestPrice) {
9805                            lowestPrice = price;
9806                            lowestOptionId = option.id;
9807                        }
9808                    });
9809                });
9810
9811                if (lowestOptionId === null
9812                    || String(this.selectedValues[colorAttrId]) === String(lowestOptionId)) {
9813                    return;
9814                }
9815
9816                if (typeof this.changeOption === 'function') {
9817                    this.changeOption(colorAttrId, lowestOptionId);
9818                    return;
9819                }
9820
9821                const el = document.querySelector(
9822                    'input[name="super_attribute[' + colorAttrId + ']"][value="' + lowestOptionId + '"]'
9823                );
9824                if (el) {
9825                    el.click();
9826                }
9827            },
9828
9829            syncNormalColorSwatchQuickShipVisibility() {
9830                if (this.shipRegionZipActive && this.customerRegionCode) {
9831                    return;
9832                }
9833                if (typeof this.quickShipValidation !== 'function') {
9834                    if (typeof this.syncNormalColorSwatchSectionVisibility === 'function') {
9835                        this.syncNormalColorSwatchSectionVisibility();
9836                    }
9837                    return;
9838                }
9839                const self = this;
9840                document.querySelectorAll('.normal_color_swatch_option .selectOptionColor').forEach(function (el) {
9841                    const input = el.querySelector('input.product-option-value-input[name^="super_attribute"]');
9842                    if (!input) {
9843                        return;
9844                    }
9845                    const nameMatch = input.name.match(/super_attribute\[(\d+)\]/);
9846                    if (!nameMatch) {
9847                        return;
9848                    }
9849                    const attributeId = parseInt(nameMatch[1], 10);
9850                    const optionId = input.value;
9851                    const attributeCode = input.getAttribute('data-attributecode') || 'incstores_pim_color_axis';
9852                    if (self.quickShipValidation(attributeCode, attributeId, optionId) === 1) {
9853                        el.classList.add('hidden');
9854                        el.style.display = 'none';
9855                    } else {
9856                        el.classList.remove('hidden');
9857                        el.style.display = '';
9858                    }
9859                });
9860                if (typeof this.syncNormalColorSwatchSectionVisibility === 'function') {
9861                    this.syncNormalColorSwatchSectionVisibility();
9862                }
9863            },
9864
9865            getColorAttributeId() {
9866                if (typeof this.getAttributeIdByCode === 'function') {
9867                    const id = this.getAttributeIdByCode('incstores_pim_color_axis');
9868                    return id ? parseInt(String(id), 10) : null;
9869                }
9870                if (!this.optionConfig?.attributes) {
9871                    return null;
9872                }
9873                for (const key in this.optionConfig.attributes) {
9874                    if (this.optionConfig.attributes[key]?.code === 'incstores_pim_color_axis') {
9875                        return parseInt(key, 10);
9876                    }
9877                }
9878                return null;
9879            },
9880
9881            /**
9882             * Hide entire "Select A Color" block when every color is Quick Ship (or none left).
9883             */
9884            syncNormalColorSwatchSectionVisibility() {
9885                const sections = document.querySelectorAll('.normal_color_swatch_option');
9886                if (!sections.length) {
9887                    return;
9888                }
9889                const colorAttrId = this.getColorAttributeId();
9890                const shouldShow = colorAttrId
9891                    && typeof this.hasNormalColorOptions === 'function'
9892                    && this.hasNormalColorOptions('incstores_pim_color_axis', colorAttrId);
9893
9894                sections.forEach((section) => {
9895                    if (!shouldShow) {
9896                        section.classList.add('hidden');
9897                        section.style.setProperty('display', 'none', 'important');
9898                    } else {
9899                        section.classList.remove('hidden', 'sr-only');
9900                        section.style.setProperty('display', 'block', 'important');
9901                    }
9902                });
9903            }
9904        }
9905    }
9906
9907	function isValidURL(url) {
9908    // Regular expression for URL validation
9909    var pattern = /^(https?:\/\/)?([\w.]+)\.([a-z]{2,})(\/[\w\.-]*)*\/?$/i;
9910    return pattern.test(url);
9911}
9912</script>
vendor: 1 bytes, line 9912
9912
9913<script>
9914    'use strict';
9915
9916    (function () {
9917        const modals = [];
9918        const excludedFromFocusTrapping = new Set();
9919
9920        function trapFocusInNextModalWithOverlay() {
9921            for (let idx = modals.length -1; idx >= 0; idx--) {
9922                const nextOnStack = modals[idx];
9923                const nextDialogElement = nextOnStack.instance.$refs[nextOnStack.name];
9924                if (! isOverlayDisabled(nextDialogElement)) {
9925                    hyva.trapFocus(nextDialogElement);
9926                    break;
9927                }
9928            }
9929        }
9930
9931        function focusables(dialogElement) {
9932            const selector = 'button, [href], input, textarea, select, details, [tabindex]:not([tabindex="-1"])';
9933            return Array.from(dialogElement.querySelectorAll(selector))
9934                .filter(el => !el.hasAttribute('disabled'));
9935        }
9936
9937        function firstVisible(elements) {
9938            const a = Array.from(elements);
9939            for (let i = 0; i < a.length; i++) {
9940                if (a[i].offsetWidth || a[i].offsetHeight || a[i].getClientRects().length) return a[i];
9941            }
9942            return null;
9943        }
9944
9945        function isInViewport(element) {
9946            const rect = element && element.getBoundingClientRect();
9947            return rect &&
9948                rect.top >= 0 &&
9949                rect.left >= 0 &&
9950                rect.right <= window.innerWidth &&
9951                rect.bottom <= window.innerHeight;
9952        }
9953
9954        function setFocusAfterTransition(dialogElement, duration) {
9955                        const nested = Array.from(dialogElement.querySelectorAll('[role="dialog"]'));
9956            const candidates = Array.from(dialogElement.querySelectorAll('[x-focus-first]'));
9957            next: for (let candidate of candidates) {
9958                for (let child of nested) {
9959                    if (child.contains(candidate)) continue next;
9960                }
9961                setTimeout(() => candidate.focus(), 50);
9962                break;
9963            }
9964            window.setTimeout(() => {
9965                const focusElement = firstVisible(dialogElement.querySelectorAll('[x-focus-first]')) ||
9966                    focusables(dialogElement)[0] ||
9967                    null;
9968                focusElement && isInViewport(focusElement) && focusElement.focus();
9969            }, Math.max(1, duration));
9970        }
9971
9972        function determineTrigger($refs, dialog, trigger) {
9973                        if (typeof trigger === 'undefined' && typeof dialog === 'object' && dialog.target instanceof HTMLElement) {
9974                return dialog.target;
9975            }
9976                        if (typeof dialog === 'string' && typeof trigger === 'object' && trigger.target instanceof HTMLElement) {
9977                return trigger.target;
9978            }
9979                        if (typeof trigger === 'string') {
9980                try {
9981                    return $refs[trigger] || document.querySelector(trigger)
9982                } catch (e) {}
9983            }
9984                        if (trigger instanceof Element) {
9985                return trigger;
9986            }
9987
9988                        return null;
9989        }
9990
9991        function isOverlayDisabled(dialog) {
9992            return dialog && dialog.hasAttribute('x-no-overlay')
9993        }
9994
9995        function areRemainingModalsWithoutOverlay(modals)
9996        {
9997            const overflowDisabled = modals.map(modal => modal.instance.$refs[modal.name]).filter(isOverlayDisabled);
9998
9999            return overflowDisabled.length === modals.length;
10000        }
10001
10002        window.hyva.modal = function(options) {
10003
10004            const config = Object.assign({
10005                dialog: 'dialog',                 duration: 300,                 transitionEnter: 'transition ease-out duration-300',
10006                transitionEnterStart: 'opacity-0',
10007                transitionEnterEnd: 'opacity-100',
10008                transitionLeave: 'transition ease-in duration-300',
10009                transitionLeaveStart: 'opacity-100',
10010                transitionLeaveEnd: 'opacity-0',
10011            }, options);
10012            let lastHide = 0;
10013
10014            return {
10015                opened: {},
10016                show(dialog, trigger) {
10017                    const focusTargetAfterHide = determineTrigger(this.$refs, dialog, trigger);
10018                    const name = typeof dialog === 'string' ? dialog : config.dialog;
10019                    const dialogElement = this.$refs[name];
10020                    if (! dialogElement) {
10021                                                return;
10022                    }
10023                    const useOverlay = ! dialogElement.hasAttribute('x-no-overlay');
10024
10025                    dialogElement.scrollTop = 0;
10026
10027                                        if (this.opened[name]) {
10028                        return;
10029                    }
10030
10031                    if (focusTargetAfterHide) {
10032                        focusTargetAfterHide.setAttribute('aria-expanded', 'true');
10033                    }
10034
10035                    this.opened[name] = true;
10036                    useOverlay && this.$nextTick(() => hyva.trapFocus(dialogElement));
10037                    setFocusAfterTransition(dialogElement, config.duration);
10038
10039                    const frame = {name, instance: this, focusTarget: focu
10039sTargetAfterHide, time: Date.now()};
10040
10041                    modals.push(frame);
10042                    if (useOverlay) {
10043                        document.body.classList.add('overflow-hidden');
10044                    }
10045                    return new Promise(resolve => frame.resolve = resolve);
10046                },
10047                cancel() {
10048                    this.hide(false);
10049                },
10050                ok() {
10051                    this.hide(true);
10052                },
10053                hide(value) {
10054                                        if (Date.now() - lastHide < config.duration) {
10055                        return;
10056                    }
10057                    lastHide = Date.now();
10058
10059                    const modal = modals.pop() || {};
10060                    const name = modal.name;
10061                    this.opened[name] = false;
10062                    hyva.releaseFocus(modal.instance.$refs[modal.name])
10063                    trapFocusInNextModalWithOverlay();
10064
10065                    const nextFocusAfterHide = modal.focusTarget;
10066                    nextFocusAfterHide && setTimeout(() => {
10067                        nextFocusAfterHide.setAttribute('aria-expanded', 'false');
10068                        nextFocusAfterHide.focus()
10069                    }, config.duration);
10070
10071                    if (modals.length === 0 || areRemainingModalsWithoutOverlay(modals)) {
10072                        document.body.classList.remove('overflow-hidden');
10073                    }
10074
10075                    modal.resolve(value);
10076                },
10077                overlay(dialog) {
10078                    const name = typeof dialog === 'string' ? dialog : config.dialog;
10079                    return {
10080                        ['x-show']() {
10081                            return this.opened[name]
10082                        },
10083                        ['x-transition:enter']: config.transitionEnter,
10084                        ['x-transition:enter-start']: config.transitionEnterStart,
10085                        ['x-transition:enter-end']: config.transitionEnterEnd,
10086                        ['x-transition:leave']: config.transitionLeave,
10087                        ['x-transition:leave-start']: config.transitionLeaveStart,
10088                        ['x-transition:leave-end']: config.transitionLeaveEnd,
10089                        ['@hyva-modal-show.window'](event) {
10090                            event.detail && event.detail.dialog === name && this.show(name, event.detail.focusAfterHide)
10091                        }
10092                    };
10093                }
10094            };
10095        }
10096
10097        window.hyva.modal.peek = () => modals.length > 0 && modals[modals.length -1]
10098
10099        window.hyva.modal.pop = function () {
10100            if (modals.length > 0) {
10101                const modal = modals[modals.length -1];
10102                modal.instance.hide();
10103            }
10104        }
10105
10106        window.hyva.modal.excludeSelectorsFromFocusTrap = function (selectors) {
10107            typeof selectors === 'string' || selectors instanceof String
10108                ? excludedFromFocusTrapping.add(selectors)
10109                : selectors.map(selector => excludedFromFocusTrapping.add(selector));
10110        }
10111
10112        window.hyva.modal.eventListeners = {
10113            keydown: event => {
10114                if (event.key === 'Escape') {
10115                    window.hyva.modal.pop();
10116                }
10117            },
10118                        click: event => {
10119                if (modals.length > 0) {
10120                    const modal = modals[modals.length -1];
10121                    const dialog = modal.instance.$refs[modal.name];
10122                    if (modal.time + 50 < Date.now() && // if last click processing is more than 50ms ago
10123                        ! isOverlayDisabled(dialog) && // if dialog has overlay
10124                        ! dialog.contains(event.target)) { // if click is outside of dialog
10125                        modal.instance.hide();
10126                    }
10127                }
10128            }
10129        };
10130
10131        document.addEventListener('keydown', window.hyva.modal.eventListeners.keydown);
10132
10133        document.addEventListener('click', window.hyva.modal.eventListeners.click);
10134    })();
10135</script>
vendor: 1 bytes, line 10135
10135
10136<script>
10137    'use strict';
10138
10139    (() => {
10140        const equalizeButtonWidths = (buttons) => {
10141            const buttonList = buttons.querySelectorAll('[data-element="link"], [data-element="empty_link"]');
10142            let buttonMinWidth = 0;
10143
10144            buttonList.forEach(button => {
10145                const buttonWidth = button.offsetWidth;
10146
10147                if (buttonWidth > buttonMinWidth) {
10148                    buttonMinWidth = buttonWidth;
10149                }
10150            });
10151
10152            buttonList.forEach(button => {
10153                button.style.minWidth = `${buttonMinWidth}px`;
10154            });
10155        };
10156
10157        window.addEventListener('DOMContentLoaded', () => {
10158            document.querySelectorAll('[data-content-type="buttons"][data-same-width="true"]').forEach(buttons => {
10159                equalizeButtonWidths(buttons);
10160            });
10161        });
10162    })();
10163</script>
vendor: 1 bytes, line 10163
10163
10164<script>
10165    'use strict';
10166
10167    (() => {
10168        const initCarousels = (elements) => {
10169            if (!Glider) {
10170                return;
10171            }
10172
10173            const initProductCarousel = (carousel) => {
10174                const gliderElement = carousel.querySelector('[data-role="glider-content"]');
10175
10176                if (!gliderElement) {
10177                    return;
10178                }
10179
10180                const gliderDots = carousel.querySelector('.glider-dots');
10181                const gliderPrev = carousel.querySelector('.glider-prev');
10182                const gliderNext = carousel.querySelector('.glider-next');
10183
10184                const glider = new Glider(gliderElement, {
10185                    slidesToShow: 1.2,
10186                    slidesToScroll: 2,
10187                    scrollLock: true,
10188                    draggable: true,
10189                    dragVelocity: 2.5,
10190                    dots: gliderDots,
10191                    arrows: {
10192                        prev: gliderPrev,
10193                        next: gliderNext,
10194                    },
10195                    responsive: [
10196                        {
10197                            breakpoint: 768,
10198                            settings: {
10199                                slidesToShow: 3,
10200                                slidesToScroll: 3,
10201                            }
10202                        },
10203                        {
10204                            breakpoint: 1024,
10205                            settings: {
10206                                slidesToShow: 4,
10207                                slidesToScroll: 4,
10208                            }
10209                        },
10210                        {
10211                            breakpoint: 1200,
10212                            settings: {
10213                                slidesToShow: 5,
10214                                slidesToScroll: 5,
10215                            }
10216                        }
10217                    ],
10218                });
10219
10220                carousel.classList.remove('overflow-x-scroll');
10221                gliderPrev.classList.remove('hidden');
10222                gliderNext.classList.remove('hidden');
10223
10224                if (carousel.dataset.autoplay !== 'false') {
10225                    gliderAutoplay(
10226                        glider,
10227                        carousel.dataset.autoplaySpeed,
10228                        carousel.dataset.infiniteLoop
10229                    );
10230                }
10231            };
10232
10233            const initSliderCarousel = (slider) => {
10234                slider.innerHTML = `<div data-role="glider-content">${slider.innerHTML}</div>`;
10235                slider.classList.add('glider-contain');
10236
10237                slider.insertAdjacentHTML(
10238                    'beforeend',
10239                    '\u000A\u003Cdiv\u0020class\u003D\u0022carousel\u002Dnav\u0020flex\u0020items\u002Dcenter\u0020justify\u002Dcenter\u0020flex\u002D1\u0020p\u002D4\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020aria\u002Dlabel\u003D\u0022Previous\u0022\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020class\u003D\u0022glider\u002Dprev\u0020w\u002D8\u0020h\u002D8\u0020mr\u002D1\u0020text\u002Dblack\u0020rounded\u002Dfull\u0020outline\u002Dnone\u0020focus\u003Aoutline\u002Dnone\u0020hidden\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020fill\u003D\u0022none\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020stroke\u002Dwidth\u003D\u00222\u0022\u0020stroke\u003D\u0022currentColor\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u0020role\u
10239003D\u0022img\u0022\u003E\u000A\u0020\u0020\u003Cpath\u0020stroke\u002Dlinecap\u003D\u0022round\u0022\u0020stroke\u002Dlinejoin\u003D\u0022round\u0022\u0020d\u003D\u0022M15\u002019l\u002D7\u002D7\u00207\u002D7\u0022\u002F\u003E\u000A\u003Ctitle\u003Echevron\u002Dleft\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u0020\u0020\u0020\u0020\u003Cdiv\u0020role\u003D\u0022navigation\u0022\u0020class\u003D\u0022glider\u002Ddots\u0020select\u002Dnone\u0020flex\u0020flex\u002Dwrap\u0020mx\u002D1\u0020justify\u002Dcenter\u0020p\u002D0\u0020focus\u003Aoutline\u002Dnone\u0022\u003E\u003C\u002Fdiv\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020aria\u002Dlabel\u003D\u0022Next\u0022\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020class\u003D\u0022glider\u002Dnext\u0020w\u002D8\u0020h\u002D8\u0020ml\u002D1\u0020text\u002Dblack\u0020rounded\u002Dfull\u0020outline\u002Dnone\u0020focus\u003Aoutline\u002Dnone\u0020hidden\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020fill\u003D\u0022none\u0022\u0020viewBox\u003D\u00220\u00200\u002024\u002024\u0022\u0020stroke\u002Dwidth\u003D\u00222\u0022\u0020stroke\u003D\u0022currentColor\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u0020role\u
10239003D\u0022img\u0022\u003E\u000A\u0020\u0020\u003Cpath\u0020stroke\u002Dlinecap\u003D\u0022round\u0022\u0020stroke\u002Dlinejoin\u003D\u0022round\u0022\u0020d\u003D\u0022M9\u00205l7\u00207\u002D7\u00207\u0022\u002F\u003E\u000A\u003Ctitle\u003Echevron\u002Dright\u003C\u002Ftitle\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u003C\u002Fdiv\u003E\u000A'
10240                );
10241
10242                const gliderElement = slider.querySelector('[data-role="glider-content"]');
10243                const gliderDots = slider.querySelector('.glider-dots');
10244                const gliderPrev = slider.querySelector('.glider-prev');
10245                const gliderNext = slider.querySelector('.glider-next');
10246
10247                const glider = new Glider(gliderElement, {
10248                    slidesToShow: 1,
10249                    slidesToScroll: 1,
10250                    scrollLock: true,
10251                    scrollLockDelay: 250,
10252                    draggable: true,
10253                    dragVelocity: 2.5,
10254                    dots: gliderDots,
10255                    arrows: {
10256                        prev: gliderPrev,
10257                        next: gliderNext,
10258                    },
10259                });
10260
10261                slider.classList.add('glider-initialized');
10262                if (slider.dataset.showArrows === 'true') {
10263                    gliderPrev.classList.remove('hidden');
10264                    gliderNext.classList.remove('hidden');
10265                }
10266
10267                if (slider.dataset.autoplay !== 'false') {
10268                    gliderAutoplay(
10269                        glider,
10270                        slider.dataset.autoplaySpeed,
10271                        slider.dataset.infiniteLoop
10272                    );
10273                }
10274            };
10275
10276            const gliderAutoplay = (glider, milliseconds, loop) => {
10277                const pagesCount = glider.track.childElementCount;
10278                let slideTimeout = null;
10279                let nextIndex = 1;
10280                let paused = false;
10281
10282                const slide = () => {
10283                    slideTimeout = setTimeout(
10284                        () => {
10285                            if (loop && nextIndex >= pagesCount) {
10286                                nextIndex = 0;
10287                            }
10288                            glider.scrollItem(nextIndex);
10289                        },
10290                        parseInt(milliseconds)
10291                    );
10292                };
10293
10294                glider.ele.addEventListener('glider-animated', () => {
10295                    nextIndex = glider.slide + glider.opt.slidesToScroll;
10296                    window.clearInterval(slideTimeout);
10297                    if (!paused && (loop || nextIndex < pagesCount)) {
10298                        slide();
10299                    }
10300                });
10301
10302                const pause = () => {
10303                    if (!paused) {
10304                        clearInterval(slideTimeout);
10305                        paused = true;
10306                    }
10307                };
10308
10309                const unpause = () => {
10310                    if (paused) {
10311                        slide();
10312                        paused = false;
10313                    }
10314                };
10315
10316                glider.ele.parentElement.addEventListener('mouseover', pause, {passive: true});
10317                glider.ele.parentElement.addEventListener('touchstart', pause, {passive: true});
10318                glider.ele.parentElement.addEventListener('mouseout', unpause, {passive: true});
10319                glider.ele.parentElement.addEventListener('touchend', unpause, {passive: true});
10320
10321                slide();
10322            };
10323
10324            elements.forEach(element => {
10325                if (element.dataset.contentType === 'products') {
10326                    initProductCarousel(element);
10327                }
10328                if (element.dataset.contentType === 'slider') {
10329                    initSliderCarousel(element);
10330                }
10331            });
10332        };
10333
10334        window.addEventListener('DOMContentLoaded', () => {
10335            const carouselElements = document.querySelectorAll(
10336                `[data-content-type="products"][data-appearance="carousel"],
10337                [data-content-type="slider"]`
10338            );
10339
10340            if (carouselElements.length > 0) {
10341                const script = document.createElement('script');
10342                script.type = 'text/javascript';
10343
10344                script.addEventListener('load', () => {
10345                    initCarousels(carouselElements);
10346                });
10347
10348                window.addEventListener('init-external-scripts', () => {
10349                    script.src = 'https\u003A\u002F\u002Fwww.flooringinc.com\u002Fstatic\u002Fversion1789462004\u002Ffrontend\u002FDcw\u002Fhyvadesktop\u002Fen_US\u002FMagento_PageBuilder\u002Fjs\u002Fglider.min.js';
10350                }, {once: true, passive: true});
10351                document.head.appendChild(script);
10352            }
10353        });
10354    })();
10355</script>
vendor: 1 bytes, line 10355
10355
10356<script>
10357    'use strict';
10358
10359    (() => {
10360        const initMaps = (elements) => {
10361            const renderMap = (element) => {
10362                const dataLocations = element.dataset.locations;
10363
10364                // Hide map if no locations set
10365                if (!dataLocations || dataLocations === '[]') {
10366                    element.classList.add('hidden');
10367                    return;
10368                }
10369
10370                const map = new google.maps.Map(
10371                    element,
10372                    getMapOptions(
10373                        element.dataset.showControls !== 'true',
10374                        element.dataset.showControls === 'true'
10375                    )
10376                );
10377                const locations = JSON.parse(dataLocations);
10378                const latitudeLongitudeBounds = new google.maps.LatLngBounds();
10379                const bounds = [];
10380
10381                locations.forEach(location => {
10382                    const position = {
10383                        lat: parseFloat(location.position.latitude),
10384                        lng: parseFloat(location.position.longitude),
10385                    };
10386                    bounds.push(position);
10387
10388                    const infowindow = new google.maps.InfoWindow({
10389                        content: getInfoWindowContent(location),
10390                    });
10391                    const marker = new google.maps.Marker({
10392                        position: position,
10393                        map,
10394                        title: location.location_name,
10395                    });
10396
10397                    marker.addListener('click', () => {
10398                        infowindow.open(map, marker);
10399                    });
10400                });
10401
10402                // Set bounds if multiple locations
10403                if (bounds.length > 1) {
10404                    bounds.forEach(function (bound) {
10405                        latitudeLongitudeBounds.extend(bound);
10406                    });
10407                    map.fitBounds(latitudeLongitudeBounds);
10408                }
10409
10410                // Center if single location
10411                if (bounds.length === 1) {
10412                    map.setCenter(bounds[0]);
10413                }
10414            };
10415
10416            const getMapOptions = (disableDefaultUI, mapTypeControl) => {
10417                const style = '';
10418                return {
10419                    zoom: 8,
10420                    scrollwheel: false,
10421                    disableDoubleClickZoom: false,
10422                    mapTypeControlOptions: {
10423                        style: google.maps.MapTypeControlStyle.DEFAULT,
10424                    },
10425                    styles: style ? JSON.parse(style) : [],
10426                    disableDefaultUI: disableDefaultUI,
10427                    mapTypeControl: mapTypeControl,
10428                };
10429            };
10430
10431            const getInfoWindowContent = (location) => {
10432                const title = location.location_name ?
10433                    `<h3 class="text-2xl font-medium text-gray-900 title-font">${location.location_name}</h3>` : '';
10434                const comment = location.comment ? `<p class="px-1 pt-3 text-primary">${location.comment}</p>` : '';
10435                const phone = location.phone ? `<p class="px-1 pt-3 text-primary">Phone: ${location.phone}</p>` : '';
10436                const street = location.address ? `${location.address}<br/>` : '';
10437                const city = location.city ? `${location.city}<br/>` : '';
10438                const state = location.state ? `${location.state}<br/>` : '';
10439                const zipCode = location.zipcode ? `${location.zipcode}<br/>` : '';
10440                const country = location.country ? location.country : '';
10441
10442                return `<div>
10443                            ${title}
10444                            ${comment}
10445                            ${phone}
10446                            <p class="px-1 pt-3 text-primary">
10447                                ${street}
10448                                ${city}
10449                                ${state}
10450                                ${zipCode}
10451                                ${country}
10452                            </p>
10453                        </div>`;
10454            };
10455
10456            const hideAllMaps = () => {
10457                document.querySelectorAll('[data-content-type="map"]').forEach(element => {
10458                    element.classList.add('hidden');
10459                });
10460            };
10461
10462            window.gm_authFailure = () => {
10463                hideAllMaps();
10464            };
10465
10466            if (typeof google.maps === 'undefined') {
10467                hideAllMaps();
10468                return;
10469            }
10470
10471            elements.forEach(element => {
10472                if (element.dataset.contentType === 'map') {
10473                    renderMap(element);
10474                }
10475            });
10476        };
10477
10478        window.addEventListener('DOMContentLoaded', () => {
10479            const mapElements = document.querySelectorAll('[data-content-type="map"]');
10480
10481            if (mapElements.length > 0) {
10482                const script = document.createElement('script');
10483                script.type = 'text/javascript';
10484
10485                script.addEventListener('load', () => {
10486                    initMaps(mapElements);
10487                });
10488
10489                script.src = 'https\u003A\u002F\u002Fmaps.googleapis.com\u002Fmaps\u002Fapi\u002Fjs\u003Fv\u003D3\u0026key\u003D';
10490                document.head.appendChild(script);
10491            }
10492        });
10493    })();
10494</script>
vendor: 1 bytes, line 10494
10494
10495<script>
10496    'use strict';
10497
10498    (() => {
10499        const initParallaxImage = (element) => {
10500            if (!window.jarallax) {
10501                return;
10502            }
10503
10504            element.classList.add('jarallax');
10505            element.dataset.jarallax = '';
10506            const parallaxSpeed = parseFloat(element.dataset.parallaxSpeed) || 0.5;
10507            const elementStyle = window.getComputedStyle(element);
10508
10509            window.jarallax(element, {
10510                imgPosition: elementStyle.backgroundPosition || '50% 50%',
10511                imgRepeat: elementStyle.backgroundRepeat || 'no-repeat',
10512                imgSize: elementStyle.backgroundSize || 'cover',
10513                speed: parallaxSpeed,
10514            });
10515        };
10516
10517        const initVideoBackground = (element) => {
10518            if (!window.jarallax) {
10519                return;
10520            }
10521
10522            let slider = null;
10523
10524            if (element.classList.contains('pagebuilder-slide-wrapper')) {
10525                const viewportElement = document.createElement('div');
10526                slider = element.closest('[data-content-type=slider]');
10527                viewportElement.classList.add('jarallax-viewport-element');
10528                element.dataset.elementInViewport = '.jarallax-viewport-element';
10529                element.appendChild(viewportElement);
10530            }
10531
10532            element.classList.add('jarallax');
10533            element.dataset.jarallax = '';
10534            const parallaxSpeed = parseFloat(element.dataset.parallaxSpeed) || 0.5;
10535
10536            window.jarallax(element, {
10537                imgSrc: element.dataset.videoFallbackSrc,
10538                speed: parallaxSpeed,
10539                videoLoop: element.dataset.videoLoop,
10540                videoPlayOnlyVisible: element.dataset.videoPlayOnlyVisible,
10541                videoLazyLoading: element.dataset.videoLazyLoad,
10542                disableVideo: false,
10543                elementInViewport: element.dataset.elementInViewport &&
10544                    element.querySelector(element.dataset.elementInViewport),
10545            });
10546
10547            if (slider) {
10548                if (slider.dataset.afterChangeIsSet) {
10549                    return;
10550                }
10551
10552                slider.addEventListener('glider-loaded', () => {
10553                    slider.querySelectorAll('.jarallax').forEach(videoSlide => {
10554                        videoSlide.jarallax && videoSlide.jarallax.onScroll();
10555                    });
10556                });
10557
10558                slider.addEventListener('glider-animated', () => {
10559                    slider.querySelectorAll('.jarallax').forEach(videoSlide => {
10560                        videoSlide.jarallax && videoSlide.jarallax.onScroll();
10561                    });
10562                });
10563
10564                slider.dataset.afterChangeIsSet = true;
10565            }
10566        };
10567
10568        window.addEventListener('DOMContentLoaded', () => {
10569            const parallaxImageElements = document.querySelectorAll(
10570                `[data-content-type="row"][data-background-type="image"][data-enable-parallax="1"],
10571                [data-content-type="row"] > [data-background-type="image"][data-enable-parallax="1"]`
10572            );
10573
10574            const videoBackgroundsElements = document.querySelectorAll(
10575                `[data-content-type="row"][data-background-type="video"][data-enable-parallax="1"],
10576                [data-content-type="row"] > [data-background-type="video"][data-enable-parallax="1"],
10577                [data-content-type="banner"] [data-background-type="video"],
10578                [data-content-type="slide"] [data-background-type="video"]`
10579            );
10580
10581            if (parallaxImageElements.length > 0 || videoBackgroundsElements.length > 0) {
10582                const jarallaxScript = document.createElement('script');
10583                jarallaxScript.type = 'text/javascript';
10584
10585                jarallaxScript.addEventListener('load', () => {
10586                    parallaxImageElements.forEach(row => {
10587                        initParallaxImage(row);
10588                    });
10589
10590                    const jarallaxVideoScript = document.createElement('script');
10591                    jarallaxVideoScript.type = 'text/javascript';
10592
10593                    jarallaxVideoScript.addEventListener('load', () => {
10594                        videoBackgroundsElements.forEach(element => {
10595                            initVideoBackground(element);
10596                        });
10597                    });
10598
10599                    jarallaxVideoScript.src = 'https\u003A\u002F\u002Fwww.flooringinc.com\u002Fstatic\u002Fversion1789462004\u002Ffrontend\u002FDcw\u002Fhyvadesktop\u002Fen_US\u002FMagento_PageBuilder\u002Fjs\u002Fjarallax\u002Dvideo.min.js';
10600                    document.head.appendChild(jarallaxVideoScript);
10601                });
10602
10603                jarallaxScript.src = 'https\u003A\u002F\u002Fwww.flooringinc.com\u002Fstatic\u002Fversion1789462004\u002Ffrontend\u002FDcw\u002Fhyvadesktop\u002Fen_US\u002FMagento_PageBuilder\u002Fjs\u002Fjarallax.min.js';
10604                document.head.appendChild(jarallaxScript);
10605            }
10606        });
10607    })();
10608</script>
vendor: 1 bytes, line 10608
10608
10609<script>
10610    'use strict';
10611
10612    (() => {
10613        const applyShowOnHover = (element) => {
10614            const showOverlayOnHover = (element) => {
10615                const overlay = element.querySelector('.pagebuilder-overlay');
10616                const color = overlay.dataset.overlayColor;
10617
10618                element.addEventListener('mouseover', () => {
10619                    overlay.style.backgroundColor = color;
10620                });
10621                element.addEventListener('mouseout', () => {
10622                    overlay.style.backgroundColor = 'transparent';
10623                });
10624            };
10625
10626            const showButtonOnHover = (element) => {
10627                const button = element.querySelector('.pagebuilder-banner-button');
10628
10629                element.addEventListener('mouseover', () => {
10630                    button.style.opacity = '1';
10631                    button.style.visibility = 'visible';
10632                });
10633                element.addEventListener('mouseout', () => {
10634                    button.style.opacity = '0';
10635                    button.style.visibility = 'hidden';
10636                });
10637            };
10638
10639            if (element.dataset.showOverlay === 'hover') {
10640                showOverlayOnHover(element);
10641            }
10642            if (element.dataset.showButton === 'hover') {
10643                showButtonOnHover(element);
10644            }
10645        };
10646
10647        window.addEventListener('DOMContentLoaded', () => {
10648            document.querySelectorAll('[data-content-type="banner"],[data-content-type="slider"]').forEach(element => {
10649                applyShowOnHover(element);
10650            });
10651        });
10652    })();
10653</script>
vendor: 1 bytes, line 10653
10653
10654<script>
10655    'use strict';
10656
10657    (() => {
10658        document.querySelectorAll('[data-content-type="tab-item"]').forEach(tabItem => {
10659            tabItem.setAttribute('x-show', `tab === '${tabItem.id}'`);
10660        });
10661
10662        document.querySelectorAll('[data-content-type="tabs"]').forEach(tab => {
10663            const defaultActiveTab = parseInt(tab.dataset.activeTab) || 0;
10664
10665            tab.querySelectorAll('.tab-header').forEach((tabHeader, index) => {
10666                const tabLink = tabHeader.querySelector('a');
10667                const tabId = tabLink.getAttribute('href').replace('#', '');
10668
10669                tabHeader.setAttribute(':class', `{ 'active': tab === '${tabId}' }`);
10670                tabLink.setAttribute('x-on:click.prevent', `tab = '${tabId}'`);
10671
10672                if (index === defaultActiveTab) {
10673                    tab.setAttribute('x-data', `{ tab: '${tabId}' }`);
10674                }
10675            });
10676        });
10677    })();
10678</script>
vendor: 1 bytes, line 10678
10678
10679<script>
10680    'use strict';
10681
10682    const grecaptchaV2LoadCallbacks = [];
10683
10684    function executeRecaptchaLoadCallbacks () {
10685        while (window.grecaptcha && grecaptchaV2LoadCallbacks.length > 0) {
10686            const callback = grecaptchaV2LoadCallbacks.pop();
10687            typeof callback === 'string' ? window[callback]() : callback();
10688        }
10689    }
10690
10691    (function() {
10692        const loadRecaptchaScript = (event) => {
10693
10694            if (window.grecaptcha || !event.target.form) {
10695                return;
10696            }
10697
10698            const url = 'https://www.google.com/recaptcha/api.js?onload=executeRecaptchaLoadCallbacks';
10699            const siteKey = '6LdQFsgqAAAAAFaiT_SQ7C9UmCcxWxpMd6pIMAEO';
10700            const script = document.createElement('script');
10701            script.type = 'text/javascript';
10702            script.src = siteKey ? `${url}&render=${siteKey}` : `${url}&render=explicit`;
10703            script.async = true;
10704            document.head.appendChild(script);
10705
10706            script.addEventListener('load', () => {
10707                Array.from(document.querySelectorAll('button[data-recaptcha-btn]:disabled')).forEach(btn => btn.removeAttribute('disabled'));
10708            });
10709        }
10710
10711        window.forceLoadRecaptchaScript = (form) => {
10712            loadRecaptchaScript({target: {form: form || 'dummy'}});
10713            executeRecaptchaLoadCallbacks();
10714        };
10715
10716        document.body.addEventListener('input', loadRecaptchaScript, { once: true });
10717        document.body.addEventListener('focus', loadRecaptchaScript, { once: true });
10718
10719    }());
10720
10721</script>
vendor: 1 bytes, line 10721
10721
10722<script>
10723    window.addEventListener("scroll", function() {
10724        var header = document.querySelector('header.page-header');
10725        var body = document.querySelector("body");
10726        const header_top = document.querySelector('.header_top');
10727        const notification4 = document.querySelector('.notification4');
10728        var top_1 = document.querySelector("header.page-header > .panel.wrapper");
10729        var content = document.getElementById("textContent");
10730
10731
10732        if(header_top && notification4){
10733            if ((header_top.textContent.length > 10) && (notification4.textContent.length > 10)) {
10734                if (window.pageYOffset > 76) {
10735                    //document.querySelector("#header").style.cssText = "position:fixed;left:0;top:0;width:100%;transition: all ease-in-out 0.5s";
10736                    //document.querySelector(".page-wrapper").style.cssText = "padding-top:112px";
10737                    document.querySelector('body').classList.add('sticki');
10738                } else {
10739                    //document.querySelector("#header").style.cssText = "position:static;transition: all ease-in-out 0.5s";
10740                    //document.querySelector(".page-wrapper").style.cssText = "padding-top:0px";
10741                    document.querySelector('body').classList.remove('sticki');
10742                }
10743            }
10744        }
10745
10746        if(header_top && notification4){
10747            if ((header_top.textContent.length > 10) && (notification4.textContent.length < 10)) {
10748                if (window.pageYOffset > 36) {
10749                    //document.querySelector("#header").style.cssText = "position:fixed;left:0;top:0;width:100%;transition: all ease-in-out 0.5s";
10750                    //document.querySelector(".page-wrapper").style.cssText = "padding-top:112px";
10751                    document.querySelector('body').classList.add('sticki');
10752                } else {
10753                    //document.querySelector("#header").style.cssText = "position:static;transition: all ease-in-out 0.5s";
10754                    //document.querySelector(".page-wrapper").style.cssText = "padding-top:0px";
10755                    document.querySelector('body').classList.remove('sticki');
10756                }
10757            }
10758        }
10759
10760        if(header_top && !notification4){
10761            if (header_top.textContent.length > 10) {
10762                if (window.pageYOffset > 36) {
10763                    //document.querySelector("#header").style.cssText = "position:fixed;left:0;top:0;width:100%;transition: all ease-in-out 0.5s";
10764                    //document.querySelector(".page-wrapper").style.cssText = "padding-top:112px";
10765                    document.querySelector('body').classList.add('sticki');
10766                } else {
10767                    //document.querySelector("#header").style.cssText = "position:static;transition: all ease-in-out 0.5s";
10768                    //document.querySelector(".page-wrapper").style.cssText = "padding-top:0px";
10769                    document.querySelector('body').classList.remove('sticki');
10770                }
10771            }
10772        }
10773    });
10774
10775    window.addEventListener("DOMContentLoaded", function() {
10776        window.addEventListener("scroll", function() {
10777            // scroll for plp content sticky
10778            anchor_scroll();
10779        });
10780        function anchor_scroll() {
10781            var anchor_scroll = document.querySelector('.anchor-scroll');
10782            if (!anchor_scroll) {
10783                return; // Exit if the element is not found
10784            }
10785            let sticky = anchor_scroll.offsetTop;
10786
10787            if (window.pageYOffset > sticky) {
10788                anchor_scroll.classList.add("scroll-fixed");
10789            } else {
10790                anchor_scroll.classList.remove("scroll-fixed");
10791            }
10792        }
10793
10794        document.querySelectorAll('.anchor-scroll a[href^="."], .at-glance-content a[href^="."]').forEach(anchor => {
10795            anchor.addEventListener('click', function (e) {
10796                e.preventDefault();
10797
10798                const targetClass = this.getAttribute('href').substring(1);
10799                const targetElement = document.querySelector(`.${targetClass}`);
10800                let anchor_scroll = document.querySelector('.anchor-scroll > div');
10801                var header_off = document.querySelector('#header').offsetHeight;
10802                if (anchor_scroll) {
10803                    var header_off = document.querySelector('#header').offsetHeight + anchor_scroll.offsetHeight;
10804                } else {
10805                    var header_off = document.querySelector('#header').offsetHeight;
10806                }
10807
10808                if (targetElement) {
10809                    const offset = header_off;
10810                    const bodyRect = document.body.getBoundingClientRect().top;
10811                    const elementRect = targetElement.getBoundingClientRect().top;
10812                    const elementPosition = elementRect - bodyRect;
10813                    const offsetPosition = elementPosition - offset;
10814
10815                    window.scrollTo({
10816                        top: offsetPosition,
10817                        behavior: 'smooth'
10818                    });
10819                }
10820            });
10821        });
10822    });
10823</script>
10823
10824
10825    <section x-cloak x-data="{isLoading: false}"
10826             @amcaptcha-loading-start.window="isLoading = true" @amcaptcha-loading-stop.window="isLoading = false">
10827        <div class="flex flex-row justify-center items-center w-full h-full fixed select-none z-50"
10828     style="left: 50%;top: 50%;transform: translateX(-50%) translateY(-50%);background: rgba(255,255,255,0.7);"
10829     x-show="isLoading"
10830     x-transition:enter="ease-out duration-200"
10831     x-transition:enter-start="opacity-0"
10832     x-transition:enter-end="opacity-100"
10833     x-transition:leave="ease-in duration-200"
10834     x-transition:leave-start="opacity-100"
10835     x-transition:leave-end="opacity-0">
10836    <!-- By Sam Herbert (@sherb), for everyone. More @ http://goo.gl/7AJzbL -->
10837<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 57 57" stroke="currentColor" class="text-primary" width="57" height="57" role="img">
10838    <g fill="none" fill-rule="evenodd">
10839        <g transform="translate(1 1)" stroke-width="2">
10840            <circle cx="5" cy="50" r="5">
10841                <animate attributeName="cy" begin="0s" dur="2.2s" values="50;5;50;50" calcMode="linear" repeatCount="indefinite"/>
10842                <animate attributeName="cx" begin="0s" dur="2.2s" values="5;27;49;5" calcMode="linear" repeatCount="indefinite"/>
10843            </circle>
10844            <circle cx="27" cy="5" r="5">
10845                <animate attributeName="cy" begin="0s" dur="2.2s" from="5" to="5" values="5;50;50;5" calcMode="linear" repeatCount="indefinite"/>
10846                <animate attributeName="cx" begin="0s" dur="2.2s" from="27" to="27" values="27;49;5;27" calcMode="linear" repeatCount="indefinite"/>
10847            </circle>
10848            <circle cx="49" cy="50" r="5">
10849                <animate attributeName="cy" begin="0s" dur="2.2s" values="50;50;5;50" calcMode="linear" repeatCount="indefinite"/>
10850                <animate attributeName="cx" from="49" to="49" begin="0s" dur="2.2s" values="49;5;27;49" calcMode="linear" repeatCount="indefinite"/>
10851            </circle>
10852        </g>
10853    </g>
10854<title>loader</title></svg>
10855    <div class="ml-10 text-primary text-xl">
10856        Loading...    </div>
10857</div>
10858    </section>
10859
10860<script>
10861    'use strict';
10862
10863    function responseSerialize(response) {
10864        if (response.redirected) {
10865            window.location.href = response.url;
10866        } else if (response.ok) {
10867            return response.json();
10868        } else {
10869            // Check if result is Promise then throw to new Error
10870            let defaultErrMsg = 'Something went wrong. Please contact the website admin for more information.',
10871                result;
10872            result = response.text();
10873            if (typeof result?.then === 'function') {
10874                result.then(res => {
10875                    let errorMessage;
10876                    try {
10877                        errorMessage = JSON.parse(res);
10878                        errorMessage = errorMessage?.message ? errorMessage.message : defaultErrMsg;
10879                    } catch (e) {
10880                        errorMessage = defaultErrMsg;
10881                    }
10882                    window.dispatchMessages([
10883                        {
10884                            type: 'error',
10885                            text: errorMessage
10886                        }
10887                    ], 3000);
10888                });
10889            } else {
10890                throw new Error(defaultErrMsg);
10891            }
10892        }
10893    }
10894
10895    if (typeof window.buildRestAPIUrl !== 'function') {
10896        window.buildRestAPIUrl = function (url, params = {}) {
10897            const method = 'rest',
10898                storeCode = 'default',
10899                version = 'V1',
10900                serviceUrl = ':method/:storeCode/:version';
10901
10902            let urlParts;
10903
10904            params.method = method;
10905            params.storeCode = storeCode;
10906            params.version = version;
10907
10908            url = serviceUrl + url;
10909
10910            urlParts = url.split('/');
10911            urlParts = urlParts.filter(Boolean);
10912
10913            Object.entries(urlParts).forEach (entry => {
10914                let [key, part] = entry;
10915                part = part.replace(':', '');
10916
10917                if (params[part] !== undefined) {
10918                    urlParts[key] = params[part];
10919                }
10920            });
10921
10922            return urlParts.join('/');
10923        }
10924    }
10925
10926    if (typeof window.isObjectEmpty !== 'function') {
10927        window.isObjectEmpty = function (obj) {
10928            return (
10929                Object.prototype.toString.call(obj) === '[object Object]' &&
10930                JSON.stringify(obj) === '{}'
10931            );
10932        }
10933    }
10934
10935    if (typeof window.mergeDeep !== 'function') {
10936        /**
10937         * Deep merge two objects.
10938         *
10939         * @param target
10940         * @param sources
10941         * @returns {*}
10942         */
10943        window.mergeDeep = (target, ...sources) => {
10944            /**
10945             * Simple object check.
10946             *
10947             * @param item
10948             * @returns {boolean}
10949             */
10950            const isObject = (item) => {
10951                return (item && typeof item === 'object' && !Array.isArray(item));
10952            };
10953
10954            if (!sources.length) return target;
10955            const source = sources.shift();
10956
10957            if (isObject(target) && isObject(source)) {
10958                for (const key in source) {
10959                    if (isObject(source[key])) {
10960                        if (!target[key]) Object.assign(target, { [key]: {} });
10961                        mergeDeep(target[key], source[key]);
10962                    } else {
10963                        Object.assign(target, { [key]: source[key] });
10964                    }
10965                }
10966            }
10967
10968            return mergeDeep(target, ...sources);
10969        }
10970    }
10971</script>
10971
10972
10973<div x-data="{...hyva.modal(), ...initAmcartDialogPopup()}"
10974     x-init="initDialogPopup($dispatch)"
10975     x-spread="eventListeners"
10976     x-bind="eventListeners">
10977    <div x-cloak x-spread="overlay('amcart-dialog-popup')" x-bind="overlay('amcart-dialog-popup')"
10978         class="fixed inset-0 flex items-center justify-center text-left bg-black bg-opacity-50 z-30">
10979        <div x-ref="amcart-dialog-popup" role="dialog" aria-labelledby="amcart-dialog-popup-content"
10980             class="flex flex-col max-h-screen max-w-4xl overflow-auto bg-amcart-background shadow-xl rounded-lg p-4">
10981            <div class="flex justify-between pb-4 border-b">
10982                <div x-text="title" class="text-2xl font-extrabold text-amcart-text"></div>
10983                <button @click="$dispatch('amcart-close-dialog-popup')"
10984                        aria-label="Close"
10985                        class="text-gray-300 transition hover:text-black hover:drop-shadow-md">
10986                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" class="h-6 w-6" width="24" height="24" role="img">
10987  <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/>
10988<title>x</title></svg>
10989                </button>
10990            </div>
10991            <div id="amcart-dialog-popup-content" class="amcart-dialog-popup-content"></div>
10992            <div class="flex flex-row pt-3 border-t">
10993                <template x-for="(button, index) in buttons" :key="index">
10994                    <button class="btn mr-4 last:mr-0 text-amcart-button hover:brightness-105 hover:shadow-lg"
10995                            :class="{
10996                                'bg-amcart-continue-btn hover:bg-amcart-continue-btn': index === 0,
10997                                'bg-amcart-view-cart-btn hover:bg-amcart-view-cart-btn': index === 1
10998                            }"
10999                            :aria-label="button.name"
11000                            x-html="button.name"
11001                            @click="dispatchButtonAction(button.action.name, button.action.payload)"></button>
11002                </template>
11003            </div>
11004        </div>
11005    </div>
11006</div>
11007
11008<script>
11009    'use strict';
11010
11011    function initAmcartDialogPopup() {
11012        const dialogPopupName = 'amcart-dialog-popup';
11013        const selectors = {
11014            addToCartForm: '.amcart-product-info #amcart_product_addtocart_form',
11015            ratingSummarySelector: '.amcart-product-info .rating-summary'
11016        }
11017
11018        return {
11019            eventListeners: {
11020                ['@amcart-open-dialog-popup.window']({detail: popupData}) {
11021                    // Close any existing modal before opening
11022                    window.hyva.modal.pop();
11023
11024                    this.initPopupWithData(popupData);
11025                    this.$nextTick(() => {
11026                        this.show(dialogPopupName);
11027                    });
11028                },
11029                ['@amcart-close-dialog-popup']() {
11030                    this.hide(dialogPopupName);
11031                },
11032                ['@amcart-dialog-submit']({ detail: actionToDispatch }) {
11033                    const form = document.querySelector(selectors.addToCartForm);
11034
11035                    if (form.checkValidity()) {
11036                        this.dispatch(actionToDispatch, form);
11037                        this.hide(dialogPopupName);
11038                    } else {
11039                        form.reportValidity();
11040                    }
11041                },
11042                ['@amcart-hide-popup']() {
11043                    this.hide(dialogPopupName);
11044                }
11045            },
11046            title: '',
11047            buttons: [],
11048            message: '',
11049            selected_options: null,
11050            dispatch: null,
11051
11052            /**
11053             * @param {Object} $dispatch
11054             * @return {void}
11055             */
11056            initDialogPopup: function ($dispatch) {
11057                this.dispatch = $dispatch;
11058            },
11059
11060            /**
11061             * @param {CartResponse} popupData
11062             * @return {void}
11063             */
11064            initPopupWithData: function (popupData) {
11065                this.title = popupData.title;
11066                this.buttons = popupData.buttons;
11067                this.selected_options = popupData.selected_options;
11068                hyva.replaceDomElement('#amcart-dialog-popup-content', this.preprocessMessage(popupData.message));
11069                this.$nextTick(() => {
11070                    this.postProcessPopupContent();
11071                });
11072            },
11073
11074            /**
11075             * @param {string} message
11076             * @return {string}
11077             */
11078            preprocessMessage: function (message) {
11079                /**
11080                 * Disable labels for input inside popup due to the possibility of their duplication on the page.
11081                 * Because this can lead to unexpected behaviour.
11082                 *
11083                 * Make form id unique for popup
11084                 */
11085                return message
11086                    .replaceAll(':for=', 'for-data=')
11087                    .replaceAll('product_addtocart_form', 'amcart_product_addtocart_form');
11088            },
11089
11090            /**
11091             * @return {void}
11092             */
11093            postProcessPopupContent: function () {
11094                this.disableRatingSummary();
11095                this.clickSelectedOptions();
11096            },
11097
11098            /**
11099             * @return {void}
11100             */
11101            disableRatingSummary: function () {
11102                const ratingSummaryElement = document.querySelector(selectors.ratingSummarySelector);
11103
11104                if (!!ratingSummaryElement) {
11105                    ratingSummaryElement.removeAttribute('onClick');
11106                    ratingSummaryElement.classList.remove('cursor-pointer');
11107                }
11108            },
11109
11110            /**
11111             * @return {void}
11112             */
11113            clickSelectedOptions: function () {
11114                if (!this.selected_options) {
11115                    return;
11116                }
11117
11118                for(const [attributeId, attributeValue] of Object.entries(this.selected_options)) {
11119                    const swatchOptionTemplate =  document.querySelector(
11120                        `.amcart-product-info template[x-for*="attributes[${attributeId}]"]`
11121                    );
11122
11123                    if (!!swatchOptionTemplate && !!swatchOptionTemplate.parentElement) {
11124                        const swatchInput = swatchOptionTemplate.parentElement
11125                            .querySelector(`input[value="${attributeValue}"]`);
11126                        swatchInput && swatchInput.click();
11127                    }
11128                }
11129            },
11130
11131            /**
11132             * @param {string} name
11133             * @param {string|undefined} payload
11134             * @return {void}
11135             */
11136            dispatchButtonAction: function (name, payload) {
11137                this.dispatch(name, payload);
11138            }
11139        };
11140    }
11141</script>
11141
11142
11143<script>
11144    (function () {
11145        'use strict';
11146
11147        const addToCartProductListFormSelector = '.product_addtocart_form';
11148        const addToCartProductPageFormSelector = '#product_addtocart_form';
11149        const setFormsEvent = function () {
11150            const productListForms = document.querySelectorAll(addToCartProductListFormSelector);
11151            const productPageForm = document.querySelector(addToCartProductPageFormSelector);
11152
11153            productPageForm && addDispatcher(productPageForm);
11154            productListForms.forEach((form) => {
11155                // disable html5 validation
11156                form.setAttribute('novalidate', '');
11157                addDispatcher(form);
11158            });
11159        }
11160
11161        const addDispatcher = function(form) {
11162            form.removeAttribute('@submit');
11163            form.removeAttribute('@submit.prevent');
11164            form.setAttribute('x-data', '');
11165            form.setAttribute('x-on:submit.prevent', '$dispatch(\'amcart-add-to-cart-action\', $el)');
11166        }
11167
11168        setFormsEvent();
11169
11170        window.addEventListener('amcart-set-forms-event', setFormsEvent);
11171    })();
11172</script>
11172
11173
11174<script>
11175    (function () {
11176        'use strict';
11177
11178        /**
11179         * @typedef {Object} CartResponse
11180         *
11181         * Popup common props
11182         * @property {[
11183         *     name: string,
11184         *     action: {
11185         *         name: string,
11186         *         payload: string|undefined
11187         *     }
11188         * ]|undefined} buttons
11189         * @property {string|undefined} popup_action
11190         * @property {string|undefined} message
11191         * @property {string|undefined} title
11192         *
11193         * DialogPopup props
11194         * @property {string|null|undefined} selected_options
11195         *
11196         * ConfirmationPopup props
11197         * @property {string|undefined} align
11198         * @property {string|undefined} checkout
11199         * @property {string|undefined} product_id
11200         * @property {string|undefined} product_sku
11201         * @property {string|undefined} related
11202         * @property {number|undefined} timer
11203         *
11204         * Redirect props
11205         * @property {string|undefined} redirect url to redirect
11206         */
11207
11208        let globalActionName;
11209
11210        const addToCartAction = ({detail: form}) => {
11211            const isProductForm = form.id === 'product_addtocart_form';
11212
11213            globalActionName = getCartAction(form);
11214
11215            if (isProductForm) {
11216                window.dispatchEvent(new CustomEvent('amcart-trigger-grouped-form-validate'));
11217
11218                if (form.checkValidity()) {
11219                    performRequest(form, isProductForm);
11220                }
11221            } else {
11222                performRequest(form, isProductForm)
11223            }
11224        };
11225
11226        const performRequest = function (form, isProductForm) {
11227            const cartUrl = `${BASE_URL}amasty_cart/cart/${getCartAction(form)}`;
11228            const isProductPage = document.body.classList.contains('catalog-product-view');
11229            const headers = {
11230                'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
11231            };
11232            const formData = new FormData(form);
11233            formData.set('product_page', isProductPage && isProductForm);
11234            formData.set('last_category_id', hyva.getBrowserStorage().getItem('last_category_id'));
11235            formData.set('form_key', hyva.getFormKey());
11236            !formData.get('id') && formData.get('item') && formData.set('id', formData.get('item'));
11237
11238            const body = new URLSearchParams(formData);
11239
11240            window.dispatchEvent(new CustomEvent('amcart-loading-start'));
11241            window.dispatchEvent(new CustomEvent('amcart-add-start', { detail: form }));
11242
11243            fetch(cartUrl, {headers: {...headers}, body: body, method: 'POST'})
11244                .then(response => response.json())
11245                .then((result) => {
11246                    resultActionResolver.resolve(result);
11247                    const relatedProductDialog = document.querySelector('.related-product-dialog-wrapper');
11248                    const cartLink = document.getElementById('menu-cart-icon');
11249                    const isRelatedProductForm = form.closest('.related-products-pdp-section');
11250                    if (relatedProductDialog && !isRelatedProductForm) {
11251                        setTimeout(() => {
11252                            window.dispatchEvent(
11253                                new CustomEvent('hyva-modal-show', { detail: { dialog: 'related-product-slider-dialog' } })
11254                            );
11255                        }, 2000);
11256                    } else if (cartLink) {
11257                        cartLink.click();
11258                    }
11259                }).catch((error) => {
11260                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
11261                        [{
11262                            type: "error",
11263                            text: error
11264                        }], 5000
11265                    );
11266                }).finally(() => {
11267                    window.dispatchEvent(new CustomEvent('amcart-loading-stop'));
11268                });
11269        };
11270
11271        const getCartAction = function(formNode) {
11272            return formNode.action.includes('updateItemOptions')
11273                ? `UpdateItemOptions`
11274                : 'add';
11275        };
11276
11277        const resultActionResolver = {
11278            /**
11279             * @param {CartResponse} result
11280             */
11281            resolve: function (result) {
11282				
11283				if(typeof result.is_add_to_cart != "undefined"){
11284					var msg = result.message;
11285					/*if($($.parseHTML(result.message)).filter(".message.error").text()){
11286						msg =  $($.parseHTML(result.message)).filter(".message.error").text(); 
11287					}*/
11288
11289                    var parser = new DOMParser();
11290                    var doc = parser.parseFromString(result.message, 'text/html');
11291                    var errorMsg = doc.querySelector('.message.error') ? doc.querySelector('.message.error').textContent : '';
11292
11293                    if (errorMsg) {
11294                        msg = errorMsg;
11295                    }
11296
11297					window.dispatchMessages && window.dispatchMessages([{
11298                        type: 'error',
11299                        text: msg
11300                    }]);
11301					
11302				}
11303                switch (true) {
11304                    case !!result.popup_action:
11305                    var parser = new DOMParser();
11306                    var doc = parser.parseFromString(result.message, 'text/html');
11307                    var errorMsg = doc.querySelector('.message.error') ? doc.querySelector('.message.error').textContent : '';
11308                    if (errorMsg) {
11309                        msg = errorMsg;
11310                        window.dispatchMessages && window.dispatchMessages([{
11311                            type: 'error',
11312                            text: msg
11313                        }]);
11314                    } else {
11315                        window.dispatchEvent(new CustomEvent(result.popup_action, {detail: result}));
11316                        window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
11317
11318                        if (globalActionName == 'UpdateItemOptions') {
11319                           window.location.href = `${BASE_URL}checkout/cart`;
11320                        }
11321                    }
11322                        break;
11323                    case !!result.redirect:
11324                        window.location.href = result.redirect;
11325                        break;
11326                }
11327            }
11328        }
11329
11330        if (document.body.classList.contains('catalog-category-view')) {
11331            hyva.getBrowserStorage().setItem(
11332                'last_category_id',
11333                ''
11334            );
11335        }
11336
11337        const groupedOptions = document.querySelector('div[x-data^=initGroupedOptions]');
11338
11339        if (!!groupedOptions) {
11340            groupedOptions.setAttribute('x-on:amcart-trigger-grouped-form-validate.window', 'validateForm()');
11341        }
11342
11343        window.addEventListener('amcart-add-to-cart-action', addToCartAction);
11344    })();
11345</script>
11345<script>
11346    (function () {
11347        'use strict';
11348
11349        const addToQuoteButtonSelector = '.amquote-addto-button:not(.amasty-quote-login):not(.amasty-quote-link)';
11350        document.querySelectorAll(addToQuoteButtonSelector).forEach((button) => {
11351            if (!button.hasAttribute('x-data')) {
11352                button.setAttribute('x-data', '');
11353            }
11354
11355            button.removeAttribute('@click.prevent');
11356            button.setAttribute(
11357                'x-on:click.prevent',
11358                '$dispatch(\'amcart-add-to-quote-action\', $el)');
11359        });
11360    })();
11361</script>
vendor: 1 bytes, line 11361
11361
11362<script>
11363    (function () {
11364        'use strict';
11365
11366        const addToQuoteAction = ({ detail: element }) => {
11367            const formNode = element.nodeName === 'FORM'
11368                ? element
11369                : element.form ?? element.closest('form');
11370
11371            window.dispatchEvent(new CustomEvent('amcart-trigger-grouped-form-validate'));
11372            if (!formNode || !formNode.checkValidity()) {
11373                return formNode?.reportValidity();
11374            }
11375
11376            performRequest(formNode);
11377        }
11378
11379        const performRequest = (formNode) => {
11380            const url = `${BASE_URL}amasty_cart/quote/${getAction(formNode)}`;
11381            const headers = {
11382                'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
11383            };
11384            const formData = new FormData(formNode);
11385            const isProductPage = formNode.id === 'product_addtocart_form'
11386                && document.body.classList.contains('catalog-product-view');
11387            formData.set('product_page', isProductPage);
11388            formData.set('last_category_id', hyva.getBrowserStorage().getItem('last_category_id'));
11389            formData.set('id', formData.get('item'));
11390
11391            window.dispatchEvent(new CustomEvent('amcart-loading-start'));
11392            window.dispatchEvent(new CustomEvent('amcart-add-start', { detail: formNode }));
11393
11394            fetch(url, { headers: { ...headers }, body: new URLSearchParams(formData), method: 'POST' })
11395                .then(response => response.json())
11396                .then((result) => {
11397                    switch (true) {
11398                        case !!result.popup_action:
11399                            window.dispatchEvent(new CustomEvent(result.popup_action, { detail: result }));
11400                            window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
11401                            break;
11402                        case !!result.redirect:
11403                            window.location.href = result.redirect;
11404                            break;
11405                    }
11406                }).catch((error) => {
11407                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
11408                        [{
11409                            type: "error",
11410                            text: error
11411                        }], 5000
11412                    );
11413                }).finally(() => {
11414                    window.dispatchEvent(new CustomEvent('amcart-loading-stop'));
11415                });
11416        };
11417
11418        const getAction = (formNode) => {
11419            return (formNode.action.includes('amasty_quote') && formNode.action.includes('updateItemOptions'))
11420                ? 'updateItemOptions'
11421                : 'add';
11422        };
11423
11424        window.addEventListener('amcart-add-to-quote-action', addToQuoteAction);
11425    })();
11426</script>
11426
11427
11428
11429    
11429<script>
11430        'use strict';
11431
11432        (function () {
11433            const initCompareFunctions = ['initCompareOnProductList', 'initCompareOnProductView'];
11434
11435            initCompareFunctions.forEach(compareFunction => {
11436                window[compareFunction] = function () {
11437                    return {
11438                        addToCompare: function (productId) {
11439                            var loader=document.getElementById('loading');
11440                            console.log("11111111");
11441                            loader.style.display='block';
11442                            console.log("Add To compare amasty ajax cart qqqqq");
11443                                                        const postUrl = BASE_URL + 'catalog/product_compare/add/';
11444                            const headers = {
11445                                "content-type": "application/x-www-form-urlencoded; charset=UTF-8",
11446                            };
11447                            const body = new URLSearchParams({
11448                                form_key: hyva.getFormKey(),
11449                                product: productId,
11450                                is_ajax: true
11451                            });
11452
11453                            fetch(postUrl, {headers: headers, body: body, method: 'POST'}).then((response) => {
11454                                                                if (response.redirected) {
11455                                    window.location.href = response.url;
11456                                } else if (response.ok) {
11457                                    window.dispatchEvent(new CustomEvent('reload-customer-section-data'));
11458                                } else {
11459                                    typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
11460                                        [{
11461                                            type: "warning",
11462                                            text: "Could not add item to the comparison list."
11463                                        }],
11464                                        1000
11465                                    );
11466                                }
11467                            }).catch((error) => {
11468                                typeof window.dispatchMessages !== "undefined" && window.dispatchMessages(
11469                                    [{
11470                                        type: 'error',
11471                                        text: error
11472                                    }],
11473                                    1000
11474                                );
11475                            });
11476                        }
11477                    };
11478                };
11479            });
11480        })();
11481    </script>
11481
11482
11483
11484
11485
11486
11487<section x-data="{isLoading: false}" x-cloak
11488         @amcart-loading-start.window="isLoading = true"
11489         @amcart-loading-stop.window="isLoading = false">
11490    </section>
11491
11492<div x-data="prDataPrivacyCheckboxDetailModalComponent.create()"
11493     @set-is-show-modal.window="isShowModal = $event.detail"
11494     @keydown.escape="closeModal"
11495>
11496    <div x-ref="pr-data-privacy-checkbox-detail" x-show="isShowModal" x-cloak>
11497        <div class="inset-0 fixed z-50">
11498            <div class="relative z-10 max-w-3xl sm:my-10 ml-10 sm:mx-auto bg-white p-7 h-full max-h-full sm:h-auto sm:max-h-[90%] flex rounded shadow-md"
11499                 x-show="isShowModal" x-transition
11500            >
11501                <span class="absolute top-3 right-3 cursor-pointer hover:text-gray-700 p-1" @click="closeModal">
11502                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" width="20" height="20" role="img">
11503  <path fill-rule="evenodd" d="M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" clip-rule="evenodd"/>
11504<title>x</title></svg>
11505                </span>
11506                <template x-if="data.checkbox">
11507    <div id="prgdpr-consent-checkboxes-modal" class="flex flex-col">
11508        <div class="modal-header flex flex-col flex-shrink-0 flex-grow-0 mb-5">
11509            <h2 class="text-xl lg:text-2lx pb-3 mb-1 border-container border-b" x-html="data.checkbox.policy.title"></h2>
11510            <a data-contentid="prgdpr-print-content"
11511               class="ml-auto text-sm text-blue-600 hover:underline"
11512               href="#"
11513               @click.prevent="print()"
11514            >
11515                Print            </a>
11516        </div>
11517        <div class="prgdpr-consent-checkboxes-item-content overflow-y-auto mb-5" id="prgdpr-print-content">
11518            <div class="prose max-w-none" x-html="data.checkbox.policy.content"></div>
11519        </div>
11520        <div class="modal-footer flex-shrink-0 flex-grow-0 pt-5 mt-auto border-container border-t">
11521            <button type="button"
11522                    class="action iagree btn btn-primary"
11523                    @click="data.checkbox.checked = data.checkbox.isAlreadyChecked = true; $dispatch('prgdpr-checkbox-agree', 'checkbox' + data.checkbox.consentId); closeModal();"
11524            >
11525                I agree            </button>
11526        </div>
11527    </div>
11528</template>
11529            </div>
11530
11531            <div class="bg-gray-800 opacity-50 absolute inset-0" @click="closeModal"></div>
11532        </div>
11533    </div>
11534</div>
11535
11536<script>
11537    const prDataPrivacyCheckboxDetailModalComponent = {
11538        data: null,
11539        isShowModal: false,
11540        create: function () {
11541            this.data = Alpine.reactive({checkbox: null});
11542            return this;
11543        },
11544        setCheckbox: function (checkbox) {
11545            this.data.checkbox = checkbox;
11546        },
11547        showModal: function () {
11548            this.isShowModal = true;
11549        },
11550        closeModal() {
11551            this.isShowModal = false;
11552        },
11553        print: function () {
11554            let printWindow = window.open('', 'Print', 'height=600,width=800');
11555            printWindow.document.write(
11556                `<html><head><title>${this.data.checkbox.policy.title}</title></head><body>${this.data.checkbox.policy.content}</body></html`
11557            );
11558            printWindow.document.close();
11559            printWindow.focus();
11560            printWindow.print();
11561            printWindow.onafterprint = function () {
11562                printWindow.close();
11563            };
11564
11565            return true;
11566        }
11567    };
11568</script>
11568
11569
11570<script>
11571    window.addEventListener('load', function () {
11572        magentoStorefrontEvents.context.setPage({
11573            pageType: "Cart"
11574        });
11575        magentoStorefrontEvents.context.setContext("pageExtended", {
11576            action: "cart-view"
11577        });
11578
11579            });
11580    window.addEventListener('shoppingCartContextSet', function () {
11581        magentoStorefrontEvents.publish.shoppingCartView();
11582    });
11583</script>
11583
11584
11585<script>
11586    function adobeProductRecsDataFetcher() {
11587        "use strict";
11588        return {
11589            pagePreconfiguredDeferred: {},
11590            productBanners: '',
11591            fetchData: function () {
11592                let self = this;
11593                let storefrontEvents = window.magentoStorefrontEvents;
11594
11595                storefrontEvents.context.setContext("recsContext", {
11596                    alternateEnvironmentId: ""
11597                });
11598
11599                this.pagePreconfiguredDeferred = new Promise((resolve, reject) => {
11600                    self.pagePreconfiguredDeferred.resolve = resolve;
11601                    self.pagePreconfiguredDeferred.reject = reject;
11602                })
11603
11604                document.addEventListener("recsRequestSent", (function () {
11605                    storefrontEvents.publish.recsRequestSent();
11606                }));
11607
11608                window.addEventListener("recsResponseReceived", (function (n) {
11609                    let rec = storefrontEvents.context.getRecommendations();
11610
11611                    rec = n.detail, storefrontEvents.context.setRecommendations({
11612                        units: rec
11613                    });
11614                    storefrontEvents.publish.recsResponseReceived();
11615                }));
11616
11617                this.fetchRecommendationsData();
11618            },
11619            fetchRecommendationsData: function () {
11620                let client;
11621                let promise = new Promise(function(resolve, reject) {
11622                    let interval = setInterval(() => {
11623                        client = new RecommendationsClient();
11624                        if(client._environmentId !== "") {
11625                            clearInterval(interval);
11626                            resolve();
11627                        }
11628                    }, 300);
11629                })
11630                .then(() => {
11631                    document.dispatchEvent(new Event("recsRequestSent"));
11632                    client.fetchPreconfigured().then(response => {
11633                        const units = response.data.results;
11634                        const filteredUnits = units.filter(unit => unit.products.length);
11635                        const responseEvent = new CustomEvent("recsResponseReceived", {
11636                            detail: filteredUnits,
11637                        });
11638
11639                        window.dispatchEvent(responseEvent);
11640                    });
11641                });
11642            }
11643        }
11644    }
11645</script>
11645
11646<div x-data="adobeProductRecsDataFetcher()" x-init="fetchData()"></div>
11647<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"\/","name":"Homepage","@type":"WebPage"}}]}</script>
11647<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"WebSite","url":"https:\/\/www.flooringinc.com\/","name":"flooringinc","potentialAction":{"@type":"SearchAction","target":"https:\/\/www.flooringinc.com\/catalogsearch\/result\/?q={search_term_string}","query-input":"required name=search_term_string"}}</script>
11647<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Organization","url":"https:\/\/www.flooringinc.com\/","name":"Flooring Inc","logo":" https:\/\/www.flooringinc.com\/media\/logo\/stores\/1\/logo.webp","description":"FlooringInc is your online flooring superstore. We offer wood, laminate, carpet, vinyl, specialty flooring and more.","contactPoint":[{"@type":"ContactPoint","telephone":"(866) 416-6388","contactType":"customer service"}],"address":{"addressCountry":"US","postalCode":"85043","addressRegion":"Arizona","addressLocality":"Phoenix","streetAddress":"2429 S. 51st Ave. Ste 10"},"sameAs":["https:\/\/www.facebook.com\/FlooringInc","https:\/\/www.instagram.com\/flooringinccom\/","https:\/\/www.youtube.com\/user\/flooringincvideos","https:\/\/www.pinterest.com\/flooringinc\/"]}</script>
11647    
11647<script defer src="https://www.dwin1.com/94345.js"></script>
11647
11648    
11649<script  nonce="N2Q3enk5eGFoZ3hyejB4MzJxOThhNGsyd2lybnZpbno=">
11650    (() => {
11651        const updateSettingBar = () => {
11652            const intervalId = setInterval(() => {
11653                const bar = document.getElementById('pr-cookie-setting-bar');
11654                if (! bar) {
11655                    return;
11656                }
11657
11658                clearInterval(intervalId);
11659                bar.querySelectorAll('input[type="checkbox"], button.action')
11660                    .forEach(el => el.disabled = true);
11661
11662                                    let notification = '\u003Cdiv\u0020class\u003D\u0022pr\u002Dgpc\u002Dnotification\u002Dwrap\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Ch2\u003EYour\u0020Opt\u002DOut\u0020Preferences\u0020Honored\u003C\u002Fh2\u003E\u000D\u000A\u003Cp\u003EYour\u0020browser\u0027s\u0020privacy\u0020preference\u0020\u0028GPC\u0029\u0020has\u0020been\u0020detected.\u003C\u002Fp\u003E\u000D\u000A\u003Cp\u0020class\u003D\u0022pr\u002Dgpc\u002Dtext\u002Dwith\u002Dicon\u0022\u003E\u003Cimg\u0020src\u003D\u0022https\u003A\u002F\u002Fwww.flooringinc.com\u002Fstatic\u002Fversion1789462004\u002Ffrontend\u002FDcw\u002Fhyvadesktop\u002Fen_US\u002FPlumrocket_GlobalPrivacyControl\u002Fimages\u002Fcheck_circle.png\u0022\u0020alt\u003D\u0022GPC\u0020Icon\u0022\u0020width\u003D\u002218\u0022\u0020height\u003D\u002218\u0022\u003E\u0020Non\u002Dessential\u0020cookies\u0020have\u0020been\u0020disabled\u0020on\u0020our\u0020website.\u003C\u002Fp\u003E\u000A\u003C\u002Fdiv\u003E';
11663                    bar.querySelector('.pr-cookie-description')
11664                        .insertAdjacentHTML('beforebegin', notification);
11665                            }, 400);
11666        }
11667
11668        prGlobalPrivacyControlApi.signalHandlers.addHandler(updateSettingBar);
11669    })();
11670</script>
vendor: 1 bytes, line 11670
11670
11671<script type="application/json" id="default-section-data">
11672    {"messages":[],"customer":[],"compare-products":[],"last-ordered-items":[],"requisition":[],"cart":[],"directory-data":{"US":{"name":"United States","regions":{"3":{"code":"AL","name":"Alabama"},"6":{"code":"AK","name":"Alaska"},"9":{"code":"AS","name":"American Samoa"},"12":{"code":"AZ","name":"Arizona"},"15":{"code":"AR","name":"Arkansas"},"18":{"code":"AE","name":"Armed Forces Africa"},"21":{"code":"AA","name":"Armed Forces Americas"},"24":{"code":"AE","name":"Armed Forces Canada"},"27":{"code":"AE","name":"Armed Forces Europe"},"30":{"code":"AE","name":"Armed Forces Middle East"},"33":{"code":"AP","name":"Armed Forces Pacific"},"36":{"code":"CA","name":"California"},"39":{"code":"CO","name":"Colorado"},"42":{"code":"CT","name":"Connecticut"},"45":{"code":"DE","name":"Delaware"},"48":{"code":"DC","name":"District of Columbia"},"51":{"code":"FM","name":"Federated States Of Micronesia"},"54":{"code":"FL","name":"Florida"},"57":{"code":"GA","name":"Georgia"},"60":{"code":"GU","name":"Guam"},"63":{"code":"HI","name":"Hawaii"},"66":{"code":"ID","name":"Idaho"},"69":{"code":"IL","name":"Illinois"},"72":{"code":"IN","name":"Indiana"},"75":{"code":"IA","name":"Iowa"},"78":{"code":"KS","name":"Kansas"},"81":{"code":"KY","name":"Kentucky"},"84":{"code":"LA","name":"Louisiana"},"87":{"code":"ME","name":"Maine"},"90":{"code":"MH","name":"Marshall Islands"},"93":{"code":"MD","name":"Maryland"},"96":{"code":"MA","name":"Massachusetts"},"99":{"code":"MI","name":"Michigan"},"102":{"code":"MN","name":"Minnesota"},"105":{"code":"MS","name":"Mississippi"},"108":{"code":"MO","name":"Missouri"},"111":{"code":"MT","name":"Montana"},"114":{"code":"NE","name":"Nebraska"},"117":{"code":"NV","name":"Nevada"},"120":{"code":"NH","name":"New Hampshire"},"123":{"code":"NJ","name":"New Jersey"},"126":{"code":"NM","name":"New Mexico"},"129":{"code":"NY","name":"New York"},"132":{"code":"NC","name":"North Carolina"},"135":{"code":"ND","name":"North Dakota"},"138":{"code":"MP","name":"Northern Mariana Islands"},"141":{"code":"OH","name":"Ohio"},"144":{"code":"OK","name":"Oklahoma"},"147":{"code":"OR","name":"Oregon"},"150":{"code":"PW","name":"Palau"},"153":{"code":"PA","name":"Pennsylvania"},"156":{"code":"PR","name":"Puerto Rico"},"159":{"code":"RI","name":"Rhode Island"},"162":{"code":"SC","name":"South Carolina"},"165":{"code":"SD","name":"South Dakota"},"168":{"code":"TN","name":"Tennessee"},"171":{"code":"TX","name":"Texas"},"174":{"code":"UT","name":"Utah"},"177":{"code":"VT","name":"Vermont"},"180":{"code":"VI","name":"Virgin Islands"},"183":{"code":"VA","name":"Virginia"},"186":{"code":"WA","name":"Washington"},"189":{"code":"WV","name":"West Virginia"},"192":{"code":"WI","name":"Wisconsin"},"195":{"code":"WY","name":"Wyoming"}}},"data_id":1790345750},"captcha":[],"wishlist":{"items":[]},"company":[],"company_authorization":[],"negotiable_quote":[],"instant-purchase":[],"loggedAsCustomer":[],"multiplewishlist":[],"purchase_order":[],"persistent":[],"review":[],"amfacebook-pixel":[],"faq":[],"quotecart":[],"sociallogin":[],"data_privacy":[],"ccpa_data":[],"wp_ga4":[],"recently_viewed_product":[],"recently_compared_product":[],"product_data_storage":[],"paypal-billing-agreement":[]}</script>
11672
11673</div><div x-data="fpcTracking()" x-init="sendRequest()"></div>
11674<script>
11675    function fpcTracking() {
11676        return {
11677            url: 'https://www.flooringinc.com/amasty_fpc/reports/',
11678            sendRequest() {
11679                const ttfb = window.performance.timing.responseStart - window.performance.timing.fetchStart;
11680                fetch(`${this.url}?` + new URLSearchParams({ ttfb }), {
11681                    method: 'GET',
11682                    headers: {
11683                        'Content-Type': 'application/json',
11684                        'X-Requested-With': 'XMLHttpRequest',
11685                    }
11686                })
11687            }
11688        }
11689    }
11690</script>
11690
11691<!-- amasty-fpc-status -->    
11691<script>
11692        const wpGA4ServerSide = {
11693            pushClick: function(productId, listId, listName, index, elm) {
11694                if (elm && elm.hasAttribute('onclick')) {
11695                    var requestUrl = 'https://www.flooringinc.com/weltpixel_ga4/track/productclick/';
11696                    if (productId && listId && listName) {
11697                        fetch(requestUrl, {
11698                            method: 'POST',
11699                            headers: {
11700                                'Content-Type': 'application/x-www-form-urlencoded',
11701                                'X-Requested-With': 'XMLHttpRequest'
11702                            },
11703                            body: 'product_id=' + productId + '&list_id=' + listId +'&list_name=' + listName + '&index=' + index
11704                        })
11705                        .then(res => res.json())
11706                        .then(data => {
11707                        });
11708                    }
11709                }
11710            },
11711
11712            pushViewItemList: function(hashId) {
11713                if (hashId && document.getElementById('wp_ga4_server_side_view_item_list')) {
11714                    var requestUrl = 'https://www.flooringinc.com/weltpixel_ga4/track/viewitemlist/';
11715                    fetch(requestUrl, {
11716                        method: 'POST',
11717                        headers: {
11718                            'Content-Type': 'application/x-www-form-urlencoded',
11719                            'X-Requested-With': 'XMLHttpRequest'
11720                        },
11721
11722                        body: 'hash_id='+hashId
11723                    })
11724                    .then(res => res.json())
11725                    .then(data => {
11726                    });
11727                }
11728            }
11729        };
11730
11731        window.wpGA4ServerSide = wpGA4ServerSide;
11732
11733        let allowGa4Services = window.ga4AllowServices ?? true;
11734
11735        if (allowGa4Services) {
11736            const {fetch: originalFetch} = window;
11737            window.fetch = async (...args) => {
11738                let [resource, config] = args;
11739                let response = await originalFetch(resource, config);
11740
11741                if ((typeof resource == 'string') && resource.search('/customer\/section\/load/') > 0) {
11742                    response.clone().json().then(data => {
11743                        if (data.wp_ga4.datalayer) {
11744                            const dataLayerData = JSON.parse(data.wp_ga4.datalayer);
11745                            dataLayerData.forEach((dataLayerItem) => {
11746                                window.dataLayer.push({ecommerce: null});
11747                                window.dataLayer.push(dataLayerItem);
11748                            });
11749                        }
11750                    });
11751                }
11752                return response;
11753            };
11754        }
11755
11756    </script>
11756
11757    
11757<script>
11758        let allowGa4ServicesMeta = window.ga4AllowServices ?? true;
11759        if (allowGa4ServicesMeta) {
11760            const {fetch: originalFetchMeta} = window;
11761            window.fetch = async (...args) => {
11762                let [resource, config] = args;
11763                let response = await originalFetchMeta(resource, config);
11764
11765                if ((typeof resource == 'string') && resource.search('/customer\/section\/load/') > 0) {
11766                    response.clone().json().then(data => {
11767                        if (data.wp_ga4 && data.wp_ga4.metapixel) {
11768                            const metaPixel = JSON.parse(data.wp_ga4.metapixel);
11769                            for (index in metaPixel) {
11770                                fbq(metaPixel[index].track, metaPixel[index].eventName, metaPixel[index].eventData);
11771                            }
11772                        }
11773                    });
11774                }
11775                return response;
11776            };
11777        }
11778    </script>
vendor: 1 bytes, line 11778
11778
11779<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-d3390ca2649c82069a5","applicationID":"1112615138","transactionName":"YwMDN0NXChZSVRBZWlpJIABFXwsLHFUMVVZfCRQXHlUFF0cZDV5RUR4=","queueTime":0,"applicationTime":582,"atts":"T0QAQQtNGRg=","errorBeacon":"bam.nr-data.net","agent":""}</script>
11779</body>
11780</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.