PageSourceSearch

https://www.ikea.com.hk/webroot/js/search-algolia/SearchAlgolia.min.js?v=1790150868

js ikea.com.hk collected 2026-09-24 21:53:39 UTC 11,360 bytes, 100 lines download raw bytes

1var SearchAlgolia={data:null,default_filters:null,dateFormat:"MMM D, YYYY",shop_currency:null,nlp_arrow:null,userIsBusiness:"Business"===localStorage.getItem("member_type"),price_format:function(e){var i=document.createElement("span"),a=(i.className="currency",document.createTextNode(SearchAlgolia.shop_currency.currency)),a=(i.appendChild(a),document.createElement("span"));return a.append(i),a.append(formatPriceWithTags(e)),a.innerHTML},buildItemBadge:function(e){let i="";var a,{nlp:e,isYuu:s,slashPrice:t,familyPrice:r,businessPrice:l,newItem:c}=e;return s?(a=Messages.getText("yuu-member-offer"),i=`
2                <div class="badge-yuu-member yuuMember">
3                    <span>${a}</span>
4                </div>
5                `):!e||s||t?0<r||0<l?(a=SearchAlgolia.userIsBusiness?"Business":"Family",e=Messages.getText(a.toLowerCase()+"-price-badge"),i=`
6                <p class="item${a}Legend mx-0 mb-1">${e}</p>`):c&&(i=`
7                <div id="new" class="badge-new">
8                    <span>${Messages.getText("new-badge")}</span>
9                </div>`):i=`
10                <div id="lowerPrices" class="badge-nlp">
11                    <span>${Messages.getText("new-lower-price-badge")}<br/></span>
12                </div>
13                `,i},buildItemPrice:function(e){let i="",a="";return""!=e.priceUnit&&null!=e.priceUnit&&(a=`<span class="units">/ ${e.priceUnit}</span>`),i=e.slashPrice?`
14                <div class="d-flex flex-column">
15                    <p class="itemOldPrice mb-2">
16                        <span class="oldValue">${SearchAlgolia.price_format(e.originalPrice)}</span>
17                    </p>
18                    <div class="itemPrice-wrapper">
19                        <p class="itemOfferPrice display-6">
20                            <span data-price="${e.price}">${SearchAlgolia.price_format(e.price)}</span>
21                            ${a}
22                        </p>
23                    </div>
24
25                    <div class="activity">
26                        <p class="font-weight-bold font-italic mb-0">${Searcher.activity_date(e.troStartDate,e.troEndDate)}</p>
27                        <p class="font-italic">${Messages.getText("or-while-supplies-last")}</p>
28                    </div>
29                </div>
30            `:0<e.familyPrice&&!SearchAlgolia.userIsBusiness?`
31            <div class="d-flex flex-column">
32                <div class="itemPrice-wrapper">
33                    <p class="itemFamilyPrice display-6">
34                        <span data-price="${e.familyPrice}">${SearchAlgolia.price_format(e.familyPrice)}</span>
35                        ${a}
36                    </p>
37                </div>
38                <p class="itemNotFamilyPrice">
39                <span>${Messages.getText("normal-price")}:</span>
40                <span class="" data-price="${e.price}"><b>${SearchAlgolia.price_format(e.price)}</b></span>
41                </p>
42            </div>
43            `:0<e.businessPrice&&SearchAlgolia.userIsBusiness?`
44            <div class="d-flex flex-column">
45                <div class="itemPrice-wrapper">
46                    <p class="itemBusinessPrice display-6">
47                        <span data-price="${e.businessPrice}">${SearchAlgolia.price_format(e.businessPrice)}</span>
48                        ${a}
49                    </p>
50                </div>
51                <p class="itemNotBusinessPrice">
52                <span>${Messages.getText("normal-price")}:</span>
53                <span class="" data-price="${e.price}"><b>${SearchAlgolia.price_format(e.price)}</b></span>
54                </p>
55            </div>
56            `:0<e.discount&&!e.bti&&!e.nlp&&e.price<e.originalPrice?`
57            <div class="d-flex flex-column">
58                <p class="itemOldPrice mb-2">
59                <span class="oldValue">${SearchAlgolia.price_format(e.originalPrice)}</span>
60                </p>
61                <div class="itemPrice-wrapper">
62                    <p class="itemOfferPrice display-6">
63                        <span data-price="${e.price}">${SearchAlgolia.price_format(e.price)}</span>
64                        ${a}
65                    </p>
66                </div>
67            </div>
68            `:e.isYuu?`
69            <div class="d-flex flex-column">
70                <p class="itemNormalPrice display-6 mb-1">
71                    <span data-price="${e.price}">${SearchAlgolia.price_format(e.price)}</span>
72                    ${a}
73                </p>
74                <p class="itemYuuPrice price--fixed-size">
75                    <span>${Messages.getText("yuu-member-price")}</span>
76                    <span data-priceFamily="${e.yuuPrice}">${SearchAlgolia.price_format(e.yuuPrice)}</span>
77                    ${a}
78                </p>
79            </div>
80            `:e.nlp?`
81            <div class="d-flex flex-column">
82                <div class="itemPrice-wrapper">
83                    <p class="itemLowerPrice display-6 ${e.bti?"itemBTI":""}">
84                        <span data-price="${e.price}">${SearchAlgolia.price_format(e.price)}</span>
85                        ${a}
86                    </p>
87                </div>
88                <p class="itemOldPrice price--fixed-size d-flex">
89                    <span class="mr-1">${Messages.getText("nlp-previous-price")}</span>
90                    <span class="oldValue last-year-price">${SearchAlgolia.price_format(e.newLowerPrice)}</span>
91                </p>
92            </div>
93            `:`
94            <div class="itemPrice-wrapper">
95                <p class="itemNormalPrice display-6">
96                    <span data-price="${e.price}">${SearchAlgolia.price_format(e.price)}</span>
97                    ${a}
98                </p>
99            </div>
100            `},recommendedProductsAttributes:function(){return["itemNo","productName","description","baseImagesUrl","defaultImage","defaultImageWebp","price","originalPrice","newLowerPrice","yuuPrice","discount","bti","isYuu","slashPrice","nlp","newItem","itemUrl","priceUnit","startSaleDate","endSaleDate","troStartDate","troEndDate","categories","itemType","colours","familyPrice","businessPrice","title","tracking"]},updateUrl:function(e,i,a,s){let t=new URLSearchParams;0<e.length&&t.set("q",e),0<i.length&&t.set("sort",i),0<a&&t.set("page",a+1),s.is_new&&t.set("is_new",!0),s.categories&&s.categories.forEach(e=>{t.append("hfb[]",e.value)}),s.product_types&&s.product_types.forEach(e=>{t.append("pa[]",e.value)}),s.prices&&s.prices.from&&s.prices.to&&0<s.prices.from&&0<s.prices.to&&t.set("prices",s.prices.from+"-"+s.prices.to),s.is_yuu&&t.set("is_yuu",!0),s.new_lower_price&&t.set("nlp",!0),s.slash_price&&t.set("slash",!0),s.is_family&&t.set("family",!0),s.is_business&&t.set("business",!0),s.is_available_online&&t.set("online",!0),s.has_stock&&t.set("stock",!0),s.measures&&s.measures.filter(e=>e.from&&e.to&&0<e.from&&0<e.to).forEach(e=>{t.append("dim[]",e.code+":"+e.from+"-"+e.to)}),s.colors&&s.colors.forEach(e=>{t.append("color[]",e)}),s.shipping_methods&&s.shipping_methods.forEach(e=>{t.append("shipping[]",e)}),s.rating&&s.rating.forEach(e=>{t.append("rating[]",e)}),s.series&&s.series.forEach(e=>{t.append("collection[]",e)}),s.equivalence&&s.equivalence.forEach(e=>{t.append("equivalence[]",e)});e=document.location.pathname+document.location.search;let r=document.location.pathname;i=t.toString();e!=(r=0<i.length?r+"?"+i:r)&&history.pushState({},"",r)},loadFromUrl:function(e,i,a){e={search:e,sort:i,page:0,filters:a};return null!=this.data&&((i=Object.assign({},this.data)).q&&0<i.q.length&&(e.search=i.q),i.sort&&0<i.sort.length&&(e.sort=i.sort),i.page&&0<i.page&&(e.page=i.page-1),i.is_new&&(e.filters.is_new=i.is_new),i.hfb&&0<i.hfb.length&&(e.filters.categories=i.hfb.map(e=>({type:"hfb",value:e,text:e,quantity:0,checked:!0}))),i.pa&&0<i.pa.length&&(e.filters.product_types=i.pa.map(e=>({type:"pa",value:e,text:e,quantity:0,checked:!0}))),i.prices&&0<i.prices.length&&(a=i.prices.split("-"),e.filters.prices={from:parseFloat(a[0]),to:parseFloat(a[1])}),i.is_yuu&&(e.filters.is_yuu=i.is_yuu),i.nlp&&(e.filters.new_lower_price=i.nlp),i.slash&&(e.filters.slash_price=i.slash),i.family&&(e.filters.is_family=i.family),i.business&&(e.filters.is_business=i.business),i.online&&(e.filters.is_available_online=i.online),i.stock&&(e.filters.has_stock=i.stock),i.dim&&0<i.dim.length&&(e.filters.measures=i.dim.map(e=>{var e=e.split(":"),i=e[1].split("-");return{code:e[0],from:parseFloat(i[0]),to:parseFloat(i[1])}})),i.color&&0<i.color.length&&(e.filters.colors=i.color.map(e=>({value:e,text:e,quantity:0,checked:!0}))),i.shipping&&0<i.shipping.length&&(e.filters.shipping_methods=i.shipping.map(e=>({value:e,text:e,quantity:0,checked:!0}))),i.rating&&0<i.rating.length&&(e.filters.rating=i.rating.map(e=>({value:e,text:e,quantity:0,checked:!0}))),i.collection&&0<i.collection.length&&(e.filters.series=i.collection.map(e=>({value:e,text:e,quantity:0,checked:!0}))),i.equivalence)&&0<i.equivalence.length&&(e.filters.equivalence=i.equivalence.map(e=>({value:e,text:e,quantity:0,checked:!0}))),e},refreshFilters:function(e,a){void 0!==a.categories&&(e.categories=e.categories.map(i=>({...i,...a.categories.find(e=>e.value==i.value&&e.type==i.type)})).filter(i=>-1!=a.categories.findIndex(e=>e.value==i.value&&e.type==i.type))),void 0!==a.product_types&&(e.product_types=e.product_types.map(i=>({...i,...a.product_types.find(e=>e.value==i.value&&e.type==i.type)})).filter(i=>-1!=a.product_types.findIndex(e=>e.value==i.value&&e.type==i.type))),void 0!==a.colors&&(e.colors=e.colors.map(i=>({...i,...a.colors.find(e=>e.text==i.text)})).filter(i=>-1!=a.colors.findIndex(e=>e.text==i.text))),void 0!==a.shipping_methods&&(e.shipping_methods=e.shipping_methods.map(i=>({...i,...a.shipping_methods.find(e=>e.value==i.value)})).filter(i=>-1!=a.shipping_methods.findIndex(e=>e.value==i.value))),void 0!==a.rating&&(e.rating=e.rating.map(i=>({...i,...a.rating.find(e=>e.value==i.value)})).filter(i=>-1!=a.rating.findIndex(e=>e.value==i.value))),void 0!==a.series&&(e.series=e.series.map(i=>({...i,...a.series.find(e=>e.value==i.value)})).filter(i=>-1!=a.series.findIndex(e=>e.value==i.value))),void 0!==a.equivalence&&(e.equivalence=e.equivalence.map(i=>({...i,...a.equivalence.find(e=>e.value==i.value)})).filter(i=>-1!=a.equivalence.findIndex(e=>e.value==i.value)))},filtersToSend:function(e){return e.categories=e.categories.map(e=>({value:e.value,type:e.type})),e.product_types=e.product_types.map(e=>({value:e.value,type:e.type})),e.colors=e.colors.map(e=>e.text),e.shipping_methods=e.shipping_methods.map(e=>e.value),e.rating=e.rating.map(e=>e.value),e.series=e.series.map(e=>e.value),void 0!==e.equivalence&&(e.equivalence=e.equivalence.map(e=>e.value)),e},prettyPrice:function(e,i=!0){"function"!=typeof Number.prototype.format&&(Number.prototype.format=function(e,i,a,s){i="\\d(?=(\\d{"+(i||3)+"})+"+(0<e?"\\D":"$")+")",e=this.toFixed(Math.max(0,~~e));return(s?e.replace(".",s):e).replace(new RegExp(i,"g"),"$&"+(a||","))});var a=SearchAlgolia.shop_currency,i=i?a.dec_number:0,e=e.format(i,3,a.thousand_separator,a.dec_separator);return 1==a.position?a.currency+e:e+a.currency},isWebpSupported:function(){var e=document.createElement("canvas");return!(!e.getContext||!e.getContext("2d"))&&0==e.toDataURL("image/webp").indexOf("data:image/webp")}};$(document).ready(function(){window.onpopstate=function(){window.location.reload()}});

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.