var roomvoExport=(()=>{var Kt=e=>{let t=document.createElement("a");t.href=e;let o=t.pathname;return o.length>0&&o[0]!="/"&&(o="/"+o),o},me=e=>{let t=document.createElement("a");return t.href=e,t.hostname},A=()=>window.roomvoLocation?window.roomvoLocation:window.location,Te=e=>Kt(decodeURIComponent(e.href)),Pe=e=>Te(e).replace(/(^\/)|(\/$)/g,"").split("/");var Fe=e=>{let t=Pe(e);return t[t.length-1]};var ke=(e,t)=>new URL(e.href).searchParams.get(t);var y=new class{getUrl(){return new URL(window.location.href)}getNextLevelUrl(){try{return new URL(window.parent.location.href)}catch{}return window.location.ancestorOrigins&&window.location.ancestorOrigins.item(0)?new URL(window.location.ancestorOrigins.item(0)):document.referrer?new URL(document.referrer):null}getTopLevelUrl(){try{return new URL(window.top.location.href)}catch{}return window.location.ancestorOrigins&&window.location.ancestorOrigins.length>0?new URL(window.location.ancestorOrigins[window.location.ancestorOrigins.length-1]):document.referrer?new URL(document.referrer):null}getHostname(){let e=this.getUrl();return e?e.hostname:""}getNextLevelHostname(){let e=this.getNextLevelUrl();return e?e.hostname:""}getTopLevelHostname(){let e=this.getTopLevelUrl();return e?e.hostname:""}};var Ge="roomvo-button",Ve="roomvo-lite-iframe";var V="roomvo-product-display-button",He="roomvo-measure-my-room-button";var B="ffPopup";var qt="roomvoProductCatalog",jt="roomvoProductDisplay",D=qt,Y=jt;var f=B,Zt="roomvoMeasurement";var w="roomvo-stimr",We="roomvo-designer";var q="roomvo_add_to_cart",C=0,Xt=1,Jt=2,Qt=3,eo=4,$e=5,to=6,oo=7,ro=8,no=9,so=10,io=11,ao=12,co=13,Ee=0,lo=1,po=2,he=0,Re=1,uo=2;var ze="full",Ke="lite";var qe="Product Detail";var je="Home";var Ze="Shopping Cart";var Xe="Other",fe="ffvendorids",Oe="ffvisitorids";var Ce="ffvendorurlpath",H="fftrackingcode",j="ffagreedtermsofuse",ge="roomvoLaunchSequenceRecentUseFlag",W="roomvoLaunchSequence";var Je=[Zt,f],Z={[C]:"unknown",[Xt]:"floor",[Jt]:"rug",[Qt]:"furniture",[eo]:"countertop",[$e]:"wall",[to]:"cabinet",[oo]:"wall_decor",[ro]:"ceiling",[no]:"door",[so]:"trim",[io]:"furniture_coating",[ao]:"roof",[co]:"radiator"},Qe={"en-us":{"Embed this Roomvo share link on your website":"Embed this Roomvo share link on your website","Share Product":"Share Product",Copy:"Copy",Close:"Close","Loading...":"Loading..."}},sa={[Ee]:"none",[lo]:"standalone",[po]:"product_integration"},ia={[he]:"desktop",[Re]:"touch",[uo]:"kiosk"};var et="Viewed Host Page";var h={LOAD_POPUP_FROM_ASSISTANT:"roomvoLoadPopupFromAssistant",ENLARGE_ASSISTANT_POPUP:"roomvoEnlargeAssistantPopup",REDUCE_ASSISTANT_POPUP:"roomvoReduceAssistantPopup",OPEN_PRODUCT_VISUALIZER:"roomvoOpenProductVisualizer",RESIZE_CATALOG:"roomvoResizeCatalog",OPEN_PRODUCT_PAGE:"roomvoOpenProductPage",OPEN_CATALOG:"roomvoOpenCatalog",REQUEST_ESTIMATE:"roomvoRequestEstimate",SAVE_VISITOR:"ffSaveVisitor",FOCUS_POPUP:"ffFocusPopup",CLOSE_PRODUCT_DISPLAY:"roomvoCloseProductDisplay",AGREE_TO_TERMS_OF_USE:"roomvoAgreeToTermsOfUse",ADD_TO_FAVORITES:"roomvoAddToFavorites",REMOVE_FROM_FAVORITES:"roomvoRemoveFromFavorites",ADD_TO_CART:"roomvoAddToCart",ORDER_SAMPLE:"roomvoOrderSample",RESERVE_ONLINE_PICKUP_IN_STORE:"roomvoReserveOnlinePickupInStore",SUBMIT_PAYMENT:"roomvoSubmitPayment",HANDLE_BOOK_APPOINTMENT:"roomvoHandleBookAppointment",RESIZE_CONTACT_FORM:"roomvoResizeContactForm",CLICK_PRODUCT_LINK:"roomvoClickProductLink",LOAD_POPUP_FROM_PRODUCT_DISPLAY:"roomvoLoadPopupFromProductDisplay",CLICK_BOOK_APPOINTMENT:"roomvoClickBookAppointment",INITIATE_CUSTOM_ACTION:"roomvoInitiateCustomAction",PROPAGATE_SESSION:"roomvoPropagateSession",HANDLE_LEAD:"roomvoHandleLead",RESIZE_STORE_LOCATOR_IFRAME:"resizeStoreLocatorIframe",TRACK:"ffTrack",FOCUS_IFRAME:"roomvoFocusIframe",CLOSE_LAUNCH_SEQUENCE:"roomvoCloseLaunchSequence",OPEN_MEASUREMENT:"roomvoOpenMeasurement",CLOSE_MEASUREMENT:"roomvoCloseMeasurement",UPDATE_PRODUCT_FILTER:"roomvoUpdateProductFilter",SCROLL_TOP_OF_IFRAME_INTO_VIEW:"roomvoScrollTopOfIframeIntoView",EXPAND_ROOM_PAGE_LITE:"roomvoRoomPageLiteExpand",SHRINK_ROOM_PAGE_LITE:"roomvoRoomPageLiteShrink",SWIPE_ROOM_PAGE_LITE:"roomvoRoomPageLiteSwipe",MEASURE_RESULT:"roomvoMeasureResult",CLICK_FIND_SELLER:"roomvoClickFindSeller",UPDATE_SHOPPING_CART:"roomvoUpdateShoppingCart",CLOSE_VISUALIZER:"roomvoCloseVisualizer",NOTIFY_ROOM_PAGE_LITE_LOADED:"roomvoNotifyRoomPageLiteLoaded",TRACK_PRODUCT_USAGE_EVENT_FOR_LITE:"roomvoTrackProductUsageEventForLite",TRACK_PRODUCT_IMPRESSION_EVENT_FOR_LITE:"roomvoTrackProductImpressionEventForLite",TRACK_ROOM_PAGE_VIEW_FOR_LITE:"roomvoTrackRoomPageViewForLite",CHANGE_PRODUCT_CODE_IN_LITE:"roomvoRoomPageLiteChangeProduct",NOTIFY_ROOM_PAGE_LITE_PRODUCT_UPDATED:"roomvoRoomPageLiteProductUpdated",DOWNLOAD_VISUALIZED_ROOM_IMAGE:"roomvoDownloadVisualizedRoomImage",NOTIFY_GENERATED_RESTYLE_LITE_ROOM:"roomvoNotifyGeneratedRestyleLiteRoom",NOTIFY_HOVER_ENTER_RESTYLE_LITE:"roomvoNotifyHoverEnterRestyleLite",NOTIFY_HOVER_LEAVE_RESTYLE_LITE:"roomvoNotifyHoverLeaveRestyleLite",OPEN_CHATBOT:"roomvoOpenChatbot",CLOSE_CHATBOT:"roomvoCloseChatbot",ADD_MESSAGE_TO_CHATBOT_THREAD:"roomvoAddMessageToChatbotThread",OPEN_RELATIVE_URL:"roomvoOpenRelativeUrl",NOTIFY_CHATBOT_LAUNCHER_LOADED:"roomvoNotifyChatbotLauncherLoaded",NOTIFY_CHATBOT_LOADED:"roomvoNotifyChatbotLoaded",START_CHATBOT_LAUNCHER_LAUNCH_ANIMATION:"roomvoStartChatbotLauncherLaunchAnimation"};var _o=["roomvo","googlebot","bingbot","ahrefsbot","semrushbot","siteauditbot","facebookexternalhit","twitter","linkedin","pinterest"],mo=e=>e&&/iPad|iPhone|iPod/.test(e.userAgent),To=e=>e&&e.userAgent.includes("Macintosh; Intel Mac OS X");var Po=e=>!!(e&&(e.platform==="MacIntel"||e.platform==="iPad"||e.platform==="iPhone"||e.platform==="iPod"||To(e)));var Eo=e=>!!(Po(e)&&e.maxTouchPoints>1),ho=e=>!!(!window.MSStream&&(mo(e)||Eo(e)));var tt=e=>e?e.userAgent.indexOf("MSIE")>0||e.userAgent.indexOf("Trident/")>-1:!1;var ot=e=>!e||RegExp(_o.join("|"),"i").test(e.userAgent)?!1:new RegExp(["bot|googlebot|googleweblight|spider|robot|crawl|baidu|bing|msn","|duckduckgo|teoma|slurp|yandex|lighthouse|sitecrawl|linguee","|schemabot|indeedbot|opendi|optimizer|nssprerendersproxy","|headlesschrome|ghostsinspector|restsharp|woorankreview|screamingfrogseospider"].join(""),"i").test(e.userAgent);var Ro=new RegExp(["(android|bb\\d+|meego).+mobile|avantgo|bada/|blackberry","|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp","|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)/|plucker","|pocket|psp|series(4|6)0|symbian|treo|up.(browser|link)|vodafone|wap|windows ce|xda","|xiino|android|ipad|playbook|silk"].join(""),"i"),Ue=function(){let e=!1;return function(t){let o=new RegExp(["1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s","|a wa|abac|ac(er|oo|s-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu","|ar(ch|go)|as(te|us)|attw|au(di|-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)","|br(e|v)w|bumb|bw-(n|u)|c55/|capi|ccwa|cdm-|cell|chtm|cldc|cmd-|co(mp|nd)|craw","|da(it|ll|ng)|dbte|dc-s|devi|dica|dmob|do(c|p)o|ds(12|-d)|el(49|ai)|em(l2|ul)","|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(-|_)|g1 u|g560|gene|gf-5|g-mo","|go(.w|od)|gr(ad|un)|haie|hcit|hd-(m|p|t)|hei-|hi(pt|ta)|hp( i|ip)|hs-c","|ht(c(-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i-(20|go|ma)|i230|iac( |-|/)|ibro|idea","|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |/)|klon","|kpt |kwc-|kyo(c|k)|le(no|xi)|lg( g|/(k|l|u)|50|54|-[a-w])|libw|lynx","|m1-w|m3ga|m50/|ma(te|ui|xo)|mc(01|21|ca)|m-cr|me(rc|ri)|mi(o8|oa|ts)|mmef","|mo(01|02|bi|de|do|t(-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]","|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)-|on|tf|wf|wg|wt)|nok(6|i)|nzph","|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|-([1-8]|c))|phil|pire","|pl(ay|uc)|pn-2|po(ck|rt|se)|prox|psio|pt-g|qa-a|qc(07|12|21|32|60|-[2-7]|i-)","|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55/|sa(ge|ma|mm|ms|ny|va)|sc(01|h-|oo|p-)","|sdk/|se(c(-|0|1)|47|mc|nd|ri)|sgh-|shar|sie(-|m)|sk-0|sl(45|id)|sm(al|ar|b3","|it|t5)|so(ft|ny)|sp(01|h-|v-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)","|tcl-|tdg-|tel(i|m)|tim-|t-mo|to(pl|sh)|ts(70|m-|m3|m5)|tx-9|up(.b|g1|si)","|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|-v)|vm40|voda|vulc|vx(52|53|60|61","|70|80|81|83|85|98)|w3c(-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas-","|your|zeto|zte-"].join(""),"i");e=t?Ro.test(t)||o.test(t.substring(0,4)):!1}(navigator.userAgent||navigator.vendor||window.opera),e||ho(window.navigator)?Re:he};var Se=e=>{for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return v(e)===v({})};var M=(e,t,o)=>{let r;return function(){let n=this,s=arguments,i=o&&!r;clearTimeout(r),r=setTimeout(function(){r=null,o||e.apply(n,s)},t),i&&e.apply(n,s)}};var v=e=>!JSON.stringify&&JSON.serialize?JSON.serialize(e):JSON.stringify(e),X=e=>!JSON.parse&&JSON.deserialize?JSON.deserialize(e):JSON.parse(e);var J=e=>fo()[e],fo=()=>{let e={},t=document.cookie.split(";");for(let o=0;oJ(e)!==void 0,Ie=(e,t,o={})=>{let r=o.cookieExpiration?o.cookieExpiration:"Fri, 31 Dec 9999 23:59:59 GMT",n=[`${e}=${t}`,`expires=${r}`,"path=/",o.sameSitePolicy||`${Oo()}`];o.domain&&n.push(`domain=${o.domain}`),document.cookie=n.join("; ")};var Oo=()=>y.getUrl().protocol==="https:"?"SameSite=None; Secure":"SameSite=Lax";var m=function(e,t){try{e.log.length+t.length<1e6?e.log+=t+` `:e.log.endsWith(`..... `)||(e.log+=`..... `)}catch(o){e.log=o.toString()}};var O=(e,t,o)=>{if(!e.isRoomvoCookieDisabled()){let r={cookieExpiration:e.getCookieExpiration(),domain:e.getCookieDomain()},{cookieName:n,cookieValue:s,config:i={}}=o,a=Object.assign({},r,i);switch(t.toLowerCase()){case"write":return Ie(n,s,a);case"read":return J(n);case"read/rewrite":{let c=J(n);return c&&Ie(n,c,a),c}case"check":return rt(n)}}return m(e,"Accessing cookies is not permitted."),null};var nt=(e,t)=>{O(t,"check",{cookieName:H})||(Math.random()<.5?O(t,"write",{cookieName:H,cookieValue:"dontshow",config:{cookieExpiration:e}}):O(t,"write",{cookieName:H,cookieValue:"show",config:{cookieExpiration:e}}))},F=e=>O(e,"read",{cookieName:H})||"";var Q=e=>e.toString()==="[object RoomvoIntegrator]",R=e=>{let t=Object.values(window._roomvo).filter(o=>o.toString().endsWith("Integrator]"));return e?window._roomvo[e]||t.find(o=>o.toString()==="[object AssistantIntegrator]")||t.find(Q)||t[0]:t.find(Q)||t[0]};var Co=` `,st=Co;var it={animation:"none","animation-delay":"0","animation-direction":"normal","animation-duration":"0","animation-fill-mode":"none","animation-iteration-count":"1","animation-name":"none","animation-play-state":"running","animation-timing-function":"ease","backface-visibility":"visible",background:"0","background-attachment":"scroll","background-clip":"border-box","background-color":"transparent","background-image":"none","background-origin":"padding-box","background-position":"0 0","background-position-x":"0","background-position-y":"0","background-repeat":"repeat","background-size":"auto auto",border:"0","border-style":"none","border-width":"medium","border-color":"inherit","border-bottom":"0","border-bottom-color":"inherit","border-bottom-left-radius":"0","border-bottom-right-radius":"0","border-bottom-style":"none","border-bottom-width":"medium","border-collapse":"separate","border-image":"none","border-left":"0","border-left-color":"inherit","border-left-style":"none","border-left-width":"medium","border-radius":"0","border-right":"0","border-right-color":"inherit","border-right-style":"none","border-right-width":"medium","border-spacing":"0","border-top":"0","border-top-color":"inherit","border-top-left-radius":"0","border-top-right-radius":"0","border-top-style":"none","border-top-width":"medium",bottom:"auto","box-shadow":"none","box-sizing":"content-box","caption-side":"top",clear:"none",clip:"auto",color:"inherit",columns:"auto","column-count":"auto","column-fill":"balance","column-gap":"normal","column-rule":"medium none currentColor","column-rule-color":"currentColor","column-rule-style":"none","column-rule-width":"none","column-span":"1","column-width":"auto",content:"normal","counter-increment":"none","counter-reset":"none",cursor:"auto",direction:"ltr",display:"inline","empty-cells":"show",float:"none",font:"normal","font-family":"inherit","font-size":"medium","font-style":"normal","font-variant":"normal","font-weight":"normal",height:"auto",hyphens:"none",left:"auto","letter-spacing":"normal","line-height":"normal","list-style":"none","list-style-image":"none","list-style-position":"outside","list-style-type":"disc",margin:"0","margin-bottom":"0","margin-left":"0","margin-right":"0","margin-top":"0","max-height":"none","max-width":"none","min-height":"0","min-width":"0",opacity:"1",orphans:"0",outline:"0","outline-color":"invert","outline-style":"none","outline-width":"medium",overflow:"visible","overflow-x":"visible","overflow-y":"visible",padding:"0","padding-bottom":"0","padding-left":"0","padding-right":"0","padding-top":"0","page-break-after":"auto","page-break-before":"auto","page-break-inside":"auto",perspective:"none","perspective-origin":"50% 50%",position:"static",right:"auto","tab-size":"8","table-layout":"auto","text-align":"inherit","text-align-last":"auto","text-decoration":"none","text-decoration-color":"inherit","text-decoration-line":"none","text-decoration-style":"solid","text-indent":"0","text-shadow":"none","text-transform":"none",top:"auto",transform:"none","transform-style":"flat",transition:"none","transition-delay":"0s","transition-duration":"0s","transition-property":"none","transition-timing-function":"ease","unicode-bidi":"normal","vertical-align":"baseline",visibility:"visible","white-space":"normal",widows:"0",width:"auto","word-spacing":"normal","z-index":"auto"};var at=(e,t=[/^https?:\/\/.*\.roomvo\.com$/,/^https?:\/\/.*\.leaptools\.com$/])=>{let o=(...i)=>t.some(a=>a.test(i[0].origin))?e(...i):null,r=window.addEventListener?"addEventListener":"attachEvent",n=window[r],s=r=="attachEvent"?"onmessage":"message";n(s,o,!1)},ct=()=>{try{let e=document.createElement("canvas");if((e.getContext("webgl")||e.getContext("experimental-webgl"))==null)throw"nowebgl"}catch{return!1}return!0},ye=(e,t=document)=>{let o=t.querySelector(e);return o&&o.innerText?o.innerText.trim():""},$=(e,t,o)=>{lt(e,t,o)};var go=function(e,t){if(!e)return!1;for(let o=0;o0&&(o(s)===!0||r))return;let i=new Set,a=new MutationObserver(_=>{for(let P of _)for(let U of P.addedNodes){U.matches?.(t)&&i.add(U);let d=U.querySelectorAll?.(t);d?.length&&d.forEach(p=>i.add(p))}i.size>0&&u()}),c=()=>{let _=Array.from(i);(o(_)||r)&&a.disconnect(),i.clear()},u=n===0?c:M(c,n,!1);a.observe(e,{childList:!0,subtree:!0})}var Uo=function(){let e=()=>Array.prototype.slice.call(document.styleSheets).every(t),t=o=>!o.roomvo;if(e()){let o=document.createElement("style");o.appendChild(document.createTextNode("")),document.head.appendChild(o);let r=o.sheet;return r.roomvo=!0,r}},So=function(){let e=Uo();return e||[...document.styleSheets].find(t=>t.roomvo)},Ae=(e,t)=>{t||(t=So());for(let o of xe(e))t.insertRule(o,t.cssRules.length);return t},xe=e=>{let t=[];for(let o=0;o{Object.keys(it).forEach(t=>{e.style.setProperty(t,it[t],"important")})};var ut=(e,t)=>{if(typeof t!="function"||!e||typeof e!="object")throw new Error("Invalid Arguments");document.querySelector('meta[name="viewport"][content*="device-width"][content*="initial-scale=1"]')||document.head.insertAdjacentHTML("beforeend",''),t(e),e?.isListenedTo!==!0&&(e.isListenedTo=!0,"addEventListener"in e?e.addEventListener("change",t):e.addListener(t))};var _t=e=>{let t={alpha:255};if(e=e.replace("#",""),e.length===3){let o=r=>parseInt(r+r,16);t.red=parseInt(o(e.slice(0,1))),t.green=parseInt(o(e.slice(1,2))),t.blue=parseInt(o(e.slice(2,3)))}else if(e.length===6)t.red=parseInt(e.slice(0,2),16),t.green=parseInt(e.slice(2,4),16),t.blue=parseInt(e.slice(4,6),16);else return;return t},Io=e=>{let t=e.toString("16");return t.length===1?"0"+t:t};var mt=(e,t,o=50)=>(e=_t(e),t=_t(t),"#"+["red","green","blue"].map(r=>Io(Math.round(t[r]+(e[r]-t[r])*(o/100)))).join("")),Tt=(e,t)=>mt("#FFFFFF",e,t),Pt=(e,t)=>mt("#000000",e,t);var yo=` /*** The new CSS reset - version 1.7.3 (last updated 7.8.2022) GitHub page: https://github.com/elad2412/the-new-css-reset ***/ /* Remove all the styles of the "User-Agent-Stylesheet", except for the 'display' property - The "symbol *" part is to solve Firefox SVG sprite bug */ *:where(:not(html, iframe, canvas, img, svg, video, audio):not(svg *, symbol *)) { all: unset; display: revert; } /* Preferred box-sizing value */ *, *::before, *::after { box-sizing: border-box; } /* Reapply the pointer cursor for anchor tags */ a, button { cursor: revert; } /* Remove list styles (bullets/numbers) */ ol, ul, menu { list-style: none; } /* For images to not be able to exceed their container */ img { max-width: 100%; } /* removes spacing between cells in tables */ table { border-collapse: collapse; } /* Safari - solving issue when using user-select:none on the text input doesn't working */ input, textarea { -webkit-user-select: auto; } /* revert the 'white-space' property for textarea elements on Safari */ textarea { white-space: revert; } /* minimum style to allow to style meter element */ meter { -webkit-appearance: revert; appearance: revert; } /* reset default text opacity of input placeholder */ ::placeholder { color: unset; } /* fix the feature of 'hidden' attribute. display:revert; revert to element instead of attribute */ :where([hidden]) { display: none; } /* revert for bug in Chromium browsers - fix for the content editable attribute will work properly. - webkit-user-select: auto; added for Safari in case of using user-select:none on wrapper element*/ :where([contenteditable]:not([contenteditable="false"])) { -moz-user-modify: read-write; -webkit-user-modify: read-write; overflow-wrap: break-word; -webkit-line-break: after-white-space; -webkit-user-select: auto; } /* apply back the draggable feature - exist only in Chromium and Safari */ :where([draggable="true"]) { -webkit-user-drag: element; } `,Et=yo;var Ao=1,xo=2,Do=3,Lo=4,wo=5,vo=7,bo=8,No=9,Bo=10,Yo=11,Mo=12,Fo=13,ko=14,Go=15,Vo=16,Ho=17,Wo=18,$o=19,zo=20,Ko=21,qo=22,jo=23,Zo=24,Xo=25,Jo=26,Qo=27,er=28,tr=29,or=30,rr=31,nr=32,sr=33,ir=34,ar=35,cr=36,lr=37,dr=38,pr=39,ur=40,_r=41,mr=42,Tr=43,Pr=44,Er=1e3,hr=1001,Rr=1002,fr=1003,Or=1004,Cr=1005,gr=1006,Ur=1007,Sr=1008,Ir=1009,yr=1010,Ar=1011,xr=1012,Dr=1013,Lr=1014,wr=1015,vr=1016,br=1017,Nr=1018,Br=1019,Yr=1020,Mr=1021,Fr=1022,kr=1023,Gr=1024,Vr=1025,Hr=1026,Wr=1027,$r=1028,zr=1029,Kr=1030,qr=1031,jr=1032,Zr=1033,Xr=1034,Jr=1035,Qr=1036,en=1037,tn=1038,on=1039,rn=1040,nn=1041,sn=1042,an=1043,cn=1044,ln=1045,dn=1046,pn=1047,un=1048,_n=1049,mn=1050,Tn=1051,Pn=1052,En=1053,hn=1054,Rn=1055,fn=1056,On=1057,Cn=1058,gn=1059,Un=1060,Sn=1061,In=1062,yn=1063,An=1064,xn=1065,Dn=1066,Ln=1067,wn=1068,vn=1069,bn=1070,Nn=1071,Bn=1072,Yn=1073,Mn=1074,Fn=1075,kn=1076,Gn=1077,Vn=1078,Hn=1079,Wn=1080,$n=1081,zn=1082,Kn=1083,qn=1084,jn=1086,Zn=1087,Xn=1088,Jn=1089,Qn=1090,es=1091,ts=1092,os=1093,rs=1094,ns=1095,ss=1096,is=1097,as=1098,cs=1099,ls=1100,ds=1101,ps=1102,us=1103,_s=1104,ms=1105,Ts=1106,Ps=1107,Es=1108,hs=1109,Rs=1110,fs=1111,Os=1112,Cs=1113,gs=1114,Us=1115,Ss=1116,Is=1117,ys=1118,As=1119,xs=1120,Ds=1121,Ls=1123,ws=1124,vs=1125,bs=1126,Ns=1127,Bs=1128,Ys=1129,Ms=1131,Fs=1132,ks=1133,Gs=1134,Vs=1135,Hs=1136,Ws=1137,$s=1138,zs=1139,Ks=1140;var qs=0,js=1,Zs=2,Xs=3,Ia={[qs]:"shade.unknown",[js]:"shade.light",[Zs]:"shade.medium",[Xs]:"shade.dark"},Js=0,Qs=1,ei=2,ti=3,oi=4,ri=5,ni=6,si=7,ii=8,ai=9,ci=10,li=11,ya={[Js]:"color.unknown",[Qs]:"color.beige",[ei]:"color.black",[ti]:"color.blue",[oi]:"color.brown",[ri]:"color.gray",[ni]:"color.green",[si]:"color.orange",[ii]:"color.purple",[ai]:"color.red",[ci]:"color.white",[li]:"color.yellow"};var ht={1:"Floors",2:"Rugs",3:"Furniture",4:"Countertops",5:"Walls",6:"Cabinets",7:"Wall Decors",8:"Ceilings",9:"Doors",10:"Trims",11:"Furniture Coatings",12:"Roofs",13:"Radiators",14:"Storage",15:"Lighting",16:"Appliances",17:"Fenestrations",18:"Window Treatments",19:"Decor",20:"Staircases",21:"Plumbing Fixtures",22:"Fireplaces",23:"Outdoor Structures",24:"Landscaping"};var Rt={[$o]:"Area Rugs",[Ho]:"Boards and Panels",[Wo]:"Brick and Stone",[ko]:"Butcher Block",[vo]:"product_subtype.carpet_tile",[Mo]:"Concrete",[No]:"Engineered Stone",[Ao]:"product_subtype.hardwood",[Yo]:"product_subtype.laminate",[Lo]:"product_subtype.luxury_vinyl",[Ko]:"Mats",[bo]:"Natural Stone",[qo]:"Other",[zo]:"Outdoor Rugs",[Go]:"Paint",[wo]:"Carpet",[Bo]:"product_subtype.solid_surface",[Fo]:"Stainless Steel",[xo]:"product_subtype.tile",[Do]:"product_subtype.vinyl",[Vo]:"Wallpaper",[jo]:"Flat Panel Cabinet",[Zo]:"Shaker Cabinet",[Xo]:"Inset Cabinet",[Jo]:"Thermofoil Cabinet",[Qo]:"Glass Cabinet",[er]:"Wall Art",[tr]:"Murals and Decals",[or]:"Wall Mirrors",[rr]:"Posters and Prints",[nr]:"Signs",[sr]:"Wall Clocks",[ir]:"Wall Shelves",[ar]:"Wall Sconces",[cr]:"Stain",[lr]:"Paver",[dr]:"Decking",[pr]:"Resin",[ur]:"Outdoor Carpet",[_r]:"Gravel",[mr]:"Artificial Grass",[Tr]:"Rubber",[Pr]:"Tarmac",[Er]:"Tables",[hr]:"Changing Tables",[Rr]:"Coffee Tables",[fr]:"Console Tables",[Or]:"Desks",[Cr]:"Dining Tables",[gr]:"Meeting Tables",[Ur]:"Side Tables",[Sr]:"Seating",[Ir]:"Beds",[yr]:"Cribs",[Ar]:"Benches",[xr]:"Chairs",[Dr]:"Armchairs",[Lr]:"Desk Chairs",[wr]:"Dining Chairs",[vr]:"Ottomans",[br]:"Sofas",[Nr]:"Stools",[Br]:"Storage",[Yr]:"Cabinets",[Mr]:"Corner Cabinets",[Fr]:"Dressers",[kr]:"Island Cabinets",[Gr]:"Kitchen Cabinets",[Vr]:"Nightstands",[Hr]:"Sideboards",[Wr]:"Vanities",[$r]:"Wall Cabinets",[zr]:"Shelves",[Kr]:"Shoe Storage",[qr]:"TV Stands",[jr]:"Wardrobes",[Zr]:"Lighting",[Xr]:"Ceiling Fans",[Jr]:"Lamps",[Qr]:"Ceiling Lamps",[en]:"Floor Lamps",[tn]:"Table Lamps",[on]:"Wall Lamps",[rn]:"Appliances",[nn]:"Dishwashers",[sn]:"Dryers",[an]:"Microwaves",[cn]:"Ranges",[ln]:"Range Hoods",[dn]:"Refrigerators",[pn]:"Washing Machines",[un]:"Fenestrations",[_n]:"Doors",[mn]:"Windows",[Tn]:"Decors",[Pn]:"Mirrors",[En]:"Furniture",[hn]:"Foot Rests",[Rn]:"Poufs",[fn]:"Foot Stools",[On]:"Futons",[Cn]:"Love Seats",[gn]:"Sectionals",[Un]:"Daybeds",[Sn]:"Room Dividers",[In]:"Medicine Cabinets",[yn]:"File Cabinets",[An]:"Standing Shelves",[xn]:"Shoe Racks",[Dn]:"Kitchen Carts",[Ln]:"Chandeliers",[wn]:"Recessed Lighting",[vn]:"Freezers",[bn]:"Beverage Chillers",[Nn]:"Cooking Appliances",[Bn]:"Cooktops",[Yn]:"Wall Ovens",[Mn]:"Grills",[Fn]:"Ice Makers",[kn]:"Small Appliances",[Gn]:"Garage Doors",[Vn]:"Skylights",[Hn]:"Window Treatments",[Wn]:"Blinds",[$n]:"Shades",[zn]:"Shutters",[Kn]:"Curtains",[qn]:"Wall Decor",[jn]:"Floor Mirrors",[Zn]:"Staircases",[Xn]:"Roofing",[Jn]:"Ceiling Coverings",[Qn]:"Ceiling Tiles",[es]:"Ceiling Planks",[ts]:"Trims",[os]:"Baseboards",[rs]:"Mouldings",[ns]:"Casings",[ss]:"Plumbing Fixtures",[is]:"Tubs",[as]:"Showers",[cs]:"Toilets",[ls]:"Bidets",[ds]:"Faucets",[ps]:"Shower Heads",[us]:"Shower Curtains",[zs]:"Shower Stalls",[_s]:"Sinks",[ms]:"Sink Basins",[$s]:"Pedestal Sinks",[Ts]:"Fireplaces",[Ps]:"Outdoor Structures",[Es]:"Tents",[hs]:"Fences",[Rs]:"Greenhouses",[fs]:"Pools",[Os]:"Gazebos",[Ks]:"Hot Tubs",[Cs]:"Landscaping",[gs]:"Gardens",[Us]:"Trees",[Ss]:"Bushes",[Is]:"Hedges",[ys]:"Chaise Lounges",[As]:"Lounge Chairs",[xs]:"Bunk Beds",[Ds]:"Loft Beds",[Ls]:"Sofa Beds",[ws]:"Pendant Lights",[vs]:"Floors",[bs]:"Countertops",[Ns]:"Walls",[Bs]:"Rugs",[Ys]:"Furniture Coatings",[Ms]:"Radiators",[Fs]:"Gutters",[ks]:"Fascia",[Gs]:"Track Lights",[Vs]:"Flush Mount Lights",[Hs]:"Sheds",[Ws]:"Storage Chests"};var di=0,pi=1,ui=2,_i=3,Aa={[di]:"Warm White",[pi]:"Soft White",[ui]:"Daylight",[_i]:"Crystal White"},z="en-us";var ee=(e,t,o=!1)=>{let r=e.getLocale();if(r in e._localizedStrings&&t in e._localizedStrings[r])return e._localizedStrings[r][t];let n=Object.keys(e._localizedStrings),s=a=>a.split("-")[0],i=n.map(s).indexOf(s(r));if(i!==-1){let a=e._localizedStrings[n[i]]?.[t];if(a)return a}return o?"":t in e._localizedStrings[z]?e._localizedStrings[z][t]:t},te=e=>{let t=Object.assign({},Qe),o=e.getLocalizedStringOverrides();for(let[r,n]of Object.entries(o))r===z?Object.assign(t[z],n):t[r]=n;return e._localizedStrings=t,null};var oe=class extends HTMLElement{constructor(){super(),this.attachShadow({mode:"open"}),this.cssRules=Et,this.shouldHide=void 0,this.styleNode=void 0,this.contentNode=void 0,this.logoNode=void 0,this.src=void 0,this.textNode=void 0,this.text=void 0,this.color=void 0}applyCssRules(){this.styleNode||(this.styleNode=document.createElement("style")),this.styleNode.textContent=this.cssRules,this.shadowRoot.appendChild(this.styleNode)}addCssRules(t){this.cssRules+=xe(t).join(` `)}connectedCallback(){this.isConnected&&(this.color=this.getAttribute("color"),this.src=this.getAttribute("src"),this.text=this.getAttribute("text"),this.shouldHide=this.getAttribute("hide"),this.create(),this.applyCssRules(),this.updateDisplay(!0))}static get observedAttributes(){return["color","hide","src","text"]}attributeChangedCallback(t,o,r){if(this.isConnected)switch(t){case"color":this.color=r,this.updateLoaderColor();break;case"hide":this.shouldHide=r,this.updateDisplay();break;case"src":this.src=r,this.updateOrInsertLogo();break;case"text":this.text=r,this.updateOrInsertText();break}}updateDisplay(t){let o=this.shadowRoot?.firstChild;if(o)if(this.shouldHide!==null){if(!t){let r=n=>{n.target.classList.contains("roomvo-launch-sequence--hide")&&(o.style.display="none",this.shadowRoot.removeEventListener("transitionend",r))};this.shadowRoot.addEventListener("transitionend",r)}o.classList.add("roomvo-launch-sequence--hide")}else o.style.display="grid",window.requestAnimationFrame(()=>o.classList.remove("roomvo-launch-sequence--hide"))}create(){let t=this.createModal();t.append(this.createContent()),t.append(this.createRoomvoBranding());let o=this.createContainer();return o.append(t),this.shadowRoot.append(o),o}createModal(){let t=document.createElement("div");t.classList.add("roomvo-launch-sequence__modal");let o=[[`.${t.className}`,["width","80%"],["max-width","640px"],["border-radius","16px"],["background-color","white"],["box-shadow","0px 40px 40px rgba(57, 59, 68, 0.20)"],["opacity","1"],["transform","translateY(0%)"],["transition","all 0.25s cubic-bezier(0,0.25,0.29,1) 1s"],["transition-delay","0.25s"]],[`.roomvo-launch-sequence--hide .${t.className}`,["transform","translateY(5%)"],["opacity","0"],["transition-delay","0s"]]];return this.addCssRules(o),t}createContent(){this.contentNode=document.createElement("div"),this.contentNode.classList.add("roomvo-launch-sequence__content");let t=[[`.${this.contentNode.className}`,[["display","grid"],["place-items","center"],["gap","32px"],["grid-gap","32px"],["max-width","80%"],["margin-left","auto"],["margin-right","auto"]]]];this.addCssRules(t);let o=window.matchMedia("(min-width: 600px)");ut(o,s=>{this.contentNode.style.setProperty("padding",s.matches?"12.5vh 0":"7.5vh 0","important")}),this.logoNode=this.createLogo(),this.logoNode&&this.contentNode.append(this.logoNode),this.textNode=this.createText(),this.textNode&&this.contentNode.append(this.textNode);let n=this.createLoader();return n&&this.contentNode.append(n),this.contentNode}createLogo(){if(!this.src)return null;let t=document.createElement("div");t.style.setProperty("max-width","70%");let o=document.createElement("img");return o.src=this.src,o.alt="",o.style.setProperty("opacity","0"),o.onload=()=>o.style.opacity="1",o.style.setProperty("transition","opacity 0.2s ease-in"),o.style.setProperty("object-fit","contain"),o.style.setProperty("height","175px"),o.style.setProperty("width","100%"),t.append(o),t}updateOrInsertLogo(){this.logoNode&&this.src?this.logoNode.firstChild.src=this.src:this.logoNode?(this.logoNode.remove(),this.logoNode=null):this.src&&(this.logoNode=this.createLogo(),this.contentNode.prepend(this.logoNode))}createText(){if(!this.text)return null;let t=document.createElement("p");return t.append(this.text),t.style.setProperty("font","normal normal normal 16px/24px Sans-Serif"),t.style.setProperty("color","#373C40"),t.style.setProperty("text-align","center"),t.style.setProperty("margin","0"),t}updateOrInsertText(){this.textNode&&this.text?this.textNode.innerText=this.text:this.textNode?(this.textNode.remove(),this.textNode=null):this.text&&(this.textNode=this.createText(),this.logoNode?this.logoNode.insertAdjacentElement("afterend",this.textNode):this.contentNode.prepend(this.textNode))}createLoader(){let t=document.createElement("div");t.classList.add("roomvo-launch-sequence__loader-cubes");let o=[[`.${t.className}`,["position","relative"],["min-width","96px"],["min-height","48px"],["padding-top","24px"]]];return this.addCssRules(o),t.insertAdjacentHTML("afterbegin",st),this.colorLoader(),this.animateLoader(t.className),t}colorLoader(){let t=this.color??"#818C98",o=Pt.bind(null,t),r=Tt.bind(null,t),[n,s,i,a]=[r(10),o(10),o(42),o(30)],c=[["path.cube__top",["fill",n]],["path.cube__left-side",["fill",s]],["path.cube__shadow",["fill",i]],["path.cube__right-side",["fill",a]]];this.addCssRules(c)}updateLoaderColor(){this.cssRules.replaceAll(/path\.cube.*?}/gs,""),this.colorLoader(),this.applyCssRules()}animateLoader(t){let o=[[`.${t}>.loader-cubes__cube`,["position","absolute"]],[["loader-cubes__four","loader-cubes__one","loader-cubes__three","loader-cubes__two"].map(r=>`.${t}>.${r}`).join(","),["animation-duration",".85s"],["animation-iteration-count","infinite"],["animation-timing-function","ease-in-out"]],[`.${t}>.loader-cubes__one`,["transform","translate(-36%,-16%)"],["animation-name","loader-cubes__one"]],[`.${t}>.loader-cubes__two`,["transform","translate(-10%,0)"],["animation-name","loader-cubes__two"]],[`.${t}>.loader-cubes__three`,["transform","translate(16%,-16%)"],["animation-name","loader-cubes__three"]],[`.${t}>.loader-cubes__four`,["transform","translate(42%,0)"],["animation-name","loader-cubes__four"]]];this.addCssRules(o),[`@keyframes loader-cubes__one { 0% { transform: translate(-36%, -16%); } 50% { transform: translate(-10%, -32%); } 100% { transform: translate(16%, -16%); } } `,`@keyframes loader-cubes__two { 0%, 50% { transform: translate(-10%, 0); } 100% { transform: translate(-36%, -16%); } } `,`@keyframes loader-cubes__three { 0%, 50% { transform: translate(16%, -16%); } 100% { transform: translate(42%, 0); } } `,`@keyframes loader-cubes__four { 0% { transform: translate(42%, 0); } 50% { transform: translate(16%, 16%); } 100% { transform: translate(-10%, 0); } } `].forEach(r=>this.cssRules+=r)}createRoomvoBranding(){let t=document.createElement("p");t.style.setProperty("font","normal normal normal 14px/20px Sans-Serif"),t.style.setProperty("text-align","center"),t.style.setProperty("color","#818C98"),t.style.setProperty("margin-bottom","4.8px"),t.innerText="Powered by ";let o=document.createElement("strong");return o.style.setProperty("font-weight","500"),o.style.setProperty("color","#FF3D00"),o.innerText="roomvo",t.append(o),t}createContainer(){let t=document.createElement("div");t.classList.add("roomvo-launch-sequence__container");let o=[[`.${t.className}`,["position","fixed"],["top","0"],["left","0"],["backdrop-filter","blur(8px)"],["height","100%"],["width","100%"],["background-color","rgba(255,255,255,0.7)"],["z-index","2147483647"],["place-items","center"],["display","grid"],["opacity","1"],["transition","opacity 0.5s"],["transition-delay","0s"]],[`.${t.className}.roomvo-launch-sequence--hide`,["opacity","0"],["transition-delay","1s"]]];return this.addCssRules(o),t}},ft=e=>{let t=document.getElementById(W)||Ei(e);t.hasAttribute("hide")&&window.requestAnimationFrame(()=>t.removeAttribute("hide")),t.dataset?.closingTimerId||(t.dataset.closingTimerId=setTimeout(De,e.launchSequenceTimeoutDuration,e)),t.dataset.startTime=Date.now()},mi=()=>{let e=document.getElementById(W);e&&(e.setAttribute("hide",""),e.dataset?.closingTimerId!=="null"&&(clearTimeout(e.dataset.closingTimerId),delete e.dataset.closingTimerId))},re=e=>{e.classList.contains("roomvo-popup--loading")&&(e.classList.remove("roomvo-popup--loading"),e.ariaHidden=!1,window.requestAnimationFrame(()=>{e.classList.add("roomvo-popup--show")}))},De=e=>{let t=document.getElementById(f);t.addEventListener("transitionend",mi,{once:!0}),Pi(e)?setTimeout(()=>re(t),Ti()):re(t)},Ti=(e=1500)=>{let t=Number(document.getElementById(W).dataset?.startTime)||0;return Math.max(t+e-Date.now(),0)},Pi=(e,t=1)=>{let o=!O(e,"check",{cookieName:ge}),r=new Date;r.setTime(r.getTime()+t*60*60*1e3);let n=r.toUTCString();return O(e,"write",{cookieName:ge,cookieValue:"",config:{cookieExpiration:n}}),o},Ei=e=>{window.customElements.get("launch-sequence")===void 0&&window.customElements.define("launch-sequence",e.getLaunchSequenceClass());let t=document.createElement("launch-sequence");return t.id=W,t.setAttribute("src",e.vendorLogoUrl),t.setAttribute("text",hi(e)),t.setAttribute("color",e.launchSequenceLoaderBaseColor),t.setAttribute("hide",""),document.body.append(t),t},hi=e=>(te(e),ee(e,"Loading...",!0));var Ri=50,fi=4e3,k=async(e,t,o)=>{if(!t)return Promise.resolve();if(e.queuedProductCodeRequests??={},e.productCodeMap?.[t])try{return e.productCodeMap[t].length>0&&await o?.(),Promise.resolve()}catch(r){return Promise.reject(r)}return new Promise((r,n)=>{e.queuedProductCodeRequests[t]??=[],e.queuedProductCodeRequests[t].push({callback:o,resolve:r,reject:n}),e.debouncedFetchProductCodeMappings??=M(Oi,Ri,!1),e.debouncedFetchProductCodeMappings(e)})},Oi=async e=>{let t=e.queuedProductCodeRequests||{};e.queuedProductCodeRequests={};let o=Object.keys(t);if(o.length===0)return;let r=0,n=[];n[r]=[];for(let c of o){let u=[...n[r],c];encodeURIComponent(v(u)).length>fi?n[++r]=[c]:n[r].push(c)}let s=`?vendor=${await e.getVendorId()}`,i=e.hasDesignerProducts?"&has_designer_products=1":"",a=e.shouldIncludeUpstreamProductMappings()?"&include_upstream_product_mappings=1":"";for(let c=0;c<=r;++c){let u="&product_code__in="+encodeURIComponent(v(n[c])),_=e.serverUrl+"/services/product/product_mappings/"+s+u+i+a;try{let P=await fetch(_);if(!P.ok)throw new Error(`Network response was not ok. Status: ${P.status}`);let U=await P.json();for(let d of U)e.productCodeMap[d.productCode]??=[],e.productCodeMap[d.productCode].push(d);for(let d of n[c]){e.productCodeMap[d]??=[];let p=e.productCodeMap[d].length>0,l=t[d]||[];await Promise.allSettled(l.map(async I=>{try{p&&await I.callback?.(),I.resolve?.()}catch(N){I.reject?.(N)}}))}}catch(P){m(e,`Failed to fetch product mappings for product codes ${n[c]}: ${P}`);for(let U of n[c])(t[U]||[]).forEach(p=>p.reject?.(P))}}},Ot=(e,t,o)=>{let r=e?.productCodeMap?.[t];if(!r?.length)return;let n=[],s=[];for(let i of r)i.product&&(i.productType===o?n.push(i.product):s.push(i.product));return[...n,...s].join(",")};var S=e=>["number","string"].includes(typeof e)?!isNaN(e)&&Number.isInteger(parseFloat(e))?e in Z?parseInt(e):C:parseInt(Object.keys(Z).find(o=>Z[o]===e))||C:C;var g=e=>{try{if(!e||!(e instanceof Element))return"[invalid element]";let t=[],o=e.tagName?e.tagName.toLowerCase():"unknown";return t.push(o),e.id?.trim()&&t.push(`#${e.id.trim()}`),e.className&&typeof e.className=="string"&&e.className.trim()&&t.push(`.${e.className.trim().replace(/\s+/g,".")}`),t.join("")||"[empty element]"}catch{return"[error getting element info]"}},Ct=e=>{if(!e)return"[no elements]";try{let t=Array.isArray(e)?e:Array.from(e||[]);return t.length?t.map(o=>g(o)).join(", "):"[empty list]"}catch{return"[error processing elements]"}};var ne={LEFT:"left",RIGHT:"right"},Ci=(e=f)=>{if(!document.getElementById(e)){let t=document.createElement("iframe");pt(t),t.style.setProperty("display","none","important"),t.style.setProperty("position","fixed","important"),t.style.setProperty("top","0","important"),t.style.setProperty("left","0","important"),t.style.setProperty("width","100%"),t.style.setProperty("height","100%"),t.style.setProperty("z-index","2147483647","important"),t.style.setProperty("border","none","important"),t.id=e,t.type="text/html",t.allow="clipboard-write;xr-spatial-tracking;fullscreen";let o="Roomvo Visualizer, Powered by Roomvo";t.title=o,t.ariaLabel=o,t.tabIndex="-1",document.body.appendChild(t)}},Ut=e=>{if(e.style.setProperty("background-color",""),e.style.setProperty("box-shadow",""),e.style.setProperty("transform",""),e.style.setProperty("transition",""),e.style.setProperty("transition-delay",""),e.style.setProperty("transition-duration",""),e.style.setProperty("transition-property",""),e.style.setProperty("transition-timing-function",""),document.head.dataset?.popupStylized!=="true"){let t=[[`#${e.id}`,["background-color","white",!0],["box-shadow","0px 0px 120px rgba(57, 59, 68, 0.30)",!0],["transition","transform .75s cubic-bezier(0.95, 0, 1, 0.94)"],["transform","translateY(110%)"]],[`#${e.id}.roomvo-popup--show`,["transform","translateY(0%) translateX(0%)",!0],["transition-timing-function","cubic-bezier(0,.25,.29,1)",!0]],[`#${e.id}.roomvo-popup--loading`,["width","1px",!0],["height","1px",!0]]];Ae(t),document.head.dataset.popupStylized="true"}e.classList.add("roomvo-popup--loading"),e.ariaHidden=!0},gi=(e,t=ne.RIGHT)=>{if(Ut(e),e.style.setProperty("right",""),e.style.setProperty("left",""),document.head.dataset?.isDrawerPopupStylized!=="true"){let o=[[`#${f}.roomvo-drawer.roomvo-drawer--${ne.RIGHT}`,["transform","translateX(110%)"],["right","0"]],[`#${f}.roomvo-drawer.roomvo-drawer--${ne.LEFT}`,["transform","translateX(-110%)"],["left","0"]]],r=Ae(o);document.head.dataset.isDrawerPopupStylized="true",r.insertRule(`@media (min-width: 600px) { #${f}.roomvo-drawer { width: 500px !important; } }`)}e.classList.add("roomvo-drawer",`roomvo-drawer--${t}`)},Ui=(e,t)=>{t?.addEventListener("load",()=>De(e),{once:!0})},St=(e=f)=>{let t=document.getElementById(e);t&&t.classList.contains("roomvo-popup--show")?(t.addEventListener("transitionend",()=>t.parentNode.removeChild(t)),t.classList.remove("roomvo-popup--show")):t&&t.parentNode&&t.parentNode.removeChild(t),setTimeout(Lt,10)},It=e=>{let t=document.getElementById(e);return t&&t.dataset.previousBodyStyleOverflow},Le=(e,t)=>{let o=document.getElementById(e);return o&&o.dataset[t]},yt=e=>{try{let t=window.getComputedStyle(document.body).getPropertyValue("overflow");t!=="hidden"&&(e.dataset.previousBodyStyleOverflow=t,document.body.style.overflow="hidden")}catch{}},gt=(e,t,o)=>{try{let r=window.getComputedStyle(e).getPropertyValue("overscroll-behavior");["contain","none"].includes(r)||(t.dataset[o]=r,e.style.overscrollBehavior="contain")}catch{}},L=e=>e?e&&e.src&&e.contentWindow:!1,At=(e,t,o="",r=f,n=!0)=>{if(e.isWebGlNeeded()&&!ct())return alert("Your browser or device does not support WebGL. Please try a different browser or device."),null;if(t=new URL(t),t.pathname+=t.pathname.endsWith("/")?"":"/",window.location.href=="about:srcdoc")return t.searchParams.delete("visitor_id"),window.open(t.href),null;t.searchParams.set("domain",y.getTopLevelHostname()),t.searchParams.set("is_in_top_window",0),t.searchParams.set("version","1"),n&&e.shouldPadHistory()&&!(window.history.state&&window.history.state.roomvoPopupUrl)&&(t.searchParams.set("use_history_padding",0),window.history.pushState({roomvoPopupUrl:t.href,integratorVendorUrlPath:e.getVendorUrlPath(),loadPopupFunctionName:o},"")),Ci(r);let s=document.getElementById(r);return s&&s.parentNode==document.body&&document.body.removeChild(s),s.style.display="block",{popup:s,popupUrl:t}},G=(e,t)=>{let{popup:o,popupUrl:r}=At(e,t,"loadPopupWithUrl");o&&(e.shouldShowLaunchSequence?(Ut(o),ft(e),Ui(e,o)):o.style.background=`white url("${e.serverUrl}/static/images/loading.gif") no-repeat center`,o.src=r.href,o.dataset.openerVendorUrlPath=e.getVendorUrlPath(),document.body.appendChild(o),yt(o),gt(document.body,o,"previousBodyOverscrollBehavior"),gt(document.documentElement,o,"previousRootOverscrollBehavior"),setTimeout(ve,10,f))},xt=(e,t,o=ne.RIGHT)=>{let{popup:r,popupUrl:n}=At(e,t,"loadDrawerPopupWithUrl");r&&(gi(r,o),r.addEventListener("load",s=>re(s.target),{once:!0}),r.src=n.href,r.dataset.openerVendorUrlPath=e.getVendorUrlPath(),document.body.appendChild(r),yt(r),setTimeout(ve,10,f))};var Si=()=>ke(A(),"originator")??"";var we=async(e,t,o,r,n,s)=>{(r===void 0||r==="")&&(r="/"),n===void 0&&(n=""),s==null&&(s="");let i=await e.getVisitorId({vendorUrlPath:t}),a=e.serverUrl+"/my/"+t+r+"?visitor_id="+encodeURIComponent(i)+"&tracking_code="+encodeURIComponent(F(e))+"&locale="+encodeURIComponent(e.getLocale())+"&prefilter="+encodeURIComponent(e.prefilter)+n+"&iframe_id="+f+"&originator="+encodeURIComponent(Si());e.agreedTermsOfUse&&(a+="&agreed_terms_of_use=1");let c=Ot(e,o,s);c?a+="&product_ids="+encodeURIComponent(c):a+="&product_code="+encodeURIComponent(o)+"&product_type="+encodeURIComponent(s),G(e,a),e.trackActionInHostAnalytics("see this in my room",o)},b=async(e,t,o,r,n,s)=>{try{s=s||e.getProductCode(t)}catch{s=""}await we(e,e.getVendorUrlPathForStimr(),s,o,r,n)},K=(e,t)=>(o,r)=>{e&&!e.endsWith("/")&&(e+="/");let n=o.getVendorUrlPath(),s=Object.entries(r).filter(a=>a[1]&&t.includes(a[0])),i=new URLSearchParams(s);return i.set("version","1"),i.sort(),`${o.serverUrl}/my/${n}/${e}?${i.toString()}`},Ii=["domain","iframe_id","is_in_top_window","locale","tracking_code","visitor_id"],ic=K("store_locator",Ii),se=["add_first_product_to_cart","agreed_terms_of_use","domain","iframe_id","is_in_top_window","locale","prefilter","product_code","product_id","product_ids","product_type","tracking_code","use_interim_products","is_using_interim_products","visitor_id","is_standalone_shopping_cart"],ac=K("",se),cc=K("shopping_cart",se),lc=K("surface_designer",se);var yi=["is_dealer","pro","is_embedded_in_site","show_request_estimate_form"].concat(se),dc=K("catalog/list",yi);var Dt=async(e,t,o)=>{let r=e.getVendorUrlPath(),n=await e.getVisitorId({vendorUrlPath:r}),s="/catalog";t=Ai(t,o);let i=e.serverUrl+"/my/"+r+s+"?visitor_id="+encodeURIComponent(n)+"&tracking_code="+encodeURIComponent(F(e))+"&locale="+encodeURIComponent(e.getLocale())+t+"&iframe_id="+f;o&&(i+="&product_id="+o),G(e,i)},Ai=(e="",t,o=null)=>{e=e||"";let r=o?.productType,n=o?.prefilter,s=new URLSearchParams(e);if(r){let a=S(r);a!==C&&s.set("product_type",a)}n&&s.set("prefilter",n),e=s.toString(),e=e?"&"+e:"";let i=new URL(A().href).searchParams;if(!t){if(!e.includes("product_type")&&i.get("product_type")){let a=S(i.get("product_type"));a!==C&&(e+=`&product_type=${a}`)}!e.includes("product_code")&&i.get("sku")&&(e+=`&product_code=${encodeURIComponent(i.get("sku"))}`),!e.includes("supplier_url_path")&&i.get("supplier")&&e.includes("product_code")&&(e+=`&supplier_url_path=${i.get("supplier")}`)}return!e.includes("prefilter")&&i.get("prefilter")&&(e+=`&prefilter=${encodeURIComponent(i.get("prefilter"))}`),!e.includes("page")&&i.get("page")&&(e+=`&page=${encodeURIComponent(i.get("page"))}`),e};var ve=(e,t=2147483647)=>{let o=Array.from(document.querySelectorAll("*")).filter(function(r){return window.getComputedStyle(r).getPropertyValue("z-index")==t});for(let r=0;r{let t=Array.from(document.querySelectorAll("*")).filter(function(o){return o.dataset.trampled=="1"});for(let o=0;o{if(e.productCodeMap&&t in e.productCodeMap&&e.productCodeMap[t].length!==0)if(o){for(let r=0;r{let n=window.matchMedia("(max-width: 768px)");r=r||"";let s=await e.getVisitorId({vendorUrlPath:t}),i=new URL(e.serverUrl+"/my/"+t+"/products/"+o+"/3d/");i.searchParams.set("visitor_id",s),i.searchParams.set("locale",e.getLocale()),i.searchParams.set("iframe_id",Y),i.searchParams.set("domain",y.getTopLevelHostname()),i.searchParams.set("is_in_top_window",0),i.searchParams.set("version","1");let a=document.createElement("iframe"),c="View in 3D, Powered by Roomvo";a.title=c,a.ariaLabel=c,a.id=Y,a.src=i.href+r,a.style.display="block",a.style.position="fixed",a.style.backgroundColor="#FFFFFF",a.style.width=n.matches?"100%":"90%",a.style.height=n.matches?"100%":"90%",a.style.margin=n.matches?"auto":"auto 5%",a.style.border="none",a.style.top="0px",a.style.right="0px",a.style.bottom="0px",a.style.left="0px",a.style.boxShadow="0px 0px 10px #999999",a.style.setProperty("z-index","2147483647","important"),a.onload=()=>{let u=document.getElementById(Y);if(u){let _=document.activeElement;_&&_!==document.body&&(window._roomvo.previouslyFocusedElement=_),u.focus(),u.contentWindow.focus()}},document.body.appendChild(a),setTimeout(ve,10,Y)},vt=()=>{let e=document.getElementById(Y);e&&e.parentNode&&e.parentNode.removeChild(e),setTimeout(Lt,10),window._roomvo.previouslyFocusedElement&&(window._roomvo.previouslyFocusedElement.focus(),delete window._roomvo.previouslyFocusedElement)};var ae=e=>String(e).normalize("NFKD").replace(/[\u0300-\u036f]/g,"").trim().toLowerCase().replace(/[^a-z0-9 -]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-");var be=(e,t,o,r=null,n=null)=>{let s=new URL(e),i=o?.length===1?o[0]:null;return s.pathname=Di(s.pathname,t,i,r,n),s.searchParams.set("product_type",t),i&&s.searchParams.set("product_subtype",i),r?s.searchParams.set("product_id",r):s.searchParams.delete("product_id"),s};var Di=(e,t,o=null,r=null,n=null)=>(e=e.split("/catalog")[0].replace(/\/$/,""),n=r&&n?ae(n)+"--"+r:"",e=[e,"catalog",Li(t),wi(o),n].filter(Boolean).join("/"),e.endsWith("/")||(e+="/"),e),Li=e=>{let t=ht[e];return e===7&&(t="Wall Decor"),t=ae(t),t},wi=e=>{if(!e)return"";let t=Rt[e];return t?(t=ae(t.replace("product_subtype.","").replaceAll("_"," ")).toLowerCase(),t):""};var vi=(e,t)=>{for(let o in t)o in e||(at(r=>{!r||!r.data||!r.data.action||r.data.action===o&&t[o](r)}),e[o]=t[o])},Yt=e=>{e.onKeydownInWindow||(window.addEventListener("keydown",bt),e.onKeydownInWindow=bt),e.handleHostNavigation||(window.addEventListener("popstate",Bt),e.handleHostNavigation=Bt);let t={[h.SAVE_VISITOR]:bi,[h.ADD_TO_CART]:Ni,[h.TRACK]:Bi,[h.FOCUS_POPUP]:Nt,[h.FOCUS_IFRAME]:Nt,[h.CLOSE_PRODUCT_DISPLAY]:vt,[h.LOAD_POPUP_FROM_PRODUCT_DISPLAY]:Yi,[h.AGREE_TO_TERMS_OF_USE]:Fi,[h.OPEN_PRODUCT_VISUALIZER]:ki,[h.RESIZE_CATALOG]:Gi,[h.OPEN_PRODUCT_PAGE]:Vi,[h.OPEN_CATALOG]:Wi,[h.SCROLL_TOP_OF_IFRAME_INTO_VIEW]:$i,[h.REQUEST_ESTIMATE]:zi,[h.UPDATE_PRODUCT_FILTER]:Hi,[h.DOWNLOAD_VISUALIZED_ROOM_IMAGE]:Ki};vi(e,t)},bt=e=>{let t=document.getElementById(f);if(e.key==="Tab"&&t&&t.style.display!=="none"&&document.activeElement!=t){let o={action:h.FOCUS_IFRAME};window.postMessage(o,"*")}},bi=e=>{let t=R(e.data.integratorVendorUrlPath);t.setVisitorId(e.data.vendorUrlPath,e.data.visitorId,{overwriteExisting:!0}),t.setVendorId(e.data.vendorUrlPath,e.data.vendorId,{overwriteExisting:!0})},Ni=e=>{R(e.data.integratorVendorUrlPath).addToCart(e.data.customData,e.data.eventExtra)},Bi=e=>{R(e.data.integratorVendorUrlPath).trackActionInHostAnalytics(e.data.eventAction,e.data.eventLabel,e.data.eventExtra)},Nt=e=>{let t=document.getElementById(f);t&&t.focus()},Yi=e=>{let t=R(e.data.integratorVendorUrlPath);we(t,e.data.vendorUrlPath,e.data.vendorCode,"","",e.data.productType)},Bt=()=>{let{roomvoPopupUrl:e,integratorVendorUrlPath:t,loadPopupFunctionName:o}=window.history.state||{};if(e&&t&&o){let r=R(t),n=r.popupLoaders[o];n&&n(r,e)}else{let r=Mi(),n=It(r);n&&(document.body.style.overflow=n);let s=Le(r,"previousBodyOverscrollBehavior");s&&(document.body.style.overscrollBehavior=s);let i=Le(r,"previousRootOverscrollBehavior");i&&(document.documentElement.style.overscrollBehavior=i),St(r)}},Mi=()=>{for(let e of Je)if(document.getElementById(e)&&document.body.contains(document.getElementById(e)))return e;return f},Fi=()=>{let e=R(event.data.integratorVendorUrlPath);O(e,"write",{cookieName:j,cookieValue:!0}),e.agreedTermsOfUse=!0},ki=async e=>{let t=e.data.filters?JSON.stringify(e.data.filters):"",o=e.data.integratorVendorUrlPath,r=R(o),n=await r.getVisitorId({vendorUrlPath:o}),s=new URL(`${r.serverUrl}/my/${o}`);s.searchParams.set("visitor_id",n),s.searchParams.set("locale",r.getLocale()),s.searchParams.set("product_id",e.data.productId),s.searchParams.set("iframe_id",B),s.searchParams.set("raw_prefilter",t),r.toString()==="[object AssistantIntegrator]"&&s.searchParams.set("is_dealer","1"),G(r,s.href)},Gi=e=>{document.getElementById(D).style.setProperty("min-height",`${e.data.height}px`,"important");let t=R(e.data.integratorVendorUrlPath);e.data.isProductListOpen&&t._catalogScrollPosition&&(t._debouncedScroll||(t._debouncedScroll=M(()=>{let[o,r]=t._catalogScrollPosition;document.documentElement.scrollHeight{if(L(document.getElementById(D))&&!L(document.getElementById(B))){let t=R(e.data.integratorVendorUrlPath);t._shouldRecordProductListScrollPosition&&(t._catalogScrollPosition=[window.pageYOffset,document.documentElement.scrollHeight]),document.getElementById("catalog").scrollIntoView(!0),t._shouldRecordProductListScrollPosition=!1;let o=new URL(window.location.href);o.searchParams.set("product_id",e.data.productId);let r=o.href!==window.location.href;window.history.replaceState(window.history.state,"",o.href),r&&t.trackPageView();let{productName:n,productId:s,productSubtype:i,productType:a,hasHumanReadableUrls:c}=e.data;if(c){let u=be(window.location.href,a,[i],s,n);window.history.replaceState(window.history.state,"",u.href)}}},Hi=e=>{if(L(document.getElementById(D))&&!L(document.getElementById(B))){let{productType:t,productSubtypes:o,hasHumanReadableUrls:r}=e.data;if(r){let n=be(window.location.href,t,o);window.history.replaceState(window.history.state,"",n.href)}}},Wi=e=>{if(L(document.getElementById(D))&&!L(document.getElementById(B))){let t=R(e.data.integratorVendorUrlPath);t._shouldRecordProductListScrollPosition=!0;let o=new URL(window.location.href);o.searchParams.delete("product_id");let r=o.href!==window.location.href;window.history.replaceState(window.history.state,"",o.href),r&&t.trackPageView()}},$i=e=>{let t=e.data.iframeId;document.getElementById(t)?.scrollIntoView(!0)},zi=e=>{L(document.getElementById(D))&&e.data.yOffset&&window.scrollBy({top:document.getElementById(D)?.getBoundingClientRect().top+e.data.yOffset,behavior:"smooth"})},Ki=e=>{let t=document.createElement("a");t.download=e.data.fileName,t.href=e.data.href,t.style.display="none",document.body.appendChild(t),t.dispatchEvent(new MouseEvent("click",{bubbles:!1})),document.body.removeChild(t)};var le=class{constructor(){this.serverUrl="https://www.roomvo.com",this.visitorIds={},this.vendorUrlPath=void 0,this.vendorIds={},this.productCodeMap={},this.productShareLinkMap={},this.queuedProductCodeRequests={},this.queuedProductCodeRequestObjs=[],this.hasDesignerProducts=!1,this._registeredModules=new Set,this.prefilter="",this.log="",this.popupLoaders={loadDrawerPopupWithUrl:xt,loadPopupWithUrl:G},this.trackPageViewDelay=5*1e3,this.standaloneAutolauncherConfigs=[{urlRegexObj:/\/roomvo\/?$/i,autolaunchConfirmationUrlParameter:"roomvoAutoStart",productCodeUrlParameter:"sku",supplierUrlPathParameter:null,vendorSlugUrlParameter:"vendor_slug",productTypeUrlParameter:"product_type",prefilterUrlParameter:"prefilter",perProductTypePrefilterUrlParameter:"per_product_type_prefilter",roomIdUrlParameter:"room_id",standaloneFnName:"startStandaloneVisualizer",requireConfirmation:!1},{urlRegexObj:/\/roomvo-catalog\/?$/i,autolaunchConfirmationUrlParameter:"roomvoAutoStart",productCodeUrlParameter:"sku",supplierUrlPathParameter:null,vendorSlugUrlParameter:"vendor_slug",productTypeUrlParameter:"product_type",prefilterUrlParameter:"prefilter",standaloneFnName:"startProductCatalog",requireConfirmation:!1},{urlRegexObj:/\/roomvo-surface-designer\/?$/i,autolaunchConfirmationUrlParameter:"roomvoAutoStart",productCodeUrlParameter:"sku",supplierUrlPathParameter:null,vendorSlugUrlParameter:"vendor_slug",productTypeUrlParameter:"product_type",standaloneFnName:"startStandaloneSurfaceDesigner",requireConfirmation:!1},{urlRegexObj:/.*/i,requiredUrlParameters:["roomvoStartSurfaceDesigner"],autolaunchConfirmationUrlParameter:"roomvoAutoStart",productCodeUrlParameter:"sku",supplierUrlPathParameter:null,vendorSlugUrlParameter:"vendor_slug",productTypeUrlParameter:"product_type",standaloneFnName:"startStandaloneSurfaceDesigner",requireConfirmation:!1},{urlRegexObj:/.*/i,requiredUrlParameters:["roomvoStartKiosk"],autolaunchConfirmationUrlParameter:"roomvoAutoStart",productCodeUrlParameter:"sku",kioskPhysicalScannerUrlParameter:"roomvoHasPhysicalScanner",standaloneFnName:"startVisualizerInKioskMode",requireConfirmation:!1},{urlRegexObj:/.*/i,requiredUrlParameters:["roomvoStartVisualizer"],autolaunchConfirmationUrlParameter:"roomvoAutoStart",productCodeUrlParameter:"sku",supplierUrlPathParameter:"supplier",productTypeUrlParameter:"product_type",prefilterUrlParameter:"prefilter",perProductTypePrefilterUrlParameter:"per_product_type_prefilter",roomIdUrlParameter:"room_id",vendorSlugUrlParameter:"vendor_slug",hasRoomStyleTransferListUrlParameter:"has_room_style_transfer_list",standaloneFnName:"startStandaloneVisualizer",requireConfirmation:!1}],this.launchSequenceTimeoutDuration=15*1e3,this.launchSequenceLoaderBaseColor="#818C98";let t=O(this,"read/rewrite",{cookieName:Oe});t&&(this.visitorIds=X(t));let o=O(this,"read/rewrite",{cookieName:fe});o&&(this.vendorIds=X(o));let r=O(this,"read/rewrite",{cookieName:Ce});r&&(this.vendorUrlPath=r),this.agreedTermsOfUse=!!O(this,"read",{cookieName:j}),this.isInAbExperimentMode()&&nt(this.getCookieExpiration(),this),Object.defineProperty(this,"getRoomvoListeners",{value:()=>window._roomvo.roomvoListeners,writable:!1,configurable:!1})}get[Symbol.toStringTag](){return"RoomvoIntegrator"}getVendorUrlPath(){return""}shouldCommitVisitorToDb(){return!1}getProductCode(t){return"code1"}set autolauncherConfig(t){let o=this.standaloneAutolauncherConfigs.reduce((s,i)=>(s[i.standaloneFnName]={...i},s),{}),r=["startStandaloneVisualizer","startProductCatalog","startStandaloneSurfaceDesigner","startVisualizerInKioskMode","startMeasure","addFavoriteProduct","removeFavoriteProduct"],n=s=>{let i=s.standaloneFnName||"startStandaloneVisualizer",c={...o[i],...s},u=c.standaloneFnName;if(r.includes(u)){let _=this.standaloneAutolauncherConfigs.find(P=>P.standaloneFnName===u);if(_)for(let P of Object.keys(_))_[P]=c[P];else this.standaloneAutolauncherConfigs.push(c)}else m(this,`${u} is not a permitted autolaunch function`)};Array.isArray(t)?t.forEach(n):n(t)}getAppropriateAutolauncherConfig(t){let o=Te(A());return this.standaloneAutolauncherConfigs.find(r=>{let{urlRegexObj:n,requiredUrlParameters:s,autolaunchConfirmationUrlParameter:i,vendorSlugUrlParameter:a,requireConfirmation:c}=r;if(!n.test(o))return!1;let u=t.get(i)||"";if(c&&u.toLowerCase()!=="true")return!1;let _=t.get(a)||"";return _&&_!==this.getVendorUrlPath()?!1:!s||s.every(P=>(t.get(P)||"").toLowerCase()==="true")})}processAutolaunchVisualizer(){let t=new URL(A().href).searchParams,o=this.getAppropriateAutolauncherConfig(t);if(o){let{productCodeUrlParameter:r,supplierUrlPathParameter:n,productTypeUrlParameter:s,prefilterUrlParameter:i,perProductTypePrefilterUrlParameter:a,roomIdUrlParameter:c,kioskPhysicalScannerUrlParameter:u,roomvoVisitorIdUrlParameter:_,hasRoomStyleTransferListUrlParameter:P,standaloneFnName:U}=o,d=S(t.get(s)),p=t.get(r),l=t.get(u),I=n&&t.get(n),N=a&&t.get(a),T=P&&t.get(P),E=I&&p?`&supplier_url_path=${I}`:"";l==="true"&&(E+="&has_physical_scanner=1"),N&&(E+=`&per_product_type_prefilter=${N}`),T==="1"?E+="&has_room_style_transfer_list=1":T==="0"&&(E+="&has_room_style_transfer_list=0");let x={};[i,c,_].forEach(_e=>{let Me=_e&&t.get(_e);Me&&(x[_e]=Me)}),this[U](d,p,E,x)}}processAddToCartUrlParameter(){let t=new URL(A().href);if(t.searchParams.has(q)&&me(document.referrer)===me(this.serverUrl)){let o=t.searchParams.get(q);t.searchParams.delete(q),window.history.replaceState(null,"",t.href),this.addToCart({productCode:o})}}onBodyLoaded(){}isWebGlNeeded(){return!0}getLaunchSequenceClass(){return oe}getVendorUrlPathForStimr(){return this.getVendorUrlPath()}getLocale(){return"en-us"}getLocalizedStringOverrides(){return{}}getStimrButtonText(t){return"See It In My Room"}getCookieExpiration(){return"Fri, 31 Dec 9999 23:59:59 GMT"}getCookieDomain(){return""}getStimrTabIndex(t){return 0}shouldIncludeUpstreamProductMappings(){return!1}addToCart(t,o){}shouldPadHistory(){return!0}isInAbExperimentMode(){return!1}isRoomvoCookieDisabled(){return!!window.isRoomvoCookieDisabled}shouldShowStimrButtons(){return!this.isInAbExperimentMode()||F(this)!=="dontshow"}shouldShowDesignerButtons(){return this.hasDesignerProducts}handleMeasureResult(t){}handleRoomPageLiteSwipe(t){}getRoomPageLiteRoomId(t,o){return""}trackActionInHostAnalytics(t,o,r){try{let{ga4Ids:n}=qi();window.roomvoGtag("event",t,{event_category:"Roomvo",event_label:o,send_to:n})}catch{}}async recordEvent(t,o=!1){let r={visitor_id:await this.getVisitorId(),vendor_id:await this.getVendorId(),device_type:Ue(),entry_type:Ee};t=Object.assign({},r,t);let n=new FormData;for(let s in t)t[s]!==void 0&&t[s]!==null&&n.append(s,t[s]);o&&this.trackActionInHostAnalytics(t.event_name,"",t);try{await fetch(`${this.serverUrl}/services/event/events/`,{method:"POST",body:n,keepalive:!0})}catch{}}debug(){let t=document.querySelectorAll("."+w),o=Array.from(t).filter(n=>n.style.visibility==="hidden").length;console.group("Debug Information"),console.log(`%cSTIMRs:%c ${t.length} total, ${o} hidden`,"font-weight: bold",""),this._registeredModules&&console.log(`%cRegistered modules:%c ${Array.from(this._registeredModules).join(", ")}`,"font-weight: bold","");let r=this.getProductCode();r?(console.log(`%cProduct code:%c ${r}`,"font-weight: bold",""),k(this,r,()=>{this.productCodeMap[r]&&this.productCodeMap[r].length!==0?console.log(`%cAvailable:%c ${r}`,"font-weight: bold",""):console.log(`%cNot available:%c ${r}`,"font-weight: bold",""),this.logPretty(),console.groupEnd()})):(this.logPretty(),console.groupEnd())}logPretty(){console.group(`Log:%c ${this.log.split(` `).length} lines`,"font-weight: normal"),console.log(this.log),console.groupEnd()}startStandalone(){b(this)}async startStandaloneSurfaceDesigner(t,o,r="",n={}){let s=S(t);await b(this,void 0,"/surface_designer",r,s===C?"":s,o)}async startVisualizerInKioskMode(t,o,r="",n={}){let s=S(t);r+="&is_in_kiosk_mode=1",await b(this,void 0,o?void 0:"/kiosk",r,s===C?"":s,o)}async startStandaloneVisualizer(t,o,r="",{prefilter:n,room_id:s}={}){let i=this.prefilter;n&&(this.prefilter=n);let a=s?`/rooms/${s}/`:void 0,c=S(t);await b(this,void 0,a,r,c===C?"":c,o),n&&(this.prefilter=i)}async startProductCatalog(t,o,r="",{prefilter:n}={}){let s=async()=>{let i=S(t),a=ie(this,o,i);a||(o&&(r+=`&product_code=${encodeURIComponent(o)}`),i!==C&&(r+=`&product_type=${i}`)),n&&(r+=`&prefilter=${n}`),await Dt(this,r,a)};o&&!this.productCodeMap?.[o]?await k(this,o,s):await s()}convertProductType(t){return S(t)}setVisitorId(t,o,{overwriteExisting:r=!1}={}){Mt(this,t,"visitorIds",Oe,o,r)}setVendorId(t,o,{overwriteExisting:r=!1}={}){Mt(this,t,"vendorIds",fe,o,r)}async getVisitorId({vendorUrlPath:t=this.getVendorUrlPath()}={}){try{return this.visitorIds[t]||await de(this,{vendorUrlPath:t}),this.visitorIds[t]??""}catch{return""}}async getVendorId({vendorUrlPath:t=this.getVendorUrlPath()}={}){try{return this.vendorIds[t]||await de(this,{vendorUrlPath:t}),this.vendorIds[t]??""}catch{return""}}async addFavoriteProduct(t,o){let r=new FormData;r.append("visitor",await this.getVisitorId()),r.append("vendor",await this.getVendorId()),r.append("sku",t),r.append("product_type",S(o)),fetch(`${this.serverUrl}/services/visitor/visitor_favorites/by_sku/`,{method:"post",body:r})}async removeFavoriteProduct(t,o){let r=new FormData;r.append("visitor",await this.getVisitorId()),r.append("vendor",await this.getVendorId()),r.append("sku",t),r.append("product_type",S(o)),fetch(`${this.serverUrl}/services/visitor/visitor_favorites/by_sku/`,{method:"delete",body:r})}get vendorLogoUrl(){let t=new URL("/services/vendor/themes/asset/",this.serverUrl);return t.searchParams.append("vendor_url_path",this.getVendorUrlPath()),t.searchParams.append("asset_name","my_landing_page_logo_background_image"),t.searchParams.append("locale",this.getLocale()),t}get shouldShowLaunchSequence(){return!0}getHostPageInfo(){let t=y.getUrl(),o=document.querySelector(`.${w}`),r=document.querySelector(`.${Ve}`),n=document.querySelector(`.${V}`),s=document.querySelector(`.${He}`);return{event_name:et,event_model_name:"ViewedHostPageEvent",integration_type:r?Ke:ze,url:t.href.substring(0,256),referrer_url:document.referrer.substring(0,256),page_type:"",product_id:"",utm_source:t.searchParams.get("utm_source")||"",utm_medium:t.searchParams.get("utm_medium")||"",utm_campaign:t.searchParams.get("utm_campaign")||"",utm_content:t.searchParams.get("utm_content")||"",utm_term:t.searchParams.get("utm_term")||"",has_stimr:!!o,has_lite_integration:!!r,has_3d_display_integration:!!n,has_measure_integration:!!s}}trackPageView(){setTimeout(()=>{this.recordEvent(this.getHostPageInfo())},this.trackPageViewDelay)}registerModules(){}},kt=async e=>{if(ot(window.navigator)||tt(window.navigator))return null;window._roomvo||(window._roomvo={},Object.defineProperty(window._roomvo,"roomvoListeners",{value:{}})),window.roomvo||(window.roomvo={},window.ffViz=window.roomvo);let t=new e;if(t.getVendorUrlPath())return Ft(t);try{let r=await de(t);return t.vendorUrlPath=r.vendorUrlPath,O(t,"write",{cookieName:Ce,cookieValue:t.vendorUrlPath}),Ft(t)}catch{return null}},Ne=new WeakMap,de=async(e,{timeout:t=null,vendorUrlPath:o}={})=>{let r=o||e.getVendorUrlPath()||void 0,n;if(r)n=r;else{let a=y.getTopLevelHostname(),c=y.getNextLevelHostname();n=`${a}|${c}`}Ne.has(e)||Ne.set(e,new Map);let s=Ne.get(e);if(s.has(n))return s.get(n);let i=(async()=>{let a=new AbortController,c=t?setTimeout(()=>a.abort(),t):null;try{let u=await fetch(`${e.serverUrl}/services/visitor/visitors/`,{method:"POST",headers:{"Content-Type":"application/json;charset=UTF-8"},body:JSON.stringify({vendor_url_path:r,locale:e.getLocale(),tracking_code:F(e),top_level_domain:y.getTopLevelHostname(),next_level_domain:y.getNextLevelHostname(),device_type:Ue(),commit_to_db:e.shouldCommitVisitorToDb()===!0?!0:void 0}),signal:a.signal});if(c&&clearTimeout(c),!u.ok)throw new Error(`HTTP error! Status: ${u.status}`);let _=await u.json();return e.setVisitorId(_.vendorUrlPath,_.id,{overwriteExisting:!1}),e.setVendorId(_.vendorUrlPath,_.vendorId,{overwriteExisting:!1}),_}catch(u){throw c&&clearTimeout(c),m(e,`${u.name} while retrieving visitor data. Message: ${u.message}`),u}})();return s.set(n,i),i.finally(()=>{s.delete(n)})},Mt=(e,t,o,r,n,s)=>{Se(e[o])&&(e[o]={});let i=O(e,"read",{cookieName:r});i&&(e[o]=X(i)),n&&(s||!(t in e[o]))&&(e[o][t]=n),O(e,"write",{cookieName:r,cookieValue:v(e[o])})},Ft=async e=>{if(e.getVendorUrlPath()in window._roomvo){let t=window._roomvo[e.getVendorUrlPath()];if(e.toString()===t.toString())return e}if(window._roomvo[e.getVendorUrlPath()]=e,m(e,"Roomvo log begins..."),e.getVendorUrlPath()&&(window.roomvo.startStandalone||(window.roomvo.startStandalone=t=>{R(t).startStandalone()}),window.roomvo.startStandaloneVisualizer||(window.roomvo.startStandaloneVisualizer=(...t)=>{t=ce(...t),R(t.splice(2,1)[0]).startStandaloneVisualizer(...t)}),window.roomvo.startProductCatalog||(window.roomvo.startProductCatalog=(...t)=>{t=ce(...t),R(t.splice(2,1)[0]).startProductCatalog(...t)}),window.roomvo.startStandaloneSurfaceDesigner||(window.roomvo.startStandaloneSurfaceDesigner=(...t)=>{t=ce(...t),R(t.splice(2,1)[0]).startStandaloneSurfaceDesigner(...t)}),window.roomvo.startVisualizerInKioskMode||(window.roomvo.startVisualizerInKioskMode=(...t)=>{t=ce(...t),R(t.splice(2,1)[0]).startVisualizerInKioskMode(...t)}),window.roomvo.addFavoriteProduct||(window.roomvo.addFavoriteProduct=(t,o,r)=>{R(r).addFavoriteProduct(t,o)}),window.roomvo.removeFavoriteProduct||(window.roomvo.removeFavoriteProduct=(t,o,r)=>{R(r).removeFavoriteProduct(t,o)})),Yt(window._roomvo.roomvoListeners),te(e),e.registerModules(),Se(e.visitorIds)||!(e.getVendorUrlPath()in e.visitorIds))try{return await de(e,{timeout:1e4}),Be(e)}catch(t){return t.name==="AbortError"?Be(e):null}else return Be(e)},Be=async e=>{if(!e.vendorIds[e.getVendorUrlPath()])throw new Error(`Failed to obtain vendor IDs for ${e.getVendorUrlPath()}`);let t=()=>{Q(e)&&e.processAddToCartUrlParameter(),e.processAutolaunchVisualizer(),e.onBodyLoaded(),e.trackPageView()};return await new Promise(o=>document.readyState==="loading"?document.addEventListener("DOMContentLoaded",o,{once:!0}):o()),t(),e},qi=()=>{window.dataLayer=window.dataLayer||[],window.roomvoGtag||(window.roomvoGtag=function(){window.dataLayer.push(arguments)},window.roomvoGtag("js",new Date));let e=[...document.querySelectorAll("head > script[src*='gtag']")].map(t=>new URL(t.src).searchParams.get("id")||"").filter(t=>t.startsWith("G-"));return{roomvoGtag:window.roomvoGtag,ga4Ids:e}},ce=(...e)=>(e.length===1&&e[0]instanceof Object&&Object.prototype.toString.call(e[0])==="[object Object]"&&(e=[e[0].productType,e[0].productCode,e[0].vendorUrlPath,e[0].extraParams,e[0].options]),e);var Vt=(e,t,o,r,n,s,i,a)=>{n==null&&(n=function(d,p){d.appendChild(p)}),i=i||Ge;let c=function(d){m(e,`About to add buttons to containers: ${Ct(d)}`);for(let p of d){let l="";try{l=e.getProductCode(p)}catch(I){m(e,`Exception getting product code on ${g(p)}: ${I.toString()}`);continue}e.productCodeMap[l]===void 0?(m(e,`Checking unknown: "${l}" on ${g(p)}`),k(e,l,()=>u(p,l,s))):u(p,l,s)}},u=function(d,p,l){let I=function(T){if(e.productCodeMap[T]===void 0)return m(e,`ERROR: unknown, should not be: "${T}" on${g(d)}`),!1;if(e.productCodeMap[T].length===0)return/\u200b/.test(T)?m(e,`NOT available: "${T.replace(/\u200b/,"\u200B")}" (zero space character detected) on ${g(d)}`):m(e,`NOT available: "${T}" on ${g(d)}`),!1;if(i===We&&e.productCodeMap[T].every(E=>!E.isDesignerCompatible))return m(e,`Designer not available for ${T}`),!1;if(i===V&&e.productCodeMap[T].every(E=>!E.is3dProductDisplayable))return m(e,`3D product display not available for ${T}`),!1;if(!l)return m(e,`Available without product type: "${T}" on ${g(d)}`),!0;for(let E=0;E{(t.tabIndex===void 0||t.tabIndex===null||t.tabIndex<0)&&(t.tabIndex=e),t.onkeydown=o=>{(o.key==="Enter"||o.key===" "||o.key==="Space")&&(o.preventDefault(),t.click())}},Zi=(e,t)=>{let{appPath:o,productCode:r,productType:n}=t,s={event_model_name:"ClickedStimrButtonEvent",event_name:"Clicked Stimr Button",app_path:o||"",locale:e.getLocale(),page_type:e.getHostPageInfo().page_type||""};return s.product_type=n||C,r&&(s.product_code=r),s},Ht=(e,t,o,r,n,s,i)=>{e.shouldShowStimrButtons()&&Vt(e,t,o,r,n,s,w,function(c){return c.stopPropagation(),b(e,this,"",i,s),e.recordEvent(Zi(e,{appPath:"/",productType:c.currentTarget.dataset.productType,productCode:e.getProductCode(this)})),!1})};var Wt=(e,t,o,r,n,s)=>{let i=Xi(e,r,s);Vt(e,t,o,"",n,s,V,i)};var Gt=(e,t,o="")=>{if(e.productCodeMap[t]&&e.productCodeMap[t].length!==0&&e.productCodeMap[t].some(r=>!o||r.productType===o))return e.productCodeMap[t].find(r=>!o||r.productType===o).product},Xi=(e,t,o)=>{let r=(n,s)=>{let i=Gt(e,n,o)||Gt(e,s,o)||"";wt(e,e.getVendorUrlPathForStimr(),i),e.recordEvent({event_model_name:"GenericEvent",event_group:"Virtual Samples",event_name:"Clicked Vendor Script Virtual Samples Button"})};return n=>{n.stopPropagation();let s=e.getProductCode(n.target);e.productCodeMap[s]?r(s,t):k(e,s,()=>r(s,t))}};var $t=".vtex-product-identifier-0-x-product-identifier__value",Ji=".vtex-store-components-3-x-productImagesContainer",zt="div.vtex-store-components-3-x-carouselGaleryCursor",Qi="#mensaje_img",ea=["ba\xF1os","decoraci\xF3n","muebles"],ta=".flex.mt0.mb0.pt0.pb0.justify-start.vtex-flex-layout-0-x-flexRowContent.vtex-flex-layout-0-x-flexRowContent--container-buttons-interaction.items-stretch.w-100",pe="roomvo-button-2-wrapper",ue=class extends le{getHostPageInfo(){let t=super.getHostPageInfo(),o=document.querySelector(`.${w}`),r=this.getProductCode(),n=Pe(A()),s=Fe(A());if(o?(t.page_type=qe,t.product_code=r):n.includes("")?t.page_type=je:s.includes("cart")?t.page_type=Ze:t.page_type=Xe,o){t.has_stimr=!0,t.product_code=r;let i=ie(this,r);t.product_id=i||""}return t}trackPageView(){setTimeout(()=>{this.recordEvent(this.getHostPageInfo())},2e3)}getVendorUrlPath(){return this._isFurnishingsPip()?"alfacomco_furnishings":"alfacomco"}isWebGlNeeded(){return!1}getLocale(){return"es-co"}getProductCode(t){try{return ye($t).split("-").shift()}catch{return""}}onBodyLoaded(){$(document,[Ji,$t,Qi,zt],()=>{setInterval(()=>{let t=document.querySelector(zt),o=t&&t.querySelector(`.${pe}`);if(t&&!o){let r=document.createElement("div");r.classList.add(pe),r.style.display="flex",r.style.gap="10px",t.appendChild(r),Ht(this,this._createStimr,`.${pe}`),this._isFurnishingsPip()||$(document,[".roomvo-stimr"],()=>{Wt(this,this._createVirtualSample.bind(this),`.${pe}`)})}if(this._isFurnishingsPip()){let r=document.querySelector(ta);if(r&&r.children.length>1){let n=r.children[1];n.style.display="none"}}},100)})}_createStimr(t){let o=document.createElement("button");o.style.cursor="pointer",o.style.backgroundColor="#1b262e",o.style.borderRadius="18px",o.style.color="#fff",o.style.fontSize="14px",o.style.textTransform="none",o.style.marginTop="10px",o.style.border="0",o.style.height="36px",o.style.minHeight="36px",o.style.width="100%",o.style.fontFamily="Gilroy Light",o.style.display="flex",o.style.justifyContent="center",o.style.alignItems="center";let r=document.createElement("span");r.innerText="Ver en mi Espacio";let n=document.createElement("img");if(n.src="https://www.roomvo.com/services/vendor/vendor_images/alfacomco/cube.svg",n.style.height="20px",n.style.width="20px",n.style.marginRight="5px",o.appendChild(n),o.appendChild(r),t._isFurnishingsPip()){o.style.display="flex",o.style.backgroundColor="#051224",o.style.justifyContent="center",o.style.alignItems="center";let s=document.createElement("div");s.style.fontWeight="1000";let i=document.createElement("div");i.style.borderLeft="1px solid",i.style.borderColor="#dedede",i.style.height="24px",i.style.marginLeft="5px",i.style.paddingInline="5px",i.style.alignContent="center",s.appendChild(i);let a=document.createElement("strong");a.innerText="BETA",a.style.color="#ff4d00",a.style.paddingTop="3px",a.style.fontSize="12px",a.style.letterSpacing="1px",i.appendChild(a),o.appendChild(s)}return o}_createVirtualSample(t){let o=this._createStimr(t),r=o.querySelector("span"),n=o.querySelector("img");return n.src="https://www.roomvo.com/services/vendor/vendor_images/alfacomco/virtual_samples.svg",r.innerText="Ver Muestra Virtual",o}_isFurnishingsPip(){let t=ye(".vtex-breadcrumb-1-x-arrow--1");return!!(t&&ea.includes(t.toLowerCase()))}};kt(ue);})();