define("@wsb/guac-widget-shared/lib/common/ols-core/utils/ApiUtils-b65824c2.js",["exports","~/c/OlsConfigStore"],(function(e,t){"use strict";function s(e,t){const s=new URL(e).search?"&":"?",o=[];return Object.entries(t||{}).forEach((e=>{o.push(`${encodeURIComponent(e[0])}=${encodeURIComponent(e[1])}`)})),o.length?`${e}${s}${o.join("&")}`:e}var o=new class{constructor(){this.timestampedRequestsDisabled="undefined"!=typeof window&&/olsTimestampedRequests=false/i.test(window.location.search)}_addDynamicTimestamp(e){return this.timestampedRequestsDisabled?e:s(e,{timestamp:Date.now()})}_makeRequest(e){const s=t.O.getState()||{};let{method:o,url:n,data:r,timeout:a,retryPrevented:u}=e;const{optHeaders:i}=e;let d=s.requestRetries||0;const l=a||s.requestTimeout.default||0;return new Promise((function(e,t){!function s(){let a=new XMLHttpRequest;a.open(o,n),a.timeout=l;let c={};function p(){d-- >0&&!u?s():t({status:a.status,statusText:a.statusText})}a.onload=function(){try{c=JSON.parse(a.response)}catch(e){c={}}if(this.status>=400){let e=new Error(c.error||c.message||a.responseText||"unexpected error");return e.status_code=this.status,t({error:e,response:c})}e(c)},a.onerror=p,a.ontimeout=p,function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,s=arguments.length>2?arguments[2]:void 0;e.withCredentials=!0,e.setRequestHeader("Accept","*/*"),t&&e.setRequestHeader("Content-Type","application/json;charset=UTF-8"),s&&Object.keys(s).forEach((t=>{e.setRequestHeader(t,s[t])}))}(a,r,i),r&&"object"==typeof r&&(r=JSON.stringify(r)),a.send(r)}()}))}getRequest(e,t,s,o){let n={method:"GET",url:this._addDynamicTimestamp(e),timeout:s,optHeaders:o};return t&&(n.data=t),this._makeRequest(n)}postRequest(e,t,s){let o={method:"POST",url:e,timeout:s,retryPrevented:arguments.length>3&&void 0!==arguments[3]&&arguments[3],optHeaders:arguments.length>4?arguments[4]:void 0};return t&&(o.data=t),this._makeRequest(o)}putRequest(e,t,s,o){let n={method:"PUT",url:e,timeout:s,optHeaders:o};return t&&(n.data=t),this._makeRequest(n)}patchRequest(e,t,s,o){let n={method:"PATCH",url:e,timeout:s,optHeaders:o};return t&&(n.data=t),this._makeRequest(n)}deleteRequest(e,t,s,o){let n={method:"DELETE",url:e,timeout:s,optHeaders:o};return t&&(n.data=t),this._makeRequest(n)}};function n(){return t.O.getApiBaseUrl()}function r(e){return t.O.getState().requestTimeout[e]}function a(e){const t=r("loadProduct");return o.getRequest(`${n()}/api/v2/products/${e}?app=vnext`,null,t)}e.X=o,e.a=s,e.loadCategories=function(e){const a=r("default");let u=`${n()}/api/taxonomies/${t.O.getState().categories_taxonomy_id}/taxons`;return e&&(u=s(u,e)),o.getRequest(u,null,a)},e.loadDetailedProducts=async function(e){return await Promise.all(e.map((async e=>await a(e))))},e.loadProduct=a,e.loadProducts=function(e){const t=r("loadProducts");let a=`${n()}/api/v2/products`;const u={page_fallback:!0,app:"vnext"};return(global._||guac.lodash).assign(u,e),a=s(a,u),o.getRequest(a,null,t)},e.loadSimilarProducts=function(e){const t=r("loadSimilarProducts");return o.getRequest(`${n()}/api/v1/products/${e}/similar_products`,null,t)},Object.defineProperty(e,"__esModule",{value:!0})})),"undefined"!=typeof window&&(window.global=window); //# sourceMappingURL=ApiUtils-b65824c2.js.map