PageSourceSearch

https://www.bostonproper.com/cdn/shop/t/1516/assets/bp-track-cards.js?v=119320205335911998891790192827

js bostonproper.com collected 2026-09-25 18:47:36 UTC 8,337 bytes, 2 lines download raw bytes

1(function(){"use strict";if(window.__bpTrackCardsWired)return;window.__bpTrackCardsWired=!0;function readProduct(card){var raw=card&&card.getAttribute&&card.getAttribute("data-bp-track-product");if(!raw)return null;try{return JSON.parse(raw)}catch(_){return null}}function readListName(card){for(var node=card;node&&node!==document.body;){var name=node.getAttribute&&node.getAttribute("data-bp-track-list-name");if(name)return name;node=node.parentElement}var p=window.location.pathname;return p.indexOf("/collections/")===0?"Site Browse":p.indexOf("/search")===0?"Search Results":p==="/"||p===""?"Homepage":"Other"}function readIndex(card){var list=card.closest("[data-bp-track-list-name], .bp-pc__track, .bp-yall__rail, ul, .bp-coll__grid, .bp-grid__inner");if(!list)return null;for(var siblings=list.querySelectorAll(".bp-card"),i=0;i<siblings.length;i+=1)if(siblings[i]===card)return i;return null}function shapeProductForTrack(p){return{id:p.id,title:p.title,vendor:p.vendor,handle:p.handle,url:p.url,image:p.image,sku:p.sku,product_type:p.product_type,metafields:{BP_ProductAttributes:{bp_department:p.category||""}},selected_variant:p.selected_variant}}function applyTrackData(product,d){if(d){var sv=product.selected_variant||(product.selected_variant={});d.variantId&&(sv.id=d.variantId),d.quantityAvailable!=null&&(sv.inventory_quantity=d.quantityAvailable),d.color&&(sv.option1=d.color),d.size&&(sv.option2=d.size),d.department&&(product.metafields=product.metafields||{},product.metafields.BP_ProductAttributes=product.metafields.BP_ProductAttributes||{},product.metafields.BP_ProductAttributes.bp_department=d.department)}}function fireSelect(card){if(!(!window.bpTrack||!window.bpTrack.select_item)){var raw=readProduct(card);if(raw){var product=shapeProductForTrack(raw),cache=window.__bpTrackData;cache&&raw.handle&&cache[raw.handle]&&applyTrackData(product,cache[raw.handle]);var listName=readListName(card),index=readIndex(card),locationId=listName==="Site Browse"?"Product Listing":null,searchTerm;if(listName==="Search Results"){var inSuggest=card.closest("bp-search-drawer, .bp-sd");locationId=inSuggest?"Search Suggestion":"Search Experience";var si=document.querySelector(".bp-sd__input, #bp-sd-input");if(searchTerm=si&&si.value?si.value.trim():"",!searchTerm)try{searchTerm=(new URL(window.location.href).searchParams.get("q")||"").trim()}catch(_){searchTerm=""}}window.bpTrack.select_item(product,listName,index,locationId,searchTerm)}}}function quickviewSurface(originEl){var near=function(sel){return originEl&&originEl.closest?originEl.closest(sel):null};if(near("[data-bp-cart-dialog], bp-cart-drawer, .bp-cart-drawer"))return"Cart Flyout Quickview";if(!originEl){var flyout=document.querySelector("[data-bp-cart-dialog]");if(flyout&&flyout.open)return"Cart Flyout Quickview"}var p=window.location.pathname;return near(".bp-cart-page, [data-bp-cart-page], [data-bp-ctl], [data-bp-cart-line], [data-bp-bundle-upsell]")||p==="/cart"||p.indexOf("/cart?")===0?"Cart Quickview":p.indexOf("/search")===0?"Search Product Listing Quickview":p.indexOf("/collections/")===0?"Product Listing Quickview":p==="/"||p===""?"Homepage Quickview":"Quickview"}function fireQuickview(card){var dest=card.getAttribute("data-bp-card-qv-dest");if(!(dest&&dest!=="drawer")&&!(!window.bpTrack||!window.bpTrack.view_item)){var raw=readProduct(card);if(raw){var product=shapeProductForTrack(raw),loc=quickviewSurface(card);window.__bpQuickviewLoc=loc,window.__bpQuickviewActive=!0,clearTimeout(window.__bpQuickviewTimer),window.__bpQuickviewTimer=setTimeout(function(){window.__bpQuickviewActive=!1},3e4);var fire=function(){window.bpTrack.view_item(product.selected_variant,product,loc)},cache=window.__bpTrackData;if(cache&&raw.handle&&cache[raw.handle]){applyTrackData(product,cache[raw.handle]),fire();return}var enrich=window.bpColorSiblings&&window.bpColorSiblings.fetchTrackData;enrich&&raw.handle?enrich(raw.handle).then(function(map){var d=map&&map[raw.handle];d&&(window.__bpTrackData=window.__bpTrackData||{},window.__bpTrackData[raw.handle]=d,applyTrackData(product,d))}).catch(function(){}).then(fire):fire()}}}function fireViewItemFromHandle(handle,loc){!handle||!window.bpTrack||!window.bpTrack.view_item||window.fetch("/products/"+handle+".js",{credentials:"same-origin"}).then(function(r){return r.ok?r.json():null}).then(function(pj){if(pj){var v=pj.variants&&pj.variants[0]||{},product={id:pj.id,title:pj.title,url:pj.url,handle:pj.handle,vendor:pj.vendor,product_type:pj.type,image:v.featured_image&&v.featured_image.src||pj.featured_image||pj.images&&pj.images[0]||"",selected_variant:{id:v.id,sku:v.sku,price:v.price,compare_at_price:v.compare_at_price,option1:v.option1,option2:v.option2,available:v.available}};
1window.bpTrack.view_item(product.selected_variant,product,loc)}}).catch(function(){})}window.bpTrackCartQuickview=function(productUrl){if(productUrl){var m=String(productUrl).split("?")[0].match(/\/products\/([^/?#]+)/);if(m){var loc=quickviewSurface(null);window.__bpQuickviewLoc=loc,window.__bpQuickviewActive=!0,clearTimeout(window.__bpQuickviewTimer),window.__bpQuickviewTimer=setTimeout(function(){window.__bpQuickviewActive=!1},3e4),fireViewItemFromHandle(m[1],loc)}}};function fireStyliticsWidgetTapc(itemId,price){if(itemId){var payload={currency:"USD",itemId:String(itemId),placement:"widget"};price&&(payload.price=String(price));var tries=0;(function attempt(){var mod=window.styliticsComposer&&window.styliticsComposer.modules&&window.styliticsComposer.modules[0];if(mod&&typeof mod.trackAddItemToCart=="function"){try{mod.trackAddItemToCart(payload)}catch(_){}return}tries++<20&&setTimeout(attempt,300)})()}}function drawerPrice(scope){try{var el=scope.querySelector('sale-price .price, .price-list .price, .product-price, [class*="price"]:not([class*="compare"]):not([class*="was"])'),t=el&&el.textContent||"",m=t.replace(/,/g,"").match(/(\d+(?:\.\d+)?)/);return m?m[1]:""}catch(_){return""}}document.addEventListener("click",function(event){var btn=event.target.closest&&event.target.closest('.add-to-cart-button, button[name="add"], button[type="submit"].add-to-cart-button');if(!(!btn||btn.disabled)){var drawer=btn.closest("dialog.quick-add-modal, #quick-add-dialog, .bp-qd");if(drawer){var wa=window.__bpStyliticsWidgetAdd;if(wa&&wa.handle&&wa.until>Date.now()){var content=drawer.querySelector("#quick-add-modal-content")||drawer;(content.innerHTML||"").indexOf("/products/"+wa.handle)!==-1&&(fireStyliticsWidgetTapc(wa.style||wa.handle,drawerPrice(drawer)),window.__bpStyliticsWidgetAdd=null)}}}},!0),document.addEventListener("click",function(event){var sw=event.target.closest&&event.target.closest("a[data-bp-swatch][href]");if(sw){var modal=sw.closest("#quick-add-modal, .quick-add-modal, #quick-add-dialog, .bp-qd, [data-bp-quickview]");if(modal){var href=sw.getAttribute("href")||"",m=href.split("?")[0].match(/\/products\/([^/?#]+)/);if(m){fireViewItemFromHandle(m[1],window.__bpQuickviewLoc||"Quickview");var wa=window.__bpStyliticsWidgetAdd;wa&&wa.until>Date.now()&&(wa.handle=m[1],wa.until=Date.now()+9e4)}}}},!0),document.addEventListener("close",function(event){var t=event.target;t&&t.id==="quick-add-modal"&&(window.__bpQuickviewActive=!1)},!0),document.addEventListener("click",function(event){var target=event.target;if(!(!target||!target.closest)){var card=target.closest(".bp-card");if(card){var mediaLink=target.closest(".bp-card__media-link"),bagBtn=target.closest("[data-bp-card-qv-trigger]"),titleLink=target.closest(".bp-card__title a, .bp-card__body a, .bp-card__price");(mediaLink||bagBtn||titleLink)&&fireSelect(card),bagBtn&&fireQuickview(card)}}},!0);var _primed={};document.addEventListener("mouseover",function(event){var t=event.target;if(!(!t||!t.closest)){var card=t.closest(".bp-card");if(card){var raw=readProduct(card);if(!(!raw||!raw.handle)&&!(window.__bpTrackData&&window.__bpTrackData[raw.handle]||_primed[raw.handle])){var enrich=window.bpColorSiblings&&window.bpColorSiblings.fetchTrackData;enrich&&(_primed[raw.handle]=!0,enrich(raw.handle).then(function(map){var d=map&&map[raw.handle];d&&(window.__bpTrackData=window.__bpTrackData||{},window.__bpTrackData[raw.handle]=d)}).catch(function(){delete _primed[raw.handle]}))}}}},!0)})();
2//# sourceMappingURL=/cdn/shop/t/1516/assets/bp-track-cards.js.map?v=119320205335911998891790192827

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.