UNPKG

lykdat

Version:

Official JavaScript SDK for Lykdat API (https://solutions.lykdat.com/)

250 lines (236 loc) 11 kB
function $parcel$export(e, n, v, s) { Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true}); } $parcel$export(module.exports, "initImageSearchUI", () => $9b1d0dde5bbfc726$export$747c2e4081d1d5aa); $parcel$export(module.exports, "initInStockAlertUI", () => $4e7023a9f82b4679$export$4d839386772a9115); $parcel$export(module.exports, "subscribeToInStockAlert", () => $4e7023a9f82b4679$export$b10ea90dec0bb8a9); $parcel$export(module.exports, "subscribeToPriceAlert", () => $4e7023a9f82b4679$export$548a527e11f75bd6); $parcel$export(module.exports, "extractProduct", () => $4e7023a9f82b4679$export$a6859be1cfc01481); $parcel$export(module.exports, "searchText", () => $36d1b9c4618b2cdb$export$ac10a6cd936a598a); const $adf26646fe76bf76$var$CSS = ` .lykdat-button { background-color: black; padding: 10px; border-radius: 36px; display: flex; align-items: center; justify-content: space-evenly; outline: none; border: none; cursor: pointer; transition: all 0.5s; color: #fff; box-shadow: 0px 12px 24px rgba(8, 8, 8, 0.3); margin: 0 auto; } .lykdat-button:hover { width: auto; } .lykdat-button > .icon { width: 30px; height: 30px; object-fit: contain; } .lykdat-button > .text { display: none; } .lykdat-button:hover > .text { display: inline-block; margin: 0 10px; } .lykdat-float-btn { position: fixed; bottom: 20px; right: 20px; z-index: 9999; }`; const $adf26646fe76bf76$var$IMG_SEARCH_ICON = "data:image/png;base64,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"; function $adf26646fe76bf76$export$31434ba8ba4bf7c7() { const style_id = "lykdat-img-search-button-style"; if (!document.querySelector(`style#${style_id}`)) { const style = document.createElement("style"); style.id = style_id; style.innerHTML = $adf26646fe76bf76$var$CSS; document.head.appendChild(style); } const button = document.createElement("button"); button.classList.add("lykdat-button"); button.innerHTML = ` <img src="${$adf26646fe76bf76$var$IMG_SEARCH_ICON}" alt="Image Search" class='icon' /> <span class='text'>Image Search</span>`; const floatBtn = document.createElement("div"); floatBtn.classList.add("lykdat-float-btn"); floatBtn.appendChild(button); document.body.appendChild(floatBtn); return button; } function $9b1d0dde5bbfc726$export$747c2e4081d1d5aa(config) { const { publishableApiKey: apiKey , catalogName: catalogName } = config; const context = window.btoa(`${apiKey}${catalogName}:${apiKey.length}`); const button = $9b1d0dde5bbfc726$var$getOrCreateButton(config.triggerSelector); const iframeContainerId = "lykdat-iframe-container"; const iframeURL = "https://easyuse.lykdat.com"; $9b1d0dde5bbfc726$var$attachIFrameStyle(iframeContainerId); button.addEventListener("click", ()=>{ document.body.classList.add("no-scroll"); const iframeContainer = document.querySelector(`#${iframeContainerId}`); iframeContainer.classList.remove("hidden"); }); window.addEventListener("message", (event)=>{ if (event.origin !== iframeURL) return; if (event.data === "close--lykdat--drawer") { iframeContainer.classList.add("hidden"); document.body.classList.remove("no-scroll"); } }, false); let iframeContainer = document.querySelector(`div#${iframeContainerId}`); if (!iframeContainer) iframeContainer = document.createElement("div"); iframeContainer.classList.add("hidden"); iframeContainer.id = iframeContainerId; iframeContainer.style.position = "fixed"; const iframe = document.createElement("iframe"); iframe.src = `${iframeURL}?context=${context}`; iframe.style.height = "100%"; iframe.style.width = "100%"; iframe.style.border = "none"; iframe.style.display = "flex"; iframeContainer.appendChild(iframe); document.body.appendChild(iframeContainer); } function $9b1d0dde5bbfc726$var$attachIFrameStyle(iframeId) { const css = ` #${iframeId} { position: fixed; top: 0; left: 0; right: 0; width: 100vw; height: 100vh; z-index: 9999; } #${iframeId}.hidden { display: none; } .no-scroll { height: 100% !important; overflow: hidden !important; }`; const style_id = "lykdat-img-search-iframe-container-style"; if (!document.querySelector(`style#${style_id}`)) { const style = document.createElement("style"); style.id = style_id; style.innerHTML = css; document.head.appendChild(style); } } function $9b1d0dde5bbfc726$var$getOrCreateButton(selector) { if (selector) return document.querySelector(selector); return (0, $adf26646fe76bf76$export$31434ba8ba4bf7c7)(); } /** * Configuration object used to initialise the In-Stock Alert UI */ function $4e7023a9f82b4679$export$4d839386772a9115(config) { const productUrl = window.location.href; const apiKey = config.publishableApiKey; const context = window.btoa(`${apiKey}${config.websiteName}:${apiKey.length}`); const iframeContainerId = "lykdat-alert-iframe-container"; const iframeURL = "https://easyuse.lykdat.com/stock-alert"; const iframeContainer = document.createElement("div"); iframeContainer.id = iframeContainerId; const iframe = document.createElement("iframe"); iframe.src = `${iframeURL}?url=${encodeURIComponent(productUrl)}&context=${context}`; iframe.style.width = "100%"; iframe.style.border = "none"; iframeContainer.appendChild(iframe); const targetContainer = document.querySelector(config.targetSelector); if (targetContainer) targetContainer.appendChild(iframeContainer); } function $4e7023a9f82b4679$export$b10ea90dec0bb8a9(config, emailAddress, productUrl) { const body = { website_name: config.websiteName, subscriber_email: emailAddress, product_url: productUrl, type: "availability" }; return fetch("https://cloudapi.lykdat.com/v1/products/alerts/subscribe", { method: "POST", body: JSON.stringify(body), headers: { "X-Api-Key": config.publishableApiKey, "Content-Type": "application/json" } }).then((resp)=>{ return resp.json().then((jsonData)=>{ if (resp.status !== 200) throw new Error(jsonData.error || `unable able to subscribe: ${resp.status}`); return { ...jsonData.data }; }); }); } function $4e7023a9f82b4679$export$548a527e11f75bd6(config, emailAddress, productUrl) { const body = { website_name: config.websiteName, subscriber_email: emailAddress, product_url: productUrl, type: "price" }; return fetch("https://cloudapi.lykdat.com/v1/products/alerts/subscribe", { method: "POST", body: JSON.stringify(body), headers: { "X-Api-Key": config.publishableApiKey, "Content-Type": "application/json" } }).then((resp)=>{ return resp.json().then((jsonData)=>{ if (resp.status !== 200) throw new Error(jsonData.error || `unable able to subscribe: ${resp.status}`); return { ...jsonData.data }; }); }); } function $4e7023a9f82b4679$export$a6859be1cfc01481(config, productUrl) { const body = { product_url: productUrl }; return fetch("https://cloudapi.lykdat.com/v1/products/extract", { method: "POST", body: JSON.stringify(body), headers: { "X-Api-Key": config.publishableApiKey, "Content-Type": "application/json" } }).then((resp)=>{ return resp.json().then((jsonData)=>{ if (resp.status !== 200) throw new Error(jsonData.error || `unable able to fetch product: ${resp.status}`); return { ...jsonData.data }; }); }); } /** * Configuration object used to communicate with the Text Search API */ function $36d1b9c4618b2cdb$export$ac10a6cd936a598a(query, config, options) { let queryParams = `query=${query}&catalog_name=${config.catalogName}`; if (options) for(const key in options){ const val = options[key]; queryParams += Array.isArray(val) ? `&${key}=${val.join(",")}` : `&${key}=${val}`; } return fetch(`https://cloudapi.lykdat.com/v1/products/search/text?${queryParams}`, { method: "GET", headers: { "X-Api-Key": config.publishableApiKey } }).then((resp)=>{ return resp.json().then((jsonData)=>{ if (resp.status !== 200) throw new Error(jsonData.error || `search request failed: ${resp.status}`); return { ...jsonData.data }; }); }); } //# sourceMappingURL=main.js.map