PageSourceSearch

https://vetnordic.com/app/assets/behaviorTracking.js

js vetnordic.com collected 2026-10-08 04:46:29 UTC 9,415 bytes, 16 lines download raw bytes

1import{m as p}from"./main.js";import{isRelewiseEnabled as y,relewiseConfig as f}from"./relewiseConfig.js";function c(n,e,r,t){function s(i){return i instanceof r?i:new r(function(o){o(i)})}return new(r||(r=Promise))(function(i,o){function w(d){try{a(t.next(d))}catch(u){o(u)}}function g(d){try{a(t.throw(d))}catch(u){o(u)}}function a(d){d.done?i(d.value):s(d.value).then(w,g)}a((t=t.apply(n,e||[])).next())})}var T={tag:"[email protected]"};class m extends Error{get details(){return this._details}constructor(e,r){super(e),this._details=r}}class v{constructor(e,r,t){if(this.datasetId=e,this.apiKey=r,this._serverUrl="https://api.relewise.com",this._urlPath="v1",this.cache="no-cache",!e)throw new Error("Dataset id cannot be null or empty. Please contact Relewise if you don't have an account already or would like a free demo license");if(!r)throw new Error("API Key secret cannot be null or empty. Please contact Relewise support if you don't know the apiKeySecret for your datasetId.");this._apiKeyHeader=`APIKey ${this.apiKey}`,t?.serverUrl&&(this._serverUrl=t.serverUrl),t?.cache&&(this.cache=t.cache)}get serverUrl(){return this._serverUrl}request(e,r,t){return c(this,void 0,void 0,function*(){const s=this.createRequestUrl(this._serverUrl,this.datasetId,this._urlPath,e);try{const i=yield fetch(s,{method:"POST",headers:{Authorization:this._apiKeyHeader,"Content-Type":"application/json","X-Relewise-Version":T.tag},body:JSON.stringify(r),signal:t?.abortSignal,cache:this.cache});if(!i.ok){let o=null;try{o=yield i.json()}catch{}const w=o?.detail?`Details: ${o.detail}
2`:"";throw new m(`Error when calling the Relewise API.
3
4Title: ${i.statusText}
5Status: ${i.status}
6${w}
7Read more in the details property if there is error response or look in the network tab.`,o)}return yield this.parseJson(i)}catch(i){this.handleRequestError(i)}})}createRequestUrl(e,...r){const t=r.join("/");return e.endsWith("/")?e.concat(t):e.concat("/",t)}handleRequestError(e){if(e instanceof m||e instanceof DOMException)throw e;let r="",t=null;if(e instanceof Error){r+=`
8Original error: ${e.name} - ${e.message}`,e.code&&(r+=`
9Code: ${e.code}`);const i=e.message.toLowerCase();i.includes("failed to fetch")?t="Failed to connect to API. Possible network outage, incorrect server URL, or CORS/preflight issue.":i.includes("401")||i.includes("unauthorized")?t="Unauthorized: Your API Key might be missing, expired, or incorrect.":i.includes("403")||i.includes("forbidden")?t="Forbidden: Your API Key might not have access to this dataset.":(i.includes("404")||i.includes("not found"))&&(t="Not Found: The Dataset ID or endpoint may be incorrect.")}else r+=`
10Non-Error thrown: ${JSON.stringify(e)}`;const s=`Network error or preflight request failed.
11`+(t?`Possible cause: ${t}
12`:"")+`Troubleshooting steps:
13- Check your API Key is correct and active
14- Verify the Dataset ID exists and is correctly spelled
15- Ensure the server URL is reachable from your network
16- Check browser console/network tab for blocked requests or CORS issues`+r;throw console.error(s),new Error(s)}parseJson(e){return c(this,void 0,void 0,function*(){try{return yield e.json()}catch{return}})}}class b extends v{constructor(e,r,t){super(e,r,t),this.datasetId=e,this.apiKey=r}trackOrder(e,r){return c(this,arguments,void 0,function*({user:t,subtotal:s,orderNumber:i,lineItems:o,cartName:w="default",trackingNumber:g,data:a},d){return this.request("TrackOrderRequest",{$type:"Relewise.Client.Requests.Tracking.TrackOrderRequest, Relewise.Client",order:{$type:"Relewise.Client.DataTypes.Order, Relewise.Client",lineItems:o.map(u=>Object.assign(Object.assign({product:{id:u.productId}},u.variantId&&{variant:{id:u.variantId}}),{lineTotal:u.lineTotal,quantity:u.quantity,data:u.data})),subtotal:{amount:s.amount,currency:{value:s.currency}},orderNumber:i,trackingNumber:g,cartName:w,data:a,user:t}},d)})}trackCart(e,r){return c(this,arguments,void 0,function*({user:t,subtotal:s,lineItems:i,data:o,cartName:w="default"},g){return this.request("TrackCartRequest",{$type:"Relewise.Client.Requests.Tracking.TrackCartRequest, Relewise.Client",cart:{$type:"Relewise.Client.DataTypes.Cart, Relewise.Client",lineItems:i.map(a=>Object.assign(Object.assign({product:{id:a.productId}},a.variantId&&{variant:{id:a.variantId}}),{lineTotal:a.lineTotal,quantity:a.quantity,data:a.data})),subtotal:{amount:s.amount,currency:{value:s.currency}},name:w,user:t,data:o}},g)})}trackProductView(e,r){return c(this,arguments,void 0,function*({productId:t,variantId:s,user:i},o){return this.request("TrackProductViewRequest",{$type:"Relewise.Client.Requests.Tracking.TrackProductViewRequest, Relewise.Client",productView:Object.assign(Object.assign({$type:"Relewise.Client.DataTypes.ProductView, Relewise.Client",product:{id:t}},s&&{variant:{id:s}}),{user:i})},o)})}trackProductCategoryView(e,r){return c(this,arguments,void 0,function*({idPath:t,user:s},i){return this.request("TrackProductCategoryViewRequest",{$type:"Relewise.Client.Requests.Tracking.TrackProductCategoryViewRequest, Relewise.Client",productCategoryView:{$type:"Relewise.Client.DataTypes.ProductCategoryView, Relewise.Client",idPath:t,user:s}},i)})}trackContentView(e,r){return c(this,arguments,void 0,function*({contentId:t,user:s},i){return this.request("TrackContentViewRequest",{$type:"Relewise.Client.Requests.Tracking.TrackContentViewRequest, Relewise.Client",contentView:{$type:"Relewise.Client.DataTypes.ContentView, Relewise.Client",content:{id:t},user:s}},i)})}trackContentCategoryView(e,r){return c(this,arguments,void 0,function*({idPath:t,user:s},i){return this.request("TrackContentCategoryViewRequest",{$type:"Relewise.Client.Requests.Tracking.TrackContentCategoryViewRequest, Relewise.Client",contentCategoryView:{$type:"Relewise.Client.DataTypes.ContentCategoryView, Relewise.Client",idPath:t,user:s}},i)})}trackBrandView(e,r){return c(this,arguments,void 0,function*({brandId:t,user:s},i){return this.request("TrackBrandViewRequest",{$type:"Relewise.Client.Requests.Tracking.TrackBrandViewRequest, Relewise.Client",brandView:{$type:"Relewise.Client.DataTypes.BrandView, Relewise.Client",brand:{id:t},user:s}},i)})}trackSearchTerm(e,r){return c(this,arguments,void 0,function*({term:t,language:s,user:i},o){return this.request("TrackSearchTermRequest",{$type:"Relewise.Client.Requests.Tracking.TrackSearchTermRequest, Relewise.Client",searchTerm:{$type:"Relewise.Client.DataTypes.SearchTerm, Relewise.Client",language:{value:s},term:t,user:i}},o)})}trackUserUpdate(e,r){return c(this,arguments,void 0,function*({user:t,updateKind:s="UpdateAndAppend"},i){return this.request("TrackUserUpdateRequest",{$type:"Relewise.Client.Requests.Tracking.TrackUserUpdateRequest, Relewise.Client",userUpdate:{$type:"Relewise.Client.DataTypes.UserUpdate, Relewise.Client",user:t,kind:s}},i)})}}class C{static anonymous(e){return Object.assign({},e)}static byAuthenticatedId(e,r,t){return Object.assign(Object.assign({authenticatedId:e},r&&{temporaryId:r}),t)}static byTemporaryId(e,r){return Object.assign(Object.assign({},r),{temporaryId:e})}static byIdentifier(e,r,t){return Object.assign(Object.assign({},t),{identifiers:{[e]:r}})}static byIdentifiers(e,r){return Object.assign({identifiers:e},r)}static byEmail(e,r){return Object.assign({email:e},r)}static byFingerprint(e,r){return Object.assign({fingerprint:e},r)}}const k={datasetId:f.datasetId,apiKey:f.apiKey,serverUrl:f.serverUrl},l=new b(k.datasetId,k.apiKey,{serverUrl:k.serverUrl}),R=()=>
16{if(p.isAuthenticated&&p.relewiseUserId)return C.byAuthenticatedId(p.relewiseUserId);const n=q();return n?C.byTemporaryId(n):C.anonymous()},q=()=>{const n=window;if(!n.Cookiebot)return;const e=n.Cookiebot.consentId||n.Cookiebot.consentID;if((n.Cookiebot.consent?.marketing??!1)&&e&&e!=="0")return e},h={trackProductView:async n=>{if(!(l==null||!y))try{await l.trackProductView({productId:n,user:R()}),console.log("Product view tracked:",n)}catch(e){console.error("Error tracking product view:",e)}},trackProductCategoryView:async n=>{if(!(l==null||!y))try{await l.trackProductCategoryView({idPath:n,user:R()}),console.log("Product category view tracked:",n)}catch(e){console.error("Error tracking product category view:",e)}},trackContentView:async n=>{if(!(l==null||!y))try{await l.trackContentView({contentId:n,user:R()}),console.log("Content view tracked:",n)}catch(e){console.error("Error tracking content view:",e)}}},P=()=>{if(l==null||!y)return;const n=document.querySelector("[data-product-id]");if(!n)return;const e=n.getAttribute("data-product-id");e&&setTimeout(()=>{h.trackProductView(e)},1e3)},I=()=>{if(l==null||!y)return;const n=document.querySelector("section[product-category-id]");if(n){const r=n.getAttribute("product-category-id"),t=n.getAttribute("product-parent-category-id");if(r){const s=t?[t,r]:[r];setTimeout(()=>{h.trackProductCategoryView(s)},1e3)}}const e=document.querySelector("section[product-category-group-id]");if(e){const r=e.getAttribute("product-category-group-id");r&&setTimeout(()=>{h.trackProductCategoryView([r])},1e3)}},V=()=>{if(l==null||!y)return;const n=document.querySelector("[data-content-id]");if(n){const e=n.getAttribute("data-content-id");e&&setTimeout(()=>{h.trackContentView(e)},1e3)}},$=()=>{console.log("Initializing Relewise behavior tracking..."),window.relewiseTracking=h,l!=null&&y&&(P(),I(),V())};export{q as getCookiebotConsentId,R as getUser,$ as initRelewiseBehaviorTracking,h as relewiseTracking};

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.