r,o)=>{l(o,t)||e.delete(o)}):Object.keys(e).forEach(r=>{l(r,t)||delete e[r]}),e}function l(e,t){return!t.has(c(e)||"")}function u(e,t){let r=!0,o=function(e){let t,r;if(globalThis.Request&&e instanceof Request)t=e.url;else{if("function"!=typeof e?.toString)throw new Error("Unsupported type for url");t=e.toString()}try{return new URL(t).pathname}catch{return r=t.replace(/#.+/gi,"").split("?").shift(),r.startsWith("/")?r:`/${r}`}}(e),n=c(o);return n&&t.some(e=>n.includes(e))&&(r=!1),r}function s(t,r,o){let n=fetch,i=XMLHttpRequest,c=new Set(r);function s(){let e=new i,r=e.open,n=e.setRequestHeader;return e.open=function(){let n=Array.from(arguments),i=n[1];if(n.length<2||u(i,t))return r.apply(e,n);throw new Error(o||`Request not allowed for path ${i}`)},e.setRequestHeader=function(t,r){l(decodeURIComponent(t),c)&&n.call(e,t,r)},e}return e({property:"fetch",value:function(){let e=function(e,t){return globalThis.Request&&e[0]instanceof Request&&e[0]?.headers?a(e[0].headers,t):e[1]?.headers&&a(e[1].headers,t),e}(arguments,c);return u(arguments[0],t)?n.apply(globalThis,Array.from(e)):new Promise((e,t)=>{t(new Error(o||`Request not allowed for path ${arguments[0]}`))})},enumerable:!0}),e({property:"XMLHttpRequest",value:s,enumerable:!0}),Object.keys(i).forEach(e=>{s[e]=i[e]}),{fetch:n,XMLHttpRequest:i}}var p=["TextEncoder","TextDecoder","XMLHttpRequestEventTarget","EventTarget","URL","JSON","Reflect","Object","Array","Map","Set","WeakMap","WeakSet","Promise","Symbol","Error"],f=["addEventListener","removeEventListener","dispatchEvent","encodeURI","encodeURIComponent","decodeURI","decodeURIComponent"];const d=function(){let t=globalThis.open,r=document.open;function o(e,r,o){let n="string"!=typeof e,i=t.call(window,e,r,o);return n||e&&function(e){return e.startsWith("//")&&/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/g.test(`${location.protocol}:${e}`)&&(e=`${location.protocol}${e}`),!e.startsWith("http")||new URL(e).hostname===location.hostname}(e)?{}:i}return e({property:"open",value:o,context:globalThis,enumerable:!0}),e({property:"open",value:function(e,t,n){return e?o(e,t,n):r.call(document,e||"",t||"",n||"")},context:document,enumerable:!0}),{open:t,documentOpen:r}},y=function(){let t=document.createElement,r=Element.prototype.setAttribute,o=Element.prototype.setAttributeNS;return e({property:"createElement",context:document,value:function(n,i){let a=t.call(document,n,i);if("iframe"===c(n)){e({property:"srcdoc",context:a,get:()=>"",set:()=>{console.warn("`srcdoc` is not allowed in iframe elements.")}});let t=function(e,t){"srcdoc"!==e.toLowerCase()?r.call(a,e,t):console.warn("`srcdoc` attribute is not allowed to be set.")},n=function(e,t,r){"srcdoc"!==t.toLowerCase()?o.call(a,e,t,r):console.warn("`srcdoc` attribute is not allowed to be set.")};a.setAttribute=t,a.setAttributeNS=n}return a},enumerable:!0}),{createElement:t,setAttribute:r,setAttributeNS:o}},m=["client-binding"],b=["/_api/v1/access-tokens","/_api/v2/dynamicmodel","/_api/one-app-session-web/v3/businesses"],h=function(){let t=setTimeout,r=setInterval;return o("setTimeout",0,globalThis),o("setInterval",0,globalThis),{setTimeout:t,setInterval:r};function o(t,r,o){let n=o||globalThis,i=n[t];if(!i||"function"!=typeof i)throw new Error(`Function ${t} not found or is not a function`);e({property:t,value:function(){let e=Array.from(arguments);if("string"!=typeof e[r])return i.apply(n,e);console.warn(`Calling ${t} with a String Argument at index ${r} is not allowed`)},context:o,enumerable:!0})}},v=function(){if(navigator&&"serviceWorker"in navigator){let t=navigator.serviceWorker.register;return e({context:navigator.serviceWorker,property:"register",value:function(){console.log("Service worker registration is not allowed")},enumerable:!0}),{register:t}}return{}};performance.mark("overrideGlobals started");const{isExcludedFromSecurityExperiments:g,experiments:w}=window.viewerModel,E=!g&&w["specs.thunderbolt.securityExperiments"];try{d(),E&&y(),w["specs.thunderbolt.hardenFetchAndXHR"]&&E&&s(b,m),v(),(e=>{let t=[],r=[];r=r.concat(["TextEncoder","TextDecoder"]),e&&(r=r.concat(["XMLHttpRequestEventTarget","EventTarget"])),r=r.concat(["URL","JSON"]),e&&(t=t.concat(["addEventListener","removeEventListener"])),t=t.concat(["encodeURI","encodeURIComponent","decodeURI","decodeURIComponent"]),r=r.concat(["String","Number"]),e&&r.push("Object"),r=r.concat(["Reflect"]),t.forEach(e=>{n(e),["addEventListener","removeEventListener"].includes(e)&&n(e,document)}),r.forEach(e=>{o({property:e})})})(E),E&&h()}catch(e){window?.viewerModel?.mode.debug&&console.error(e);const t=new Error("TB006");window.fedops?.reportError(t,"security_overrideGlobals"),window.Sentry?window.Sentry.captureException(t):globalThis.defineStrictProperty("sentryBuffer",[t],window,!1)}performance.mark("overrideGlobals ended")})();
//# sourceMappingURL=https://static.parastorage.com/services/wix-thunderbolt/dist/overrideGlobals.inline.ec13bfcf.bundle.min.js.map
Frame in metal covered with hide leather: russian red 5008, olive 5006, black 5005, dark brown 5004, dark brown extra 5013, grey 5003, sand 5001, tobacco 5015. also available in black suede 6005, dark brown suede 6004, olive suede 6003, sand suede 6001
With its sleek, uncluttered geometric C-shape, Plain is a handy tray table designed to be placed alongside or in front of the sofa. Form and function combine seamlessly and its uncluttered lines provide the perfect foil for a luxurious material like cowhide. The metal structure of the Plain side table is entirely clad in cowhide, available in the vast Flexform color palette.