CINXE.COM

IKEA Indonesia - Jual Perabot Rumah & Furnitur Kantor Online

<!DOCTYPE html> <html lang="id"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"><script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:[]},session_trace:{sampling_rate:0.0,mode:"FIXED_RATE",enabled:true,error_sampling_rate:0.0},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1835050470",accountID:"3160681",trustKey:"3160681",xpid:"VwcBUVBbCRABXFJWBAMAVFIG",licenseKey:"NRJS-ad90988d7377f3014b8",applicationID:"1834327267"};;/*! For license information please see nr-loader-spa-1.281.0.min.js.LICENSE.txt */ (()=>{var e,t,r={8122:(e,t,r)=>{"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555:(e,t,r)=>{"use strict";r.d(t,{Vp:()=>c,fn:()=>s,x1:()=>u});var n=r(384),i=r(8122);const o={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){try{const t=c(e);return!!t.licenseKey&&!!t.errorBeacon&&!!t.applicationID}catch(e){return!1}}function c(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function u(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.info=a[e])}},9417:(e,t,r)=>{"use strict";r.d(t,{D0:()=>p,gD:()=>m,xN:()=>g});var n=r(3333),i=r(993);const o=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var a=r(2614),s=r(944),c=r(384),u=r(8122);const d="[data-nr-mask]",l=()=>{const e={feature_flags:[],experimental:{marks:!1,measures:!1,resources:!1},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0,level:i.p_.INFO},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{get capture_marks(){return e.feature_flags.includes(n.$v.MARKS)||e.experimental.marks},set capture_marks(t){e.experimental.marks=t},get capture_measures(){return e.feature_flags.includes(n.$v.MEASURES)||e.experimental.measures},set capture_measures(t){e.experimental.measures=t},capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(n.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:a.wk,inactiveMs:a.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inline_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){o(t)?e.mask_selector="".concat(t,",").concat(d):""===t||null===t?e.mask_selector=d:(0,s.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){o(t)?e.block_selector+=",".concat(t):""!==t&&(0,s.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,s.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},spa:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]}}},f={},h="All configuration objects require an agent identifier!";function p(e){if(!e)throw new Error(h);if(!f[e])throw new Error("Configuration for ".concat(e," was never set"));return f[e]}function g(e,t){if(!e)throw new Error(h);f[e]=(0,u.a)(t,l());const r=(0,c.nY)(e);r&&(r.init=f[e])}function m(e,t){if(!e)throw new Error(h);var r=p(e);if(r){for(var n=t.split("."),i=0;i<n.length-1;i++)if("object"!=typeof(r=r[n[i]]))return;r=r[n[n.length-1]]}return r}},5603:(e,t,r)=>{"use strict";r.d(t,{a:()=>c,o:()=>s});var n=r(384),i=r(8122);const o={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0},a={};function s(e){if(!e)throw new Error("All loader-config objects require an agent identifier!");if(!a[e])throw new Error("LoaderConfig for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All loader-config objects require an agent identifier!");a[e]=(0,i.a)(t,o);const r=(0,n.nY)(e);r&&(r.loader_config=a[e])}},3371:(e,t,r)=>{"use strict";r.d(t,{V:()=>f,f:()=>l});var n=r(8122),i=r(384),o=r(6154),a=r(9324);let s=0;const c={buildEnv:a.F3,distMethod:a.Xs,version:a.xv,originTime:o.WN},u={customTransaction:void 0,disabled:!1,isolatedBacklog:!1,loaderType:void 0,maxBytes:3e4,onerror:void 0,ptid:void 0,releaseIds:{},appMetadata:{},session:void 0,denyList:void 0,timeKeeper:void 0,obfuscator:void 0,harvester:void 0},d={};function l(e){if(!e)throw new Error("All runtime objects require an agent identifier!");if(!d[e])throw new Error("Runtime for ".concat(e," was never set"));return d[e]}function f(e,t){if(!e)throw new Error("All runtime objects require an agent identifier!");d[e]={...(0,n.a)(t,u),...c},Object.hasOwnProperty.call(d[e],"harvestCount")||Object.defineProperty(d[e],"harvestCount",{get:()=>++s});const r=(0,i.nY)(e);r&&(r.runtime=d[e])}},9324:(e,t,r)=>{"use strict";r.d(t,{F3:()=>i,Xs:()=>o,Yq:()=>a,xv:()=>n});const n="1.281.0",i="PROD",o="CDN",a="^2.0.0-alpha.17"},6154:(e,t,r)=>{"use strict";r.d(t,{A4:()=>s,OF:()=>d,RI:()=>i,WN:()=>h,bv:()=>o,gm:()=>a,lR:()=>f,m:()=>u,mw:()=>c,sb:()=>l});var n=r(1863);const i="undefined"!=typeof window&&!!window.document,o="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),s="complete"===a?.document?.readyState,c=Boolean("hidden"===a?.document?.visibilityState),u=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),l=d&&"undefined"==typeof SharedWorker,f=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),h=Date.now()-(0,n.t)()},7295:(e,t,r)=>{"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>o});var n=[];function i(e){if(!e||o(e))return!1;if(0===n.length)return!0;for(var t=0;t<n.length;t++){var r=n[t];if("*"===r.hostname)return!1;if(s(r.hostname,e.hostname)&&c(r.pathname,e.pathname))return!1}return!0}function o(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let o,a;i>0?(o=r.substring(0,i),a=r.substring(i)):(o=r,a="");let[s]=o.split(":");n.push({hostname:s,pathname:a})}}function s(e,t){return!(e.length>t.length)&&t.indexOf(e)===t.length-e.length}function c(e,t){return 0===e.indexOf("/")&&(e=e.substring(1)),0===t.indexOf("/")&&(t=t.substring(1)),""===e||e===t}},1687:(e,t,r)=>{"use strict";r.d(t,{Ak:()=>c,Ze:()=>l,x3:()=>u});var n=r(7836),i=r(3606),o=r(860),a=r(2646);const s={};function c(e,t){const r={staged:!1,priority:o.P3[t]||0};d(e),s[e].get(t)||s[e].set(t,r)}function u(e,t){e&&s[e]&&(s[e].get(t)&&s[e].delete(t),h(e,t,!1),s[e].size&&f(e))}function d(e){if(!e)throw new Error("agentIdentifier required");s[e]||(s[e]=new Map)}function l(e="",t="feature",r=!1){if(d(e),!e||!s[e].get(t)||r)return h(e,t);s[e].get(t).staged=!0,f(e)}function f(e){const t=Array.from(s[e]);t.every((([e,t])=>t.staged))&&(t.sort(((e,t)=>e[1].priority-t[1].priority)),t.forEach((([t])=>{s[e].delete(t),h(e,t)})))}function h(e,t,r=!0){const o=e?n.ee.get(e):n.ee,s=i.i.handlers;if(!o.aborted&&o.backlog&&s){if(r){const e=o.backlog[t],r=s[t];if(r){for(let t=0;e&&t<e.length;++t)p(e[t],r);Object.entries(r).forEach((([e,t])=>{Object.values(t||{}).forEach((t=>{t[0]?.on&&t[0]?.context()instanceof a.y&&t[0].on(e,t[1])}))}))}}o.isolatedBacklog||delete s[t],o.backlog[t]=null,o.emit("drain-"+t,[])}}function p(e,t){var r=e[1];Object.values(t[r]||{}).forEach((t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],o=e[2];n.apply(i,o)}}))}},7836:(e,t,r)=>{"use strict";r.d(t,{P:()=>c,ee:()=>u});var n=r(384),i=r(8990),o=r(3371),a=r(2646),s=r(5607);const c="nr@context:".concat(s.W),u=function e(t,r){var n={},s={},d={},l=!1;try{l=16===r.length&&(0,o.f)(r).isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,o){!1!==o&&(o=!0);if(u.aborted&&!i)return;t&&o&&t.emit(e,r,n);for(var a=h(n),c=g(e),d=c.length,l=0;l<d;l++)c[l].apply(a,r);var p=v()[s[e]];p&&p.push([f,e,r,a]);return a},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach((([e,n])=>{s[n]=t,t in r||(r[t]=[])}))},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach((e=>{delete f.backlog[e]}))},isBuffering:function(e){return!!v()[s[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof a.y?e:e?(0,i.I)(e,c,(()=>new a.y(c))):new a.y(c)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return d[t]=d[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=u)},2646:(e,t,r)=>{"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908:(e,t,r)=>{"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606:(e,t,r)=>{"use strict";r.d(t,{i:()=>o});var n=r(9908);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.d,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.d);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3878:(e,t,r)=>{"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function o(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>o,jT:()=>n,sp:()=>i})},5607:(e,t,r)=>{"use strict";r.d(t,{W:()=>n});const n=(0,r(9566).bz)()},9566:(e,t,r)=>{"use strict";r.d(t,{LA:()=>s,ZF:()=>c,bz:()=>a,el:()=>u});var n=r(6154);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),i.split("").map((e=>"x"===e?o(t,r++).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var s=0;s<e;s++)a.push(o(r,i++).toString(16));return a.join("")}function c(){return s(16)}function u(){return s(32)}},2614:(e,t,r)=>{"use strict";r.d(t,{BB:()=>a,H3:()=>n,g:()=>u,iL:()=>c,tS:()=>s,uh:()=>i,wk:()=>o});const n="NRBA",i="SESSION",o=144e5,a=18e5,s={STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},c={SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},u={OFF:0,FULL:1,ERROR:2}},1863:(e,t,r)=>{"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},7485:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},944:(e,t,r)=>{"use strict";function n(e,t){"function"==typeof console.debug&&console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t)}r.d(t,{R:()=>n})},5284:(e,t,r)=>{"use strict";r.d(t,{t:()=>c,B:()=>s});var n=r(7836),i=r(6154);const o="newrelic";const a=new Set,s={};function c(e,t){const r=n.ee.get(t);s[t]??={},e&&"object"==typeof e&&(a.has(t)||(r.emit("rumresp",[e]),s[t]=e,a.add(t),function(e={}){try{i.gm.dispatchEvent(new CustomEvent(o,{detail:e}))}catch(e){}}({loaded:!0})))}},8990:(e,t,r)=>{"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389:(e,t,r)=>{"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout((()=>{i=clearTimeout(i)}),t)),n||(clearTimeout(i),i=setTimeout((()=>{e.apply(this,r)}),t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},3304:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(7836);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},5289:(e,t,r)=>{"use strict";r.d(t,{GG:()=>o,sB:()=>a});var n=r(3878);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.sp)("load",e,t)}function a(e){if(i())return e();(0,n.DD)("DOMContentLoaded",e)}},384:(e,t,r)=>{"use strict";r.d(t,{NT:()=>o,US:()=>d,Zm:()=>a,bQ:()=>c,dV:()=>s,nY:()=>u,pV:()=>l});var n=r(6154),i=r(1863);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function s(){let e=a();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket}),e}function c(e,t){let r=a();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t}function u(e){let t=a();return t.initializedAgents?.[e]}function d(e,t){a()[e]=t}function l(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},2843:(e,t,r)=>{"use strict";r.d(t,{u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",(function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)}),r,i)}},8139:(e,t,r)=>{"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),o=r(8990),a=r(6154);const s={},c=a.gm.XMLHttpRequest,u="addEventListener",d="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e){var t=function(e){return(e||n.ee).get("events")}(e);if(s[t.debugId]++)return t;s[t.debugId]=1;var r=(0,i.YM)(t,!0);function f(e){r.inPlace(e,[u,d],"-",p)}function p(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,f),c&&h(c.prototype,f),h(a.gm,f)),t.on(u+"-start",(function(e,t){var n=e[1];if(null!==n&&("function"==typeof n||"object"==typeof n)){var i=(0,o.I)(n,l,(function(){var e={object:function(){if("function"!=typeof n.handleEvent)return;return n.handleEvent.apply(n,arguments)},function:n}[typeof n];return e?r(e,"fn-",null,e.name||"anonymous"):n}));this.wrapped=e[1]=i}})),t.on(d+"-start",(function(e){e[1]=this.wrapped||e[1]})),t}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,u);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434:(e,t,r)=>{"use strict";r.d(t,{Jt:()=>o,YM:()=>c});var n=r(7836),i=r(5607);const o="nr@original:".concat(i.W);var a=Object.prototype.hasOwnProperty,s=!1;function c(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");const a="-"===n.charAt(0);for(let s=0;s<t.length;s++){const c=t[s],u=e[c];d(u)||(e[c]=r(u,a?c+n:n,i,c,o))}},r.flag=o,r;function r(t,r,n,s,c){return d(t)?t:(r||(r=""),nrWrapper[o]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach((function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})})),t}catch(e){u([e],r)}for(var n in e)a.call(e,n)&&(t[n]=e[n])}(t,nrWrapper,e),nrWrapper);function nrWrapper(){var o,a,d,l;try{a=this,o=[...arguments],d="function"==typeof n?n(o,a):n||{}}catch(t){u([t,"",[o,a,s],d],e)}i(r+"start",[o,a,s],d,c);try{return l=t.apply(a,o)}catch(e){throw i(r+"err",[o,a,e],d,c),e}finally{i(r+"end",[o,a,l],d,c)}}}function i(r,n,i,o){if(!s||t){var a=s;s=!0;try{e.emit(r,n,i,t,o)}catch(t){u([t,r,n,i],e)}s=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function d(e){return!(e&&"function"==typeof e&&e.apply&&!e[o])}},9300:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.ajax},3333:(e,t,r)=>{"use strict";r.d(t,{$v:()=>u,TZ:()=>n,Zp:()=>i,kd:()=>c,mq:()=>s,nf:()=>a,qN:()=>o});const n=r(860).K7.genericEvents,i=["auxclick","click","copy","keydown","paste","scrollend"],o=["focus","blur"],a=4,s=1e3,c=["PageAction","UserAction","BrowserPerformance"],u={MARKS:"experimental.marks",MEASURES:"experimental.measures",RESOURCES:"experimental.resources"}},6774:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.jserrors},993:(e,t,r)=>{"use strict";r.d(t,{ET:()=>o,TZ:()=>a,p_:()=>i});var n=r(860);const i={ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"},o="log",a=n.K7.logging},3785:(e,t,r)=>{"use strict";r.d(t,{R:()=>c,b:()=>u});var n=r(9908),i=r(1863),o=r(860),a=r(3969),s=r(993);function c(e,t,r={},c=s.p_.INFO){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,o.K7.metrics,e),(0,n.p)(s.ET,[(0,i.t)(),t,r,c],void 0,o.K7.logging,e)}function u(e){return"string"==typeof e&&Object.values(s.p_).some((t=>t===e.toUpperCase().trim()))}},3969:(e,t,r)=>{"use strict";r.d(t,{TZ:()=>n,XG:()=>s,rs:()=>i,xV:()=>a,z_:()=>o});const n=r(860).K7.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},6630:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewEvent},782:(e,t,r)=>{"use strict";r.d(t,{T:()=>n});const n=r(860).K7.pageViewTiming},6344:(e,t,r)=>{"use strict";r.d(t,{BB:()=>d,G4:()=>o,Qb:()=>l,TZ:()=>i,Ug:()=>a,_s:()=>s,bc:()=>u,yP:()=>c});var n=r(2614);const i=r(860).K7.sessionReplay,o={RECORD:"recordReplay",PAUSE:"pauseReplay",REPLAY_RUNNING:"replayRunning",ERROR_DURING_REPLAY:"errorDuringReplay"},a=.12,s={DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},c={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0},u={RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},d=5e3,l={API:"api"}},5270:(e,t,r)=>{"use strict";r.d(t,{Aw:()=>c,CT:()=>u,SR:()=>s});var n=r(384),i=r(9417),o=r(7767),a=r(6154);function s(e){return!!(0,n.dV)().o.MO&&(0,o.V)(e)&&!0===(0,i.gD)(e,"session_trace.enabled")}function c(e){return!0===(0,i.gD)(e,"session_replay.preload")&&s(e)}function u(e,t){const r=t.correctAbsoluteTimestamp(e);return{originalTimestamp:e,correctedTimestamp:r,timestampDiff:e-r,originTime:a.WN,correctedOriginTime:t.correctedOriginTime,originTimeDiff:Math.floor(a.WN-t.correctedOriginTime)}}},3738:(e,t,r)=>{"use strict";r.d(t,{He:()=>i,Kp:()=>s,Lc:()=>u,Rz:()=>d,TZ:()=>n,bD:()=>o,d3:()=>a,jx:()=>l,uP:()=>c});const n=r(860).K7.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState",l=1e3},3962:(e,t,r)=>{"use strict";r.d(t,{AM:()=>o,O2:()=>c,Qu:()=>u,TZ:()=>s,ih:()=>d,pP:()=>a,tC:()=>i});var n=r(860);const i=["click","keydown","submit","popstate"],o="api",a="initialPageLoad",s=n.K7.softNav,c={INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},u={INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},d={IP:"in progress",FIN:"finished",CAN:"cancelled"}},7378:(e,t,r)=>{"use strict";r.d(t,{$p:()=>x,BR:()=>b,Kp:()=>R,L3:()=>y,Lc:()=>c,NC:()=>o,SG:()=>d,TZ:()=>i,U6:()=>p,UT:()=>m,d3:()=>w,dT:()=>f,e5:()=>T,gx:()=>v,l9:()=>l,oW:()=>h,op:()=>g,rw:()=>u,tH:()=>A,uP:()=>s,wW:()=>E,xq:()=>a});var n=r(384);const i=r(860).K7.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",l="remaining",f="interaction",h="spaNode",p="jsonpNode",g="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=(0,n.dV)().o.ST,w="-start",R="-end",x="-body",E="cb"+R,T="jsTime",A="fetch"},4234:(e,t,r)=>{"use strict";r.d(t,{W:()=>o});var n=r(7836),i=r(1687);class o{constructor(e,t){this.agentIdentifier=e,this.ee=n.ee.get(e),this.featureName=t,this.blocked=!1}deregisterDrain(){(0,i.x3)(this.agentIdentifier,this.featureName)}}},7767:(e,t,r)=>{"use strict";r.d(t,{V:()=>o});var n=r(9417),i=r(6154);const o=e=>i.RI&&!0===(0,n.gD)(e,"privacy.cookies_enabled")},425:(e,t,r)=>{"use strict";r.d(t,{j:()=>j});var n=r(860),i=r(2555),o=r(3371),a=r(9908),s=r(7836),c=r(1687),u=r(5289),d=r(6154),l=r(944),f=r(3969),h=r(384),p=r(6344);const g=["setErrorHandler","finished","addToTrace","addRelease","recordCustomEvent","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId","setApplicationVersion","start",p.G4.RECORD,p.G4.PAUSE,"log","wrapLogger"],m=["setErrorHandler","finished","addToTrace","addRelease"];var v=r(1863),b=r(2614),y=r(993),w=r(3785),R=r(2646),x=r(3434);const E=new Map;function T(e,t,r,n){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const i=function(e){return(e||s.ee).get("logger")}(e),o=(0,x.YM)(i),a=new R.y(s.P);a.level=n.level,a.customAttributes=n.customAttributes;const c=t[r]?.[x.Jt]||t[r];return E.set(c,a),o.inPlace(t,[r],"wrap-logger-",(()=>E.get(c))),i}function A(){const e=(0,h.pV)();g.forEach((t=>{e[t]=(...r)=>function(t,...r){let n=[];return Object.values(e.initializedAgents).forEach((e=>{e&&e.api?e.exposed&&e.api[t]&&n.push(e.api[t](...r)):(0,l.R)(38,t)})),n.length>1?n:n[0]}(t,...r)}))}const S={};var N=r(9417),_=r(5603),O=r(5284);const I=e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e};let P=!1;function j(e,t={},g,R){let{init:x,info:E,loader_config:j,runtime:C={},exposed:k=!0}=t;C.loaderType=g;const L=(0,h.pV)();E||(x=L.init,E=L.info,j=L.loader_config),(0,N.xN)(e.agentIdentifier,x||{}),(0,_.a)(e.agentIdentifier,j||{}),E.jsAttributes??={},d.bv&&(E.jsAttributes.isWorker=!0),(0,i.x1)(e.agentIdentifier,E);const H=(0,N.D0)(e.agentIdentifier),M=[E.beacon,E.errorBeacon];P||(H.proxy.assets&&(I(H.proxy.assets),M.push(H.proxy.assets)),H.proxy.beacon&&M.push(H.proxy.beacon),A(),(0,h.US)("activatedFeatures",O.B),e.runSoftNavOverSpa&&=!0===H.soft_navigations.enabled&&H.feature_flags.includes("soft_nav")),C.denyList=[...H.ajax.deny_list||[],...H.ajax.block_internal?M:[]],C.ptid=e.agentIdentifier,(0,o.V)(e.agentIdentifier,C),e.ee=s.ee.get(e.agentIdentifier),void 0===e.api&&(e.api=function(e,t,h=!1){t||(0,c.Ak)(e,"api");const g={};var R=s.ee.get(e),x=R.get("tracer");S[e]=b.g.OFF,R.on(p.G4.REPLAY_RUNNING,(t=>{S[e]=t}));var E="api-",A=E+"ixn-";function N(t,r,n,o){const a=(0,i.Vp)(e);return null===r?delete a.jsAttributes[t]:(0,i.x1)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),I(E,n,!0,o||null===r?"session":void 0)(t,r)}function _(){}g.log=function(e,{customAttributes:t={},level:r=y.p_.INFO}={}){(0,a.p)(f.xV,["API/log/called"],void 0,n.K7.metrics,R),(0,w.R)(R,e,t,r)},g.wrapLogger=(e,t,{customAttributes:r={},level:i=y.p_.INFO}={})=>{(0,a.p)(f.xV,["API/wrapLogger/called"],void 0,n.K7.metrics,R),T(R,e,t,{customAttributes:r,level:i})},m.forEach((e=>{g[e]=I(E,e,!0,"api")})),g.addPageAction=I(E,"addPageAction",!0,n.K7.genericEvents),g.recordCustomEvent=I(E,"recordCustomEvent",!0,n.K7.genericEvents),g.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,o.f)(e).customTransaction=(r||"http://custom.transaction")+t,I(E,"setPageViewName",!0)()},g.setCustomAttribute=function(e,t,r=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof t)||null===t)return N(e,t,"setCustomAttribute",r);(0,l.R)(40,typeof t)}else(0,l.R)(39,typeof e)},g.setUserId=function(e){if("string"==typeof e||null===e)return N("enduser.id",e,"setUserId",!0);(0,l.R)(41,typeof e)},g.setApplicationVersion=function(e){if("string"==typeof e||null===e)return N("application.version",e,"setApplicationVersion",!1);(0,l.R)(42,typeof e)},g.start=()=>{try{(0,a.p)(f.xV,["API/start/called"],void 0,n.K7.metrics,R),R.emit("manual-start-all")}catch(e){(0,l.R)(23,e)}},g[p.G4.RECORD]=function(){(0,a.p)(f.xV,["API/recordReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.RECORD,[],void 0,n.K7.sessionReplay,R)},g[p.G4.PAUSE]=function(){(0,a.p)(f.xV,["API/pauseReplay/called"],void 0,n.K7.metrics,R),(0,a.p)(p.G4.PAUSE,[],void 0,n.K7.sessionReplay,R)},g.interaction=function(e){return(new _).get("object"==typeof e?e:{})};const O=_.prototype={createTracer:function(e,t){var r={},i=this,o="function"==typeof t;return(0,a.p)(f.xV,["API/createTracer/called"],void 0,n.K7.metrics,R),h||(0,a.p)(A+"tracer",[(0,v.t)(),e,r],i,n.K7.spa,R),function(){if(x.emit((o?"":"no-")+"fn-start",[(0,v.t)(),i,o],r),o)try{return t.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw x.emit("fn-err",[arguments,this,t],r),t}finally{x.emit("fn-end",[(0,v.t)()],r)}}}};function I(e,t,r,i){return function(){return(0,a.p)(f.xV,["API/"+t+"/called"],void 0,n.K7.metrics,R),i&&(0,a.p)(e+t,[r?(0,v.t)():performance.now(),...arguments],r?null:this,i,R),r?void 0:this}}function P(){r.e(478).then(r.bind(r,8778)).then((({setAPI:t})=>{t(e),(0,c.Ze)(e,"api")})).catch((e=>{(0,l.R)(27,e),R.abort()}))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{O[e]=I(A,e,void 0,h?n.K7.softNav:n.K7.spa)})),g.setCurrentRouteName=h?I(A,"routeName",void 0,n.K7.softNav):I(E,"routeName",!0,n.K7.spa),g.noticeError=function(t,r){"string"==typeof t&&(t=new Error(t)),(0,a.p)(f.xV,["API/noticeError/called"],void 0,n.K7.metrics,R),(0,a.p)("err",[t,(0,v.t)(),!1,r,!!S[e]],void 0,n.K7.jserrors,R)},d.RI?(0,u.GG)((()=>P()),!0):P(),g}(e.agentIdentifier,R,e.runSoftNavOverSpa)),void 0===e.exposed&&(e.exposed=k),P=!0}},8374:(e,t,r)=>{r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860:(e,t,r)=>{"use strict";r.d(t,{$J:()=>u,K7:()=>s,P3:()=>c,XX:()=>i,qY:()=>n,v4:()=>a});const n="events",i="jserrors",o="browser/blobs",a="rum",s={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations",spa:"spa"},c={[s.pageViewEvent]:1,[s.pageViewTiming]:2,[s.metrics]:3,[s.jserrors]:4,[s.spa]:5,[s.ajax]:6,[s.sessionTrace]:7,[s.softNav]:8,[s.sessionReplay]:9,[s.logging]:10,[s.genericEvents]:11},u={[s.pageViewEvent]:a,[s.pageViewTiming]:n,[s.ajax]:n,[s.spa]:n,[s.softNav]:n,[s.metrics]:i,[s.jserrors]:i,[s.sessionTrace]:o,[s.sessionReplay]:o,[s.logging]:"browser/logs",[s.genericEvents]:"ins"}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>({212:"nr-spa-compressor",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.281.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA-1.281.0.PROD:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d<u.length;d++){var l=u[d];if(l.getAttribute("src")==r||l.getAttribute("data-webpack")==t+o){s=l;break}}if(!s){c=!0;var f={478:"sha512-jmvAlmjCn64ans8tLueqHRlBI/iWekylsDWb94A77CG0ukSriVDvgD3dThx+XjUSBBBMYhFn8B1a18fViyBPEQ==",249:"sha512-ICY/ZrcytM/86t5KFy+9OAWVYmNNJy10EBtxoSUGjQWuZx53p/eLo+L8HfrGjvHuRHRnutqLTGSnvNttffJkaA==",212:"sha512-pQSn+X/RfBOvx/49HvlghaiXMLhhDQXTi13n1N2XMpDquWJgs9U0pbqE3RbAnYC9nsdaTu/RVGvneEPv1fpCxA=="};(s=document.createElement("script")).charset="utf-8",s.timeout=120,i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",t+o),s.src=r,0!==s.src.indexOf(window.location.origin+"/")&&(s.crossOrigin="anonymous"),f[a]&&(s.integrity=f[a])}e[r]=[n];var h=(t,n)=>{s.onerror=s.onload=null,clearTimeout(p);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},p=setTimeout(h.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=h.bind(null,s.onerror),s.onload=h.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="https://js-agent.newrelic.com/",(()=>{var e={38:0,788:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u<a.length;u++)o=a[u],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},r=self["webpackChunk:NRBA-1.281.0.PROD"]=self["webpackChunk:NRBA-1.281.0.PROD"]||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),(()=>{"use strict";i(8374);var e=i(944),t=i(6344),r=i(9566);class n{agentIdentifier;constructor(){this.agentIdentifier=(0,r.LA)(16)}#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}addPageAction(e,t){return this.#e("addPageAction",e,t)}recordCustomEvent(e,t){return this.#e("recordCustomEvent",e,t)}setPageViewName(e,t){return this.#e("setPageViewName",e,t)}setCustomAttribute(e,t,r){return this.#e("setCustomAttribute",e,t,r)}noticeError(e,t){return this.#e("noticeError",e,t)}setUserId(e){return this.#e("setUserId",e)}setApplicationVersion(e){return this.#e("setApplicationVersion",e)}setErrorHandler(e){return this.#e("setErrorHandler",e)}addRelease(e,t){return this.#e("addRelease",e,t)}log(e,t){return this.#e("log",e,t)}}class o extends n{#e(t,...r){if("function"==typeof this.api?.[t])return this.api[t](...r);(0,e.R)(35,t)}start(){return this.#e("start")}finished(e){return this.#e("finished",e)}recordReplay(){return this.#e(t.G4.RECORD)}pauseReplay(){return this.#e(t.G4.PAUSE)}addToTrace(e){return this.#e("addToTrace",e)}setCurrentRouteName(e){return this.#e("setCurrentRouteName",e)}interaction(){return this.#e("interaction")}wrapLogger(e,t,r){return this.#e("wrapLogger",e,t,r)}}var a=i(860),s=i(9417);const c=Object.values(a.K7);function u(e){const t={};return c.forEach((r=>{t[r]=function(e,t){return!0===(0,s.gD)(t,"".concat(e,".enabled"))}(r,e)})),t}var d=i(425);var l=i(1687),f=i(4234),h=i(5289),p=i(6154),g=i(5270),m=i(7767),v=i(6389);class b extends f.W{constructor(e,t,r=!0){super(e.agentIdentifier,t),this.auto=r,this.abortHandler=void 0,this.featAggregate=void 0,this.onAggregateImported=void 0,!1===e.init[this.featureName].autoStart&&(this.auto=!1),this.auto?(0,l.Ak)(e.agentIdentifier,t):this.ee.on("manual-start-all",(0,v.J)((()=>{(0,l.Ak)(e.agentIdentifier,this.featureName),this.auto=!0,this.importAggregator(e)})))}importAggregator(t,r={}){if(this.featAggregate||!this.auto)return;let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let o;try{if((0,m.V)(this.agentIdentifier)){const{setupAgentSession:e}=await i.e(478).then(i.bind(i,6526));o=e(t)}}catch(t){(0,e.R)(20,t),this.ee.emit("internal-error",[t]),this.featureName===a.K7.sessionReplay&&this.abortHandler?.()}try{if(!this.#t(this.featureName,o))return(0,l.Ze)(this.agentIdentifier,this.featureName),void n(!1);const{lazyFeatureLoader:e}=await i.e(478).then(i.bind(i,6103)),{Aggregate:a}=await e(this.featureName,"aggregate");this.featAggregate=new a(t,r),t.runtime.harvester.initializedAggregates.push(this.featAggregate),n(!0)}catch(t){(0,e.R)(34,t),this.abortHandler?.(),(0,l.Ze)(this.agentIdentifier,this.featureName,!0),n(!1),this.ee&&this.ee.abort()}};p.RI?(0,h.GG)((()=>o()),!0):o()}#t(e,t){switch(e){case a.K7.sessionReplay:return(0,g.SR)(this.agentIdentifier)&&!!t;case a.K7.sessionTrace:return!!t;default:return!0}}}var y=i(6630);class w extends b{static featureName=y.T;constructor(e,t=!0){super(e,y.T,t),this.importAggregator(e)}}var R=i(384);var x=i(9908),E=i(2843),T=i(3878),A=i(782),S=i(1863);class N extends b{static featureName=A.T;constructor(e,t=!0){super(e,A.T,t),p.RI&&((0,E.u)((()=>(0,x.p)("docHidden",[(0,S.t)()],void 0,A.T,this.ee)),!0),(0,T.sp)("pagehide",(()=>(0,x.p)("winPagehide",[(0,S.t)()],void 0,A.T,this.ee))),this.importAggregator(e))}}var _=i(3969);class O extends b{static featureName=_.TZ;constructor(e,t=!0){super(e,_.TZ,t),this.importAggregator(e)}}var I=i(6774),P=i(3304);class j{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,P.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function C(e){return H(e)?e:new j(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic)}function k(e){const t="Unhandled Promise Rejection";if(!e?.reason)return;if(H(e.reason))try{return e.reason.message=t+": "+e.reason.message,C(e.reason)}catch(t){return C(e.reason)}const r=C(e.reason);return r.message=t+": "+r?.message,r}function L(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new j(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic);return t.name=SyntaxError.name,t}return H(e.error)?e.error:C(e)}function H(e){return e instanceof Error&&!!e.stack}class M extends b{static featureName=I.T;#r=!1;constructor(e,r=!0){super(e,I.T,r);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",((e,t)=>{this.abortHandler&&(0,x.p)("ierr",[C(e),(0,S.t)(),!0,{},this.#r,t],void 0,this.featureName,this.ee)})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.#r=e})),p.gm.addEventListener("unhandledrejection",(e=>{this.abortHandler&&(0,x.p)("err",[k(e),(0,S.t)(),!1,{unhandledPromiseRejection:1},this.#r],void 0,this.featureName,this.ee)}),(0,T.jT)(!1,this.removeOnAbort?.signal)),p.gm.addEventListener("error",(e=>{this.abortHandler&&(0,x.p)("err",[L(e),(0,S.t)(),!1,{},this.#r],void 0,this.featureName,this.ee)}),(0,T.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var D=i(8990);let K=1;const U="nr@id";function V(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===p.gm?0:(0,D.I)(e,U,(function(){return K++}))}function G(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,P.A)(e).length}catch(e){return}}}var F=i(8139),B=i(7836),W=i(3434);const z={},q=["open","send"];function Z(t){var r=t||B.ee;const n=function(e){return(e||B.ee).get("xhr")}(r);if(void 0===p.gm.XMLHttpRequest)return n;if(z[n.debugId]++)return n;z[n.debugId]=1,(0,F.u)(r);var i=(0,W.YM)(n),o=p.gm.XMLHttpRequest,a=p.gm.MutationObserver,s=p.gm.Promise,c=p.gm.setInterval,u="readystatechange",d=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],l=[],f=p.gm.XMLHttpRequest=function(t){const r=new o(t),a=n.context(r);try{n.emit("new-xhr",[r],a),r.addEventListener(u,(s=a,function(){var e=this;e.readyState>3&&!s.resolved&&(s.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,d,"fn-",y)}),(0,T.jT)(!1))}catch(t){(0,e.R)(15,t);try{n.emit("internal-error",[t])}catch(e){}}var s;return r};function h(e,t){i.inPlace(t,["onreadystatechange"],"fn-",y)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,f),f.prototype=o.prototype,i.inPlace(f.prototype,q,"-xhr-",y),n.on("send-xhr-start",(function(e,t){h(e,t),function(e){l.push(e),a&&(g?g.then(b):c?c(b):(m=-m,v.data=m))}(t)})),n.on("open-xhr-start",h),a){var g=s&&s.resolve();if(!c&&!s){var m=1,v=document.createTextNode(m);new a(b).observe(v,{characterData:!0})}}else r.on("fn-end",(function(e){e[0]&&e[0].type===u||b()}));function b(){for(var e=0;e<l.length;e++)h(0,l[e]);l.length&&(l=[])}function y(e,t){return t}return n}var Y="fetch-",X=Y+"body-",J=["arrayBuffer","blob","json","text","formData"],Q=p.gm.Request,ee=p.gm.Response,te="prototype";const re={};function ne(e){const t=function(e){return(e||B.ee).get("fetch")}(e);if(!(Q&&ee&&p.gm.fetch))return t;if(re[t.debugId]++)return t;function r(e,r,n){var i=e[r];"function"==typeof i&&(e[r]=function(){var e,r=[...arguments],o={};t.emit(n+"before-start",[r],o),o[B.P]&&o[B.P].dt&&(e=o[B.P].dt);var a=i.apply(this,r);return t.emit(n+"start",[r,e],a),a.then((function(e){return t.emit(n+"end",[null,e],a),e}),(function(e){throw t.emit(n+"end",[e],a),e}))})}return re[t.debugId]=1,J.forEach((e=>{r(Q[te],e,X),r(ee[te],e,X)})),r(p.gm,"fetch",Y),t.on(Y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(Y+"done",[null,r],n)}else t.emit(Y+"done",[e],n)})),t}var ie=i(7485),oe=i(5603);class ae{constructor(e){this.agentIdentifier=e}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var t=(0,oe.o)(this.agentIdentifier);if(!t)return null;var n=(t.accountID||"").toString()||null,i=(t.agentID||"").toString()||null,o=(t.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,r.ZF)(),s=(0,r.el)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof p.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,P.A)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1,r={};if((0,s.gD)(this.agentIdentifier,"distributed_tracing")&&(r=(0,s.D0)(this.agentIdentifier).distributed_tracing),e.sameOrigin)t=!0;else if(r.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,ie.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}isDtEnabled(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.enabled}excludeNewrelicHeader(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=(0,s.gD)(this.agentIdentifier,"distributed_tracing");return!!e&&!!e.cors_use_tracecontext_headers}}var se=i(9300),ce=i(7295),ue=["load","error","abort","timeout"],de=ue.length,le=(0,R.dV)().o.REQ,fe=(0,R.dV)().o.XHR;class he extends b{static featureName=se.T;constructor(e,t=!0){super(e,se.T,t),this.dt=new ae(e.agentIdentifier),this.handler=(e,t,r,n)=>(0,x.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};p.gm?.performance?.getEntriesByType("resource").forEach((t=>{if(t.initiatorType in e&&0!==t.responseStatus){const r={status:t.responseStatus},n={rxSize:t.transferSize,duration:Math.floor(t.duration),cbTime:0};pe(r,t.name),this.handler("xhr",[r,n,t.startTime,t.responseEnd,e[t.initiatorType]],void 0,a.K7.ajax)}}))}catch(e){}ne(this.ee),Z(this.ee),function(e,t,r,n){function i(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=R,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){E(t,e)}),(0,T.jT)(!1)),p.lR||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,T.jT)(!1))}function o(e){this.params={method:e[0]},pe(this,e[1]),this.metrics={}}function s(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var i=n.generateTracePayload(this.parsedOrigin);if(i){var o=!1;i.newrelicHeader&&(r.setRequestHeader("newrelic",i.newrelicHeader),o=!0),i.traceContextParentHeader&&(r.setRequestHeader("traceparent",i.traceContextParentHeader),i.traceContextStateHeader&&r.setRequestHeader("tracestate",i.traceContextStateHeader),o=!0),o&&(this.dt=i)}}function c(e,r){var n=this.metrics,i=e[0],o=this;if(n&&i){var a=G(i);a&&(n.txSize=a)}this.startTime=(0,S.t)(),this.body=i,this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof r.onload)&&"function"==typeof o.end)&&o.end(r)}catch(e){try{t.emit("internal-error",[e])}catch(e){}}};for(var s=0;s<de;s++)r.addEventListener(ue[s],this.listener,(0,T.jT)(!1))}function u(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function d(e,t){var r=""+V(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function l(e,t){var r=""+V(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function f(){this.endTime=(0,S.t)()}function h(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-added",[e[1],e[2]],r)}function g(e,r){r instanceof fe&&"load"===e[0]&&t.emit("xhr-load-removed",[e[1],e[2]],r)}function m(e,t,r){t instanceof fe&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,S.t)()))}function v(e,r){this.xhrCbStart&&t.emit("xhr-cb-time",[(0,S.t)()-this.xhrCbStart,this.onload,r],r)}function b(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&p.RI&&(t=""+p.gm.location.href):e[0]&&e[0].url?t=e[0].url:p.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,ie.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var i=n.generateTracePayload(this.parsedOrigin);if(i&&(i.newrelicHeader||i.traceContextParentHeader))if(e[0]&&e[0].headers)s(e[0].headers,i)&&(this.dt=i);else{var o={};for(var a in r)o[a]=r[a];o.headers=new Headers(r.headers||{}),s(o.headers,i)&&(this.dt=i),e.length>1?e[1]=o:e.push(o)}}function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function y(e,t){this.params={},this.metrics={},this.startTime=(0,S.t)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof le?r=i.url:p.gm?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),pe(this,r);var o=(""+(i&&i instanceof le&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.body=n.body,this.txSize=G(n.body)||0}function w(e,t){if(this.endTime=(0,S.t)(),this.params||(this.params={}),(0,ce.iW)(this.params))return;let n;this.params.status=t?t.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);const i={txSize:this.txSize,rxSize:n,duration:(0,S.t)()-this.startTime};r("xhr",[this.params,i,this.startTime,this.endTime,"fetch"],this,a.K7.ajax)}function R(e){const t=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(let t=0;t<de;t++)e.removeEventListener(ue[t],this.listener,!1);t.aborted||(0,ce.iW)(t)||(n.duration=(0,S.t)()-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):E(this,e),n.cbTime=this.cbTime,r("xhr",[t,n,this.startTime,this.endTime,"xhr"],this,a.K7.ajax))}}function E(e,r){e.params.status=r.status;var n=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?G(e.response):"text"===r||""===r||void 0===r?G(e.responseText):void 0}(r,e.lastSize);if(n&&(e.metrics.rxSize=n),e.sameOrigin){var i=r.getResponseHeader("X-NewRelic-App-Data");i&&((0,x.p)(_.rs,["Ajax/CrossApplicationTracing/Header/Seen"],void 0,a.K7.metrics,t),e.params.cat=i.split(", ").pop())}e.loadCaptureCalled=!0}t.on("new-xhr",i),t.on("open-xhr-start",o),t.on("open-xhr-end",s),t.on("send-xhr-start",c),t.on("xhr-cb-time",u),t.on("xhr-load-added",d),t.on("xhr-load-removed",l),t.on("xhr-resolved",f),t.on("addEventListener-end",h),t.on("removeEventListener-end",g),t.on("fn-end",v),t.on("fetch-before-start",b),t.on("fetch-start",y),t.on("fn-start",m),t.on("fetch-done",w)}(e,this.ee,this.handler,this.dt),this.importAggregator(e)}}function pe(e,t){var r=(0,ie.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}const ge={},me=["pushState","replaceState"];function ve(e){const t=function(e){return(e||B.ee).get("history")}(e);return!p.RI||ge[t.debugId]++||(ge[t.debugId]=1,(0,W.YM)(t).inPlace(window.history,me,"-")),t}var be=i(3738);const{He:ye,bD:we,d3:Re,Kp:xe,TZ:Ee,Lc:Te,uP:Ae,Rz:Se}=be;class Ne extends b{static featureName=Ee;constructor(e,t=!0){super(e,Ee,t);if(!(0,m.V)(this.agentIdentifier))return void this.deregisterDrain();const r=this.ee;let n;ve(r),this.eventsEE=(0,F.u)(r),this.eventsEE.on(Ae,(function(e,t){this.bstStart=(0,S.t)()})),this.eventsEE.on(Te,(function(e,t){(0,x.p)("bst",[e[0],t,this.bstStart,(0,S.t)()],void 0,a.K7.sessionTrace,r)})),r.on(Se+Re,(function(e){this.time=(0,S.t)(),this.startPath=location.pathname+location.hash})),r.on(Se+xe,(function(e){(0,x.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,a.K7.sessionTrace,r)}));try{n=new PerformanceObserver((e=>{const t=e.getEntries();(0,x.p)(ye,[t],void 0,a.K7.sessionTrace,r)})),n.observe({type:we,buffered:!0})}catch(e){}this.importAggregator(e,{resourceObserver:n})}}var _e=i(2614);class Oe extends b{static featureName=t.TZ;#i;#o;constructor(e,r=!0){let n;super(e,t.TZ,r),this.replayRunning=!1,this.#o=e;try{n=JSON.parse(localStorage.getItem("".concat(_e.H3,"_").concat(_e.uh)))}catch(e){}(0,g.SR)(e.agentIdentifier)&&this.ee.on(t.G4.RECORD,(()=>this.#a())),this.#s(n)?(this.#i=n?.sessionReplayMode,this.#c()):this.importAggregator(e),this.ee.on("err",(e=>{this.replayRunning&&(this.errorNoticed=!0,(0,x.p)(t.G4.ERROR_DURING_REPLAY,[e],void 0,this.featureName,this.ee))})),this.ee.on(t.G4.REPLAY_RUNNING,(e=>{this.replayRunning=e}))}#s(e){return e&&(e.sessionReplayMode===_e.g.FULL||e.sessionReplayMode===_e.g.ERROR)||(0,g.Aw)(this.agentIdentifier)}#u=!1;async#c(e){if(!this.#u){this.#u=!0;try{const{Recorder:t}=await Promise.all([i.e(478),i.e(249)]).then(i.bind(i,8589));this.recorder??=new t({mode:this.#i,agentIdentifier:this.agentIdentifier,trigger:e,ee:this.ee,agentRef:this.#o}),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording}catch(e){}this.importAggregator(this.#o,{recorder:this.recorder,errorNoticed:this.errorNoticed})}}#a(){this.featAggregate?this.featAggregate.mode!==_e.g.FULL&&this.featAggregate.initializeRecording(_e.g.FULL,!0):(this.#i=_e.g.FULL,this.#c(t.Qb.API),this.recorder&&this.recorder.parent.mode!==_e.g.FULL&&(this.recorder.parent.mode=_e.g.FULL,this.recorder.stopRecording(),this.recorder.startRecording(),this.abortHandler=this.recorder.stopRecording))}}var Ie=i(3962);class Pe extends b{static featureName=Ie.TZ;constructor(e,t=!0){if(super(e,Ie.TZ,t),!p.RI||!(0,R.dV)().o.MO)return;const r=ve(this.ee);Ie.tC.forEach((e=>{(0,T.sp)(e,(e=>{a(e)}),!0)}));const n=()=>(0,x.p)("newURL",[(0,S.t)(),""+window.location],void 0,this.featureName,this.ee);r.on("pushState-end",n),r.on("replaceState-end",n);try{this.removeOnAbort=new AbortController}catch(e){}(0,T.sp)("popstate",(e=>(0,x.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)),!0,this.removeOnAbort?.signal);let i=!1;const o=new((0,R.dV)().o.MO)(((e,t)=>{i||(i=!0,requestAnimationFrame((()=>{(0,x.p)("newDom",[(0,S.t)()],void 0,this.featureName,this.ee),i=!1})))})),a=(0,v.s)((e=>{(0,x.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}),100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,{domObserver:o})}}var je=i(7378);const Ce={},ke=["appendChild","insertBefore","replaceChild"];function Le(e){const t=function(e){return(e||B.ee).get("jsonp")}(e);if(!p.RI||Ce[t.debugId])return t;Ce[t.debugId]=!0;var r=(0,W.YM)(t),n=/[?&](?:callback|cb)=([^&#]+)/,i=/(.*)\.([^.]+)/,o=/^(\w+)(\.|$)(.*)$/;function a(e,t){if(!e)return t;const r=e.match(o),n=r[1];return a(r[3],t[n])}return r.inPlace(Node.prototype,ke,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var o=(s=e.src,c=s.match(n),c?c[1]:null);var s,c;if(!o)return;var u=function(e){var t=e.match(i);if(t&&t.length>=3)return{key:t[2],parent:a(t[1],window)};return{key:e,parent:window}}(o);if("function"!=typeof u.parent[u.key])return;var d={};function l(){t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,T.jT)(!1)),e.removeEventListener("error",f,(0,T.jT)(!1))}function f(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",l,(0,T.jT)(!1)),e.removeEventListener("error",f,(0,T.jT)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",l,(0,T.jT)(!1)),e.addEventListener("error",f,(0,T.jT)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}const He={};function Me(e){const t=function(e){return(e||B.ee).get("promise")}(e);if(He[t.debugId])return t;He[t.debugId]=!0;var r=t.context,n=(0,W.YM)(t),i=p.gm.Promise;return i&&function(){function e(r){var o=t.context(),a=n(r,"executor-",o,null,!1);const s=Reflect.construct(i,[a],e);return t.context(s).getCtx=function(){return o},s}p.gm.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return i.toString()},Object.setPrototypeOf(e,i),["all","race"].forEach((function(r){const n=i[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=i[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=i.prototype;const o=i.prototype.then;i.prototype.then=function(...e){var i=this,a=r(i);a.promise=i,e[0]=n(e[0],"cb-",a,null,!1),e[1]=n(e[1],"cb-",a,null,!1);const s=o.apply(this,e);return a.nextPromise=s,t.emit("propagate",[i,!0],s,!1,!1),s},i.prototype.then[W.Jt]=o,t.on("executor-start",(function(e){e[0]=n(e[0],"resolve-",this,null,!1),e[1]=n(e[1],"resolve-",this,null,!1)})),t.on("executor-err",(function(e,t,r){e[1](r)})),t.on("cb-end",(function(e,r,n){t.emit("propagate",[n,!0],this.nextPromise,!1,!1)})),t.on("propagate",(function(e,r,n){this.getCtx&&!r||(this.getCtx=function(){if(e instanceof Promise)var r=t.context(e);return r&&r.getCtx?r.getCtx():this})}))}(),t}const De={},Ke="setTimeout",Ue="setInterval",Ve="clearTimeout",Ge="-start",Fe=[Ke,"setImmediate",Ue,Ve,"clearImmediate"];function Be(e){const t=function(e){return(e||B.ee).get("timer")}(e);if(De[t.debugId]++)return t;De[t.debugId]=1;var r=(0,W.YM)(t);return r.inPlace(p.gm,Fe.slice(0,2),Ke+"-"),r.inPlace(p.gm,Fe.slice(2,3),Ue+"-"),r.inPlace(p.gm,Fe.slice(3),Ve+"-"),t.on(Ue+Ge,(function(e,t,n){e[0]=r(e[0],"fn-",null,n)})),t.on(Ke+Ge,(function(e,t,n){this.method=n,this.timerDuration=isNaN(e[1])?0:+e[1],e[0]=r(e[0],"fn-",this,n)})),t}const We={};function ze(e){const t=function(e){return(e||B.ee).get("mutation")}(e);if(!p.RI||We[t.debugId])return t;We[t.debugId]=!0;var r=(0,W.YM)(t),n=p.gm.MutationObserver;return n&&(window.MutationObserver=function(e){return this instanceof n?new n(r(e,"fn-")):n.apply(this,arguments)},MutationObserver.prototype=n.prototype),t}const{TZ:qe,d3:Ze,Kp:Ye,$p:Xe,wW:$e,e5:Je,tH:Qe,uP:et,rw:tt,Lc:rt}=je;class nt extends b{static featureName=qe;constructor(e,t=!0){if(super(e,qe,t),!p.RI)return;try{this.removeOnAbort=new AbortController}catch(e){}let r,n=0;const i=this.ee.get("tracer"),o=Le(this.ee),a=Me(this.ee),s=Be(this.ee),c=Z(this.ee),u=this.ee.get("events"),d=ne(this.ee),l=ve(this.ee),f=ze(this.ee);function h(e,t){l.emit("newURL",[""+window.location,t])}function g(){n++,r=window.location.hash,this[et]=(0,S.t)()}function m(){n--,window.location.hash!==r&&h(0,!0);var e=(0,S.t)();this[Je]=~~this[Je]+e-this[et],this[rt]=e}function v(e,t){e.on(t,(function(){this[t]=(0,S.t)()}))}this.ee.on(et,g),a.on(tt,g),o.on(tt,g),this.ee.on(rt,m),a.on($e,m),o.on($e,m),this.ee.on("fn-err",((...t)=>{t[2]?.__newrelic?.[e.agentIdentifier]||(0,x.p)("function-err",[...t],void 0,this.featureName,this.ee)})),this.ee.buffer([et,rt,"xhr-resolved"],this.featureName),u.buffer([et],this.featureName),s.buffer(["setTimeout"+Ye,"clearTimeout"+Ze,et],this.featureName),c.buffer([et,"new-xhr","send-xhr"+Ze],this.featureName),d.buffer([Qe+Ze,Qe+"-done",Qe+Xe+Ze,Qe+Xe+Ye],this.featureName),l.buffer(["newURL"],this.featureName),f.buffer([et],this.featureName),a.buffer(["propagate",tt,$e,"executor-err","resolve"+Ze],this.featureName),i.buffer([et,"no-"+et],this.featureName),o.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),v(d,Qe+Ze),v(d,Qe+"-done"),v(o,"new-jsonp"),v(o,"jsonp-end"),v(o,"cb-start"),l.on("pushState-end",h),l.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,T.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",h,(0,T.jT)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){h(0,n>1)}),(0,T.jT)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e)}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var it=i(3333);class ot extends b{static featureName=it.TZ;constructor(e,t=!0){super(e,it.TZ,t);const r=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.user_actions.enabled,e.init.performance.resources.enabled];if(p.RI&&(e.init.user_actions.enabled&&(it.Zp.forEach((e=>(0,T.sp)(e,(e=>(0,x.p)("ua",[e],void 0,this.featureName,this.ee)),!0))),it.qN.forEach((e=>{const t=(0,v.s)((e=>{(0,x.p)("ua",[e],void 0,this.featureName,this.ee)}),500,{leading:!0});(0,T.sp)(e,t)}))),e.init.performance.resources.enabled&&p.gm.PerformanceObserver?.supportedEntryTypes.includes("resource"))){new PerformanceObserver((e=>{e.getEntries().forEach((e=>{(0,x.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)}))})).observe({type:"resource",buffered:!0})}r.some((e=>e))?this.importAggregator(e):this.deregisterDrain()}}var at=i(993),st=i(3785);class ct extends b{static featureName=at.TZ;constructor(e,t=!0){super(e,at.TZ,t);const r=this.ee;this.ee.on("wrap-logger-end",(function([e]){const{level:t,customAttributes:n}=this;(0,st.R)(r,e,n,t)})),this.importAggregator(e)}}new class extends o{constructor(t){super(),p.gm?(this.features={},(0,R.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(t.features||[]),this.desiredFeatures.add(w),this.runSoftNavOverSpa=[...this.desiredFeatures].some((e=>e.featureName===a.K7.softNav)),(0,d.j)(this,t,t.loaderType||"agent"),this.run()):(0,e.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}run(){try{const t=u(this.agentIdentifier),r=[...this.desiredFeatures];r.sort(((e,t)=>a.P3[e.featureName]-a.P3[t.featureName])),r.forEach((r=>{if(!t[r.featureName]&&r.featureName!==a.K7.pageViewEvent)return;if(this.runSoftNavOverSpa&&r.featureName===a.K7.spa)return;if(!this.runSoftNavOverSpa&&r.featureName===a.K7.softNav)return;const n=function(e){switch(e){case a.K7.ajax:return[a.K7.jserrors];case a.K7.sessionTrace:return[a.K7.ajax,a.K7.pageViewEvent];case a.K7.sessionReplay:return[a.K7.sessionTrace];case a.K7.pageViewTiming:return[a.K7.pageViewEvent];default:return[]}}(r.featureName).filter((e=>!(e in this.features)));n.length>0&&(0,e.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)}))}catch(t){(0,e.R)(22,t);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,R.Zm)();delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return r.ee.get(this.agentIdentifier).abort(),!1}}}({features:[he,w,N,Ne,Oe,O,M,ot,ct,Pe,nt],loaderType:"spa"})})()})();</script> <meta name="apple-itunes-app" content="app-id=1448679530, app-argument=https://www.ikea.co.id/in"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, shrink-to-fit=no"> <title>IKEA Indonesia - Jual Perabot Rumah &amp; Furnitur Kantor Online</title> <meta name="description" content="Beli Online Perabotan IKEA dengan Desain dan Harga Terbaik. Lihat Furniture Rumah Tangga dan Kantor. Ada Cicilan 0% &amp; 90 Hari Pengembalian. Belanja Sekarang!"> <meta property="og:title" content="IKEA Indonesia - Jual Perabot Rumah &amp; Furnitur Kantor Online" /> <meta property="og:description" content="Beli Online Perabotan IKEA dengan Desain dan Harga Terbaik. Lihat Furniture Rumah Tangga dan Kantor. Ada Cicilan 0% &amp; 90 Hari Pengembalian. Belanja Sekarang!" /> <meta property="og:type" content="website" /> <meta property="og:image" content="https://www.ikea.co.id/inwebroot/img/logos/IKEA_logo.svg" /> <meta property="og:url" content="https://www.ikea.co.id/in"/> <meta property="og:site_name" content="IKEA Indonesia" /> <link rel="canonical" href="https://www.ikea.co.id/in" /> <link rel="alternate" hreflang="id-id" href="https://www.ikea.co.id/in"> <link rel="alternate" hreflang="en-us" href="https://www.ikea.co.id/en"> <meta name="twitter:card" content="summary" /> <meta name="twitter:site" content="@IKEA_Ind" /> <meta name="twitter:creator" content="@IKEA_Ind" /> <meta name="p:domain_verify" content="1212924eb600aac7b235b6d2bfcbfdf2"/> <link rel="icon" href="/webroot/img/favicon_16px.png"/> <link rel="icon" href="/webroot/img/favicon_32px.png"/> <link rel="icon" href="/webroot/img/favicon_48px.png"/> <style>.async-hide { opacity: 0 !important }</style> <script> try{ // GA4 WebTracking window.dataLayer = window.dataLayer || []; let userId = 0; let page_name = (document.location.pathname.includes("checkout")) ? 'Checkout' : document.title; ga_ecommerce_events.page_view({ page_name: page_name, user_id: (((typeof userId !== 'undefined') && (userId !== null)) ? userId.toString() : '0') }); } catch (error) {} ( function (a,s,y,n,c,h,i,d,e){s.className+= ' ' +y; h.end=i= function (){s.className=s.className.replace( RegExp ( ' ?' +y), '' )}; (a[n]=a[n]||[]).hide=h;setTimeout( function (){i();h.end= null },c); })(window, document .documentElement, 'async-hide', 'dataLayer', 4000,{ 'GTM-PZQ5DRN': true}); window.dataLayer = window.dataLayer || []; window.dataLayer.push({ userId: 0 || 0 }); (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl+ '&gtm_auth='+'R-z9I8AAYZXD6bORF_CoWg'+'&gtm_preview='+'env-2'+'&gtm_cookies_win=x';f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-PZQ5DRN');</script> <script> (function(c,l,a,r,i,t,y){ c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); })(window, document, "clarity", "script", "ih0xcob2b4"); </script> <link media='all' href='/webroot/css/main.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/material-icons/material-icons.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/vendor/fontawesome-6.5.2/all.min.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/vendor/swiper-8.2.4/swiper-bundle.min.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/components/ikea-pictograms.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/components/ikea-icons.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/components/ikea-fundament-icons.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/components/ikea-fundament-icons-v2.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/components/buttons.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/components/loading.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/components/sidenav.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/components/modal.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/components/advices.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/components/prices.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/vendor/busyLoad/busyLoad.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/vendor/icheck/icheck_custom.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/vendor/side-drawer-modal-bootstrap/bootstrap-side-modals.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/vendor/cookieconsent.min.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/plugins/webview/webviewmodal.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/components/toastr.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/views/socialNetworks.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/layout/style-fix.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/components/shoppingCart-tooltip.css?v=1739374061' rel='preload' as='style' onload="this.rel='stylesheet'; this.onload = null" /> <link media='all' href='/webroot/css/components/template_item_counter.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/plugins/skapa-components/cards.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/plugins/skapa-components/block.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/components/listAllRange.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/vendor/slick/slick.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/vendor/slick/slick-theme-custom.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/vendor/slick/sliderMain.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/vendor/jqueryui/jquery-ui-custom.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/views/socialNetworks.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/components/search-algolia/searcher.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/components/search-algolia/searcher.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/views/homepage.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/views/flash_news.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/views/bestDealsBlock.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/views/newIdeasBlock.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/components/template_item_block.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/components/template_item_selector.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/components/template_item_versions.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/components/template_item_counter.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/components/itemInfo.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/components/productList.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/components/inspirationList.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/plugins/item-stickers/item-stickers.css?v=1739374061' rel='stylesheet' /> <script src='/webroot/js/ga_datalayer_events.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/ga_ecommerce_events.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/url.min.js?v=1739374061' type='text/javascript'></script> <script src="/webroot/js/vendor/lazySizes/ls.rias.min.js" defer></script> <script src="/webroot/js/vendor/lazySizes/lazysizes.min.js" defer></script> <script src="/webroot/js/vendor/lazySizes/ls.optimumx.min.js" defer></script> <script type="text/javascript"> validateURL.main('/in', false); </script> <!-- Facebook --> <meta name="facebook-domain-verification" content="lyz6cl3dz5h20yh6wbrnl0gwx8xfn3" /> <!-- Tiktok Ads --> <!-- <script> !function (w, d, t) { w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i<ttq.methods.length;i++)ttq.setAndDefer(ttq,ttq.methods[i]);ttq.instance=function(t){for(var e=ttq._i[t]||[],n=0;n<ttq.methods.length;n++)ttq.setAndDefer(e,ttq.methods[n]);return e},ttq.load=function(e,n){var i="https://analytics.tiktok.com/i18n/pixel/events.js";ttq._i=ttq._i||{},ttq._i[e]=[],ttq._i[e]._u=i,ttq._t=ttq._t||{},ttq._t[e]=+new Date,ttq._o=ttq._o||{},ttq._o[e]=n||{};var o=document.createElement("script");o.type="text/javascript",o.async=!0,o.src=i+"?sdkid="+e+"&lib="+t;var a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(o,a)}; ttq.load('C0H2QNCP76SVVJ0UR67G'); ttq.page(); }(window, document, 'ttq'); </script> --> <!-- End Tiktok Ads --> <script type="application/ld+json"> {"@context": "http://schema.org", "@type": "Organization", "name": "IKEA Indonesia", "address": { "@type": "PostalAddress", "addressCountry": "Indonesia", "addressLocality": "Tangerang", "addressRegion": "Banten", "postalCode": "15320", "streetAddress": "Alam Sutera, Jl. Jalur Sutera Boulevard No.45, Kunciran, Kec. Pinang" }, "legalName": "PT Rumah Mebel Nusantara", "url": "https://www.ikea.co.id/in", "contactPoint": { "@type": "ContactPoint", "telephone": "+6221-2985-3900", "contactType": "customer service", "email": "mailto:cs@IKEA.co.id" }, "logo": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/logos/IKEA_logo.svg", "sameAs": [ "https://www.facebook.com/IKEAindonesia/", "https://twitter.com/ikea_ind", "https://www.instagram.com/ikea_id/", "https://www.youtube.com/channel/UCK5-jZtp3K3Vl347vYaffLg", "https://www.tiktok.com/@ikea_indonesia", "https://id.wikipedia.org/wiki/IKEA" ] } </script> </head> <body > <a href="/ProdStage" rel="nofollow" style="display: none" aria-hidden="true">https://ddh79d7xh5.execute-api.us-east-1.amazonaws.com</a> <noscript> <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-PZQ5DRN&gtm_auth=R-z9I8AAYZXD6bORF_CoWg&gtm_preview=env-2&gtm_cookies_win=x" height="0" width="0" style="display:none;visibility:hidden"> </iframe> </noscript> <script type="text/javascript">(function(d,e,j,h,f,c,b){d.SurveyGizmoBeacon=f;d[f]=d[f]||function(){(d[f].q=d[f].q||[]).push(arguments)};c=e.createElement(j),b=e.getElementsByTagName(j)[0];c.async=1;c.src=h;b.parentNode.insertBefore(c,b)})(window,document,'script','//www.surveygizmo.eu/runtimejs/intercept/intercept.js','sg_beacon');sg_beacon('init','OTAwMTA2NDMtYjEzMDk2YjJmNDczYWVjZWFmZjViM2Y1YTc5ZjZlYmFmYjI5MWRmZWJjZjU4ZjlkY2M=');</script> <div id="sidenav" class="sidenav"> <div class="card"> <div class="card-header close"> <button type="button" class="close-legend" aria-label="Close" onclick="sidenavHide();"> <span aria-hidden="true"> <span class="icon"></span> <span class="text">Tutup</span> </span> </button> </div> <div class="card-body"> <div class="sidenav-col" data-col="base"></div> </div> </div> </div> <div id="sidenavBlocker"></div> <div id="sidenavWrapper"> <script src='/webroot/js/vendor/vue-2.6.14/vue.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/vendor/vue-observe-visibility.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/vendor/bootstrap-vue-2.22.0/bootstrap-vue.min.js?v=1739374061' type='text/javascript'></script> <style> [v-cloak] > * { display: none !important; } </style> <script type="text/javascript">Vue.options.delimiters = ['${', '}'];</script> <script type="text/x-template" id="inputComponent"> <div v-bind:class="[{'field-with-error': has_error}, container_class]"> <div v-if="top_label.length > 0 && !is_guest()" class="row mb-2"> <div class="col" v-html="top_label"></div> </div> <div v-if="is_tel && show_label"> <div class="row" v-bind:class="{'mb-3': !remove_margin}"> <div class="col collector_delivery_edit"> <div class="form-group macroText-input-group "> <div class="row"> <div class="col"> <label v-bind:id="'tel-label_'+unique_id" class="tel-label">${top_label}</label> <input v-bind:id="unique_id" v-bind:type="input_type" @change="valueChanged" @focus='inputFocus' @blur="inputBlur" v-on:keypress="keyUp" v-bind:data-type="type" class="tel-input form-control " v-bind:name="name" v-bind:placeholder="placeholder" v-bind:maxlength="max_length" v-bind:required="is_required" v-bind:value="value" v-on:input="$emit('input', $event.target.value)" > </div> <slot name="side_button"></slot> <div class="col-12"> <span class="text-danger" v-if='input_error'>${error_message}</span> </div> </div> </div> </div> </div> </div> <div v-else class="row" v-bind:class="{'mb-3': !remove_margin}"> <div class="col collector_delivery_edit"> <div class="form-group macroText-input-group "> <div class="row"> <div class="col"> <float-label :on="is_guest()" v-bind:label="top_label"> <input v-bind:id="unique_id" v-bind:type="input_type" @change="valueChanged" @focus='inputFocus' @blur="inputBlur" v-on:keypress="keyUp" v-bind:data-type="type" class="form-control " v-bind:name="name" v-bind:placeholder="placeholder" v-bind:maxlength="max_length" v-bind:required="is_required" v-bind:value="value" v-on:input="$emit('input', $event.target.value)" > </float-label> </div> <slot name="side_button"></slot> <div class="col-12"> <span class="text-danger" v-if='input_error'>${error_message}</span> </div> </div> </div> </div> </div> </div> </script> <script type='text/javascript'> Vue.component('input-component', { template: '#inputComponent', data: function(){ return { "input_error": this.has_error, "intl_phone": null, "unique_id": this.name+"_"+Math.floor(Math.random() * 1000), "input_type": this.type == "number" ? "text" : this.type, "is_guest": this.is_guest_checkout, "show_label": this.show_float_label, "is_tel": this.type == 'tel' || this.name == 'email_confirm_checkout' }; }, mounted: function() { var self = this; if (this.type == "tel") { const intl_phone = $("#"+this.unique_id); this.intl_phone = window.intlTelInput(intl_phone, { onlyCountries: ["hk", "mo"], utilsScript: "/webroot/js/vendor/intltelinput/utils.js" }); if (this.input_value != undefined && this.input_value.length > 0) { this.setPhoneValue(this.input_value); } intl_phone.addEventListener("countrychange", function(e, country) { self.valueChanged(); }); } }, props: [ "value", "placeholder", "name", "has_error", "error_message", "max_length", "top_label", "is_required", "type", "container_class", "remove_margin" ], methods: { valueChanged: function() { var value = this.value; if (this.type == "tel") { value = this.intl_phone.getNumber(); this.setValue(value); } this.$emit('change', value); }, inputFocus: function() { this.addInputStyle(); this.$emit('inputfocus', this.value); }, inputBlur: function() { this.resetInputsStyle(); this.$emit('inputblur', this.value); }, keyUp: function(e) { switch(this.type) { case "number": var val = /[0-9]+/g.exec(this.input_value); this.input_value = val != undefined ? val[0] : ""; break; case "tel": var value = this.intl_phone.getNumber(); value = checkPhoneLength(value); if (value != this.intl_phone.getNumber()) { this.setPhoneValue(value); } this.setValue(value); break; } }, setValue: function(value) { this.$emit('input', value); }, setPhoneValue: function(phone_value) { try { this.intl_phone.setNumber(phone_value); } catch(e) {} }, is_guest_checkout: function() { return (window.location.href.includes('checkout/guest') || document.getElementById('checkout') !== null); }, show_float_label: function() { return window.location.href.includes('shoppingcart'); }, addInputStyle: function() { let input = document.getElementById(this.unique_id); if (this.is_tel) { input.classList.add('pt-4'); input.placeholder = ''; let label = document.getElementById('tel-label_'+this.unique_id); label.classList.add('tel-label-floating'); if (this.name == 'email_confirm_checkout') { label.style.paddingLeft = ".7rem"; } } else { input.previousElementSibling.style.opacity = 1; } }, resetInputsStyle: function() { let input = document.getElementById(this.unique_id); let floatLabel = $('#'+this.unique_id).siblings()[0]; floatLabel.classList.remove('vfl-label-on-input', 'vfl-label-on-focus'); if (this.is_tel) { this.resetTelInputStyle(input); } else { floatLabel.style.opacity = (input.value.length > 0) ? 1 : 0; } input.placeholder = this.placeholder; if (input.value.length === 0) { input.classList.remove('pt-4'); } }, resetTelInputStyle: function(input) { let telFloatLabel = document.getElementById('tel-label_'+this.unique_id); if (input.value.length === 0) { telFloatLabel.classList.remove('tel-label-floating'); } } }, watch: { has_error: function(val) { this.input_error = val; }, value: function(val) { if (this.type == "tel") { var inp_value = this.intl_phone.getNumber(); if (inp_value != val) { try { this.intl_phone.setCountry(val); } catch(e) {} } } } } }); </script> <script type="text/x-template" id="selectComponent"> <div class="w-100" v-bind:class="container_class+' '+ (has_error ? 'field-with-error' : '')" > <div v-if="top_label.length > 0" class="row mb-2"> <div class="col-auto" v-html="top_label"> </div> </div> <div class="row mb-3"> <div class="col py-0 collector_delivery_edit"> <div class="form-group"> <select ref='select' @focus='inputFocus' class="form-control select2 w-100" v-bind:name="name" v-bind:placeholder="placeholder" v-model='input_value' v-bind:required="is_required" > </select> </div> </div> <slot name="side_button"></slot> <div class="col-12"> <span class="text-danger" v-if='input_error'>${error_message}</span> </div> </div> </div> </script> <script type='text/javascript'> Vue.component('select-component', { template: '#selectComponent', data: function(){ return { "input_error" : this.has_error }; }, mounted: function() { this.updateOptions(); this.initListeners(); }, props: ["value", "placeholder", "name", "has_error", "error_message", "top_label", "is_required", "container_class", "options"], methods: { valueChanged: function(val){ this.$emit('change', val); }, inputFocus: function(){ this.$emit('inputfocus', this.value); }, updateOptions:function(){ var self = this; $.each(this.options, function(k,v){ if(v.value == self.value){ v.selected = true; return false; } }); $(this.$refs['select']).empty(); $(this.$refs['select']).select2({ "data": this.options, "width": '100%' }); $(this.$el).find('b[role="presentation"]').hide(); $(this.$el).find('.select2-selection__arrow').append('<i class="fas fa-search"></i><i class="fa icon fa-angle-down mr-2"></i>'); }, initListeners: function(type){ var self = this; $(this.$refs['select']).on('select2:select', function (e) { var data = e.params.data; self.input_value = data.id; }); } }, watch: { has_error: function(val){ this.input_error = val; }, options: function(){ this.updateOptions(); } }, computed: { input_value: { get:function(){ return this.value; }, set:function(val){ this.$emit('input', val); this.valueChanged(val); } } } }); </script> <script type="text/x-template" id="checkboxComponent"> <div v-bind:class="container_class"> <div class="form-group macro_icheckWithLink-input-group" @click="toggleCheck"> <div class="icheckbox_flat-blue" v-bind:class="{'checked':value}"> <ins class="iCheck-helper"></ins> </div> <span v-html='label'></span> </div> </div> </script> <script type='text/javascript'> Vue.component('checkbox-component', { template: '#checkboxComponent', mounted: function() { }, props: ["value", "label", "container_class"], methods: { toggleCheck: function(){ var newValue = !this.value; this.$emit('change', newValue); this.$emit('input', newValue); } } }); </script><script type="text/x-template" id="modalComponent"> <div> <div class="modal-backdrop" v-bind:class="{'fade show': show, 'd-none':!show }"></div> <div class="modal-information modal" tabindex="-1" role="dialog" v-bind:class="{'fade show d-block': show, 'd-none':!show}" @click="toggleModal()"> <div class="modal-dialog" v-bind:class="{'modal-lg':(size=='lg'),'modal-md':(size=='md'),'modal-sm':(size == 'sm'),'modal-xl':(size == 'xl'),'modal-full':(size == 'full') }" role="document" @click="stopPropagation"> <div class="modal-content"> <div class="modal-header" v-if="!hide_header"> <slot name="header"></slot> </div> <div class="modal-body"> <slot></slot> <div class="clearfix"></div> </div> <div v-if="!hide_footer" class="modal-footer justify-content-center"> <slot name="footer"> <button @click="toggleModal()" type="button" class="btn btn-secondary" data-dismiss="modal" aria-label="Close">Tutup</button> </slot> </div> </div> </div> </div> </div> </script> <script> Vue.component('modal', { template: '#modalComponent', props: ["value", "show", "size", "hide_header", "hide_footer", "keep_modal_class", "closingFunc"], methods: { toggleModal: function(){ this.$emit('input', !this.show); this.closingFunc?.(); }, stopPropagation: (e) => e.stopPropagation() }, watch: { show:function(val){ const preventDefault = (e) => e.preventDefault(); if(val || this.keep_modal_class){ modalScrollY = window.scrollY; $('body').addClass('modal-open'); $(document).on('pointermove', '.modal-information, .modal-sidenav', preventDefault); }else{ $('body').removeClass('modal-open'); $(document).off('pointermove', '.modal-information, .modal-sidenav', preventDefault); window.scrollTo(0, scrollY); } } } }); </script><script type="text/x-template" id="selectCustomComponent"> <div class="w-100" v-bind:class="container_class"> <div class='row'> <div class="col py-0 collector_delivery_edit"> <div class="itemSelector"> <div class="content" > <div class="selected-box" data-selected="" @click='toggleEdition()'> <label for="">Address</label> <strong class="value" data-value="">${getLabel(input_value)}</strong> <span class="icon fundament-icon-chevron-down" v-bind:style="toggled ? 'transform: rotate(0deg);' : 'transform: rotate(180deg);'"></span> </div> <ul class="options-box" data-select="" v-bind:style="toggled ? 'display:block;' : 'display:none;'"> <li v-for='option in options' class="item " @click='valueChanged(option)'> ${getLabel(option)} </li> </ul> </div> </div> </div> </div> </div> </script> <script type='text/javascript'> Vue.component('select-custom-component', { template: '#selectCustomComponent', data: function(){ return { toggled: false }; }, mounted: function() { }, props: ["value", "placeholder", "name_prop", "container_class", "options", "default_label"], methods: { toggleEdition: function(){ this.toggled = !this.toggled; }, valueChanged: function(option){ this.toggleEdition(); this.input_value = option; this.$emit('change', option); }, getLabel: function(option){ var label = ""; if(option == undefined){ label = "Select an option"; }else if(option[this.name_prop] != undefined){ label = option[this.name_prop]; if(option.default != undefined && JSON.parse(option.default)){ label += " "+this.default_label; } }else{ label = option['name']; } return label; } }, computed: { input_value: { get:function(){ return this.value; }, set:function(val){ this.$emit('input', val); } } } }); </script> <link media='all' href='/webroot/css/layout/headerMain.css?v=1739374061' rel='stylesheet' /> <link media='all' href='/webroot/css/plugins/sidebar-main-menu.css?v=1739374061' rel='stylesheet' /> <aside id="sidebar-main-menu"> <div class="sidebar-header"> <div class="logo"> <a href="/in"> <img src="/webroot/img/logos/IKEA_logo.svg?v=1739374061" class="d-inline-block" alt="IKEA" /> </a> </div> <div class="dismiss"> <i class="fas fa-times"></i> </div> <div class="arrow-back d-none"> <i class="fas fa-arrow-left"></i> </div> </div> <div class="sidebar-wrapper "> <div class="content"> <div class="sidebar-menu main"> <ul class="list-unstyled components"> <li class="active"> <div class='sidebar-menu-main-heading'><b><a id="sm-products-btn">Produk</a></b></div> </li> <li> <div class='sidebar-menu-main-heading'><b><a id="sm-rooms-btn">Ruangan</a></b></div> </li> <li class="header_menu_item"> <div> <a href="/in/penawaran">Promo</a> </div> </li> <li class="header_menu_item"> <div> <a href="/in/penawaran/flash-sale">Online flash sale</a> </div> </li> <li class="header_menu_item"> <div> <a href="/in/ikea-untuk-bisnis">IKEA for Business</a> </div> </li> <li class="header_menu_item"> <div> <a href="/in/design-interior">Layanan Desain Interior</a> </div> </li> <li class="subheader_menu_item"> <a href="/in/inspirasi">Inspirasi</a> </li> <li class="subheader_menu_item"> <a href="/in/alat-perencana">Program perencanaan</a> </li> <li class="subheader_menu_item"> <a href="/in/trackandtrace">Lacak Pengiriman Online</a> </li> <li class="subheader_menu_item"> <a href="/in/lokasi-kami">Informasi Toko</a> </li> <li class="subheader_menu_item"> <a href="/in/projects/desain-ruang-gratis">Desain ruang gratis</a> </li> <li class="list-more d-none"> <a href="">Lebih banyak lagi...</a> </li> </ul> </div> <div class="sidebar-menu products d-none"> <div class="sidebar-menu-title"> <b> <a href="/in/produk"> Produk</a> </b> </div> <ul class="list-unstyled components"> <li class="popular_item"> <bold><a href="https://www.ikea.co.id/in/page/newItems">Produk baru</a></bold> </li> <li class="popular_item"> <bold><a href="https://www.ikea.co.id/in/penawaran/produk-terlaris">Produk online terlaris</a></bold> </li> <li class="popular_item"> <bold><a href="https://www.ikea.co.id/in/penawaran/furnitur-dan-perabot-rumah-tangga-murah">Furnitur &amp; perabot rumah tangga murah</a></bold> </li> <li class="popular_item"> <bold><a href="https://www.ikea.co.id/in/produk-wajib-untuk-anak-kost">Produk wajib untuk anak kost</a></bold> </li> <li class="popular_item"> <bold><a href="https://www.ikea.co.id/in/penawaran/home-essentials-untuk-ibu">Perlengkapan sehari-hari untuk seluruh area rumah</a></bold> </li> <li class="popular_item"> <bold><a href="https://www.ikea.co.id/in/harga-furnitur-terendah">Perabotan rumah dibawah Rp 1juta</a></bold> </li> <li class="popular_item"> <bold><a href="https://www.ikea.co.id/in/campaigns/kerja-dari-rumah">Kerja di rumah</a></bold> </li> <li class="range"> <a data-id="682" data-type="ra" class="sidebar-menu-parent">Perabotan</a> </li> <li class="range"> <a data-id="12" data-type="ra" class="sidebar-menu-parent">Ruang kerja</a> </li> <li class="range"> <a data-id="762" data-type="ra" class="sidebar-menu-parent">Produk luar ruang</a> </li> <li class="range"> <a data-id="11" data-type="ra" class="sidebar-menu-parent">Aksesoris dapur dan ruang makan</a> </li> <li class="range"> <a data-id="14" data-type="ra" class="sidebar-menu-parent">Aksesoris laundry &amp; peralatan kebersihan</a> </li> <li class="range"> <a data-id="638" data-type="ra" class="sidebar-menu-parent">Tanaman dan pot tanaman</a> </li> <li class="range"> <a data-id="642" data-type="ra" class="sidebar-menu-parent">Kabinet dapur, peralatan dapur dan kompor</a> </li> <li class="range"> <a data-id="657" data-type="ra" class="sidebar-menu-parent">Dekorasi rumah</a> </li> <li class="range"> <a data-id="685" data-type="ra" class="sidebar-menu-parent">Produk kamar mandi &amp; aksesoris</a> </li> <li class="range"> <a data-id="739" data-type="ra" class="sidebar-menu-parent">Tekstil</a> </li> <li class="range"> <a data-id="699" data-type="ra" class="sidebar-menu-parent">Tempat penyimpanan</a> </li> <li class="range"> <a data-id="720" data-type="ra" class="sidebar-menu-parent">Bayi &amp; anak</a> </li> <li class="range"> <a data-id="733" data-type="ra" class="sidebar-menu-parent">Lampu dan elektronik</a> </li> <li class="list-more d-none"> <a>Lebih banyak lagi...</a> </li> </ul> </div> <div class="sidebar-menu ra d-none"></div> <div class="sidebar-menu pa d-none"></div> <div class="sidebar-menu rooms d-none"> <div class="sidebar-menu-title"><b><a class='' href="/in/ruangan">Ruangan</a></b></div> <ul class="list-unstyled components list-rooms"> <li class="range"> <a href="/in/ruangan/kamar-tidur"> <span class="image-wrapper"> <img width="350" src="https://www.ikea.co.id/dairyfarm/id/range/icons/1657010324_range.png" alt="Kamar tidur" > </span> <span class="room-name"> Kamar tidur </span> </a> </li> <li class="range"> <a href="/in/ruangan/ruang-keluarga"> <span class="image-wrapper"> <img width="350" src="https://www.ikea.co.id/dairyfarm/id/range/icons/1657010347_range.png" alt="Ruang keluarga" > </span> <span class="room-name"> Ruang keluarga </span> </a> </li> <li class="range"> <a href="/in/ruangan/dapur"> <span class="image-wrapper"> <img width="350" src="https://www.ikea.co.id/dairyfarm/id/range/icons/1657010377_range.png" alt="Dapur" > </span> <span class="room-name"> Dapur </span> </a> </li> <li class="range"> <a href="/in/ruangan/ruang-makan"> <span class="image-wrapper"> <img width="350" src="https://www.ikea.co.id/dairyfarm/id/range/icons/1657010528_range.png" alt="Ruang makan" > </span> <span class="room-name"> Ruang makan </span> </a> </li> <li class="range"> <a href="/in/ruangan/ruang-kerja"> <span class="image-wrapper"> <img width="350" src="https://www.ikea.co.id/dairyfarm/id/range/icons/1657010575_range.png" alt="Ruang kerja" > </span> <span class="room-name"> Ruang kerja </span> </a> </li> <li class="range"> <a href="/in/ruangan/kamar-mandi"> <span class="image-wrapper"> <img width="350" src="https://www.ikea.co.id/dairyfarm/id/range/icons/1657010592_range.png" alt="Kamar mandi" > </span> <span class="room-name"> Kamar mandi </span> </a> </li> <li class="range"> <a href="/in/ruangan/dunia-anak"> <span class="image-wrapper"> <img width="350" src="https://www.ikea.co.id/dairyfarm/id/range/icons/1657010613_range.png" alt="Dunia anak" > </span> <span class="room-name"> Dunia anak </span> </a> </li> <li class="range"> <a href="/in/ruangan/luar-ruang"> <span class="image-wrapper"> <img width="350" src="https://www.ikea.co.id/dairyfarm/id/range/icons/1657010628_range.png" alt="Luar ruang" > </span> <span class="room-name"> Luar ruang </span> </a> </li> <li class="range"> <a href="/in/ruangan/laundry"> <span class="image-wrapper"> <img width="350" src="https://www.ikea.co.id/dairyfarm/id/range/icons/1657010642_range.png" alt="Laundry" > </span> <span class="room-name"> Laundry </span> </a> </li> <li class="list-more d-none"> <a href="">Lebih banyak lagi...</a> </li> </ul> </div> </div> <div class="footer"> <div class="sidebar-menu"> <ul class="list-unstyled components userMenu"> <li> <a href="/in/client">Masuk atau Daftar</a> </li> </ul> <ul class="navbar-nav mr-auto pl-lg-4 langSelector"> <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="langSelector" role="button" data-toggle="dropdown">Bahasa</a> <div class="dropdown-menu pl-3 pl-lg-0" aria-labelledby="siteSelector"> <a class="dropdown-item" href="#" data-locale="en_us" data-action="changeLocale"><span>English</span></a> <a class="dropdown-item" href="#" data-locale="id_id" data-action="changeLocale"><span>Bahasa</span></a> </div> </li> </ul> </div> </div> </div> <template id="menu-list-node-parent"> <li class="range"> <a href="" data-id=":id" data-type=":type" class="sidebar-menu-parent">:label</a> </li> </template> <template id="menu-list-node"> <li class="range"> <a href="javascript:void(0)">:label</a> </li> </template> <template id="menu-list-more"> <li class="list-more d-none"> <a href="">Lebih banyak lagi...</a> </li> </template> </aside> <div class="overlay"></div> <header class="container-fluid headerMain"> <nav class="navbar navbar-expand-lg navbar-light px-lg-0 mainNav"> <div class="container-fluid px-0 py-1 py-lg-0"> <a class="navbar-brand d-lg-none pr-1 pl-2" href="/in"> <img src="https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/logos/IKEA_logo.svg" width="160" height="65" class="d-inline-block align-center" alt="IKEA" /> </a> <div class="searcher compact d-lg-none m-0 ml-auto"> <div class="searchIcon" id="searcherDropdown" aria-haspopup="true" aria-expanded="false" data-action="searcherImg" data-type="mobile"></div> <form id="header_searcher_mobile_input_container" method="GET" class='dropdown-menu dropdown-menu-right ml-auto' action="/in/search" onsubmit = 'Searcher.encodeParameters(this)'> <input id="header_searcher_mobile_input" data-action="search" name="q" type="text" class="form-control" value ="" placeholder="Cari..." aria-label="Cari" autocomplete="off"> <input type="hidden" id="search_form_csrf_token" name="csrf_token" data-token=""/> <div id="close-wrapper" class="close-wrapper"></div> </form> </div> <div class="user compact d-lg-none m-0 ml-1 ml-sm-2 user-notification"> <a href=/in/client class="iconUser-lg cart full"> <span class="icon"></span> </a> </div> <div class="favourite compact d-lg-none m-0 ml-1 ml-sm-2 favourites-notification"> <a href="/in/guest/shoppinglist" class="iconFavourite-lg cart full"> <span class="icon fundament-icon-heart"></span> <span class="data"><span id="numItems" style="display: none!important;" >0</span></span> </a> <div class="favourites-dialog shadow" data-content="dialog"> <div class="arrow"></div> <div class="favourites-title"> <p class="title"> <span class="msgShopListItemName">Item</span> telah ditambahkan ke daftar belanja. <a href="/in/guest/shoppinglist"> Lihat </a> </p> </div> </div> </div> <div class="iconShoppingMobile d-lg-none d-block d-lg-none ml-1 ml-sm-2 shoppingCart" > <a href="/in/shoppingcart"> <div id="iconCart-lg" class="cart full"> <div class="items" id="countItemCartMobile" style="display: none!important;" >0</div> </div> </a> </div> <button id="sidebar-main-menu-collapse-mobile" class="navbar-toggler-cross navbar-toggler-right collapsed ml-1 ml-sm-2" type="button" data-target="#headerMainToggler"> <span></span> <span></span> <span></span> </button> <div class="collapse navbar-collapse dflex flex-column" id="headerMainToggler"> <div class="header-menu-services__container w-100"> <div class="container-fluid headerMenuServices"> <div class="container headerMenuServicesContent hide-on-scroll" id="hideOnScroll"> <div class="navbar navbar-light webSelectors d-none d-xl-flex pl-2"> <div class="languageSelector"> <a class="language" href="#" data-locale="en_us" data-action="changeLocale"><span>en</span></a> <a class="language active" href="#" data-locale="id_id" data-action="changeLocale"><span>id</span></a> </div> </div> <ul class="navbar navbar-nav servicesList mr-lg-auto ml-lg-auto py-0 px-0 align-items-start"> <li class="nav-item"> <a class="nav-link text-blue-IKEA" href="/in/inspirasi">Inspirasi</a> </li> <li class="nav-item"> <a class="nav-link text-blue-IKEA" href="/in/alat-perencana">Program perencanaan</a> </li> <li class="nav-item"> <a class="nav-link text-blue-IKEA iconHeader picto-where-are-we" href="/in/trackandtrace">Lacak Pengiriman Online</a> </li> <li class="nav-item"> <a class="nav-link text-blue-IKEA iconHeader picto-where-are-we" href="/in/lokasi-kami">Informasi Toko</a> </li> <li class="nav-item"> <a class="nav-link text-blue-IKEA" href="/in/projects/desain-ruang-gratis">Desain ruang gratis</a> </li> </ul> </div> </div> </div> <div class="container-fluid m-0 p-0 d-flex flex-column"> <div class="container headerMenuProducts"> <span id="sidebar-main-menu-collapse"> <i class="icon fundament-icon-menu" type="button"></i> </span> <a class="navbar-brand d-none d-lg-block pr-2 pl-2" href="/in"> <img src="https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/logos/IKEA_logo.svg" width="160" height="65" class="d-inline-block" alt="IKEA" /> </a> <div class="d-none d-lg-block m-0 searcher-container"> <div class="searcher"> <div class="input-group"> <form id="header_searcher_desktop_input_container" method="GET" class='mb-0' action="/in/search" onsubmit = 'Searcher.encodeParameters(this)'> <input id="header_searcher_desktop_input" data-action="search" name="q" type="text" class="form-control" value ="" placeholder="Cari..." aria-label="Cari" autocomplete="off"> <input type="hidden" id="search_form_csrf_token" name="csrf_token" data-token=""/> <div id="close-wrapper" class="close-wrapper"></div> </form> <div class="input-group-append"> <button class="btn searchIcon" type="submit" form="header_searcher_desktop_input_container" data-type="desktop"></button> </div> </div> </div> </div> <div class="d-none d-lg-flex icons-container"> <div class="d-none d-lg-block ml-3 user-notification"> <a href=/in/client class="iconUser-lg auto_menu_ac cart"> <span class="icon"></span> </a> </div> <div class="d-none d-lg-block ml-2 favourites-notification"> <a href="/in/guest/shoppinglist" class="iconFavourite-lg cart full"> <span class="icon fundament-icon-heart"></span> <span class="data"><span id="numItems" style="display: none!important;" >0</span></span> </a> <div class="favourites-dialog shadow" data-content="dialog"> <div class="arrow"></div> <div class="favourites-title"> <p class="title"> <span class="msgShopListItemName">Item</span> telah ditambahkan ke daftar belanja. <a href="/in/guest/shoppinglist"> Lihat </a> </p> </div> </div> </div> <div id="shopping-cart-main" @mouseover="showCartResume('over')" @mouseleave="showCartResume('leave')"> <div id="iconShoppingDesktop" class=" d-lg-block ml-2 shoppingCart" > <a href="/in/shoppingcart"> <div id="iconCart-lg" class="cart full"> <div id="countItemCart" class="items" :class="{'d-none': hideNumberIcon(0)}">0</div> </div> </a> </div> <shopping-cart-resume-component v-if="hideShoppingcartComponent" v-show="show_cart_resume" :is_family_client="false" @shopping-cart-resume="closeShoppingCartResume" /> </div> </div> </div> </div> <div class="container-fluid container"> <ul class="headerMenuProducts__menu navbar-nav mt-2 mt-lg-0 mr-auto"> <li class="headerMenuProducts__menu--item nav-item dropdown productsMenu"> <a class="nav-link outstanding" href="javascript:void(0)" id="sidebar-menu-products-btn"> <span>Produk</span> </a> </li> <li class="nav-item servicesMenu"> <a class="nav-link outstanding" href="javascript:void(0)" id="sidebar-menu-rooms-btn"> <span>Ruangan</span> </a> </li> <li class="headerMenuProducts__menu--item nav-item d-lg-block"> <a class="nav-link outstanding" href="/in/penawaran">Promo</a> </li> <li class="headerMenuProducts__menu--item nav-item d-lg-block"> <a class="nav-link outstanding" href="/in/penawaran/flash-sale">Online flash sale</a> </li> <li class="headerMenuProducts__menu--item nav-item d-lg-block"> <a class="nav-link outstanding" href="/in/ikea-untuk-bisnis">IKEA for Business</a> </li> <li class="headerMenuProducts__menu--item nav-item d-lg-block"> <a class="nav-link outstanding" href="/in/design-interior">Layanan Desain Interior</a> </li> </ul> </div> </div> </div> </nav> </header> <script src='/webroot/js/vendor/moment.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/vendor/jquery-3.5.1.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/plugins/SidebarMainMenu.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/vendor/moment.min.js?v=1739374061' type='text/javascript'></script> <script type="text/x-template" id="shopping-cart-resume-component-template"> <div id="shopping-cart-resume-component" class="shopping-tooltip" v-cloak style="position: relative;"> <div class="shopping-tooltip--header"> <div class="row"> <div class="col-10"> <h6 class="mb-0">Keranjang belanja</h6> </div> <div class="col-2"> <button type="button" class="close text-white" aria-label="Close" @click="closeShoppingCartResume()"> <span aria-hidden="true">&times;</span> </button> </div> </div> </div> <div class="shopping-tooltip--body"> <template v-if="nProducts > 0"> <ul id="list-shopping-cart-items" class="list-unstyled"> <product-resume-component v-for="(product, index) in products" :key="parseInt(index)" :product="product" :is_favorite="isFavorite(product.id)" :mobile_app="mobile_app" @update-cart="updateCart" /> </ul> </template> <template v-else> Your Shopping Cart is empty. You do not have any products on your shopping list. </template> </div> <div class="shopping-tooltip--footer"> <a href="/in/shoppingcart"> <button class="btn btn--large btn--blue d-block w-100">Lihat keranjang</button> </a> </div> </div> </script> <script type='text/javascript'> var shoppingCartResumeComponent = Vue.component('shopping-cart-resume-component', { template: '#shopping-cart-resume-component-template', name: 'shopping-cart-resume-component', data: function(){ return { cartSession: [], favorites: '[]', products: {}, mobile_app: false, nProducts: 0 } }, props : ['is_family_client'], methods: { updateCart: function(purchase = []) { if (purchase.length == 0) { this.products = this.cartSession == null ? this.products : this.cartSession.shopping; } else { this.products = purchase.shopping; } this.favorites = (this.favorites != null) ? ((typeof this.favorites === 'string') ? JSON.parse(this.favorites) : this.favorites) : this.favorites; }, isFavorite:function(idItem) { if ((this.favorites !== null) && (this.favorites.hasOwnProperty(idItem))) { return true; } return false; }, formatPrice: function(priceStr) { let price = priceStr.toString(); let rgx = /(\d+)(\d{3})/; //separating by 3 digits while (rgx.test(price)) { price = price.replace(rgx,`$1.$2`); } return price //984.451 style }, formatUnits: function(units) { let value_unit = ''; let unit = ''; for (var i = 0; i < units.length; i++) { if (!isNaN(units.charAt(i)) && Number.isInteger(parseFloat(units.charAt(i)))) { value_unit += units.charAt(i); } else if (units.charAt(i) != ''){ unit += units.charAt(i); } } if ((value_unit != '') && (unit != '')) { return '/ ' + value_unit + ' ' + unit; } return ''; }, closeShoppingCartResume: function() { this.$emit('shopping-cart-resume'); }, }, mounted(){ let vm = this; vm.updateCart(); eventBusShoppingCart.$on('updateCart', (r) => vm.updateCart(r)); }, watch: { products: { deep: true, handler(products) { if (typeof products != 'undefined' && products && products.length > 0) { // Update this.nProducts this.nProducts = products.length; // Update item quantity in cart icon let totalItemsInCart = products.map((element) => element.quantity).reduce((a, b) => a + b, 0); if ($('#countItemCart').hasClass('d-none')) $('#countItemCart').removeClass('d-none'); $('#countItemCart').text(totalItemsInCart); } else { this.nProducts = 0; if (!$('#countItemCart').hasClass('d-none')) $('#countItemCart').addClass('d-none'); } } }, }, }); </script> <script type="text/x-template" id="product-resume-component-template"> <li> <div class="itemProduct w-100"> <b-row v-bind:data-id="product.id"> <b-col cols="3"> <img class="img-fluid lazyloaded" onerror="/webroot/img/icons/noImage.png?v=2" :data-src="product.url" :src="product.image" @click="trackingGA4" /> </b-col> <b-col cols="7"> <div class="d-flex h-100"> <div class="flex-wrapper d-flex flex-column justify-content-center align-self-md-center align-self-start"> <item-badges-component :product="product" /> <a class="text-dark item-title" :href="product.url" @click="trackingGA4"> <strong>${product.name}</strong> </a> <p>${product.facts}</p> <div class="d-flex partnumber text-left my-1"> <span>${product.partnumber}</span> </div> <div class="itemPriceBox itemPriceBox-container"> <price-component :product="product" /> </div> </div> </div> </b-col> <b-col cols="2"> <div class="order-3 order-md-1 ml-auto d-flex align-items-center justify-content-center"> <remove-item-shopping-component :product="product" @update-cart="updateCart" /> </div> <div class="favorites order-3 order-md-1 ml-auto d-flex align-items-center justify-content-center"> <div class="d-flex justify-content-end"> <add-fav-shopping-component :product="product" :is_favorite="is_favorite" @update-cart="updateCart" /> </div> </div> </b-col> </b-row> <b-row> <b-col cols="6"> <quantity-component v-bind:product="product" @update-cart="updateCart" /> </b-col> <b-col cols="6" class="total-price"> <subtotal-resume-component v-bind:product="product" /> </b-col> </b-row> </div> </li> </script> <script type='text/javascript'> Vue.component('product-resume-component', { template: '#product-resume-component-template', props: { product: { type: Object, required: true }, is_favorite: { type: Boolean, default: false }, mobile_app: { type: Boolean, default: false }, }, data: function() { return { } }, methods: { updateCart: function(purchase) { this.$emit('update-cart', purchase) }, busyLoad: function(action) { $('#shopping-cart-resume-component').busyLoad(action); }, trackingGA4:function(item){ // GA4 website tracking - GTM try{ if (this.product?.gtm && Object.keys(this.product.gtm).length > 0) { this.product.gtm.item_list_id = null; this.product.gtm.item_list_name = 'ShoppingCart resumen modal'; ga_ecommerce_events.select_item({ ecommerce: { value: parseFloat(this.product.gtm.price), currency: 'Rp', items: [this.product.gtm] }, }); } } catch (error) {} }, }, watch: { product: { handler(newValue, oldValue) { this.product = newValue }, deep: true }, }, }); </script> <script type="text/x-template" id="price-component-template"> <div class="itemPriceBox"> <price-family-component v-if="isFamilyPrice()" :product="product" /> <price-activity-component v-else-if="product.is_activity" :product="product" /> <price-offer-component v-else-if="product.is_offer" :product="product" /> <price-bti-component v-else-if="product.bti" :product="product" /> <price-nlp-component v-else-if="product.is_nlp" :product="product" /> <price-normal-component v-else :product="product" /> </div> </script> <script type='text/javascript'> Vue.component('price-component', { template: '#price-component-template', props: { product: { type: [Object, Array], required: true }, }, data: function(){ return {} }, methods: { formatPrice: function(priceStr) { let price = priceStr.toString(); let rgx = /(\d+)(\d{3})/; while (rgx.test(price)) { price = price.replace(rgx,`$1.$2`); } return price }, formatUnits: function(units) { let value_unit = ''; let unit = ''; for (var i = 0; i < units.length; i++) { if (!isNaN(units.charAt(i)) && Number.isInteger(parseFloat(units.charAt(i)))) { value_unit += units.charAt(i); } else if (units.charAt(i) != ''){ unit += units.charAt(i); } } if ((value_unit != '') && (unit != '')) { return '/ ' + value_unit + ' ' + unit; } return ''; }, isFamilyPrice() { return ( this.product.family_price && this.product.family_price > 0 && ( (!this.product.familystartdate && !this.product.familyenddate) || (this.product.familystartdate && this.product.familystartdate && moment().isBetween(this.product.familystartdate, this.product.familyenddate, undefined, '()')) || (this.product.familystartdate && moment().isSameOrAfter(this.product.familystartdate)) ) ) } } }); </script> <script type="text/x-template" id="price-normal-component-template"> <div class="itemPrice-wrapper"> <p class="itemNormalPrice display-6"> <span v-bind:data-price="product.price"> <span class="currency">Rp</span> ${this.$parent.formatPrice(product.price)} </span> <span v-if="product.units" class="units">${this.$parent.formatUnits(product.units)}</span> </p> </div> </script> <script type='text/javascript'> Vue.component('price-normal-component', { template: '#price-normal-component-template', props: { product: { type: Object, required: true }, }, data: function(){ return {} }, }); </script> <script type="text/x-template" id="price-bti-component-template"> <div class="itemPrice-wrapper"> <p class="itemBTI display-6"> <span v-bind:data-price="product.price"> <span class="currency">Rp</span> ${this.$parent.formatPrice(product.price)} </span> <span v-if="product.units != null" class="units">${this.$parent.formatUnits(product.units)}</span> </p> </div> </script> <script type='text/javascript'> Vue.component('price-bti-component', { template: '#price-bti-component-template', props: { product: { type: Object, required: true }, }, data: function(){ return {} }, }); </script> <script type="text/x-template" id="price-nlp-component-template"> <div class="d-flex flex-column"> <div class="itemPriceBox"> <div class="d-flex flex-column"> <p class="itemOldPrice"> <span class="oldValue"> <span class="currency">Rp</span> ${this.$parent.formatPrice(product.hbp_price)} </span> </p> <div class="itemPrice-wrapper"> <p class="itemLowerPrice display-6"> <span v-bind:data-price="product.price"> <span class="currency">Rp</span> ${this.$parent.formatPrice(product.price)} </span> <span v-if="product.units != null" class="units">${this.$parent.formatUnits(product.units)}</span> </p> </div> </div> </div> </div> </script> <script type='text/javascript'> Vue.component('price-nlp-component', { template: '#price-nlp-component-template', props: { product: { type: Object, required: true }, }, data: function(){ return {} }, }); </script> <script type="text/x-template" id="price-activity-component-template"> <div class="d-flex flex-column"> <p class="itemOldPrice mb-2"> <span class="oldValue">Rp ${this.$parent.formatPrice(product.original_price)}</span> </p> <div class="itemPrice-wrapper"> <p class="itemOfferPrice display-6"> <span v-bind:data-price="product.price"> <span class="currency">Rp</span> ${this.$parent.formatPrice(product.price)} </span> <span v-if="product.units" class="units">${this.$parent.formatUnits(product.units)}</span> </p> </div> <div class="activity"> <p class="font-weight-bold font-italic mb-0">${this.activityDate(product.activity_start_date, product.activity_end_date)}</p> <p class="font-italic"> atau selama persediaan masih ada</p> </div> </div> </script> <script type='text/javascript'> Vue.component('price-activity-component', { template: '#price-activity-component-template', props: { product: { type: Object, required: true }, }, data: function(){ return {} }, methods: { activityDate: function(activitystart, activityend) { if (activitystart) { let startactivity = moment(activitystart).format('MMM D, YYYY') let endactivity = '' if(activityend){ endactivity = moment(activityend).format('MMM D, YYYY') } return `${startactivity} - ${endactivity}` } return ''; } } }); </script> <script type="text/x-template" id="price-offer-component-template"> <div class="d-flex flex-column"> <p class="itemOldPrice mb-2"> <span class="oldValue">Rp ${this.$parent.formatPrice(product.original_price)}</span> </p> <div class="itemPrice-wrapper"> <p class="itemOfferPrice display-6"> <span v-bind:data-price="product.price"> <span class="currency">Rp</span> ${this.$parent.formatPrice(product.price)} </span> <span v-if="product.units != null" class="units">${this.$parent.formatUnits(product.units)}</span> </p> </div> </div> </script> <script type='text/javascript'> Vue.component('price-offer-component', { template: '#price-offer-component-template', props: { product: { type: Object, required: true }, }, data: function(){ return {} }, }); </script> <script type="text/x-template" id="price-family-component-template"> <div class="d-flex flex-column"> <div class="itemPrice-wrapper"> <p class="itemFamilyPrice display-6"> <span class="currency">Rp</span> <span v-html="familyPriceHtml"></span> </p> </div> <p class="itemNotFamilyPrice"> <span class="mr-1">Harga normal:</span> <span class="price price--fixed-size"><b v-html="normalPriceHtml"></b></span> </p> <div class="activity" v-if="product.familyStartDate && product.familyEndDate"> <p class="font-italic">Harga berlaku tanggal ${activityDates} atau selama persediaan masih ada</p> </div> </div> </script> <script type='text/javascript'> Vue.component('price-family-component', { template: '#price-family-component-template', props: { product: { type: Object, required: true }, }, methods: { familyActivityDates(familyStartDate,familyEndDate) { if (familyStartDate) { let startactivity = moment(familyStartDate).format('MMM D, YYYY') if (familyEndDate) { let endactivity = moment(familyEndDate).format('MMM D, YYYY') return `${startactivity} - ${endactivity}` } return `${startactivity}` } return ''; }, }, computed: { familyPriceHtml() { return this.$parent.formatPrice(this.product.family_price) }, normalPriceHtml() { return this.$parent.formatPrice(this.product.current_price) }, activityDates() { return this.familyActivityDates(this.product.familyStartDate,this.product.familyEndDate) }, } }); </script> <script type="text/x-template" id="itemBadgesComponent"> <div class="itemBadges"> <template v-if="isFamilyPrice()"> <div id="family" class="itemFamilyLegend"> <span>Harga IKEA Family</span> </div> </template> <template v-else-if="product.is_nlp && !product.activitystartdate"> <div id="lowerPrices" class="badge-new-lower-price-rectangle"> <span>Harga lebih rendah</span> </div> </template> <template v-else-if="product.is_new && !product.is_offer && !product.is_activity"> <div id="new" class="badge-new-rectangle"> <span>Baru</span> </div> </template> </div> </script> <script type='text/javascript'> Vue.component('item-badges-component', { template: '#itemBadgesComponent', props: { product: { type: [Object, Array], required: true } }, data() { return {} }, methods: { isFamilyPrice() { return ( this.product.familyPrice && this.product.familyPrice > 0 && ( (!this.product.familyStartDate && !this.product.familyEndDate) || (this.product.familyStartDate && this.product.familyStartDate && moment().isBetween(this.product.familyStartDate, this.product.familyEndDate, undefined, '()')) || (this.product.familyStartDate && moment().isSameOrAfter(this.product.familyStartDate)) ) ) } }, }); </script> <script type="text/x-template" id="quantity-component-template"> <div class="counter-total__wrap"> <div class="itemCounter" :data-id="product.id" > <span class="value w-100"> <span id="minus" :class="disabledMinus" data-action="minus" @click="setQuantity(product, 'minus')">-</span> <input :class="['val', 'item-quantity_' + product.id]" type="number" autocomplete="off" v-model.lazy="updateQuantity" /> <span :class="disabledPlus" data-action="sum" @click="setQuantity(product, 'sum')">+</span> </span> </div> </div> </script> <script type='text/javascript'> Vue.component('quantity-component', { template: '#quantity-component-template', props: { product: { type: Object, required: true }, }, data: function(){ return {} }, methods: { setQuantity: async function(item, operator) { this.$parent.busyLoad('show'); let items = []; let { id, price, stock, quantity } = item; items.push({"id" : id, "quantity" : (operator === 'sum') ? 1 : -1}); let self = this; let addToCartPromise = RepositoryFactory.get('shoppingcart').addToCart(items); addToCartPromise.then(function (response) { if (response && response.purchase) { self.$emit('update-cart', response.purchase); let itemGA = { name: item.name + '-' + item.facts, id: item.id.toString(), price: item.price, brand: item.name, category: item.full_category, variant: item.type, quantity: 1 }; let product = ga_ecommerce_events.getProductImpression(item); product.item_list_id = null; product.item_list_name = ((document.location.pathname).includes('shoppingcart')) ? 'Shopping Cart' : document.title; if(operator === 'sum'){ GA_datalayer.measureAddToCart(itemGA) try { ga_ecommerce_events.add_to_cart({ ecommerce: { value: ga_ecommerce_events.getValue([product]), currency: 'Rp', add_to_cart_type: 'add_quantity', items: [product], }, }) } catch (error) {} }else{ GA_datalayer.measureRemoveFromCart(itemGA); // GA4 try{ ga_ecommerce_events.remove_from_cart({ ecommerce: { value: product.price, currency: 'Rp', remove_from_cart_type: 'remove_quantity', items: [product], }, }) } catch (error) {} } } self.$parent.busyLoad('hide'); }); }, }, computed: { disabledMinus: function() { return this.product.quantity <= 1 ? 'action br disabled' : 'action br'; }, disabledPlus: function() { return (this.product.quantity == this.product.stock || this.product.quantity == this.product.quantity_limit) ? 'action disabled bl' : 'action'; }, updateQuantity: { get: function () { return this.product.quantity; }, set: async function(newQuantity = 1){ this.$parent.busyLoad('show'); let { id, quantity, stock, quantity_limit } = this.product let self = this; newQuantity = parseInt(newQuantity) // Update product quantity self.product.quantity = newQuantity; // Validate quantity if (newQuantity != null && newQuantity > stock) { self.product.quantity = 1; this.$parent.busyLoad('hide'); toastr.warning(Messages.getText('stock_max_1') + stock + '. ' + Messages.getText('stock_max_2')) } else if (quantity_limit != null && quantity_limit < stock && newQuantity > quantity_limit) { self.product.quantity = 1; this.$parent.busyLoad('hide'); toastr.warning(Messages.parseMessage('limitPerOrder', {'limit': quantity_limit})) } else { // Add to cart promise let itemData = []; itemData.push({id: self.product.id, quantity: newQuantity, typeQuantity : true}); let addToCartPromise = RepositoryFactory.get('shoppingcart').addToCart(itemData); let productGA = ga_ecommerce_events.getProductImpression(self.product); addToCartPromise.then(function (response) { if (response && response.purchase) { self.$emit('update-cart', response.purchase); self.product.quantity = newQuantity; try { if (self.product?.gtm && Object.keys(self.product.gtm).length > 0) { let itemGA = { name: self.product.gtm.item_name, id: self.product.gtm.item_id, price: self.product.gtm.price, brand: self.product.gtm.item_brand, category: self.product.gtm.item_category, variant: self.product.gtm.item_variant }; if (newQuantity > quantity) { itemGA['quantity'] = newQuantity - quantity; GA_datalayer.measureAddToCart(itemGA); // GA4 productGA.quantity = itemGA['quantity']; productGA.item_list_id = null; productGA.item_list_name = ((document.location.pathname).includes('shoppingcart')) ? 'Shopping Cart' : document.title; ga_ecommerce_events.add_to_cart({ ecommerce: { value: ga_ecommerce_events.getValue([productGA]), currency: 'Rp', add_to_cart_type: 'add_quantity', items: [productGA], }, }) } else { itemGA['quantity'] = quantity - newQuantity; GA_datalayer.measureRemoveFromCart(itemGA); // GA4 productGA.quantity = quantity - newQuantity; ga_ecommerce_events.remove_from_cart({ ecommerce: { value: productGA.price, currency: 'Rp', remove_from_cart_type: 'remove_quantity', items: [productGA], }, }) } } } catch(error) {} } else { self.product.quantity = 1; } self.$parent.busyLoad('hide'); }); } }, }, } }); </script> <script type="text/x-template" id="subtotal-resume-component-template"> <div class="total-price__wrap"> <strong class="price-size total-price"> <span class="currency">Rp</span> ${this.formatPrice(totalPrice(product))} </strong> </div> </script> <script type='text/javascript'> Vue.component('subtotal-resume-component',{ template: '#subtotal-resume-component-template', props:{ product: { type: Object, required: true } }, data: function(){ return { } }, methods:{ totalPrice:function(product) { if (product.quantity > 1) { return product.quantity * product.price; } return product.price; }, formatPrice: function(priceStr) { let price = priceStr.toString(); let rgx = /(\d+)(\d{3})/; //separating by 3 digits while (rgx.test(price)) { price = price.replace(rgx,`$1.$2`); } return price } }, }) </script> <script type="text/x-template" id="remove-item-shopping-component-template"> <b-button variant="none" class="toggleFavorites btn no-btn btn-only-icon btn-icon" v-bind:id="'removeShoppingCart_' + product.id" v-bind:data-item="product.id" @click="removeItem()"> <span class="icon fundament-icon-trash-can"></span> </b-button> </script> <script type='text/javascript'> Vue.component('remove-item-shopping-component', { template: '#remove-item-shopping-component-template', props: { product: { type: Object, required: true }, }, data: function () { return { } }, methods: { removeItem: function(){ try{ let product = ga_ecommerce_events.getProductImpression(this.product); ga_ecommerce_events.remove_from_cart({ ecommerce: { value: ga_ecommerce_events.getValue([product]), currency: 'Rp', remove_from_cart_type: 'remove_from_cart', items: [product], }, }) product.quantity = this.product.quantity; product.index = ga_ecommerce_events.getPositionShoppingcart(this.product); } catch (error) {} this.$parent.busyLoad('show'); let self = this; let RemoveItemCartPromise = RepositoryFactory.get('shoppingcart').removeItemCart(self.product.id); RemoveItemCartPromise.then(r => { if (r?.purchase) { self.$emit('update-cart', r.purchase); } self.$parent.busyLoad('hide'); }) } }, }); </script> <script type="text/x-template" id="add-fav-shopping-component-template"> <b-button variant="none" class="toggleFavorites btn no-btn btn-only-icon btn-icon" :id="'addShoppingListResumeModal_' + product.id" :data-item="product.id" @click="moveFavorites()"> <span class="icon fundament-icon-heart" :class="class_heart"></span> </b-button> </script> <script type='text/javascript'> Vue.component('add-fav-shopping-component', { template: '#add-fav-shopping-component-template', props: { product: { type: Object, required: true }, is_favorite: { type: Boolean, required: true }, }, data: function () { return { class_heart: '', favorite: false, } }, methods: { checkFavorite:function(){ if(this.favorite){ this.class_heart = 'fundament-icon-heart-filled'; let itemQty = parseInt($(".headerMain .favourites-notification .iconFavourite-lg").find("#numItems").html().trim()); $(".headerMain .favourites-notification .iconFavourite-lg").find("#numItems").html(itemQty) // PIP if($(`button.addShoppingList[data-item = ${this.product.id}]`).attr('data-action') !== undefined){ $(`button.addShoppingList[data-item = ${this.product.id}][data-action = "addShoppingList"]`).find('span.icon').removeClass().addClass('icon fundament-icon-heart-filled') // PLP }else{ $(`#card_${this.product.id} button#addShoppingList_${this.product.id} `).find('span').removeClass('fundament-icon-heart').addClass('fundament-icon-heart-filled') } }else{ this.class_heart = ''; // PIP if($(`button.addShoppingList[data-item = ${this.product.id}]`).attr('data-action') !== undefined){ $(`button.addShoppingList[data-item = ${this.product.id}][data-action = "addShoppingList"]`).find('span.icon').removeClass().addClass('icon fundament-icon-heart') // PLP }else{ $(`#card_${this.product.id} button#addShoppingList_${this.product.id} `).find('span.icon').removeClass().addClass('fundament-icon-heart') } } }, trackingGA4:function(item){ // GA4 website tracking - GTM try{ if (item?.gtm && Object.keys(item.gtm).length > 0) { let currentView = ''; let element = null; // Shoppingcart = (Algolia) ; Shoppingcart last chance to buy if (document.location.pathname.includes('shoppingcart')) { currentView = 'SHOPPINGCART'; element = this.product.id; } else if (this.$el.attributes['id'].value.includes('addShoppingListResumeModal')) { item.gtm.item_list_name = "ShoppingCart resume modal"; item.gtm.item_list_id = null; } if (currentView.length > 0) { let dataEvent = ga_ecommerce_events.getListNameId(currentView, element); item.gtm.item_list_name = dataEvent['item_list_name']; item.gtm.item_list_id = dataEvent['item_list_id']; } ga_ecommerce_events.add_to_wishlist({ ecommerce: { value: parseFloat(item.gtm.price), currency: 'Rp', items: [item.gtm], }, }); } } catch (error) {} }, moveFavorites:function() { if(this.favorite == false){ let self = this let url = ((typeof loginClientId == 'undefined') || (loginClientId == 0)) ? '/guest/addItemGuestList' : '/ecoclient/addItemList' let addItemShoppingListPromise = RepositoryFactory.get('shoppinglist').addItem(url, JSON.stringify({'idItem': self.product.id})) addItemShoppingListPromise.then(response => { if (response && ($('a.iconFavourite-lg span#numItems').length > 0)) { $('a.iconFavourite-lg span#numItems').html(parseInt($('a.iconFavourite-lg span#numItems').html()) + 1) if(!$(".headerMain .favourites-notification .iconFavourite-lg:visible").find("#numItems").is(':visible')) { $(".headerMain .favourites-notification .iconFavourite-lg:visible").find("#numItems").show(); } self.class_heart = 'fundament-icon-heart-filled' } else { self.class_heart = '' } self.favorite = response self.checkFavorite(); self.trackingGA4(self.product); }); } }, addFavoriteItem: function(itemId) { if (this.product.id == itemId) { this.favorite = true this.checkFavorite() } }, deleteFavoriteItem: function(itemId) { if (this.product.id == itemId) { this.favorite = false this.checkFavorite() } }, }, mounted: function () { this.favorite = this.is_favorite let vm = this vm.checkFavorite() eventBusShoppingCart.$on('addFavoriteItem', (itemId) => vm.addFavoriteItem(itemId)) eventBusShoppingCart.$on('deleteFavoriteItem', (itemId) => vm.deleteFavoriteItem(itemId)) }, }); </script> <script> var eventBusShoppingCart = new Vue(); $(document).ready(function() { SidebarMainMenu.products = {"range_items":[{"id":682,"parentId":0,"active":true,"sort":1,"linkType":"RELATIVE","rangeId":72845,"customMenuId":null,"rangeCode":35,"rangeUrl":null,"locales":[{"localeCode":"en_us","label":"Furniture","link":"\/product\/furniture","image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-en_us-1692604999.jpeg"},{"localeCode":"id_id","label":"Perabotan","link":"\/product\/perabotan","image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-id_id-1692604999.jpeg"}],"children":[{"id":688,"parentId":682,"active":true,"sort":1,"linkType":"RANGE","rangeId":72268,"customMenuId":null,"rangeCode":82,"rangeUrl":"\/produk\/kursi-makan","locales":[{"localeCode":"en_us","label":"Chairs and stools","link":null,"image":null},{"localeCode":"id_id","label":"Kursi dan bangku","link":null,"image":null}],"children":[],"show":true},{"id":689,"parentId":682,"active":true,"sort":2,"linkType":"RANGE","rangeId":72186,"customMenuId":null,"rangeCode":20321,"rangeUrl":"\/produk\/sofa-dan-kursi-berlengan","locales":[{"localeCode":"en_us","label":"Sofas and armchairs","link":null,"image":null},{"localeCode":"id_id","label":"Sofa dan kursi berlengan","link":null,"image":null}],"children":[],"show":true},{"id":690,"parentId":682,"active":true,"sort":3,"linkType":"RANGE","rangeId":71906,"customMenuId":null,"rangeCode":231,"rangeUrl":"\/produk\/perabot-media\/perabot-ruang-tv-dan-media","locales":[{"localeCode":"en_us","label":"TV and media furniture","link":null,"image":null},{"localeCode":"id_id","label":"Meja TV","link":null,"image":null}],"children":[],"show":true},{"id":691,"parentId":682,"active":true,"sort":4,"linkType":"RELATIVE","rangeId":71414,"customMenuId":null,"rangeCode":214,"rangeUrl":null,"locales":[{"localeCode":"en_us","label":"Bookshelf","link":"products\/bookcases\/bookshelf","image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-en_us-1723535292.jpeg"},{"localeCode":"id_id","label":"Rak buku","link":"produk\/lemari-buku\/rak-buku","image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-id_id-1723541004.jpeg"}],"children":[],"show":true},{"id":711,"parentId":682,"active":true,"sort":5,"linkType":"RANGE","rangeId":71903,"customMenuId":null,"rangeCode":22,"rangeUrl":"\/produk\/perabot-display","locales":[{"localeCode":"en_us","label":"Display cabinets and storage systems","link":null,"image":null},{"localeCode":"id_id","label":"Kabinet dan lemari pajangan","link":null,"image":null}],"children":[],"show":true},{"id":712,"parentId":682,"active":true,"sort":6,"linkType":"RANGE","rangeId":72198,"customMenuId":null,"rangeCode":215,"rangeUrl":"\/produk\/rak-penyimpanan\/unit-rak","locales":[{"localeCode":"en_us","label":"Shelving units","link":null,"image":null},{"localeCode":"id_id","label":"Unit rak","link":null,"image":null}],"children":[],"show":true},{"id":979,"parentId":682,"active":true,"sort":7,"linkType":"RELATIVE","rangeId":73588,"customMenuId":null,"rangeCode":241,"rangeUrl":null,"locales":[{"localeCode":"en_us","label":"Secondary storage","link":"products\/secondary-storage\/secondary-storage","image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-en_us-1723535205.jpeg"},{"localeCode":"id_id","label":"Penyimpanan sekunder","link":"produk\/penyimpanan-sekunder\/penyimpanan-sekunder","image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-id_id-1723602540.jpeg"}],"children":[],"show":true},{"id":713,"parentId":682,"active":true,"sort":8,"linkType":"RANGE","rangeId":72200,"customMenuId":null,"rangeCode":213,"rangeUrl":"\/produk\/kabinet-bufet\/lemari-bufet","locales":[{"localeCode":"en_us","label":"Side boards","link":null,"image":null},{"localeCode":"id_id","label":"Lemari bufet","link":null,"image":null}],"children":[],"show":true},{"id":714,"parentId":682,"active":true,"sort":9,"linkType":"RANGE","rangeId":72214,"customMenuId":null,"rangeCode":216,"rangeUrl":"\/produk\/penyimpanan-dinding\/rak-dinding","locales":[{"localeCode":"en_us","label":"Wall shelves","link":null,"image":null},{"localeCode":"id_id","label":"Rak dinding","link":null,"image":null}],"children":[],"show":true},{"id":715,"parentId":682,"active":true,"sort":10,"linkType":"RANGE","rangeId":71930,"customMenuId":null,"rangeCode":521,"rangeUrl":"\/produk\/tempat-tidur\/rangka-tempat-tidur-dan-tempat-tidur-dengan-sandaran-kepala-tanpa-pelapis","locales":[{"localeCode":"en_us","label":"Bed frames","link":null,"image":null},{"localeCode":"id_id","label":"Rangka tempat tidur","link":null,"image":null}],"children":[],"show":true},{"id":786,"parentId":682,"active":true,"sort":11,"linkType":"RANGE","rangeId":71923,"customMenuId":null,"rangeCode":51,"rangeUrl":"\/produk\/kasur-dan-aksesoris","locales":[{"localeCode":"en_us","label":"Mattresses and accessories","link":null,"image":null},{"localeCode":"id_id","label":"Matras dan aksesoris","link":null,"image":null}],"children":[],"show":true},{"id":716,"parentId":682,"active":true,"sort":12,"linkType":"RANGE","rangeId":71919,"customMenuId":null,"rangeCode":432,"rangeUrl":"\/produk\/lemari-berlaci-dan-perabot-lainnya\/meja-samping-tempat-tidur","locales":[{"localeCode":"en_us","label":"Bed side tables","link":null,"image":null},{"localeCode":"id_id","label":"Meja samping tempat tidur","link":null,"image":null}],"children":[],"show":true},{"id":775,"parentId":682,"active":true,"sort":13,"linkType":"RANGE","rangeId":71914,"customMenuId":null,"rangeCode":421,"rangeUrl":"\/produk\/lemari\/lemari-pakaian-modular","locales":[{"localeCode":"en_us","label":"System wardrobes","link":null,"image":null},{"localeCode":"id_id","label":"Lemari pakaian modular","link":null,"image":null}],"children":[],"show":true},{"id":789,"parentId":682,"active":true,"sort":14,"linkType":"RANGE","rangeId":71916,"customMenuId":null,"rangeCode":423,"rangeUrl":"\/produk\/lemari\/lemari-pakaian","locales":[{"localeCode":"en_us","label":"Solitaire wardrobes","link":null,"image":null},{"localeCode":"id_id","label":"Unit lemari pakaian","link":null,"image":null}],"children":[],"show":true},{"id":776,"parentId":682,"active":true,"sort":15,"linkType":"RANGE","rangeId":71920,"customMenuId":null,"rangeCode":431,"rangeUrl":"\/produk\/lemari-berlaci-dan-perabot-lainnya\/lemari-berlaci","locales":[{"localeCode":"en_us","label":"Chest of drawers","link":null,"image":null},{"localeCode":"id_id","label":"Lemari berlaci","link":null,"image":null}],"children":[],"show":true},{"id":777,"parentId":682,"active":true,"sort":16,"linkType":"RANGE","rangeId":73060,"customMenuId":null,"rangeCode":435,"rangeUrl":"\/produk\/lemari-berlaci-dan-perabot-lainnya\/rak-sepatu","locales":[{"localeCode":"en_us","label":"Shoe rack","link":null,"image":null},{"localeCode":"id_id","label":"Rak sepatu","link":null,"image":null}],"children":[],"show":true},{"id":778,"parentId":682,"active":true,"sort":17,"linkType":"RANGE","rangeId":72448,"customMenuId":null,"rangeCode":921,"rangeUrl":"\/produk\/penyimpanan-dan-perlengkapan-belajar-anak\/perabot-penyimpanan-anak","locales":[{"localeCode":"en_us","label":"Children's storage furniture","link":null,"image":null},{"localeCode":"id_id","label":"Lemari penyimpanan pakaian anak","link":null,"image":null}],"children":[],"show":true},{"id":780,"parentId":682,"active":true,"sort":18,"linkType":"RANGE","rangeId":71954,"customMenuId":null,"rangeCode":61,"rangeUrl":"\/produk\/perabot-kamar-mandi","locales":[{"localeCode":"en_us","label":"Bathroom furnitures","link":null,"image":null},{"localeCode":"id_id","label":"Perabot kamar mandi","link":null,"image":null}],"children":[],"show":true},{"id":779,"parentId":682,"active":true,"sort":19,"linkType":"RANGE","rangeId":72275,"customMenuId":null,"rangeCode":81,"rangeUrl":"\/produk\/meja-ruang-makan","locales":[{"localeCode":"en_us","label":"Dining tables","link":null,"image":null},{"localeCode":"id_id","label":"Meja makan","link":null,"image":null}],"children":[],"show":true},{"id":750,"parentId":682,"active":true,"sort":20,"linkType":"RANGE","rangeId":72011,"customMenuId":null,"rangeCode":783,"rangeUrl":"\/produk\/kabinet-dapur\/kabinet-dapur-siap-pakai","locales":[{"localeCode":"en_us","label":"Complete kitchen cabinets","link":null,"image":null},{"localeCode":"id_id","label":"Kabinet dapur siap pakai","link":null,"image":null}],"children":[],"show":true},{"id":751,"parentId":682,"active":true,"sort":21,"linkType":"RANGE","rangeId":72010,"customMenuId":null,"rangeCode":781,"rangeUrl":"\/produk\/kabinet-dapur\/dapur-mini","locales":[{"localeCode":"en_us","label":"Freestanding kitchens","link":null,"image":null},{"localeCode":"id_id","label":"Dapur mini","link":null,"image":null}],"children":[],"show":true},{"id":757,"parentId":682,"active":true,"sort":22,"linkType":"RANGE","rangeId":72087,"customMenuId":null,"rangeCode":782,"rangeUrl":"\/produk\/perlengkapan-dan-aksesoris-dapur\/perabot-kecil-dapur","locales":[{"localeCode":"en_us","label":"Kitchen furniture","link":null,"image":null},{"localeCode":"id_id","label":"Perabot kecil dapur","link":null,"image":null}],"children":[],"show":true},{"id":761,"parentId":682,"active":true,"sort":23,"linkType":"RANGE","rangeId":72389,"customMenuId":null,"rangeCode":171,"rangeUrl":"\/produk\/perabot-luar-ruang","locales":[{"localeCode":"en_us","label":"Outdoor furniture","link":null,"image":null},{"localeCode":"id_id","label":"Perabot luar ruang","link":null,"image":null}],"children":[],"show":true}],"show":true},{"id":12,"parentId":0,"active":true,"sort":2,"linkType":"RANGE","rangeId":72354,"customMenuId":null,"rangeCode":1285,"rangeUrl":"\/ruangan\/ruang-kerja","locales":[{"localeCode":"en_us","label":"Workspace","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-en_us-1692605384.jpeg"},{"localeCode":"id_id","label":"Ruang kerja","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-id_id-1692605384.jpeg"}],"children":[{"id":95,"parentId":12,"active":true,"sort":1,"linkType":"RANGE","rangeId":72359,"customMenuId":null,"rangeCode":34,"rangeUrl":"\/produk\/ruang-kerja-rumah","locales":[{"localeCode":"en_us","label":"Home workspace","link":null,"image":null},{"localeCode":"id_id","label":"Ruang kerja rumah","link":null,"image":null}],"children":[],"show":true},{"id":93,"parentId":12,"active":true,"sort":2,"linkType":"RANGE","rangeId":72355,"customMenuId":null,"rangeCode":35,"rangeUrl":"\/produk\/ruang-kerja-kantor","locales":[{"localeCode":"en_us","label":"Office workspace","link":null,"image":null},{"localeCode":"id_id","label":"Ruang kerja kantor","link":null,"image":null}],"children":[],"show":true},{"id":94,"parentId":12,"active":true,"sort":3,"linkType":"RANGE","rangeId":72372,"customMenuId":null,"rangeCode":181,"rangeUrl":"\/produk\/kotak-penyimpanan-dan-penataan","locales":[{"localeCode":"en_us","label":"Boxes and organisers","link":null,"image":null},{"localeCode":"id_id","label":"Kotak penyimpanan dan penataan","link":null,"image":null}],"children":[],"show":true},{"id":92,"parentId":12,"active":true,"sort":4,"linkType":"RANGE","rangeId":72363,"customMenuId":null,"rangeCode":36,"rangeUrl":"\/produk\/perlengkapan-ruang-kerja","locales":[{"localeCode":"en_us","label":"Complementary work items","link":null,"image":null},{"localeCode":"id_id","label":"Perlengkapan ruang kerja","link":null,"image":null}],"children":[],"show":true},{"id":91,"parentId":12,"active":true,"sort":5,"linkType":"RANGE","rangeId":72366,"customMenuId":null,"rangeCode":20335,"rangeUrl":"\/produk\/lampu-ruang-kerja","locales":[{"localeCode":"en_us","label":"Workspace lighting","link":null,"image":null},{"localeCode":"id_id","label":"Lampu ruang kerja","link":null,"image":null}],"children":[],"show":true},{"id":760,"parentId":12,"active":true,"sort":6,"linkType":"RANGE","rangeId":72478,"customMenuId":null,"rangeCode":954,"rangeUrl":"\/produk\/perlengkapan-tidur-anak\/meja-dan-kursi-anak","locales":[{"localeCode":"en_us","label":"Children's desks & chairs","link":null,"image":null},{"localeCode":"id_id","label":"Meja dan kursi anak","link":null,"image":null}],"children":[],"show":true}],"show":true},{"id":762,"parentId":0,"active":true,"sort":3,"linkType":"RANGE","rangeId":72388,"customMenuId":null,"rangeCode":1287,"rangeUrl":"\/ruangan\/luar-ruang","locales":[{"localeCode":"en_us","label":"Outdoor products","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-en_us-1692605839.jpeg"},{"localeCode":"id_id","label":"Produk luar ruang","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-id_id-1692605839.jpeg"}],"children":[{"id":763,"parentId":762,"active":true,"sort":1,"linkType":"RANGE","rangeId":72397,"customMenuId":null,"rangeCode":1715,"rangeUrl":"\/produk\/perabot-luar-ruang\/kursi-makan-luar-ruang","locales":[{"localeCode":"en_us","label":"Outdoor dining seating","link":null,"image":null},{"localeCode":"id_id","label":"Kursi makan luar ruang","link":null,"image":null}],"children":[],"show":true},{"id":765,"parentId":762,"active":true,"sort":2,"linkType":"RANGE","rangeId":72394,"customMenuId":null,"rangeCode":1711,"rangeUrl":"\/produk\/perabot-luar-ruang\/meja-makan-luar-ruang","locales":[{"localeCode":"en_us","label":"Outdoor dining tables","link":null,"image":null},{"localeCode":"id_id","label":"Meja makan luar ruang","link":null,"image":null}],"children":[],"show":true},{"id":767,"parentId":762,"active":true,"sort":4,"linkType":"RANGE","rangeId":72393,"customMenuId":null,"rangeCode":1712,"rangeUrl":"\/produk\/perabot-luar-ruang\/sofa-luar-ruang-dan-kursi-santai","locales":[{"localeCode":"en_us","label":"Outdoor relax furniture","link":null,"image":null},{"localeCode":"id_id","label":"Perabot bersantai luar ruang","link":null,"image":null}],"children":[],"show":true},{"id":768,"parentId":762,"active":true,"sort":5,"linkType":"RANGE","rangeId":72391,"customMenuId":null,"rangeCode":1719,"rangeUrl":"\/produk\/perabot-luar-ruang\/bantal-kursi-luar-ruang","locales":[{"localeCode":"en_us","label":"Outdoor cushions","link":null,"image":null},{"localeCode":"id_id","label":"Bantal luar ruang","link":null,"image":null}],"children":[],"show":true},{"id":769,"parentId":762,"active":true,"sort":6,"linkType":"RANGE","rangeId":72395,"customMenuId":null,"rangeCode":1714,"rangeUrl":"\/produk\/perabot-luar-ruang\/penyimpanan-luar-ruang","locales":[{"localeCode":"en_us","label":"Outdoor storage","link":null,"image":null},{"localeCode":"id_id","label":"Penyimpanan luar ruang","link":null,"image":null}],"children":[],"show":true},{"id":770,"parentId":762,"active":true,"sort":7,"linkType":"RANGE","rangeId":72396,"customMenuId":null,"rangeCode":1716,"rangeUrl":"\/produk\/perabot-luar-ruang\/perlengkapan-masak-luar-ruang","locales":[{"localeCode":"en_us","label":"Outdoor cooking","link":null,"image":null},{"localeCode":"id_id","label":"Perlengkapan masak","link":null,"image":null}],"children":[],"show":true},{"id":771,"parentId":762,"active":true,"sort":8,"linkType":"RANGE","rangeId":72398,"customMenuId":null,"rangeCode":1717,"rangeUrl":"\/produk\/perabot-luar-ruang\/tenda-payung-dan-gazebo","locales":[{"localeCode":"en_us","label":"Parasols and protections","link":null,"image":null},{"localeCode":"id_id","label":"Tenda payung","link":null,"image":null}],"children":[],"show":true},{"id":772,"parentId":762,"active":true,"sort":9,"linkType":"RANGE","rangeId":72392,"customMenuId":null,"rangeCode":1718,"rangeUrl":"\/produk\/perabot-luar-ruang\/lantai-luar-ruang","locales":[{"localeCode":"en_us","label":"Outdoor accessories","link":null,"image":null},{"localeCode":"id_id","label":"Aksesoris luar ruang","link":null,"image":null}],"children":[],"show":true},{"id":773,"parentId":762,"active":true,"sort":10,"linkType":"RANGE","rangeId":72399,"customMenuId":null,"rangeCode":162,"rangeUrl":"\/produk\/dekorasi-luar-ruangan","locales":[{"localeCode":"en_us","label":"Outdoor decoration","link":null,"image":null},{"localeCode":"id_id","label":"Dekorasi luar ruang","link":null,"image":null}],"children":[],"show":true},{"id":790,"parentId":762,"active":true,"sort":11,"linkType":"RANGE","rangeId":73192,"customMenuId":null,"rangeCode":1082,"rangeUrl":"\/produk\/lampu-perayaan-lampu-luar-ruang-dan-lampu-rantai\/lampu-luar-ruang-dan-lampu-rantai","locales":[{"localeCode":"en_us","label":"Outdoor lighting","link":null,"image":null},{"localeCode":"id_id","label":"Lampu luar ruang","link":null,"image":null}],"children":[],"show":true}],"show":true},{"id":11,"parentId":0,"active":true,"sort":4,"linkType":"RANGE","rangeId":71999,"customMenuId":null,"rangeCode":1251,"rangeUrl":"\/ruangan\/dapur","locales":[{"localeCode":"en_us","label":"Kitchen & dining accessories","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-en_us-1692606783.jpeg"},{"localeCode":"id_id","label":"Aksesoris dapur dan ruang makan","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-id_id-1692606783.jpeg"}],"children":[{"id":787,"parentId":11,"active":true,"sort":1,"linkType":"RANGE","rangeId":72063,"customMenuId":null,"rangeCode":142,"rangeUrl":"\/produk\/peralatan-dapur","locales":[{"localeCode":"en_us","label":"Kitchen tools","link":null,"image":null},{"localeCode":"id_id","label":"Perkakas dan perlengkapan dapur","link":null,"image":null}],"children":[],"show":true},{"id":792,"parentId":11,"active":true,"sort":2,"linkType":"RANGE","rangeId":72084,"customMenuId":null,"rangeCode":761,"rangeUrl":"\/produk\/perlengkapan-dan-aksesoris-dapur\/aksesoris-interior-kabinet-dapur","locales":[{"localeCode":"en_us","label":"Kitchen interior organisers","link":null,"image":null},{"localeCode":"id_id","label":"Aksesoris interior kabinet dapur","link":null,"image":null}],"children":[],"show":true},{"id":794,"parentId":11,"active":true,"sort":3,"linkType":"RANGE","rangeId":72087,"customMenuId":null,"rangeCode":782,"rangeUrl":"\/produk\/perlengkapan-dan-aksesoris-dapur\/perabot-kecil-dapur","locales":[{"localeCode":"en_us","label":"Kitchen furniture","link":null,"image":null},{"localeCode":"id_id","label":"Perabot kecil dapur","link":null,"image":null}],"children":[],"show":true},{"id":629,"parentId":11,"active":true,"sort":4,"linkType":"RANGE","rangeId":72039,"customMenuId":null,"rangeCode":1511,"rangeUrl":"\/produk\/peralatan-dan-perlengkapan-makan\/alat-makan","locales":[{"localeCode":"en_us","label":"Dinnerware","link":null,"image":null},{"localeCode":"id_id","label":"Peralatan makan","link":null,"image":null}],"children":[],"show":true},{"id":850,"parentId":11,"active":true,"sort":5,"linkType":"RANGE","rangeId":73399,"customMenuId":null,"rangeCode":1512,"rangeUrl":"\/produk\/peralatan-dan-perlengkapan-makan\/peralatan-penyajian","locales":[{"localeCode":"en_us","label":"Serving","link":null,"image":null},{"localeCode":"id_id","label":"Peralatan penyajian","link":null,"image":null}],"children":[],"show":true},{"id":630,"parentId":11,"active":true,"sort":6,"linkType":"RANGE","rangeId":72040,"customMenuId":null,"rangeCode":1521,"rangeUrl":"\/produk\/peralatan-dan-perlengkapan-makan\/gelas-minum","locales":[{"localeCode":"en_us","label":"Drinking glasses","link":null,"image":null},{"localeCode":"id_id","label":"Gelas minum","link":null,"image":null}],"children":[],"show":true},{"id":631,"parentId":11,"active":true,"sort":7,"linkType":"RANGE","rangeId":72043,"customMenuId":null,"rangeCode":1551,"rangeUrl":"\/produk\/peralatan-dan-perlengkapan-makan\/mug-dan-cangkir","locales":[{"localeCode":"en_us","label":"Mugs and cups","link":null,"image":null},{"localeCode":"id_id","label":"Mug dan cangkir","link":null,"image":null}],"children":[],"show":true},{"id":632,"parentId":11,"active":true,"sort":8,"linkType":"RANGE","rangeId":72041,"customMenuId":null,"rangeCode":1522,"rangeUrl":"\/produk\/peralatan-dan-perlengkapan-makan\/pitcher-dan-karafe","locales":[{"localeCode":"en_us","label":"Jugs and carafes","link":null,"image":null},{"localeCode":"id_id","label":"Pitcher dan karafe","link":null,"image":null}],"children":[],"show":true},{"id":633,"parentId":11,"active":true,"sort":9,"linkType":"RANGE","rangeId":72042,"customMenuId":null,"rangeCode":1531,"rangeUrl":"\/produk\/peralatan-dan-perlengkapan-makan\/sendok-dan-garpu","locales":[{"localeCode":"en_us","label":"Cutlery","link":null,"image":null},{"localeCode":"id_id","label":"Sendok dan garpu","link":null,"image":null}],"children":[],"show":true},{"id":719,"parentId":11,"active":true,"sort":10,"linkType":"RANGE","rangeId":72291,"customMenuId":null,"rangeCode":20333,"rangeUrl":"\/produk\/penataan-meja-makan","locales":[{"localeCode":"en_us","label":"Table setting","link":null,"image":null},{"localeCode":"id_id","label":"Penataan meja makan","link":null,"image":null}],"children":[],"show":true},{"id":81,"parentId":11,"active":true,"sort":11,"linkType":"RANGE","rangeId":72031,"customMenuId":null,"rangeCode":141,"rangeUrl":"\/produk\/peralatan-memasak","locales":[{"localeCode":"en_us","label":"Cookware","link":null,"image":null},{"localeCode":"id_id","label":"Peralatan memasak","link":null,"image":null}],"children":[],"show":true},{"id":628,"parentId":11,"active":true,"sort":12,"linkType":"RANGE","rangeId":72070,"customMenuId":null,"rangeCode":1431,"rangeUrl":"\/produk\/penyimpanan-dan-pencucian\/penyimpanan-makanan","locales":[{"localeCode":"en_us","label":"Food containers","link":null,"image":null},{"localeCode":"id_id","label":"Penyimpanan makanan","link":null,"image":null}],"children":[],"show":true},{"id":634,"parentId":11,"active":true,"sort":13,"linkType":"RANGE","rangeId":72047,"customMenuId":null,"rangeCode":1413,"rangeUrl":"\/produk\/peralatan-dan-perlengkapan-makan\/peralatan-oven-dan-piring-saji","locales":[{"localeCode":"en_us","label":"Ovenware and serving dish","link":null,"image":null},{"localeCode":"id_id","label":"Peralatan oven dan piring saji","link":null,"image":null}],"children":[],"show":true},{"id":635,"parentId":11,"active":true,"sort":15,"linkType":"RANGE","rangeId":72044,"customMenuId":null,"rangeCode":1552,"rangeUrl":"\/produk\/peralatan-dan-perlengkapan-makan\/aksesoris-kopi-dan-teh","locales":[{"localeCode":"en_us","label":"Coffee and tea accessories","link":null,"image":null},{"localeCode":"id_id","label":"Aksesoris kopi dan teh","link":null,"image":null}],"children":[],"show":true},{"id":784,"parentId":11,"active":true,"sort":16,"linkType":"RELATIVE","rangeId":null,"customMenuId":null,"rangeCode":null,"rangeUrl":null,"locales":[{"localeCode":"en_us","label":"IKEA 365+ tableware","link":"\/en\/ikea-365","image":null},{"localeCode":"id_id","label":"IKEA 365+ barang pecah belah","link":"\/in\/ikea-365","image":null}],"children":[],"show":true}],"show":true},{"id":14,"parentId":0,"active":true,"sort":5,"linkType":"RANGE","rangeId":72456,"customMenuId":null,"rangeCode":1290,"rangeUrl":"\/ruangan\/laundry","locales":[{"localeCode":"en_us","label":"Laundry & cleaning accessories","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-en_us-1692607208.jpeg"},{"localeCode":"id_id","label":"Aksesoris laundry & peralatan kebersihan","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-id_id-1692607208.jpeg"}],"children":[{"id":681,"parentId":14,"active":true,"sort":1,"linkType":"RANGE","rangeId":73612,"customMenuId":null,"rangeCode":1833,"rangeUrl":"\/produk\/pengaturan-pakaian-sepatu-dan-aksesori\/laundry-dan-aksesori-laundry","locales":[{"localeCode":"en_us","label":"Laundry accessories","link":null,"image":""},{"localeCode":"id_id","label":"Aksesoris laundry","link":null,"image":""}],"children":[],"show":true},{"id":683,"parentId":14,"active":true,"sort":2,"linkType":"RANGE","rangeId":73614,"customMenuId":null,"rangeCode":1882,"rangeUrl":"\/produk\/solusi-pemilah\/pembersihan-dan-aksesori-pembersihan","locales":[{"localeCode":"en_us","label":"Cleaning accessories","link":null,"image":""},{"localeCode":"id_id","label":"Peralatan kebersihan","link":null,"image":""}],"children":[],"show":true},{"id":684,"parentId":14,"active":true,"sort":3,"linkType":"RANGE","rangeId":71580,"customMenuId":null,"rangeCode":1852,"rangeUrl":"\/produk\/solusi-pemilah\/tempat-sampah","locales":[{"localeCode":"en_us","label":"Waste and sorting bins","link":null,"image":""},{"localeCode":"id_id","label":"Tempat sampah","link":null,"image":""}],"children":[],"show":true},{"id":718,"parentId":14,"active":true,"sort":4,"linkType":"RANGE","rangeId":72072,"customMenuId":null,"rangeCode":1433,"rangeUrl":"\/produk\/penyimpanan-dan-pencucian\/pengaturan-dan-alat-cuci","locales":[{"localeCode":"en_us","label":"Organisers and washing-up for kitchen","link":null,"image":null},{"localeCode":"id_id","label":"Pengaturan dan alat cuci","link":null,"image":null}],"children":[],"show":true},{"id":823,"parentId":14,"active":true,"sort":5,"linkType":"RANGE","rangeId":73656,"customMenuId":null,"rangeCode":1023,"rangeUrl":"\/produk\/elektronik-dan-aksesoris\/pemurni-udara-dan-aksesoris","locales":[{"localeCode":"en_us","label":"Air purifiers and accessories","link":null,"image":""},{"localeCode":"id_id","label":"Air purifier dan aksesoris","link":null,"image":""}],"children":[],"show":true}],"show":true},{"id":638,"parentId":0,"active":true,"sort":6,"linkType":"RANGE","rangeId":71396,"customMenuId":null,"rangeCode":162,"rangeUrl":"\/produk\/dekorasi","locales":[{"localeCode":"en_us","label":"Plants and plant pots","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-en_us-1692607382.jpeg"},{"localeCode":"id_id","label":"Tanaman dan pot tanaman","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-id_id-1692607382.jpeg"}],"children":[{"id":640,"parentId":638,"active":true,"sort":2,"linkType":"RANGE","rangeId":72579,"customMenuId":null,"rangeCode":1623,"rangeUrl":"\/produk\/dekorasi-kamar-tidur\/tanaman-tiruan","locales":[{"localeCode":"en_us","label":"Artificial plants","link":null,"image":null},{"localeCode":"id_id","label":"Tanaman tiruan","link":null,"image":null}],"children":[],"show":true},{"id":641,"parentId":638,"active":true,"sort":3,"linkType":"RANGE","rangeId":72578,"customMenuId":null,"rangeCode":1621,"rangeUrl":"\/produk\/dekorasi-kamar-tidur\/pot-tanaman","locales":[{"localeCode":"en_us","label":"Plant pots","link":null,"image":null},{"localeCode":"id_id","label":"Pot tanaman","link":null,"image":null}],"children":[],"show":true}],"show":true},{"id":642,"parentId":0,"active":true,"sort":7,"linkType":"RANGE","rangeId":72000,"customMenuId":null,"rangeCode":20289,"rangeUrl":"\/produk\/kabinet-dapur","locales":[{"localeCode":"en_us","label":"Kitchen cabinets and appliances","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-en_us-1692608703.jpeg"},{"localeCode":"id_id","label":"Kabinet dapur, peralatan dapur dan kompor","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-id_id-1692608703.jpeg"}],"children":[{"id":644,"parentId":642,"active":true,"sort":1,"linkType":"RANGE","rangeId":72011,"customMenuId":null,"rangeCode":783,"rangeUrl":"\/produk\/kabinet-dapur\/kabinet-dapur-siap-pakai","locales":[{"localeCode":"en_us","label":"Complete kitchen cabinets","link":null,"image":null},{"localeCode":"id_id","label":"Kabinet dapur siap pakai","link":null,"image":null}],"children":[],"show":true},{"id":643,"parentId":642,"active":true,"sort":2,"linkType":"RANGE","rangeId":72010,"customMenuId":null,"rangeCode":781,"rangeUrl":"\/produk\/kabinet-dapur\/dapur-mini","locales":[{"localeCode":"en_us","label":"Freestanding kitchens","link":null,"image":null},{"localeCode":"id_id","label":"Dapur mini","link":null,"image":null}],"children":[],"show":true},{"id":645,"parentId":642,"active":true,"sort":3,"linkType":"RANGE","rangeId":72001,"customMenuId":null,"rangeCode":711,"rangeUrl":"\/produk\/kabinet-dapur\/rangka-kabinet-dasar","locales":[{"localeCode":"en_us","label":"Base cabinet frames","link":null,"image":null},{"localeCode":"id_id","label":"Rangka kabinet dasar","link":null,"image":null}],"children":[],"show":true},{"id":953,"parentId":642,"active":true,"sort":4,"linkType":"RANGE","rangeId":73663,"customMenuId":null,"rangeCode":20586,"rangeUrl":"\/produk\/wastafel-dan-keran-dapur","locales":[{"localeCode":"en_us","label":"Kitchen sinks and taps","link":null,"image":""},{"localeCode":"id_id","label":"Wastafel dan keran dapur","link":null,"image":""}],"children":[],"show":true},{"id":649,"parentId":642,"active":true,"sort":5,"linkType":"RANGE","rangeId":72945,"customMenuId":null,"rangeCode":721,"rangeUrl":"\/produk\/kabinet-dapur\/pintu-panel-penutup-lis-bawah-kabinet-dapur","locales":[{"localeCode":"en_us","label":"Kitchen fronts, coverpanels, plinths and deco strips","link":null,"image":null},{"localeCode":"id_id","label":"Pintu, panel penutup, lis bawah kabinet dapur","link":null,"image":null}],"children":[],"show":true},{"id":653,"parentId":642,"active":true,"sort":8,"linkType":"RANGE","rangeId":73613,"customMenuId":null,"rangeCode":1841,"rangeUrl":"\/produk\/kabinet-dapur\/kenop-dan-gagang","locales":[{"localeCode":"en_us","label":"Knobs and handles","link":null,"image":""},{"localeCode":"id_id","label":"Kenop dan gagang","link":null,"image":""}],"children":[],"show":true},{"id":655,"parentId":642,"active":true,"sort":9,"linkType":"RANGE","rangeId":73303,"customMenuId":null,"rangeCode":77,"rangeUrl":"\/produk\/peralatan-kulkas","locales":[{"localeCode":"en_us","label":"Kitchen appliances","link":null,"image":null},{"localeCode":"id_id","label":"Peralatan dapur dan kompor","link":null,"image":null}],"children":[],"show":true},{"id":656,"parentId":642,"active":true,"sort":10,"linkType":"RANGE","rangeId":72061,"customMenuId":null,"rangeCode":1043,"rangeUrl":"\/produk\/lampu-dapur\/lampu-terintegrasi","locales":[{"localeCode":"en_us","label":"Kitchen lighting","link":null,"image":null},{"localeCode":"id_id","label":"Lampu dapur","link":null,"image":null}],"children":[],"show":true}],"show":true},{"id":657,"parentId":0,"active":true,"sort":8,"linkType":"RANGE","rangeId":72217,"customMenuId":null,"rangeCode":20327,"rangeUrl":"\/produk\/dekorasi","locales":[{"localeCode":"en_us","label":"Home decorations","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-en_us-1692610178.jpeg"},{"localeCode":"id_id","label":"Dekorasi rumah","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-id_id-1692610179.jpeg"}],"children":[{"id":658,"parentId":657,"active":true,"sort":1,"linkType":"RANGE","rangeId":72226,"customMenuId":null,"rangeCode":1634,"rangeUrl":"\/produk\/dekorasi\/bunga-tiruan","locales":[{"localeCode":"en_us","label":"Artificial flowers","link":null,"image":null},{"localeCode":"id_id","label":"Bunga tiruan","link":null,"image":null}],"children":[],"show":true},{"id":882,"parentId":657,"active":true,"sort":2,"linkType":"RANGE","rangeId":72221,"customMenuId":null,"rangeCode":1623,"rangeUrl":"\/produk\/dekorasi\/tanaman-tiruan","locales":[{"localeCode":"en_us","label":"Artificial plants","link":null,"image":null},{"localeCode":"id_id","label":"Tanaman tiruan","link":null,"image":null}],"children":[],"show":true},{"id":659,"parentId":657,"active":true,"sort":3,"linkType":"RANGE","rangeId":72225,"customMenuId":null,"rangeCode":1633,"rangeUrl":"\/produk\/dekorasi\/mangkuk-dan-vas","locales":[{"localeCode":"en_us","label":"Vases, bowls and accessories","link":null,"image":null},{"localeCode":"id_id","label":"Mangkuk dan vas","link":null,"image":null}],"children":[],"show":true},{"id":660,"parentId":657,"active":true,"sort":4,"linkType":"RANGE","rangeId":72219,"customMenuId":null,"rangeCode":1632,"rangeUrl":"\/produk\/dekorasi\/lilin","locales":[{"localeCode":"en_us","label":"Candles and atmosphere light","link":null,"image":null},{"localeCode":"id_id","label":"Lilin","link":null,"image":null}],"children":[],"show":true},{"id":852,"parentId":657,"active":true,"sort":5,"linkType":"RANGE","rangeId":73402,"customMenuId":null,"rangeCode":1635,"rangeUrl":"\/produk\/dekorasi\/pengharum-ruangan","locales":[{"localeCode":"en_us","label":"Home fragrance","link":null,"image":null},{"localeCode":"id_id","label":"Pengharum ruangan","link":null,"image":null}],"children":[],"show":true},{"id":661,"parentId":657,"active":true,"sort":6,"linkType":"RANGE","rangeId":72220,"customMenuId":null,"rangeCode":1631,"rangeUrl":"\/produk\/dekorasi\/tempat-lilin","locales":[{"localeCode":"en_us","label":"Candle holders","link":null,"image":null},{"localeCode":"id_id","label":"Tempat lilin","link":null,"image":null}],"children":[],"show":true},{"id":662,"parentId":657,"active":true,"sort":7,"linkType":"RANGE","rangeId":72224,"customMenuId":null,"rangeCode":1644,"rangeUrl":"\/produk\/dekorasi\/aksesoris-dinding","locales":[{"localeCode":"en_us","label":"Wall accessories","link":null,"image":null},{"localeCode":"id_id","label":"Aksesoris dinding","link":null,"image":null}],"children":[],"show":true},{"id":663,"parentId":657,"active":true,"sort":8,"linkType":"RANGE","rangeId":72222,"customMenuId":null,"rangeCode":1642,"rangeUrl":"\/produk\/dekorasi\/gambar-dengan-bingkai","locales":[{"localeCode":"en_us","label":"Pictures","link":null,"image":null},{"localeCode":"id_id","label":"Gambar dengan bingkai","link":null,"image":null}],"children":[],"show":true},{"id":664,"parentId":657,"active":true,"sort":9,"linkType":"RANGE","rangeId":72227,"customMenuId":null,"rangeCode":1641,"rangeUrl":"\/produk\/dekorasi\/bingkai","locales":[{"localeCode":"en_us","label":"Frames ","link":null,"image":null},{"localeCode":"id_id","label":"Bingkai foto","link":null,"image":null}],"children":[],"show":true},{"id":671,"parentId":657,"active":true,"sort":10,"linkType":"RANGE","rangeId":72218,"customMenuId":null,"rangeCode":1643,"rangeUrl":"\/produk\/dekorasi\/jam","locales":[{"localeCode":"en_us","label":"Clocks","link":null,"image":null},{"localeCode":"id_id","label":"Jam","link":null,"image":null}],"children":[],"show":true},{"id":847,"parentId":657,"active":true,"sort":11,"linkType":"RANGE","rangeId":73380,"customMenuId":null,"rangeCode":1645,"rangeUrl":"\/produk\/dekorasi-kamar-tidur\/cermin","locales":[{"localeCode":"en_us","label":"Mirrors","link":null,"image":null},{"localeCode":"id_id","label":"Cermin","link":null,"image":null}],"children":[],"show":true},{"id":672,"parentId":657,"active":true,"sort":12,"linkType":"RANGE","rangeId":72950,"customMenuId":null,"rangeCode":1637,"rangeUrl":"\/produk\/dekorasi\/dekorasi-hari-raya","locales":[{"localeCode":"en_us","label":"Holiday decoration","link":null,"image":null},{"localeCode":"id_id","label":"Dekorasi hari raya","link":null,"image":null}],"children":[],"show":true},{"id":679,"parentId":657,"active":true,"sort":13,"linkType":"RANGE","rangeId":72228,"customMenuId":null,"rangeCode":1081,"rangeUrl":"\/produk\/dekorasi\/rangkaian-lampu-dan-lampu-musiman","locales":[{"localeCode":"en_us","label":"Seasonal lighting and lighting chains","link":null,"image":null},{"localeCode":"id_id","label":"Rangkaian lampu dan lampu musiman","link":null,"image":null}],"children":[],"show":true},{"id":822,"parentId":657,"active":true,"sort":14,"linkType":"RANGE","rangeId":73656,"customMenuId":null,"rangeCode":1023,"rangeUrl":"\/produk\/elektronik-dan-aksesoris\/pemurni-udara-dan-aksesoris","locales":[{"localeCode":"en_us","label":"Air purifiers and accessories","link":null,"image":""},{"localeCode":"id_id","label":"Air purifier dan aksesoris","link":null,"image":""}],"children":[],"show":true}],"show":true},{"id":685,"parentId":0,"active":true,"sort":9,"linkType":"RELATIVE","rangeId":72773,"customMenuId":null,"rangeCode":20399,"rangeUrl":null,"locales":[{"localeCode":"en_us","label":"Bathroom products & accessories","link":"\/product\/bathroom","image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-en_us-1692609151.jpeg"},{"localeCode":"id_id","label":"Produk kamar mandi & aksesoris","link":"\/product\/kamar-mandi","image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-id_id-1692609152.jpeg"}],"children":[{"id":788,"parentId":685,"active":true,"sort":1,"linkType":"RANGE","rangeId":71954,"customMenuId":null,"rangeCode":61,"rangeUrl":"\/produk\/perabot-kamar-mandi","locales":[{"localeCode":"en_us","label":"Bathroom furniture","link":null,"image":null},{"localeCode":"id_id","label":"Perabot kamar mandi","link":null,"image":null}],"children":[],"show":true},{"id":686,"parentId":685,"active":true,"sort":2,"linkType":"RANGE","rangeId":71957,"customMenuId":null,"rangeCode":612,"rangeUrl":"\/produk\/perabot-kamar-mandi\/perabot-kecil-kamar-mandi","locales":[{"localeCode":"en_us","label":"Bathroom small furniture","link":null,"image":null},{"localeCode":"id_id","label":"Perabot kecil kamar mandi","link":null,"image":null}],"children":[],"show":true},{"id":687,"parentId":685,"active":true,"sort":3,"linkType":"RANGE","rangeId":71964,"customMenuId":null,"rangeCode":622,"rangeUrl":"\/produk\/aksesoris-kamar-mandi\/penyimpanan-handuk","locales":[{"localeCode":"en_us","label":"Bathroom towel solutions","link":null,"image":null},{"localeCode":"id_id","label":"Penyimpanan handuk","link":null,"image":null}],"children":[],"show":true},{"id":881,"parentId":685,"active":true,"sort":4,"linkType":"RANGE","rangeId":71970,"customMenuId":null,"rangeCode":113,"rangeUrl":"\/produk\/tekstil-kamar-mandi","locales":[{"localeCode":"en_us","label":"Bathroom textiles","link":null,"image":null},{"localeCode":"id_id","label":"Tekstil kamar mandi","link":null,"image":null}],"children":[],"show":true},{"id":692,"parentId":685,"active":true,"sort":5,"linkType":"RANGE","rangeId":71965,"customMenuId":null,"rangeCode":623,"rangeUrl":"\/produk\/aksesoris-kamar-mandi\/solusi-kamar-mandi-shower-dan-toilet","locales":[{"localeCode":"en_us","label":"Bathroom, shower and toilet solutions","link":null,"image":null},{"localeCode":"id_id","label":"Solusi kamar mandi, shower dan toilet","link":null,"image":null}],"children":[],"show":true},{"id":693,"parentId":685,"active":true,"sort":6,"linkType":"RANGE","rangeId":71966,"customMenuId":null,"rangeCode":621,"rangeUrl":"\/produk\/aksesoris-kamar-mandi\/aksesoris-wastafel","locales":[{"localeCode":"en_us","label":"Bathroom sink accessories","link":null,"image":null},{"localeCode":"id_id","label":"Aksesoris wastafel","link":null,"image":null}],"children":[],"show":true},{"id":694,"parentId":685,"active":true,"sort":7,"linkType":"RANGE","rangeId":71969,"customMenuId":null,"rangeCode":631,"rangeUrl":"\/produk\/perlengkapan-kamar-mandi\/keran-kamar-mandi","locales":[{"localeCode":"en_us","label":"Taps","link":null,"image":null},{"localeCode":"id_id","label":"Keran kamar mandi","link":null,"image":null}],"children":[],"show":true},{"id":696,"parentId":685,"active":true,"sort":8,"linkType":"RANGE","rangeId":71968,"customMenuId":null,"rangeCode":632,"rangeUrl":"\/produk\/perlengkapan-kamar-mandi\/pengaturan-shower-dan-aksesoris","locales":[{"localeCode":"en_us","label":"Shower mixers and accessories","link":null,"image":null},{"localeCode":"id_id","label":"Pengaturan shower dan aksesoris","link":null,"image":null}],"children":[],"show":true},{"id":697,"parentId":685,"active":true,"sort":9,"linkType":"RANGE","rangeId":73061,"customMenuId":null,"rangeCode":634,"rangeUrl":"\/produk\/perlengkapan-kamar-mandi\/wastafel-kamar-mandi","locales":[{"localeCode":"en_us","label":"Bathroom sinks","link":null,"image":null},{"localeCode":"id_id","label":"Wastafel kamar mandi","link":null,"image":null}],"children":[],"show":true},{"id":698,"parentId":685,"active":true,"sort":10,"linkType":"RANGE","rangeId":71975,"customMenuId":null,"rangeCode":20286,"rangeUrl":"\/produk\/lampu-kamar-mandi","locales":[{"localeCode":"en_us","label":"Bathroom lighting","link":null,"image":null},{"localeCode":"id_id","label":"Lampu kamar mandi","link":null,"image":null}],"children":[],"show":true},{"id":848,"parentId":685,"active":true,"sort":11,"linkType":"RANGE","rangeId":73382,"customMenuId":null,"rangeCode":50744,"rangeUrl":"\/produk\/perabot-kamar-mandi\/cermin-kamar-mandi","locales":[{"localeCode":"en_us","label":"Bathroom mirror","link":null,"image":null},{"localeCode":"id_id","label":"Cermin kamar mandi","link":null,"image":null}],"children":[],"show":true}],"show":true},{"id":739,"parentId":0,"active":true,"sort":10,"linkType":"RELATIVE","rangeId":72702,"customMenuId":null,"rangeCode":20393,"rangeUrl":null,"locales":[{"localeCode":"en_us","label":"Textiles","link":"\/product\/textiles","image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-en_us-1692611184.jpeg"},{"localeCode":"id_id","label":"Tekstil","link":"\/product\/tekstil","image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-id_id-1692611184.jpeg"}],"children":[{"id":746,"parentId":739,"active":true,"sort":1,"linkType":"RANGE","rangeId":72249,"customMenuId":null,"rangeCode":20330,"rangeUrl":"\/produk\/bantal-kursi-dan-selimut-kecil","locales":[{"localeCode":"en_us","label":"Cushions & Throws","link":null,"image":null},{"localeCode":"id_id","label":"Bantal kursi dan selimut kecil","link":null,"image":null}],"children":[],"show":true},{"id":740,"parentId":739,"active":true,"sort":2,"linkType":"RANGE","rangeId":72151,"customMenuId":null,"rangeCode":1111,"rangeUrl":"\/produk\/tekstil-tempat-tidur\/sarung-bantal-dan-seprai","locales":[{"localeCode":"en_us","label":"Bed sheet & pillowcases","link":null,"image":null},{"localeCode":"id_id","label":"Seprai & sarung bantal","link":null,"image":null}],"children":[],"show":true},{"id":748,"parentId":739,"active":true,"sort":3,"linkType":"RANGE","rangeId":72150,"customMenuId":null,"rangeCode":1112,"rangeUrl":"\/produk\/tekstil-tempat-tidur\/sarung-duvet","locales":[{"localeCode":"en_us","label":"Duvet covers","link":null,"image":null},{"localeCode":"id_id","label":"Sarung duvet","link":null,"image":null}],"children":[],"show":true},{"id":741,"parentId":739,"active":true,"sort":4,"linkType":"RANGE","rangeId":72152,"customMenuId":null,"rangeCode":112,"rangeUrl":"\/produk\/duvet-bantal-dan-pelindung-kasur","locales":[{"localeCode":"en_us","label":"Duvets & Pillow","link":null,"image":null},{"localeCode":"id_id","label":"Duvet & bantal","link":null,"image":null}],"children":[],"show":true},{"id":742,"parentId":739,"active":true,"sort":5,"linkType":"RANGE","rangeId":72160,"customMenuId":null,"rangeCode":121,"rangeUrl":"\/produk\/gorden-dan-tirai","locales":[{"localeCode":"en_us","label":"Curtains & blinds","link":null,"image":null},{"localeCode":"id_id","label":"Gorden dan tirai","link":null,"image":null}],"children":[],"show":true},{"id":744,"parentId":739,"active":true,"sort":7,"linkType":"RANGE","rangeId":72035,"customMenuId":null,"rangeCode":1415,"rangeUrl":"\/produk\/peralatan-memasak\/lap-dapur-celemek-dan-sarung-tangan-oven","locales":[{"localeCode":"en_us","label":"Kitchen textiles","link":null,"image":null},{"localeCode":"id_id","label":"Tekstil untuk dapur","link":null,"image":null}],"children":[],"show":true},{"id":745,"parentId":739,"active":true,"sort":8,"linkType":"RANGE","rangeId":71970,"customMenuId":null,"rangeCode":113,"rangeUrl":"\/produk\/tekstil-kamar-mandi","locales":[{"localeCode":"en_us","label":"Bathroom textiles","link":null,"image":null},{"localeCode":"id_id","label":"Tekstil untuk kamar mandi","link":null,"image":null}],"children":[],"show":true},{"id":747,"parentId":739,"active":true,"sort":9,"linkType":"RANGE","rangeId":71907,"customMenuId":null,"rangeCode":131,"rangeUrl":"\/produk\/karpet-keset-pintu-dan-aksesoris","locales":[{"localeCode":"en_us","label":"Rugs, door mats and accessories","link":null,"image":null},{"localeCode":"id_id","label":"Karpet, keset pintu dan aksesoris","link":null,"image":null}],"children":[],"show":true}],"show":true},{"id":699,"parentId":0,"active":true,"sort":11,"linkType":"RELATIVE","rangeId":71588,"customMenuId":null,"rangeCode":21,"rangeUrl":null,"locales":[{"localeCode":"en_us","label":"Storage","link":"\/product\/storage","image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-en_us-1692610141.jpeg"},{"localeCode":"id_id","label":"Tempat penyimpanan","link":"\/product\/penyimpanan","image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-id_id-1692610141.jpeg"}],"children":[{"id":700,"parentId":699,"active":true,"sort":1,"linkType":"RANGE","rangeId":73578,"customMenuId":null,"rangeCode":20353,"rangeUrl":"\/produk\/lemari-buku","locales":[{"localeCode":"en_us","label":"Bookshelf","link":null,"image":""},{"localeCode":"id_id","label":"Rak buku","link":null,"image":""}],"children":[],"show":true},{"id":701,"parentId":699,"active":true,"sort":2,"linkType":"RANGE","rangeId":72198,"customMenuId":null,"rangeCode":215,"rangeUrl":"\/produk\/rak-penyimpanan\/unit-rak","locales":[{"localeCode":"en_us","label":"Shelving storage","link":null,"image":null},{"localeCode":"id_id","label":"Rak penyimpanan","link":null,"image":null}],"children":[],"show":true},{"id":702,"parentId":699,"active":true,"sort":3,"linkType":"RANGE","rangeId":71903,"customMenuId":null,"rangeCode":22,"rangeUrl":"\/produk\/perabot-display","locales":[{"localeCode":"en_us","label":"Display cabinets and storage systems","link":null,"image":null},{"localeCode":"id_id","label":"Kabinet dan lemari pajangan","link":null,"image":null}],"children":[],"show":true},{"id":703,"parentId":699,"active":true,"sort":4,"linkType":"RANGE","rangeId":71905,"customMenuId":null,"rangeCode":23,"rangeUrl":"\/produk\/perabot-media","locales":[{"localeCode":"en_us","label":"TV media and furniture","link":null,"image":null},{"localeCode":"id_id","label":"Perabotan TV dan elektronik","link":null,"image":null}],"children":[],"show":true},{"id":704,"parentId":699,"active":true,"sort":5,"linkType":"RANGE","rangeId":72238,"customMenuId":null,"rangeCode":181,"rangeUrl":"\/produk\/kotak-dan-keranjang","locales":[{"localeCode":"en_us","label":"Storage boxes and baskets","link":null,"image":null},{"localeCode":"id_id","label":"Kotak dan keranjang","link":null,"image":null}],"children":[],"show":true},{"id":706,"parentId":699,"active":true,"sort":6,"linkType":"RANGE","rangeId":72214,"customMenuId":null,"rangeCode":216,"rangeUrl":"\/produk\/penyimpanan-dinding\/rak-dinding","locales":[{"localeCode":"en_us","label":"Wall shelves","link":null,"image":null},{"localeCode":"id_id","label":"Rak dinding","link":null,"image":null}],"children":[],"show":true},{"id":707,"parentId":699,"active":true,"sort":7,"linkType":"RANGE","rangeId":72200,"customMenuId":null,"rangeCode":213,"rangeUrl":"\/produk\/kabinet-bufet\/lemari-bufet","locales":[{"localeCode":"en_us","label":"Side boards","link":null,"image":null},{"localeCode":"id_id","label":"Lemari bufet","link":null,"image":null}],"children":[],"show":true},{"id":708,"parentId":699,"active":true,"sort":8,"linkType":"RANGE","rangeId":72395,"customMenuId":null,"rangeCode":1714,"rangeUrl":"\/produk\/perabot-luar-ruang\/penyimpanan-luar-ruang","locales":[{"localeCode":"en_us","label":"Outdoor storages","link":null,"image":null},{"localeCode":"id_id","label":"Penyimpanan luar ruang","link":null,"image":null}],"children":[],"show":true},{"id":710,"parentId":699,"active":true,"sort":9,"linkType":"RANGE","rangeId":72447,"customMenuId":null,"rangeCode":92,"rangeUrl":"\/produk\/penyimpanan-dan-perlengkapan-belajar-anak","locales":[{"localeCode":"en_us","label":"Children's storage","link":null,"image":null},{"localeCode":"id_id","label":"Perabot penyimpanan anak","link":null,"image":null}],"children":[],"show":true}],"show":true},{"id":720,"parentId":0,"active":true,"sort":12,"linkType":"RANGE","rangeId":72423,"customMenuId":null,"rangeCode":1289,"rangeUrl":"\/ruangan\/dunia-anak","locales":[{"localeCode":"en_us","label":"Baby & Children","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-en_us-1692610414.jpeg"},{"localeCode":"id_id","label":"Bayi & anak","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-id_id-1692610414.jpeg"}],"children":[{"id":727,"parentId":720,"active":true,"sort":1,"linkType":"RANGE","rangeId":73548,"customMenuId":null,"rangeCode":96,"rangeUrl":"\/produk\/bayi","locales":[{"localeCode":"en_us","label":"Baby","link":null,"image":null},{"localeCode":"id_id","label":"Bayi","link":null,"image":null}],"children":[],"show":true},{"id":728,"parentId":720,"active":true,"sort":2,"linkType":"RANGE","rangeId":72433,"customMenuId":null,"rangeCode":93,"rangeUrl":"\/produk\/perlengkapan-tidur-anak","locales":[{"localeCode":"en_us","label":"Children's sleep","link":null,"image":null},{"localeCode":"id_id","label":"Perlengkapan tidur anak","link":null,"image":null}],"children":[],"show":true},{"id":729,"parentId":720,"active":true,"sort":3,"linkType":"RANGE","rangeId":73552,"customMenuId":null,"rangeCode":97,"rangeUrl":"\/produk\/mainan-anak","locales":[{"localeCode":"en_us","label":"Children's play","link":null,"image":null},{"localeCode":"id_id","label":"Mainan anak","link":null,"image":null}],"children":[],"show":true},{"id":983,"parentId":720,"active":true,"sort":4,"linkType":"RANGE","rangeId":72447,"customMenuId":null,"rangeCode":92,"rangeUrl":"\/produk\/penyimpanan-dan-perlengkapan-belajar-anak","locales":[{"localeCode":"en_us","label":"Children's storage and study","link":null,"image":""},{"localeCode":"id_id","label":"Penyimpanan dan perlengkapan belajar anak","link":null,"image":""}],"children":[],"show":true},{"id":984,"parentId":720,"active":true,"sort":5,"linkType":"RANGE","rangeId":72447,"customMenuId":null,"rangeCode":92,"rangeUrl":"\/produk\/penyimpanan-dan-perlengkapan-belajar-anak","locales":[{"localeCode":"en_us","label":"Children","link":null,"image":""},{"localeCode":"id_id","label":"Anak","link":null,"image":""}],"children":[],"show":true},{"id":730,"parentId":720,"active":true,"sort":6,"linkType":"RANGE","rangeId":73212,"customMenuId":null,"rangeCode":20418,"rangeUrl":"\/produk\/lampu-kamar-anak","locales":[{"localeCode":"en_us","label":"Children's room lighting","link":null,"image":null},{"localeCode":"id_id","label":"Lampu kamar anak","link":null,"image":null}],"children":[],"show":true}],"show":true},{"id":733,"parentId":0,"active":true,"sort":14,"linkType":"RANGE","rangeId":72229,"customMenuId":null,"rangeCode":20328,"rangeUrl":"\/produk\/lampu-ruang-keluarga","locales":[{"localeCode":"en_us","label":"Lighting & Electronics","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-en_us-1692610729.jpeg"},{"localeCode":"id_id","label":"Lampu dan elektronik","link":null,"image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/static_content\/multilevel_menu\/menu-item-image-id_id-1692610730.jpeg"}],"children":[{"id":734,"parentId":733,"active":true,"sort":1,"linkType":"RANGE","rangeId":72230,"customMenuId":null,"rangeCode":1011,"rangeUrl":"\/produk\/lampu-ruang-keluarga\/lampu-lantai","locales":[{"localeCode":"en_us","label":"Floor lamps","link":null,"image":null},{"localeCode":"id_id","label":"Lampu lantai","link":null,"image":null}],"children":[],"show":true},{"id":735,"parentId":733,"active":true,"sort":2,"linkType":"RANGE","rangeId":72231,"customMenuId":null,"rangeCode":1012,"rangeUrl":"\/produk\/lampu-ruang-keluarga\/lampu-meja","locales":[{"localeCode":"en_us","label":"Table lamps","link":null,"image":null},{"localeCode":"id_id","label":"Lampu meja","link":null,"image":null}],"children":[],"show":true},{"id":736,"parentId":733,"active":true,"sort":3,"linkType":"RANGE","rangeId":73165,"customMenuId":null,"rangeCode":1013,"rangeUrl":"\/produk\/lampu-ruang-keluarga\/lampu-gantung","locales":[{"localeCode":"en_us","label":"Pendant lamps","link":null,"image":null},{"localeCode":"id_id","label":"Lampu gantung","link":null,"image":null}],"children":[],"show":true},{"id":737,"parentId":733,"active":true,"sort":4,"linkType":"RANGE","rangeId":73181,"customMenuId":null,"rangeCode":1014,"rangeUrl":"\/produk\/lampu-ruang-keluarga\/lampu-plafon-dan-lampu-sorot","locales":[{"localeCode":"en_us","label":"Ceiling lamps and spotlights","link":null,"image":null},{"localeCode":"id_id","label":"Lampu plafon dan lampu sorot","link":null,"image":null}],"children":[],"show":true},{"id":738,"parentId":733,"active":true,"sort":5,"linkType":"RANGE","rangeId":72550,"customMenuId":null,"rangeCode":1016,"rangeUrl":"\/produk\/lampu-ruang-keluarga\/lampu-dinding","locales":[{"localeCode":"en_us","label":"Wall lamps","link":null,"image":null},{"localeCode":"id_id","label":"Lampu dinding dan lampu jepit","link":null,"image":null}],"children":[],"show":true},{"id":880,"parentId":733,"active":true,"sort":6,"linkType":"RANGE","rangeId":73540,"customMenuId":null,"rangeCode":1019,"rangeUrl":"\/produk\/lampu-ruang-keluarga\/lampu-meja-dan-lampu-jepit","locales":[{"localeCode":"en_us","label":"Desk and clamp lamps","link":null,"image":null},{"localeCode":"id_id","label":"Lampu meja dan lampu jepit","link":null,"image":null}],"children":[],"show":true},{"id":752,"parentId":733,"active":true,"sort":7,"linkType":"RANGE","rangeId":72232,"customMenuId":null,"rangeCode":1015,"rangeUrl":"\/produk\/lampu-ruang-keluarga\/kap-dasar-dan-set-kabel-lampu","locales":[{"localeCode":"en_us","label":"Shades, bases and cord sets","link":null,"image":null},{"localeCode":"id_id","label":"Kap, dasar dan set kabel lampu","link":null,"image":null}],"children":[],"show":true},{"id":753,"parentId":733,"active":true,"sort":8,"linkType":"RANGE","rangeId":72237,"customMenuId":null,"rangeCode":1043,"rangeUrl":"\/produk\/lampu-ruang-keluarga\/lampu-terintegrasi","locales":[{"localeCode":"en_us","label":"Integrated lighting","link":null,"image":null},{"localeCode":"id_id","label":"Lampu terintegrasi","link":null,"image":null}],"children":[],"show":true},{"id":849,"parentId":733,"active":true,"sort":9,"linkType":"RANGE","rangeId":73212,"customMenuId":null,"rangeCode":20418,"rangeUrl":"\/produk\/lampu-kamar-anak","locales":[{"localeCode":"en_us","label":"Children's room lighting","link":null,"image":null},{"localeCode":"id_id","label":"Lampu kamar anak","link":null,"image":null}],"children":[],"show":true},{"id":754,"parentId":733,"active":true,"sort":10,"linkType":"RANGE","rangeId":73175,"customMenuId":null,"rangeCode":1032,"rangeUrl":"\/produk\/lampu-ruang-keluarga\/lampu-pintar","locales":[{"localeCode":"en_us","label":"Smart lighting","link":null,"image":null},{"localeCode":"id_id","label":"Lampu pintar","link":null,"image":null}],"children":[],"show":true},{"id":755,"parentId":733,"active":true,"sort":11,"linkType":"RANGE","rangeId":72236,"customMenuId":null,"rangeCode":1031,"rangeUrl":"\/produk\/lampu-ruang-keluarga\/lampu-bohlam-led","locales":[{"localeCode":"en_us","label":"LED light bulbs","link":null,"image":null},{"localeCode":"id_id","label":"Lampu bohlam LED","link":null,"image":null}],"children":[],"show":true},{"id":758,"parentId":733,"active":true,"sort":13,"linkType":"RANGE","rangeId":73228,"customMenuId":null,"rangeCode":1081,"rangeUrl":"\/produk\/lampu-ruang-keluarga\/lampu-perayaan","locales":[{"localeCode":"en_us","label":"Seasonal lighting","link":null,"image":null},{"localeCode":"id_id","label":"Lampu perayaan","link":null,"image":null}],"children":[],"show":true},{"id":857,"parentId":733,"active":true,"sort":14,"linkType":"RANGE","rangeId":73192,"customMenuId":null,"rangeCode":1082,"rangeUrl":"\/produk\/lampu-perayaan-lampu-luar-ruang-dan-lampu-rantai\/lampu-luar-ruang-dan-lampu-rantai","locales":[{"localeCode":"en_us","label":"Outdoor lighting and lighting chains","link":null,"image":null},{"localeCode":"id_id","label":"Lampu luar ruang dan lampu rantai","link":null,"image":null}],"children":[],"show":true},{"id":956,"parentId":733,"active":true,"sort":15,"linkType":"RANGE","rangeId":73654,"customMenuId":null,"rangeCode":1024,"rangeUrl":"\/produk\/elektronik-dan-aksesoris\/konektivitas-dan-kontrol","locales":[{"localeCode":"en_us","label":"Connectivity and control","link":null,"image":""},{"localeCode":"id_id","label":"Konektivitas dan kontrol","link":null,"image":""}],"children":[],"show":true},{"id":955,"parentId":733,"active":true,"sort":16,"linkType":"RANGE","rangeId":73656,"customMenuId":null,"rangeCode":1023,"rangeUrl":"\/produk\/elektronik-dan-aksesoris\/pemurni-udara-dan-aksesoris","locales":[{"localeCode":"en_us","label":"Air purifiers and accessories","link":null,"image":""},{"localeCode":"id_id","label":"Pemurni udara dan aksesoris","link":null,"image":""}],"children":[],"show":true},{"id":759,"parentId":733,"active":true,"sort":17,"linkType":"RANGE","rangeId":73537,"customMenuId":null,"rangeCode":1881,"rangeUrl":"\/produk\/perawatan-dan-perbaikan\/perkakas-peralatan-dan-produk-kimia","locales":[{"localeCode":"en_us","label":"Accessories for installation","link":null,"image":""},{"localeCode":"id_id","label":"Aksesoris untuk pemasangan","link":null,"image":""}],"children":[],"show":true}],"show":true}],"popular_items":[{"id":141,"sort":1,"locales":[{"localeCode":"en_us","label":"New products","link":"https:\/\/www.ikea.co.id\/en\/page\/newItems"},{"localeCode":"id_id","label":"Produk baru","link":"https:\/\/www.ikea.co.id\/in\/page\/newItems"}]},{"id":108,"sort":2,"locales":[{"localeCode":"en_us","label":"Online best seller","link":"https:\/\/www.ikea.co.id\/en\/offers\/best-sellers"},{"localeCode":"id_id","label":"Produk online terlaris","link":"https:\/\/www.ikea.co.id\/in\/penawaran\/produk-terlaris"}]},{"id":140,"sort":3,"locales":[{"localeCode":"en_us","label":"Affordable furniture & home furnishing","link":"https:\/\/www.ikea.co.id\/en\/offers\/affordable-furniture-and-home-furnishing"},{"localeCode":"id_id","label":"Furnitur & perabot rumah tangga murah","link":"https:\/\/www.ikea.co.id\/in\/penawaran\/furnitur-dan-perabot-rumah-tangga-murah"}]},{"id":74,"sort":4,"locales":[{"localeCode":"en_us","label":"Must-have items for living in a share house (kost-kostan)","link":"https:\/\/www.ikea.co.id\/en\/must-have-items-for-living-in-a-share-house"},{"localeCode":"id_id","label":"Produk wajib untuk anak kost","link":"https:\/\/www.ikea.co.id\/in\/produk-wajib-untuk-anak-kost"}]},{"id":12,"sort":5,"locales":[{"localeCode":"en_us","label":"Everyday essentials for the whole home","link":"https:\/\/www.ikea.co.id\/en\/offers\/home-essentials-moms-group"},{"localeCode":"id_id","label":"Perlengkapan sehari-hari untuk seluruh area rumah","link":"https:\/\/www.ikea.co.id\/in\/penawaran\/home-essentials-untuk-ibu"}]},{"id":11,"sort":6,"locales":[{"localeCode":"en_us","label":"Furniture under IDR 1 mill","link":"https:\/\/www.ikea.co.id\/en\/lowest-price-furniture"},{"localeCode":"id_id","label":"Perabotan rumah dibawah Rp 1juta","link":"https:\/\/www.ikea.co.id\/in\/harga-furnitur-terendah"}]},{"id":42,"sort":7,"locales":[{"localeCode":"en_us","label":"Work from home","link":"https:\/\/www.ikea.co.id\/en\/campaigns\/working-from-home"},{"localeCode":"id_id","label":"Kerja di rumah","link":"https:\/\/www.ikea.co.id\/in\/campaigns\/kerja-dari-rumah"}]}],"custom_menus":[]} SidebarMainMenu.currentLocale = 'id_id' }); var scrollPos = 0; // Scrolls to top on servicesMenu click (keep content into view) $(".servicesMenu .dropdown-toggle").click(function () { $('#headerMainToggler').scrollTop(0); }); // Close hamburguer menu on desktop view var closeHamburguerTimer; if ($(window).width() <= 992) { $('#iconShoppingDesktop').addClass('d-none'); } $(window).on('resize', function (e) { if ($(window).width() <= 992) { $('#iconShoppingDesktop').addClass('d-none'); } clearTimeout(closeHamburguerTimer); closeHamburguerTimer = setTimeout(function () { if ($('#headerMainToggler').hasClass('show')) { if ($(window).width() >= 992) { $('.navbar-toggler-cross').click(); } } }, 250); }); // Calculate display Height for mobile menu scrolling // Scroll menu height = Current device content height minus current fixed header height $(window).on('load resize',function(e){ $('.headerMain .collapse').css('max-height',( window.innerHeight - $('.headerMain').height() ) + 'px'); }); $('#searcherDropdown, #header_searcher_desktop_input').click(() => $("body").toggleClass("no-scroll")); $(document).on("click", "#searcher_overlay, #close-wrapper", (e) => { $("body").removeClass("no-scroll"); $("#header_searcher_mobile_input_container").removeClass("visibilitySearcher"); }); var shoppingCartMain = new Vue({ el: '#shopping-cart-main', name: 'shopping-cart-main', data: function(){ return { show_cart_resume: false, } }, computed: { hideShoppingcartComponent: function() { return document.location.pathname.indexOf('shoppingcart') === -1; } }, methods: { closeShoppingCartResume: function(){ this.show_cart_resume = !this.show_cart_resume; }, showCartResume: function(operation){ this.show_cart_resume = (operation === 'over') ? true : false; }, hideNumberIcon: function(totalItems){ return totalItems < 1; } }, mounted(){ this.show_cart_resume = false } }); </script> <div class="contentWrapper pt-0" id="contentWrapper"> <div class="contentWrapper__container"> <div class="breadcrumbContainer container mb-5"> </div> <div class="container-fluid homepage"> <div class="container"> <div class="row"> <div class="col-12 dataRoom"> <div class="text-wrap bannerTemplate text-alignment my-4"> <!-- <link rel="stylesheet" type="text/css" href="https://www.ikea.co.id/webroot/css/main.css?v=1.3"> <link rel="stylesheet" type="text/css" href="https://www.ikea.co.id/webroot/css/vendor/font-awesome/font-awesome.css?v=1.3"> <link rel="stylesheet" type="text/css" href="https://www.ikea.co.id/webroot/css/vendor/slick/slick.css?v=1.3"> <link rel="stylesheet" type="text/css" href="https://www.ikea.co.id/webroot/css/vendor/slick/slick-theme-custom.css?v=1.3"> <link rel="stylesheet" type="text/css" href="https://www.ikea.co.id/webroot/css/components/productList.css?v=1.3"> <script type="text/javascript" src="https://www.ikea.co.id/webroot/js/vendor/jquery.min.js?v=1.3"></script> <script type="text/javascript" src="https://www.ikea.co.id/webroot/js/vendor/bootstrap/bootstrap.min.js?v=1.3"></script> <script type="text/javascript" src="https://www.ikea.co.id/webroot/js/vendor/lazySizes/lazysizes.min.js"></script> <script type="text/javascript" src="https://www.ikea.co.id/webroot/js/vendor/slick/slick.min.js?v=1"></script> --> <style type="text/css">#newsticker_2021 { position: relative; background-color: #efefef; } #newsticker_2021 i:hover { opacity: .8; cursor: pointer; } #newsticker_2021 .arr-right { transform: rotate(90deg); } #newsticker_2021 .arr-left { transform: rotate(-90deg); } #newsticker_2021 .slick-slide { position: relative; height: 50px; } #newsticker_2021 .newsticker_text{ position: absolute; top: 50%; left: 5%; transform: translate(-5%, -50%); } @media only screen and (max-width: 600px){ #newsticker_2021 .slick-slide { position: relative; height: 85px; } } </style> <div class="container rounded" id="newsticker_2021"><!--<div class="position-absolute" style="right:1%; z-index: 999;"><i class="fa fa-sort-asc fa-lg arr-left" data-newsticker="previous">&nbsp;</i> <i aria-hidden="true" class="fa fa-pause" data-newsticker="pause">&nbsp;</i> <i aria-hidden="true" class="fa fa-stop" data-newsticker="play" style="display: none;">&nbsp;</i> <i class="fa fa-sort-asc fa-lg arr-right" data-newsticker="next">&nbsp;</i></div>--> <div class="row align-items-center"> <div class="p-3 ml-1 text-center"><i aria-hidden="true" class="fa fa-exclamation-circle fa-lg">&nbsp;</i></div> <div class="col-10 newsticker_slider"></div> </div> </div> <script type="text/javascript"> var url_en_val = document.documentElement.lang === "en" const newsticker_data = [ { "news_en":"Keep your IKEA account secure by changing your password regularly. See more >", "news_in":"Jaga keamanan akun IKEA Anda dengan melakukan perubahan password secara berkala. Selengkapnya >", "url_en":"https://www.ikea.co.id/en/account-safety", "url_in":"https://www.ikea.co.id/in/keamanan-akun" }, { "news_en":"Make sure you only interact with IKEA Indonesia at 021-29853900.", "news_in":"Pastikan Anda hanya berinteraksi dengan IKEA Indonesia di nomor 021-29853900.", "url_en":"https://www.ikea.co.id/en/shopping-in-a-safe-way", "url_in":"https://www.ikea.co.id/in/cara-aman-belanja" }, { "news_en":"Make sure you get job vacancies from official IKEA website. See more >", "news_in":"Pastikan info lowongan kerja berasal dari web resmi IKEA. Selengkapnya >", "url_en":"https://www.ikea.co.id/en/about/working-at-ikea-indonesia/available-jobs", "url_in":"https://www.ikea.co.id/in/tentang/bekerja-di-ikea-indonesia/lowongan-kerja" }, { "news_en":"IKEA is recalling ÅSKSTORM 40W USB charger dark grey. Read more >", "news_in":"IKEA menarik kembali pengisi daya USB ÅSKSTORM 40W warna abu-abu tua. Baca selengkapnya >", "url_en":"https://www.ikea.co.id/en/newsroom/product-recalls/detail/ikea-is-recalling-askstorm-40w-usb-charger-due-to-thermal-burn-and-electric-shock-hazard", "url_in":"https://www.ikea.co.id/in/ruang-berita/penarikan/detail/ikea-menarik-kembali-pengisi-daya-usb-askstorm-40w-karena-adanya-risiko-luka-bakar-dan-tersetrum" }, { "news_en":"By opening this information, I agree to the updated IKEA Indonesia Privacy Policy. Read more >", "news_in":"Dengan membuka informasi ini, Anda menyetujui Kebijakan Privasi IKEA Indonesia yang diperbarui. Baca selengkapnya >", "url_en":"https://www.ikea.co.id/en/customerservice/about-shopping/terms-and-conditions/privacy-policy", "url_in":"https://www.ikea.co.id/in/layanan-pelanggan/about-shopping/syarat-dan-ketentuan/kebijakan-privasi" }, { "news_en":"Always protect your data when shopping online. Read and use the security guide to protect your account. Complete information >", "news_in":"Selalu lindungi data Anda pada saat berbelanja online. Baca dan gunakan panduan keamanan untuk melindungi akun Anda. Info lengkap >", "url_en":"https://www.ikea.co.id/en/account-safety", "url_in":"https://www.ikea.co.id/in/keamanan-akun" }, { "news_en":"Always ensure that the valid IKEA Indonesia promotional ads originate from IKEA Indonesia website. Click for detail >", "news_in":"Selalu pastikan iklan promosi IKEA Indonesia yang valid, berasal dari website IKEA Indonesia. Klik untuk detailnya >", "url_en":"https://www.ikea.co.id/en/offers#in_store_promo", "url_in":"https://www.ikea.co.id/in/penawaran#in_store_promo" }, { "news_en":"To safeguard our products quality, please make purchases via official IKEA channels. More info >", "news_in":"Untuk menjaga kualitas produk IKEA, mohon lakukan pembelian via kanal resmi IKEA. Info lengkap >", "url_en":"https://www.ikea.co.id/en/shopping-in-a-safe-way", "url_in":"https://www.ikea.co.id/in/cara-aman-belanja" }, { "news_en":"90-day return policy provision for promotional product purchases. More info >", "news_in":"Ketentuan kebijakan pengembalian 90 hari untuk pembelian produk promosi. Info lengkap >", "url_en":"https://www.ikea.co.id/en/customerservice/tentang-belanja/return-policy", "url_in":"https://www.ikea.co.id/in/layanan-pelanggan/tentang-belanja/kebijakan-pengembalian" }, ] function appendNewsticker2021(json) { const news_name = $('#newsticker_2021 .newsticker_slider') const news_previous = $('#newsticker_2021 [data-newsticker="previous"]') const news_next = $('#newsticker_2021 [data-newsticker="next"]') const news_play = $('#newsticker_2021 [data-newsticker="play"]') const news_pause = $('#newsticker_2021 [data-newsticker="pause"]') let str = ''; $(json).each(function (index, data) { str += '<div>' str += '<div class="newsticker_text" >' str += '<a href="' + (url_en_val ? data.url_en : data.url_in) + '" class="text-dark align-middle">' str += url_en_val ? data.news_en : data.news_in str += '</a>' str += '</div>' str += '</div>' }); news_name.append(str); news_name.slick({ slidesToShow: 1, slidesToScroll: 1, autoplay: true, autoplaySpeed: 5000, speed: 500, fade: true, arrows: true, adaptiveHeight: true, prevArrow: news_previous, nextArrow: news_next, }); news_pause.on("click", function () { $(this).hide(); news_name.slick('slickPause') news_play.show(); }); news_play.on("click", function () { $(this).hide(); news_name.slick('slickPlay') news_pause.show(); }); json.length <= 1 ? news_play.parent().hide() : ""; } $(document).ready(function () { $('#newsticker_2021 i').html(""); appendNewsticker2021(newsticker_data) }); </script> </div> </div> </div> </div> <div class="container"> <div class="row"> <div class="col"> <hr class="divider"> </div> </div> </div> <div class="container"> <div class="row"> <div class="col-12 d-none dataRoom"> <div class="text-wrap bannerTemplate text-alignment my-4"> <style type="text/css">.homepage-skeleton-placeholder { position: relative; overflow: hidden; background-color: #dddbdd; border-radius: 20px; } .homepage-skeleton-placeholder::after { position: absolute; top: 0; right: 0; bottom: 0; left: 0; transform: translateX(-100%); background-image: linear-gradient( 90deg, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0.2) 20%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0) ); -webkit-animation: homepage-skeleton-animation 2s infinite; animation: homepage-skeleton-animation 2s infinite; content: ''; } .homepage-skeleton-placeholder.mainBanner { height: 420px; } .homepage-skeleton-placeholder.title { height: 35px; } .homepage-skeleton-placeholder.bodyCategory { height: 175px; } .mainBannerImage { max-width: 1920px; width: 100%; height: auto; } @media only screen and (max-width: 600px) { .homepage-skeleton-placeholder.mainBanner { height: 51.5vh; } .mainBannerImage { max-width: 640px; width: 100%; height: auto; } } @-webkit-keyframes homepage-skeleton-animation { 100% { transform: translateX(100%); } } @keyframes homepage-skeleton-animation { 100% { transform: translateX(100%); } } #contentWrapper .divider { display: none; } @media only screen and (max-width: 768px) { #ymDivBar { bottom: 80px; } } </style> </div> </div> <div class="col-12 dataRoom"> <div class="text-wrap bannerTemplate text-alignment my-4"> <div id="new_custom_banner"> <div class="homepage-skeleton-placeholder mainBanner"></div> </div> <script type="text/javascript"> window.ymConfig = {"bot":"x1660900233537","host":"https://r2.cloud.yellow.ai"}; (function() { var w = window, ic = w.YellowMessenger; if ("function" === typeof ic) ic("reattach_activator"), ic("update", ymConfig); else { var d = document, i = function() { i.c(arguments) }; function l() { var e = d.createElement("script"); e.type = "text/javascript", e.async = !0, e.src = "https://cdn.yellowmessenger.com/plugin/widget-v2/latest/dist/main.min.js"; var t = d.getElementsByTagName("script")[0]; t.parentNode.insertBefore(e, t) } i.q = [], i.c = function(e) { i.q.push(e) }, w.YellowMessenger = i, w.attachEvent ? w.attachEvent("onload", l) : w.addEventListener("load", l, !1)} })(); </script><script> const fetch_mainbanner_homepage = () => { const banners = [ { "banner_name": "Online flash sale", "banner_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1739846652586__0.webp", "banner_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1739846652944__1.webp", "banner_en_m": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1739846653276__2.webp", "banner_in_m": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1739846653404__3.webp", "url_en": "https://www.ikea.co.id/en/offers/flash-sale", "url_in": "https://www.ikea.co.id/in/penawaran/flash-sale", "publish_date": "2025-02-17T00:00:00", "end_date": "2025-02-20T24:00:00" }, { "banner_name": "Promo akhir pekan", "banner_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1736478376148__0.webp", "banner_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1736478376488__1.webp", "banner_en_m": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1736478376759__2.webp", "banner_in_m": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1736478376950__3.webp", "url_en": "https://www.ikea.co.id/en/offers/weekend-promo", "url_in": "https://www.ikea.co.id/in/penawaran/weekend-promo", "publish_date": "2025-02-22T00:00:00", "end_date": "2025-02-23T24:00:00" }, { "banner_name": "Promo Murah - OFTAST", "banner_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1738661461407__0.webp", "banner_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1738661462493__1.webp", "banner_en_m": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1738661463946__2.webp", "banner_in_m": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1738661464231__3.webp", "url_en": "https://www.ikea.co.id/en/offers/promo-murah", "url_in": "https://www.ikea.co.id/in/penawaran/promo-murah", "publish_date": "2025-02-04T00:00:00", "end_date": "2025-04-30T24:00:00" }, { "banner_name": "Ramadan 2025", "banner_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1738832457309__0.webp", "banner_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1738832457640__1.webp", "banner_en_m": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1738832457970__2.webp", "banner_in_m": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1738832458092__3.webp", "url_en": "https://www.ikea.co.id/en/campaigns/celebrate-ramadan-and-eid-al-fitr", "url_in": "https://www.ikea.co.id/in/campaigns/meriahkan-ramadan-dan-lebaran", "publish_date": "2025-02-03T00:00:00", "end_date": "2025-03-12T24:00:00" }, { "banner_name": "Promo akhir pekan", "banner_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1736478376148__0.webp", "banner_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1736478376488__1.webp", "banner_en_m": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1736478376759__2.webp", "banner_in_m": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1736478376950__3.webp", "url_en": "https://www.ikea.co.id/en/offers/weekend-promo", "url_in": "https://www.ikea.co.id/in/penawaran/weekend-promo", "publish_date": "2025-02-19T00:00:00", "end_date": "2025-02-21T24:00:00" }, // { // "banner_name": "Maintainance", // "banner_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1739244920665__0.webp", // "banner_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1739244920984__1.webp", // "banner_en_m": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1739244921276__2.webp", // "banner_in_m": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1739244921383__3.webp", // "url_en": "#", // "url_in": "#", // "publish_date": "2025-02-12T20:00:00", // "end_date": "2025-02-13T12:00:00" // }, // { // "banner_name": "Affordabality - BTI", // "banner_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1727319019740__0.webp", // "banner_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1727319020161__1.webp", // "banner_en_m": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1727319020425__2.webp", // "banner_in_m": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1727319020587__3.webp", // "url_en": "https://www.ikea.co.id/en/offers/affordable-furniture-and-home-furnishing", // "url_in": "https://www.ikea.co.id/in/penawaran/furnitur-dan-perabot-rumah-tangga-murah", // "publish_date": "2025-01-02T00:00:00", // "end_date": "2025-04-30T24:00:00" // }, ]; const url_en_val = document.documentElement.lang === 'en'; const str = banners .map((item, index) => { const time = new Date(); const time_start = new Date(item.publish_date); const time_end = new Date(item.end_date); if (time.getTime() > time_start && time.getTime() < time_end) { let banner_desktop, banner_url, banner_mobile = ''; if (url_en_val) { banner_desktop = item.banner_en; banner_mobile = item.banner_en_m; banner_url = item.url_en; } else { banner_desktop = item.banner_in; banner_mobile = item.banner_in_m; banner_url = item.url_in; } const jpegDesktop = banner_desktop.replace('webp', 'jpeg'); const jpegMobile = banner_mobile.replace('webp', 'jpeg'); console.log(jpegDesktop); return ` <div class="col-12" data-section="banner-${index}" data-banner-name="${ item.banner_name }" data-index="${index + 1}"> <a href=${banner_url}> <picture class="d-none d-md-flex"> <source srcset="${banner_desktop}" type="image/webp" /> <img alt="${ item.banner_name }" src="${jpegDesktop}" class="lazyload img-fluid mainBannerImage"/> </picture> <picture class="d-flex d-md-none"> <source srcset="${banner_mobile}" type="image/webp" /> <img alt="${ item.banner_name }" src="${jpegMobile}" class="lazyload mainBannerImage"/> </picture> </a> </div> `; } }) .join(''); document.getElementById('new_custom_banner').innerHTML = str; $('#new_custom_banner').slick({ slidesToShow: 1, slidesToScroll: 1, adaptiveHeight: false, fade: false, speed: 500, dots: true, infinite: true, autoplay: true, autoplaySpeed: 4500, pauseOnFocus: true, responsive: [ { breakpoint: 768, settings: { arrows: false, }, }, ], }); }; $(document).ready(function () { fetch_mainbanner_homepage(); }); </script> </div> </div> </div> </div> <div class="container"> <div class="row"> <div class="col"> <hr class="divider"> </div> </div> </div> <div class="container"> <div class="row"> <div class="col-12 dataRoom"> <div class="text-wrap bannerTemplate text-alignment my-4"> <h2 class="display-7">Hidup lebih baik, belanja lebih hemat!</h2> Nikmati diskon hingga 50% untuk lebih dari 200 produk perlengkapan rumah pilihan. Kualitas terbaik, harga lebih hemat.​<br /> <br /> <a class="button-custom-color" href="https://www.ikea.co.id/in/penawaran/promo-murah">Lihat semua produk</a> </div> </div> <div class="col- d-none d-md-block dataRoom"> <div class="row"> <div class="col mb-4 polygon-container" id="img_container_38245"> <div class="row justify-content-start m-2" id="img_38245" style=""> <div style="position:relative"> <img class="img-fluid" src="https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__id_id_1738225224783__1.jpeg" alt="" data-i-id="38245" /> <a class="container_button_shop_all d-none" id="container_button_shop_all"> <button class="cta" onclick="addAllToCart('38245')"> <img src="/webroot/img/plugins/polygons/tag-filled.svg" /> <span class="button-text">Shop all</span> </button> </a> </div> </div> </div> </div> <script type="text/javascript"> $(document).ready(function(){ let properties = {"polygon_paths":[{"figure_type":"polygon","function_type":"product","function_value":"20318941","svg_path":null,"coordinates":"M 188.88888549804688 506.9860076904297 193.88888549804688 531.9860076904297 273.8888854980469 598.9860076904297 394.8888854980469 605.9860076904297 444.8888854980469 591.9860076904297 500.8888854980469 546.9860076904297 511.8888854980469 523.9860076904297 472.8888854980469 498.9860076904297 393.8888854980469 478.9860076904297 282.8888854980469 478.9860076904297 221.88888549804688 483.9860076904297 Z","edition_width":1420,"edition_height":840.681,"spot_in_devices":false,"center_x":348.0200683690755,"center_y":537.8199170826425,"translations":{"en_us":{"url-text":""},"id_id":{"url-text":""}},"item":{"id":20318941,"url":"\/produk\/peralatan-dan-perlengkapan-makan\/alat-makan\/oftast-art-20318941","default_image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/images\/123\/0712360_PE728779_S3.webp","name":"OFTAST","extra_facts":"piring cekung, putih, 20 cm","price":"<span class=\"currency\">Rp<\/span>9.900"}},{"figure_type":"polygon","function_type":"product","function_value":"20137851","svg_path":null,"coordinates":"M 874.8888854980469 627.9860076904297 872.8888854980469 665.9860076904297 874.8888854980469 687.9860076904297 946.8888854980469 693.9860076904297 949.8888854980469 676.9860076904297 953.8888854980469 631.9860076904297 909.8888854980469 625.9860076904297 Z","edition_width":1420,"edition_height":840.681,"spot_in_devices":false,"center_x":912.3394504764515,"center_y":658.5111361259947,"translations":{"en_us":{"url-text":""},"id_id":{"url-text":""}},"item":{"id":20137851,"url":"\/produk\/pecah-belah\/gelas-minum\/reko-art-20137851","default_image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/images\/127\/0712792_PE729062_S3.webp","name":"REKO","extra_facts":"gelas, kaca bening, 17 cl","price":"<span class=\"currency\">Rp<\/span>19.900"}},{"figure_type":"polygon","function_type":"product","function_value":"20440654","svg_path":null,"coordinates":"M 1310.8888854980469 515.9860076904297 1250.8888854980469 583.9860076904297 1253.8888854980469 599.9860076904297 1101.8888854980469 752.9860076904297 1081.8888854980469 781.9860076904297 1092.8888854980469 795.9860076904297 1127.8888854980469 802.9860076904297 1149.8888854980469 789.9860076904297 1274.8888854980469 621.9860076904297 1314.8888854980469 602.9860076904297 1347.8888854980469 593.9860076904297 1361.8888854980469 549.9860076904297 1357.8888854980469 515.9860076904297 Z","edition_width":1420,"edition_height":840.681,"spot_in_devices":false,"center_x":1227.8415526068293,"center_y":653.8151455526344,"translations":{"en_us":{"url-text":""},"id_id":{"url-text":""}},"item":{"id":20440654,"url":"\/produk\/perabot-kecil-anak-makan-dan-belajar\/perabot-dan-aksesori-makan-anak\/kalas-art-20440654","default_image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/images\/477\/1047763_PE843511_S3.webp","name":"KALAS","extra_facts":"sendok, warna campuran","price":"<span class=\"currency\">Rp<\/span>7.900"}},{"figure_type":"polygon","function_type":"product","function_value":"49440837","svg_path":null,"coordinates":"M 1166.8888854980469 251.98600006103516 1183.8888854980469 220.98600006103516 1343.8888854980469 227.98600006103516 1417.8888854980469 289.98600006103516 1416.8888854980469 441.98600006103516 1251.8888854980469 446.98600006103516 1174.8888854980469 337.98600006103516 Z","edition_width":1420,"edition_height":840.681,"spot_in_devices":false,"center_x":1296.2733401991368,"center_y":332.425651501777,"translations":{"en_us":{"url-text":""},"id_id":{"url-text":""}},"item":{"id":49440837,"url":"\/produk\/kotak-dan-keranjang\/kotak-penyimpanan-dan-keranjang\/samla-spr-49440837","default_image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/images\/118\/0711814_PE728493_S3.webp","name":"SAMLA","extra_facts":"kotak dengan penutup, transparan, 39x28x14 cm\/11 l","price":"<span class=\"currency\">Rp<\/span>49.900"}}]}; if (properties != null && properties.polygon_paths.length > 0) { if (typeof polygon !== 'undefined' && polygon.addImage) { polygon.addImage(38245, properties) } } }); function addAllToCart(id_image) { if (id_image && id_image != '') { polygon.addAllToCart(id_image); } } </script> </div> <div class="col- d-block d-md-none dataRoom"> <div class="row"> <div class="col mb-4 polygon-container" id="img_container_38246"> <div class="row justify-content-start m-2" id="img_38246" style=""> <div style="position:relative"> <img class="img-fluid" src="https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__id_id_1738225226013__3.jpeg" alt="" data-i-id="38246" /> <a class="container_button_shop_all d-none" id="container_button_shop_all"> <button class="cta" onclick="addAllToCart('38246')"> <img src="/webroot/img/plugins/polygons/tag-filled.svg" /> <span class="button-text">Shop all</span> </button> </a> </div> </div> </div> </div> <script type="text/javascript"> $(document).ready(function(){ let properties = {"polygon_paths":[{"figure_type":"polygon","function_type":"product","function_value":"49440837","svg_path":null,"coordinates":"M 927.8888854980469 1066.6530151367188 905.8888854980469 1099.6530151367188 912.8888854980469 1233.6530151367188 927.8888854980469 1251.6530151367188 1034.8888854980469 1397.2085571289062 1306.8888854980469 1390.2085571289062 1354.8888854980469 1249.2085571289062 1371.8888854980469 1231.2085571289062 1174.8888854980469 1064.2085571289062 Z","edition_width":1420,"edition_height":1420,"spot_in_devices":false,"center_x":1124.6756489252125,"center_y":1229.787492525563,"translations":{"en_us":{"url-text":""},"id_id":{"url-text":""}},"item":{"id":49440837,"url":"\/produk\/kotak-dan-keranjang\/kotak-penyimpanan-dan-keranjang\/samla-spr-49440837","default_image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/images\/118\/0711814_PE728493_S3.webp","name":"SAMLA","extra_facts":"kotak dengan penutup, transparan, 39x28x14 cm\/11 l","price":"<span class=\"currency\">Rp<\/span>49.900"}},{"figure_type":"polygon","function_type":"product","function_value":"20440654","svg_path":null,"coordinates":"M 372.8888854980469 905.2085571289062 395.8888854980469 839.2085571289062 505.8888854980469 747.2085571289062 578.8888854980469 740.2085571289062 603.8888854980469 776.2085571289062 606.8888854980469 826.2085571289062 563.8888854980469 916.5419006347656 453.8888854980469 952.5419006347656 193.88888549804688 1280.2085571289062 120.88888549804688 1347.2085571289062 51.888885498046875 1354.2085571289062 16.888885498046875 1326.2085571289062 14.888885498046875 1276.2085571289062 284.8888854980469 1017.2085571289062 370.8888854980469 934.2085571289062 Z","edition_width":1420,"edition_height":1420,"spot_in_devices":false,"center_x":316.50326654865904,"center_y":1048.293702387837,"translations":{"en_us":{"url-text":""},"id_id":{"url-text":""}},"item":{"id":20440654,"url":"\/produk\/perabot-kecil-anak-makan-dan-belajar\/perabot-dan-aksesori-makan-anak\/kalas-art-20440654","default_image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/images\/477\/1047763_PE843511_S3.webp","name":"KALAS","extra_facts":"sendok, warna campuran","price":"<span class=\"currency\">Rp<\/span>7.900"}},{"figure_type":"polygon","function_type":"product","function_value":"20318941","svg_path":null,"coordinates":"M 847.8888854980469 503.986328125 898.8888854980469 479.986328125 1004.8888854980469 473.986328125 1073.8888854980469 485.986328125 1141.8888854980469 505.986328125 1169.8888854980469 533.986328125 1159.8888854980469 550.986328125 1120.8888854980469 577.986328125 1059.8888854980469 606.986328125 981.8888854980469 607.986328125 922.8888854980469 592.986328125 889.8888854980469 566.986328125 837.8888854980469 521.986328125 Z","edition_width":1420,"edition_height":1420,"spot_in_devices":false,"center_x":1003.0715316210043,"center_y":537.6732367918041,"translations":{"en_us":{"url-text":""},"id_id":{"url-text":""}},"item":{"id":20318941,"url":"\/produk\/peralatan-dan-perlengkapan-makan\/alat-makan\/oftast-art-20318941","default_image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/images\/123\/0712360_PE728779_S3.webp","name":"OFTAST","extra_facts":"piring cekung, putih, 20 cm","price":"<span class=\"currency\">Rp<\/span>9.900"}}]}; if (properties != null && properties.polygon_paths.length > 0) { if (typeof polygon !== 'undefined' && polygon.addImage) { polygon.addImage(38246, properties) } } }); function addAllToCart(id_image) { if (id_image && id_image != '') { polygon.addAllToCart(id_image); } } </script> </div> </div> </div> <div class="container"> <div class="row"> <div class="col"> <hr class="divider"> </div> </div> </div> <div class="container"> <div class="row"> <div class="col-12 dataRoom"> <div class="text-wrap bannerTemplate text-alignment my-4"> <h2 class="display-7">Jelajahi kategori unggulan kami</h2> Temukan beragam produk yang sesuai dengan gaya dan kebutuhan Anda. </div> </div> <div class="col-12 dataRoom"> <div class="text-wrap bannerTemplate text-alignment my-4"> <style type="text/css">.img_container { position: relative; cursor: pointer; } .img_text { position: absolute; left: 50%; transform: translate(-50%, 0); bottom: 7%; width: 75%; } a.button-card-custom { background-color: white; background: white; padding: .5rem 1.5rem; border-radius: 50px; border: 1px solid white; font-size: 14px; font-weight: bolder; color: black; transition-duration: .25s; cursor: pointer; display: inline-flex; line-height: 1; text-decoration: none; min-width: 45px; align-items: center; justify-content: center; margin-bottom: 40px; } .img_container:hover a.button-card-custom { border: 1px solid black; background-color: black; background: black; color: white; } a.button-card-custom:active { padding: .25rem 1.25rem; } @media (max-width: 768px) { #appendGuides .slick-list { padding: 0 35% 0 0 !important; word-wrap: break-word; } .img_text { bottom: 6%; } a.button-card-custom { margin-bottom: 32px; } } </style> <div class="container"> <div class="row" id="appendGuides"></div> </div> <script type="text/javascript"> const appendGuides_list = [ { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726029608398_4_0.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726029608398_4_0.webp", "text_en": "Mattress and </br>accessories", "text_in": "Kasur dan </br>aksesoris", "url_en": "https://www.ikea.co.id/en/products/mattresses-and-accessories", "url_in": "https://www.ikea.co.id/in/produk/kasur-dan-aksesoris" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726029608586_4_1.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726029608586_4_1.webp", "text_en": "Duvets, pillows </br>and protectors", "text_in": "Duvet, bantal dan </br>pelindung kasur", "url_en": "https://www.ikea.co.id/en/products/duvets-pillows-and-protectors", "url_in": "https://www.ikea.co.id/in/produk/duvet-bantal-dan-pelindung-kasur" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726029608786_4_2.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726029608786_4_2.webp", "text_en": "Rugs", "text_in": "Karpet", "url_en": "https://www.ikea.co.id/en/products/bedroom-rugs/rugs", "url_in": "https://www.ikea.co.id/in/produk/karpet-kamar-tidur/karpet" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726029608858_4_3.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726029608858_4_3.webp", "text_en": "Bedroom lighting", "text_in": "Lampu kamar</br>tidur", "url_en": "https://www.ikea.co.id/en/products/bedroom-lighting", "url_in": "https://www.ikea.co.id/in/produk/lampu-kamar-tidur" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726029608940_4_4.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726029608940_4_4.webp", "text_en": "Bedroom </br>decoration", "text_in": "Dekorasi kamar</br>tidur", "url_en": "https://www.ikea.co.id/en/products/bedroom-decoration", "url_in": "https://www.ikea.co.id/in/produk/dekorasi-kamar-tidur" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726029609053_4_5.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726029609053_4_5.webp", "text_en": "Air purifiers </br>and accessories", "text_in": "Pemurni udara </br>dan aksesoris", "url_en": "https://www.ikea.co.id/en/products/electronics-and-accessories/air-purifiers-and-accessories", "url_in": "https://www.ikea.co.id/in/produk/elektronik-dan-aksesoris/pemurni-udara-dan-aksesoris" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726029609182_4_6.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726029609182_4_6.webp", "text_en": "Sofa beds", "text_in": "Sofa tempat</br>tidur", "url_en": "https://www.ikea.co.id/en/products/sofas-and-armchairs/sofa-beds", "url_in": "https://www.ikea.co.id/in/produk/sofa-dan-kursi-berlengan/sofa-tempat-tidur" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726029609339_4_7.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726029609339_4_7.webp", "text_en": "Shelving units", "text_in": "Unit rak", "url_en": "https://www.ikea.co.id/en/products/shelving-storage/shelving-units", "url_in": "https://www.ikea.co.id/in/produk/rak-penyimpanan/unit-rak" }, ] function appendGuides(json) { let str = ''; const url_en_val = document.documentElement.lang === 'en' $(json).each(function(index, value) { str += '<div class="col-12 col-md-6 img_container text-center mb-4">' str += '<a href="' + (url_en_val ? value.url_en : value.url_in) + '" style="padding: 0 2rem;">' str += '<img data-src="' + (url_en_val ? value.image_en : value.image_in) + '" class="lazyload" width="100%">' str += '</a>' str += '<div class="img_text">' str += '<a href="' + (url_en_val ? value.url_en : value.url_in) + '" class="button-card-custom">' + (url_en_val ? value.text_en : value.text_in) + '</a>' str += '</div>' str += '</div>' }); $('#appendGuides').html(str) } $(document).ready(function() { appendGuides(appendGuides_list) $('#appendGuides').slick({ slidesToShow: 5, slidesToScroll: 1, adaptiveHeight: false, fade: false, speed: 500, dots: false, infinite: true, autoplay: false, responsive: [{ breakpoint: 768, settings: { arrows: false, slidesToShow: 1, slidesToScroll: 1, } }, ] }); }); </script> </div> </div> </div> </div> <div class="container"> <div class="row"> <div class="col"> <hr class="divider"> </div> </div> </div> <div class="container"> <div class="row"> <div class="col-12 dataRoom"> <div class="text-wrap bannerTemplate text-alignment my-4"> <h2 class="display-7">Penawaran terbaru di IKEA</h2> Geser untuk jelajahi penawaran menarik untuk melihat yang sedang hits di IKEA Indonesia. </div> </div> <div class="col-12 dataRoom"> <div class="text-wrap bannerTemplate text-alignment my-4"> <style type="text/css">#online_calender .slick-track { display: flex !important; } .disabled-link { pointer-events: none; } #online_calender .slick-list .card { padding-top: 0; } #online_calender .slick-slide { height: inherit !important; } #online_calender a:hover{ text-decoration: none; } .icon-flex, .icon-wrapper { display: flex; justify-content: center; align-items: center; position: absolute; bottom: 3%; left: 5%; } .icon-wrapper{ border-radius: 50%; overflow: hidden; background-color: white; color: black; font-size: 14px; width: 40px; height: 40px; } </style> <div class="card-deck" id="online_calender"></div> <script type="text/javascript"> var collections_list_homepage = [ // { // "title_en":"Surprise Wednesdays!", // "title_in":"Rabu penuh kejutan! ​", // "text_en":"Don't miss the buy one, get one free deals every Wednesday—not just on food, but on home essentials too. Visit IKEA now!​", // "text_in":"Jangan lewatkan promo beli satu gratis satu tiap rabu bukan cuma makanan tapi juga perlengkapan rumah, segera kunjungi IKEA!", // "bg_color":"#075de4", // "banner_en" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1727765441223__0.webp", // "banner_in" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1727765441402__1.webp", // "url_en":"https://www.ikea.co.id/en/offers/wednesday-offer", // "url_in":"https://www.ikea.co.id/in/penawaran/rabu-seru", // }, // { // "title_en":"Save more with our bank promo!", // "title_in":"Makin hemat dengan promo bank kami!", // "text_en":"Get IKEA vouchers up to Rp250,000 when you shop with these bank cards. Limited time offer!", // "text_in":"Dapatkan voucher IKEA hingga Rp250.000 saat berbelanja dengan kartu dari bank tersebut. Periode promo terbatas!", // "bg_color":"#b0d0ee", // "banner_en" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1736317184004__2.webp", // "banner_in" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1736317184301__3.webp", // "url_en":"https://www.ikea.co.id/en/offers/credit-cards", // "url_in":"https://www.ikea.co.id/in/penawaran/kartu-kredit", // }, { "title_en":"Make your curtains perfect!", "title_in":"Gorden sempurna untuk rumah Anda!", "text_en":"Enjoy free curtain cutting and sewing service with a minimum purchase of Rp500,000, valid only from January 9 to April 13, 2025.", "text_in":"Nikmati promo gratis potong dan jahit gorden dengan belanja minimal Rp500.000, hanya berlaku dari 9 Januari hingga 13 April 2025.", "bg_color":"#d6cfcb", "banner_en" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1736503161050__0.webp", "banner_in" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1736503161259__1.webp", "url_en":"https://www.ikea.co.id/en/customerservice/about-service/sewing", "url_in":"https://www.ikea.co.id/in/layanan-pelanggan/tentang-layanan/penjahitan", }, { "title_en":"Make Room for Your New Sofa!", "title_in":"Sediakan ruang untuk perabot baru!", "text_en":"Have an old sofa that's still in good condition? IKEA is here to help you move it. Offer valid from February 3 – March 12, 2025.", "text_in":"Punya perabot lama yang masih layak pakai? Perabot tersebut akan didonasikan melalui mitra nirlaba kami. Penawaran berlaku tanggal 03 Februari – 12 Maret 2025.", "bg_color":"#d6cfcb", "banner_en" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1738823368954__0.webp", "banner_in" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1738823369181__1.webp", "url_en":"https://www.ikea.co.id/en/customerservice/about-service/removal-and-recycling", "url_in":"https://www.ikea.co.id/in/layanan-pelanggan/tentang-layanan/layanan-pemindahan", }, { "title_en":"GOKVÄLLÅ", "title_in":"GOKVÄLLÅ", "text_en":"Special collection to welcome the holy month of Ramadhan; from sahoor, breaking the fast, to Eid al-Fitr", "text_in":"Koleksi istimewa untuk sambut bulan Ramadhan; dari sahur, berbuka puasa, hingga Hari Raya Idul Fitri", "bg_color":"#665948", "banner_en" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1738830028253__0.webp", "banner_in" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1738830028253__0.webp", "url_en":"https://www.ikea.co.id/en/collections/gokvalla", "url_in":"https://www.ikea.co.id/in/koleksi/gokvalla", }, // { // "title_en":"VINTERFINT", // "title_in":"VINTERFINT", // "text_en":"Make your Christmas even more festive with the VINTERFINT collection and enjoy discounts of up to 90%!", // "text_in":"Sambut Natal dengan lebih semarak bersama koleksi VINTERFINT dan dapatkan diskon hingga 90%!", // "bg_color":"#685548", // "banner_en" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1734938801685__0.webp", // "banner_in" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1734927541592__1.webp", // "url_en":"https://www.ikea.co.id/en/collections/vinterfint", // "url_in":"https://www.ikea.co.id/in/koleksi/vinterfint", // }, { "title_en":"Sleep Soundly Anywhere", "title_in":"Tidur lelap di ruang mana pun", "text_en":"Get a better night's sleep anywhere with the RÅHOLT folding mattress – comfortable, practical, and easy to store, ensuring quality rest every time!", "text_in":"Tidur lebih lelap di mana saja dengan RÅHOLT kasur lipat yang nyaman, praktis, dan mudah disimpan yang siap membuat tidur Anda semakin berkualitas!", "bg_color":"#6b8d90", "banner_en" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1728292830793__0.webp", "banner_in" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1728292831089__1.webp", "url_en":"https://www.ikea.co.id/en/products/mattresses-and-accessories/mattresses/raholt-art-80499175", "url_in":"https://www.ikea.co.id/in/produk/kasur-dan-aksesoris/kasur/raholt-art-80499175", }, // { // "title_en":"New lower price", // "title_in":"Harga lebih rendah", // "text_en":"Turn your dream decor into reality, find special low price offers for every room in your home!", // "text_in":"Dekorasi impian kini jadi kenyataan, temukan penawaran spesial dengan harga lebih rendah untuk setiap ruangan!", // "bg_color":"#c29372", // "banner_en" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1731379701748__0.webp", // "banner_in" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1731379702146__1.webp", // "url_en":"https://www.ikea.co.id/en/offers/new-lower-price", // "url_in":"https://www.ikea.co.id/in/penawaran/harga-lebih-murah", // }, // { // "title_en":"Buy more, save more!", // "title_in":"Beli banyak, dapat diskon!", // "text_en":"Grab 5+ furniture or 20+ accessories and instantly get 5% off! Hurry before it’s gone!", // "text_in":"Beli 5+ perabot atau 20+ aksesori, bisa langsung dapat diskon 5%! Buruan sebelum kehabisan!", // "bg_color":"#7d6844", // "banner_en" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726032693357_4_2.webp", // "banner_in" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726032693637_4_3.webp", // "url_en":"https://www.ikea.co.id/en/offers/extra-discount", // "url_in":"https://www.ikea.co.id/in/penawaran/diskon-tambahan", // }, // { // "title_en":"Save more when you buy three with Combo Trio promo!​", // "title_in":"Beli tiga lebih hemat dengan promo Combo Trio! ​", // "text_en":"Offer valid until December 31, 2024.​", // "text_in":"Penawaran berlaku hingga 31 Desember 2024​", // "bg_color":"#b9a997", // "banner_en" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726675987646_0_12.webp", // "banner_in" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726675987646_0_12.webp", // "url_en":"https://www.ikea.co.id/en/offers/bundle-offer", // "url_in":"https://www.ikea.co.id/in/penawaran/promo-bundling", // }, { "title_en":"BRANBOLL", "title_in":"​BRANBOLL", "text_en":"Discover cozy colorful collection pieces perfect for gaming and relaxing.​", "text_in":"Temukan koleksi nyaman dan penuh warna, ideal untuk gaming dan bersantai.", "bg_color":"#8d2b6f", "banner_en" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726032694391_4_6.webp", "banner_in" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726032694391_4_6.webp", "url_en":"https://www.ikea.co.id/en/collections/brannboll", "url_in":"https://www.ikea.co.id/in/koleksi/brannboll", }, { "title_en":"​HOSTAGILLE", "title_in":"HOSTAGILLE", "text_en":"Elevate your dining or gathering moments with vibrant colors and playful patterns.", "text_in":"Sempurnakan momen makan bersama atau kumpul dengan warna cerah dan pola playful.​​", "bg_color":"#77561e", "banner_en" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726032694633_4_7.webp", "banner_in" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726032694633_4_7.webp", "url_en":"https://www.ikea.co.id/en/collections/hostagille", "url_in":"https://www.ikea.co.id/in/koleksi/hostagille", }, { "title_en":"​​NYTILLVERKAD", "title_in":"NYTILLVERKAD​​", "text_en":"Bring bold style and vibrant colors to brighten up your favorite space.", "text_in":"Hadirkan gaya berani dan warna cerah untuk memperindah ruang favoritmu.", "bg_color":"#dabfa0", "banner_en" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726032694937_4_8.webp", "banner_in" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726032694937_4_8.webp", "url_en":"https://www.ikea.co.id/en/collections/nytillverkad", "url_in":"https://www.ikea.co.id/in/koleksi/nytillverkad", }, { "title_en":"MAVINN​​", "title_in":"MAVINN​​", "text_en":"Discover a collection with unique style and full of personality that add fun and character to your day.", "text_in":"Temukan koleksi dengan gaya unik, penuh kepribadian yang bikin harimu lebih seru dan penuh karakter.", "bg_color":"#b6936d", "banner_en" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726032695134_4_9.webp", "banner_in" : "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726032695134_4_9.webp", "url_en":"https://www.ikea.co.id/en/collections/mavinn", "url_in":"https://www.ikea.co.id/in/koleksi/mavinn", }, ] var online_calender_append = function(x){ var str = ''; var url_en_val = document.documentElement.lang === 'en'; $(x).each(function(index,item){ str += '<div class="card" style="background-color: '+item.bg_color+'; position:relative; border:none;">' str += '<a href='+(url_en_val ? item.url_en : item.url_in)+'>' str += '<img data-src="'+(url_en_val ? item.banner_en : item.banner_in)+'" class="lazyload img-fluid">' str += '<div class="text-white p-4" style="margin-bottom:3em;">' str += '<h4 class="display-8 mb-4" style="color: white; margin-bottom: 8px !important;">'+(url_en_val ? item.title_en : item.title_in)+'</h4>' str += '<p>'+(url_en_val ? item.text_en : item.text_in)+'</p>' str += '<div class="icon-flex">' str += '<div class="icon-wrapper"><i class="fa fa-arrow-right"></i></div>' str += '</div>' str += '</div>' str += '</a>' str += '</div>' }); $('#online_calender').html(str); $('#online_calender').slick({ slidesToShow: 3, slidesToScroll: 1, fade: false, speed: 500, dots: false, infinite: true, adaptiveHeight: true, responsive: [ { breakpoint: 768, settings: { arrows: false, dots: true, arrows: true, slidesToShow: 1, slidesToScroll: 1, } }, ] }) .on('setPosition', function (event, slick) { slick.$slides.css('height', slick.$slideTrack.height() + 'px'); }); } $(document).ready(function(){ online_calender_append(collections_list_homepage) }); </script> </div> </div> </div> </div> <div class="container"> <div class="row"> <div class="col"> <hr class="divider"> </div> </div> </div> <div class="container"> <div class="row"> <div class="col-12 dataRoom"> <div class="text-wrap bannerTemplate text-alignment my-4"> <h2 class="display-7">Terbaru di IKEA</h2> Segarkan rumah Anda dengan produk terbaru dari IKEA yang dirancang untuk menginspirasi dan memikat!<br /> <br /> <a class="button-custom-color" href="https://www.ikea.co.id/in/page/newItems">Lihat semua produk</a> </div> </div> <div class="col- d-none d-md-block dataRoom"> <div class="row"> <div class="col mb-4 polygon-container" id="img_container_38582"> <div class="row justify-content-start m-2" id="img_38582" style=""> <div style="position:relative"> <img class="img-fluid" src="https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__id_id_1738307664522__0.jpeg" alt="" data-i-id="38582" /> <a class="container_button_shop_all d-none" id="container_button_shop_all"> <button class="cta" onclick="addAllToCart('38582')"> <img src="/webroot/img/plugins/polygons/tag-filled.svg" /> <span class="button-text">Shop all</span> </button> </a> </div> </div> </div> </div> <script type="text/javascript"> $(document).ready(function(){ let properties = {"polygon_paths":[{"figure_type":"polygon","function_type":"product","function_value":"20592124","svg_path":null,"coordinates":"M 874.7777709960938 769.4305877685547 875.7777709960938 698.4305877685547 902.7777709960938 671.4305877685547 976.7777709960938 676.4305877685547 981.7777709960938 764.4305877685547 966.7777709960938 783.4305877685547 Z","edition_width":1420,"edition_height":840.681,"spot_in_devices":false,"center_x":928.6290481530413,"center_y":727.3654733324405,"translations":{"en_us":{"url-text":""},"id_id":{"url-text":""}},"item":{"id":20592124,"url":"\/produk\/dekorasi-dinding\/jam\/tjinga-art-20592124","default_image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/images\/573\/1357334_PE953522_S3.webp","name":"TJINGA","extra_facts":"jam beker, kuning pucat, 8x8 cm","price":"<span class=\"currency\">Rp<\/span>69.900"}},{"figure_type":"polygon","function_type":"product","function_value":"40581544","svg_path":null,"coordinates":"M 1210.7777709960938 194.43058013916016 1229.7777709960938 170.43058013916016 1235.7777709960938 158.43058013916016 1258.7777709960938 152.43058013916016 1269.7777709960938 157.43058013916016 1370.7777709960938 209.43058013916016 1382.7777709960938 225.43058013916016 1384.7777709960938 259.43058013916016 1379.7777709960938 355.43058013916016 1348.7777709960938 428.43058013916016 1326.7777709960938 464.43058013916016 1259.7777709960938 450.43058013916016 1187.7777709960938 429.43058013916016 1165.7777709960938 416.43058013916016 1156.7777709960938 382.43058013916016 1169.7777709960938 360.43058013916016 1197.7777709960938 250.43058013916016 Z","edition_width":1420,"edition_height":840.681,"spot_in_devices":false,"center_x":1278.6590704828802,"center_y":314.3492039798698,"translations":{"en_us":{"url-text":""},"id_id":{"url-text":""}},"item":{"id":40581544,"url":"\/produk\/aksesoris-kamar-mandi\/aksesoris-wastafel\/brofjarden-art-40581544","default_image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/images\/296\/1329631_PE945205_S3.webp","name":"BROFJ\u00c4RDEN","extra_facts":"perlengkapan mandi, set isi 3, abu-abu","price":"<span class=\"currency\">Rp<\/span>229.000"}},{"figure_type":"polygon","function_type":"product","function_value":"60602263","svg_path":null,"coordinates":"M 1197.7777709960938 609.4305877685547 1207.7777709960938 592.4305877685547 1221.7777709960938 591.4305877685547 1226.7777709960938 606.4305877685547 1287.7777709960938 608.4305877685547 1287.7777709960938 594.4305877685547 1307.7777709960938 592.4305877685547 1312.7777709960938 653.4305877685547 1379.7777709960938 657.4305877685547 1380.7777709960938 639.4305877685547 1404.7777709960938 639.4305877685547 1404.7777709960938 691.4305877685547 1381.7777709960938 694.4305877685547 1382.7777709960938 672.4305877685547 1309.7777709960938 666.4305877685547 1310.7777709960938 680.4305877685547 1286.7777709960938 683.4305877685547 1274.7777709960938 661.4305877685547 1269.7777709960938 632.4305877685547 1208.7777709960938 634.4305877685547 Z","edition_width":1420,"edition_height":840.681,"spot_in_devices":false,"center_x":1289.7777709960938,"center_y":666.4305877685547,"translations":{"en_us":{"url-text":""},"id_id":{"url-text":""}},"item":{"id":60602263,"url":"\/produk\/dapur-mini-dan-perabot-dapur\/perabot-kecil-dapur\/klavrestrom-art-60602263","default_image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/images\/654\/1365401_PE956327_S3.webp","name":"KLAVRESTR\u00d6M","extra_facts":"rak dinding, kayu oak, 60x20 cm","price":"<span class=\"currency\">Rp<\/span>699.000"}},{"figure_type":"polygon","function_type":"product","function_value":"597523","svg_path":null,"coordinates":"M 91.77777099609375 334.4305877685547 115.77777099609375 317.4305877685547 179.77777099609375 310.4305877685547 217.77777099609375 310.4305877685547 216.77777099609375 310.4305877685547 259.77777099609375 317.4305877685547 291.77777099609375 328.4305877685547 536.7777709960938 422.4305877685547 554.7777709960938 447.4305877685547 610.7777709960938 487.4305877685547 633.7777709960938 531.4305877685547 631.7777709960938 595.4305877685547 611.7777709960938 639.4305877685547 554.7777709960938 672.4305877685547 527.7777709960938 684.4305877685547 510.77777099609375 716.4305877685547 486.77777099609375 738.4305877685547 410.77777099609375 744.4305877685547 370.77777099609375 738.4305877685547 337.77777099609375 722.4305877685547 132.77777099609375 619.4305877685547 99.77777099609375 581.4305877685547 65.77777099609375 565.4305877685547 19.77777099609375 522.4305877685547 6.77777099609375 458.4305877685547 18.77777099609375 411.4305877685547 36.77777099609375 387.4305877685547 Z","edition_width":1420,"edition_height":840.681,"spot_in_devices":false,"center_x":319.715623914491,"center_y":518.4988675676453,"translations":{"en_us":{"url-text":""},"id_id":{"url-text":""}},"item":{"id":597523,"url":"\/produk\/perlengkapan-kopi-dan-teh\/mug-dan-cangkir\/skedstor-art-00597523","default_image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/images\/620\/1362000_PE954831_S3.webp","name":"SKEDST\u00d6R","extra_facts":"mug, warna campuran kuning\/hitam, 30 cl","price":"<span class=\"currency\">Rp<\/span>49.900"}}]}; if (properties != null && properties.polygon_paths.length > 0) { if (typeof polygon !== 'undefined' && polygon.addImage) { polygon.addImage(38582, properties) } } }); function addAllToCart(id_image) { if (id_image && id_image != '') { polygon.addAllToCart(id_image); } } </script> </div> <div class="col- d-block d-md-none dataRoom"> <div class="row"> <div class="col mb-4 polygon-container" id="img_container_37074"> <div class="row justify-content-start m-2" id="img_37074" style=""> <div style="position:relative"> <img class="img-fluid" src="https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__id_id_1738307664979__1.jpeg" alt="" data-i-id="37074" /> <a class="container_button_shop_all d-none" id="container_button_shop_all"> <button class="cta" onclick="addAllToCart('37074')"> <img src="/webroot/img/plugins/polygons/tag-filled.svg" /> <span class="button-text">Shop all</span> </button> </a> </div> </div> </div> </div> <script type="text/javascript"> $(document).ready(function(){ let properties = {"polygon_paths":[{"figure_type":"polygon","function_type":"product","function_value":"597523","svg_path":null,"coordinates":"M 853.7777709960938 337.3196620941162 868.7777709960938 314.3196620941162 915.7777709960938 294.3196620941162 999.7777709960938 296.3196620941162 1032.7777709960938 312.3196620941162 1226.7777709960938 385.3196620941162 1250.7777709960938 399.3196620941162 1252.7777709960938 415.3196620941162 1311.7777709960938 450.3196620941162 1335.7777709960938 508.3196620941162 1334.7777709960938 544.3196620941162 1307.7777709960938 586.3196620941162 1281.7777709960938 608.3196620941162 1249.7777709960938 619.3196620941162 1238.7777709960938 640.3196620941162 1219.7777709960938 667.3196620941162 1155.7777709960938 682.3196620941162 1108.7777709960938 672.3196620941162 1081.7777709960938 657.3196620941162 895.7777709960938 564.3196620941162 875.7777709960938 538.3196620941162 869.7777709960938 528.3196620941162 842.7777709960938 512.3196620941162 801.7777709960938 477.3196620941162 790.7777709960938 432.3196620941162 797.7777709960938 392.3196620941162 817.7777709960938 357.3196620941162 Z","edition_width":1420,"edition_height":1420,"spot_in_devices":false,"center_x":1064.9440320745418,"center_y":481.3560722995337,"translations":{"en_us":{"url-text":""},"id_id":{"url-text":""}},"item":{"id":597523,"url":"\/produk\/perlengkapan-kopi-dan-teh\/mug-dan-cangkir\/skedstor-art-00597523","default_image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/images\/620\/1362000_PE954831_S3.webp","name":"SKEDST\u00d6R","extra_facts":"mug, warna campuran kuning\/hitam, 30 cl","price":"<span class=\"currency\">Rp<\/span>49.900"}},{"figure_type":"polygon","function_type":"product","function_value":"60602263","svg_path":null,"coordinates":"M 934.7777709960938 868.875244140625 909.7777709960938 912.875244140625 939.7777709960938 947.875244140625 972.7777709960938 952.875244140625 1064.7777709960938 955.875244140625 1067.7777709960938 1001.875244140625 1092.7777709960938 1047.875244140625 1130.7777709960938 1044.875244140625 1127.7777709960938 1011.875244140625 1274.7777709960938 1027.875244140625 1278.7777709960938 1063.875244140625 1317.7777709960938 1060.875244140625 1312.7777709960938 969.875244140625 1281.7777709960938 970.875244140625 1275.7777709960938 1010.875244140625 1127.7777709960938 984.875244140625 1129.7777709960938 874.875244140625 1094.7777709960938 873.875244140625 1093.7777709960938 906.875244140625 970.7777709960938 901.875244140625 974.7777709960938 872.875244140625 Z","edition_width":1420,"edition_height":1420,"spot_in_devices":false,"center_x":1102.7777709960938,"center_y":1024.2085571289062,"translations":{"en_us":{"url-text":""},"id_id":{"url-text":""}},"item":{"id":60602263,"url":"\/produk\/dapur-mini-dan-perabot-dapur\/perabot-kecil-dapur\/klavrestrom-art-60602263","default_image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/images\/654\/1365401_PE956327_S3.webp","name":"KLAVRESTR\u00d6M","extra_facts":"rak dinding, kayu oak, 60x20 cm","price":"<span class=\"currency\">Rp<\/span>699.000"}},{"figure_type":"polygon","function_type":"product","function_value":"20592124","svg_path":null,"coordinates":"M 340.77777099609375 1342.4304809570312 539.7777709960938 1361.4304809570312 571.7777709960938 1336.4304809570312 578.7777709960938 1160.4304809570312 570.7777709960938 1144.4304809570312 534.7777709960938 1133.4304809570312 509.77777099609375 1133.4304809570312 431.77777099609375 1126.4304809570312 377.77777099609375 1144.4304809570312 356.77777099609375 1177.4304809570312 342.77777099609375 1216.4304809570312 Z","edition_width":1420,"edition_height":1420,"spot_in_devices":false,"center_x":461.47326990401075,"center_y":1246.1978415920144,"translations":{"en_us":{"url-text":""},"id_id":{"url-text":""}},"item":{"id":20592124,"url":"\/produk\/dekorasi-dinding\/jam\/tjinga-art-20592124","default_image":"https:\/\/d2xjmi1k71iy2m.cloudfront.net\/dairyfarm\/id\/images\/573\/1357334_PE953522_S3.webp","name":"TJINGA","extra_facts":"jam beker, kuning pucat, 8x8 cm","price":"<span class=\"currency\">Rp<\/span>69.900"}}]}; if (properties != null && properties.polygon_paths.length > 0) { if (typeof polygon !== 'undefined' && polygon.addImage) { polygon.addImage(37074, properties) } } }); function addAllToCart(id_image) { if (id_image && id_image != '') { polygon.addAllToCart(id_image); } } </script> </div> </div> </div> <div class="container"> <div class="row"> <div class="col"> <hr class="divider"> </div> </div> </div> <div class="container"> <div class="row"> <div class="col-12 dataRoom"> <div class="text-wrap bannerTemplate text-alignment my-4"> <h2 class="display-7">Jelajahi IKEA</h2> Mulai dari lokasi toko kami, menikmati hidangan Swedia hingga bergabung dengan IKEA Family dan menemukan solusi bisnis, ada sesuatu untuk semua orang. </div> </div> <div class="col-12 dataRoom"> <div class="text-wrap bannerTemplate text-alignment my-4"> <style type="text/css">.img_container { position: relative; cursor: pointer; } .img_text { position: absolute; left: 50%; transform: translate(-50%, 0); bottom: 0%; width: 75%; } a.button-card-custom { background-color: white; background: white; padding: .5rem 1.5rem; border-radius: 50px; border: 1px solid white; font-size: 14px; font-weight: bolder; color: black; transition-duration: .25s; cursor: pointer; display: inline-flex; position: absolute; transform: translate(-50%,-50%); bottom: 10%; line-height: 1; text-decoration: none; min-width: 45px; align-items: center; justify-content: center; white-space: nowrap; } .img_container:hover a.button-card-custom { border: 1px solid black; background-color: black; background: black; color: white; } a.button-card-custom:active { padding: .25rem 1.25rem; } @media (max-width: 768px) { #appendGuides4 .slick-list { padding: 0 35% 0 0 !important; word-wrap: break-word; } } </style> <div class="container"> <div class="row" id="appendGuides4"></div> </div> <script type="text/javascript"> const appendGuides_list4 = [ { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1720414006700_3_14.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1720414006700_3_14.webp", "text_en": "IKEA Stores", "text_in": "Toko IKEA", "url_en": "https://www.ikea.co.id/en/where-are-we", "url_in": "https://www.ikea.co.id/in/lokasi-kami" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1720414006481_3_12.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1720414006481_3_12.webp", "text_en": "IKEA Food", "text_in": "Makanan IKEA", "url_en": "https://www.ikea.co.id/en/ikea-food", "url_in": "https://www.ikea.co.id/in/makanan-ikea" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1720414006605_3_13.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1720414006605_3_13.webp", "text_en": "IKEA Business", "text_in": "IKEA Bisnis", "url_en": "https://www.ikea.co.id/en/ikea-for-business ", "url_in": "https://www.ikea.co.id/in/ikea-untuk-bisnis" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1720414006344_3_11.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1720414006344_3_11.webp", "text_en": "IKEA Family", "text_in": "IKEA Family", "url_en": "https://www.ikea.co.id/en/ikea-family", "url_in": "https://www.ikea.co.id/in/ikea-family" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030305958_5_0.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030305958_5_0.webp", "text_en": "Popular content", "text_in": "Konten popular", "url_en": "https://www.ikea.co.id/en/popular-on-social-media", "url_in": "https://www.ikea.co.id/in/populer-di-media-sosial" }, ] function appendGuides4(json) { let str = ''; const url_en_val = document.documentElement.lang === 'en' $(json).each(function(index, value) { str += '<div class="col-12 col-md-6 img_container text-center mb-4">' str += '<a href="' + (url_en_val ? value.url_en : value.url_in) + '">' str += '<img data-src="' + (url_en_val ? value.image_en : value.image_in) + '" class="lazyload" width="100%">' str += '</a>' str += '<div class="img_text">' str += '<a href="' + (url_en_val ? value.url_en : value.url_in) + '" class="button-card-custom">' + (url_en_val ? value.text_en : value.text_in) + '</a>' str += '</div>' str += '</div>' }); $('#appendGuides4').html(str) } $(document).ready(function() { appendGuides4(appendGuides_list4) $('#appendGuides4').slick({ slidesToShow: 5, slidesToScroll: 1, adaptiveHeight: false, fade: false, speed: 500, dots: false, infinite: true, autoplay: false, responsive: [{ breakpoint: 768, settings: { arrows: false, slidesToShow: 1, slidesToScroll: 1, } }, ] }); }); </script> </div> </div> </div> </div> <div class="container"> <div class="row"> <div class="col"> <hr class="divider"> </div> </div> </div> <div class="container"> <div class="row"> <div class="col-12 dataRoom"> <div class="text-wrap bannerTemplate text-alignment my-4"> <h2 class="display-7">Layanan IKEA</h2> Nikmati berbagai layanan yang dirancang untuk membuat pengalaman berbelanja Anda lebih mudah dan menyenangkan.<br /> <br /> <a class="button-custom-color" href="https://www.ikea.co.id/in/layanan-ikea">Jelajahi lebih banyak</a> </div> </div> <div class="col-12 dataRoom"> <div class="text-wrap bannerTemplate text-alignment my-4"> <style type="text/css">.img_container { position: relative; cursor: pointer; } .img_text { position: absolute; left: 50%; transform: translate(-50%, 0); bottom: 0%; width: 75%; } a.button-card-custom { background-color: white; background: white; padding: .5rem 1.5rem; border-radius: 50px; border: 1px solid white; font-size: 14px; font-weight: bolder; color: black; transition-duration: .25s; cursor: pointer; display: inline-flex; position: absolute; transform: translate(-50%,-50%); bottom: 10%; line-height: 1; text-decoration: none; min-width: 45px; align-items: center; justify-content: center; white-space: nowrap; } .img_container:hover a.button-card-custom { border: 1px solid black; background-color: black; background: black; color: white; } a.button-card-custom:active { padding: .25rem 1.25rem; } @media (max-width: 768px) { #appendGuides2 .slick-list { padding: 0 35% 0 0 !important; word-wrap: break-word; } } </style> <div class="container"> <div class="row" id="appendGuides2"></div> </div> <script type="text/javascript"> const appendGuides_list2 = [ { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030188094_4_0.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030189176_4_8.webp", "text_en": "Delivery", "text_in": "Delivery", "url_en": "https://www.ikea.co.id/en/customerservice/about-service/delivery", "url_in": "https://www.ikea.co.id/in/layanan-pelanggan/tentang-layanan/pengantaran" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030188311_4_1.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030189271_4_9.webp", "text_en": "Click and collect", "text_in": "Click and collect", "url_en": "https://www.ikea.co.id/en/customerservice/about-service/click-and-collect", "url_in": "https://www.ikea.co.id/in/layanan-pelanggan/tentang-layanan/click-and-collect" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030188438_4_2.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030189411_4_10.webp", "text_en": "Assembly", "text_in": "Assembly", "url_en": "https://www.ikea.co.id/en/customerservice/about-service/assembly", "url_in": "https://www.ikea.co.id/in/layanan-pelanggan/tentang-layanan/perakitan" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030188560_4_3.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030189543_4_11.webp", "text_en": "Financing", "text_in": "Pembiayaan", "url_en": "https://www.ikea.co.id/en/payment-options", "url_in": "https://www.ikea.co.id/in/pilihan-pembayaran" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030188677_4_4.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030189658_4_12.webp", "text_en": "Interior design", "text_in": "Interior design", "url_en": "https://www.ikea.co.id/en/interior-designs", "url_in": "https://www.ikea.co.id/in/design-interior" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030188773_4_5.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030189813_4_13.webp", "text_en": "Planning tools", "text_in": "Planning tools", "url_en": "https://www.ikea.co.id/en/planner/showlist", "url_in": "https://www.ikea.co.id/in/alat-perencana" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030188917_4_6.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726680476155_0_1.webp", "text_en": "Track my order", "text_in": "Track my order", "url_en": "https://www.ikea.co.id/en/trackandtrace", "url_in": "https://www.ikea.co.id/in/trackandtrace" }, { "image_en": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030189065_4_7.webp", "image_in": "https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/pageImages/page__en_us_1726030190050_4_15.webp", "text_en": "Contact us", "text_in": "Contact us", "url_en": "https://www.ikea.co.id/en/customerservice/contact-us ", "url_in": "https://www.ikea.co.id/in/layanan-pelanggan/hubungi-kami" }, ] function appendGuides2(json) { let str = ''; const url_en_val = document.documentElement.lang === 'en' $(json).each(function(index, value) { str += '<div class="col-12 col-md-6 img_container text-center mb-4">' str += '<a href="' + (url_en_val ? value.url_en : value.url_in) + '">' str += '<img data-src="' + (url_en_val ? value.image_en : value.image_in) + '" class="lazyload" width="100%">' str += '</a>' // str += '<div class="img_text">' // str += '<a href="' + (url_en_val ? value.url_en : value.url_in) + '" class="button-card-custom">' + (url_en_val ? value.text_en : value.text_in) + '</a>' // str += '</div>' str += '</div>' }); $('#appendGuides2').html(str) } $(document).ready(function() { appendGuides2(appendGuides_list2) $('#appendGuides2').slick({ slidesToShow: 5, slidesToScroll: 1, adaptiveHeight: false, fade: false, speed: 500, dots: false, infinite: true, autoplay: false, responsive: [{ breakpoint: 768, settings: { arrows: false, slidesToShow: 1, slidesToScroll: 1, } }, ] }); }); </script> </div> </div> </div> </div> <div class="container"> <div class="row"> <div class="col"> <hr class="divider"> </div> </div> </div> <div class="container"> <div class="row"> <div class="col-12 dataRoom"> <div class="text-wrap bannerTemplate text-alignment my-4"> <style type="text/css">#footer{ padding:4em 3em; } .button-custom-color2{ padding: 0 1.5rem; min-width: 40px; height: 40px; font-size: .75rem; display: inline-flex; justify-content: center; align-items: center; font-weight: bold; line-height: 1; text-decoration: none; white-space: nowrap; border-radius: 10rem; transition-property: transform, -webkit-transform; transition-duration: 0.25s; transition-timing-function: cubic-bezier(0.4, 0, 0.4, 1); color: #000000; background-color: #ffffff; } @media only screen and (max-width: 768px){ #footer{ padding:2em; } } </style> <div class="row"> <div class="col-12"> <div id="footer" style="background-color: #000000;"></div> </div> </div> <script type="text/javascript"> function appendfooter(){ var url_en_val = document.documentElement.lang === 'en' let str = '' str += '<div class="display-7" style="color:white;">' str += url_en_val ? 'Important information' : 'Informasi penting' str += '</div>' str += '<p class="mb-4" style="color:white;">' str += url_en_val ? 'Find information about IKEA product recalls to ensure your home life becomes safer and more comfortable.' : 'Temukan informasi mengenai penarikan produk IKEA untuk memastikan kehidupan di rumah jadi lebih aman dan nyaman.' str += '</p>' str += '<a href="'+(url_en_val ? 'https://www.ikea.co.id/en/newsroom/recalls' : 'https://www.ikea.co.id/in/ruang-berita/penarikan')+'" class="button-custom-color2">'+(url_en_val ? 'Read more' : 'Baca selengkapnya')+'</a>' $('#footer').html(str) } $(document).ready(function(){ appendfooter(); }); </script> </div> </div> </div> </div> <div class="container"> <div class="row"> <div class="col"> <hr class="divider"> </div> </div> </div> <div class="container"> <div class="row"> <div class="col-12 col-md-9 dataRoom"> <div class="text-wrap bannerTemplate text-alignment my-4"> <h1 class="display-7">IKEA Indonesia - Solusi rumah nyaman, gaya, dan terjangkau untuk semua</h1> IKEA&nbsp;Indonesia selalu berkomitmen untuk menciptakan hidup yang lebih baik bagi banyak orang. Sebagai <a href="https://www.ikea.co.id/in/lokasi-kami/toko/ikea-alam-sutera">toko furnitur rumah</a>, kami memberikan solusi cerdas, bergaya, namun tetap dengan <a href="https://www.ikea.co.id/in/campaigns/kebutuhan-sehari-hari-dengan-harga-terjangkau">harga terjangkau</a> sehingga lebih banyak orang dapat membelinya. Mulai dari <a href="https://www.ikea.co.id/in/produk/tempat-tidur">tempat tidur</a> dan <a href="https://www.ikea.co.id/in/produk/lemari/lemari-pakaian">lemari pakaian</a> untuk kamar tidur, hingga <a href="https://www.ikea.co.id/in/produk/sofa-dan-kursi-berlengan/sofa">sofa</a> yang cozy dan meja kopi stylish untuk ruang keluarga, kami punya semua yang Anda butuhkan untuk menjadikan rumah Anda lebih nyaman.<br /> <br /> Jelajahi <a href="https://www.ikea.co.id/in/produk/dekorasi">koleksi dekorasi rumah</a> kami yang menawan, mulai dari <a href="https://www.ikea.co.id/in/produk/gorden-dan-tirai/tirai">tirai</a> hingga <a href="https://www.ikea.co.id/in/produk/lampu-kamar-tidur">pencahayaan</a>, serta produk musiman yang akan menyempurnakan ruangan Anda. Butuh inspirasi? Cek ide-ide ruangan kami yang telah dikurasi melalui situs IKEA, <a href="https://www.ikea.co.id/in/layanan-pelanggan/tentang-belanja/aplikasi-gratis-ikea">aplikasi IKEA Indonesia</a> atau langsung di <a href="https://www.ikea.co.id/in/lokasi-kami">toko IKEA</a>.<br /> <br /> Jangan lupa juga mencicipi hidangan lezat khas Swedia di <a href="https://www.ikea.co.id/in/makanan-ikea/restoran">Restoran</a>, <a href="https://www.ikea.co.id/in/makanan-ikea/bistro">Bistro</a>, Kafe, atau bawa pulang makanan favorit Anda dari <a href="https://www.ikea.co.id/in/makanan-ikea/makanan-swedia">Swedish Food Market</a>. Temukan produk furnitur favorit Anda di website IKEA, aplikasi IKEA Indonesia atau kunjungi IKEA terdekat. </div> </div> </div> </div> <div class="container"> <div class="row"> <div class="col"> <hr class="divider"> </div> </div> </div> </div> </div> </div> <div class="container back-to-top-container fixed-btn-wrap d-print-none"> <a id="back-to-top" href="#top" class="fixed-btn back-to-top btn d-lg-none"> <span class="icon"></span> <span class="label">Kembali ke atas</span> </a> </div> <div class="footer-wrapper"> <div class="footer-container"> <link media='all' href='/webroot/css/layout/footerMainLinks.css?v=1739374061' rel='stylesheet' /> <footer class="container footerMainLinks test-alignment"> <div class="row"> <div class="col-12 col-md-8 col-xl-5 d-flex flex-row align-items-start footer__ikea-app"> <div class="footer__ikea-app__img d-none d-md-block"> <img width="170" src="https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/images/commons/home-footer-iphone.png" alt="Mobile with App" /> </div> <div class="footer__ikea-app__desc pl-0 pl-md-5"> <h4 class="mt-3 mt-md-5 mb-3">Aplikasi IKEA Indonesia</h4> <p>Melalui aplikasi IKEA Indonesia, Anda dapat bergabung menjadi IKEA Family dan mendapatkan banyak reward spesial. Download dan daftar sekarang. GRATIS!</p> <a class="btn btn--with-border btn--small w-100 mt-2 mb-3" href="https://apps.apple.com/id/app/ikea-indonesia/id1448679530?l=id" target="_blank">Download di iOS</a> <a class="btn btn--with-border btn--small w-100 mb-3" href="https://play.google.com/store/apps/details?id=id.co.ikea.android" target="_blank">Download di Android</a> </div> </div> <div class="col-12 col-md-4 offset-xl-1 col-xl-5 pl-md-5 pl-xl-0"> <h5 href="#footer-links" class="heading-alignment mt-5 mb-3">Tautan yang berguna</h5> <ul id="footer-links" class="list"> <li class="item"><a href="/in/layanan-pelanggan/kebijakan-pengembalian">Kebijakan Pengembalian 90 Hari</a></li> <li class="item"><a href="/in/pelayanan-pelanggan">Layanan Pelanggan</a></li> <li class="item"><a href="/in/ikea-untuk-bisnis">IKEA untuk Bisnis</a></li> <li class="item"><a href="/in/layanan-pelanggan/hubungi-kami">Hubungi Kami</a></li> <li class="item"><a href="/in/lokasi-kami#pickup-point">Pick-up Point IKEA</a></li> <li class="item"><a href="/in/tentang">Ini adalah IKEA</a></li> <li class="item"><a href="/in/tentang/bekerja-di-ikea-indonesia/lowongan-kerja">Bekerja di IKEA</a></li> <li class="item"><a href="/in/layanan-pelanggan/faq">FAQ</a></li> <li class="item"><a href="/in/ruang-berita">Ruang berita</a></li> <li class="item"><a href="/in/layanan-ikea">Layanan IKEA</a></li> <li class="item"><a href="https://survey.alchemer.eu/s3/90353629/ikea-feedback?touchpoint=web">Tinggalkan saran</a></li> <li class="item"><a href="/in/penawaran/promo-murah">Promo murah</a></li> <li class="item"><a href="/in/campaigns/kebutuhan-sehari-hari-dengan-harga-terjangkau">Harga Terjangkau</a></li> <li class="item"><a href="/in/daftar-kategori">Daftar kategori</a></li> <li class="item"><a href="/in/komitmen-ikea-terhadap-kualitas-dengan-sertifikasi-k3l-sni-sdppi">Sertifikasi produk</a></li> </ul> </div> </div> </footer> <div class="container d-flex flex-column justify-content-between justify-content-sm-center align-items-start align-items-sm-center align-items-md-center mb-3"> <div class="socialNetworks pb-1 pb-sm-0 pb-md-3"> <nav class="navbar navbar-expand-sm navbar-light socialLink"> <div class="navbar-brand d-none px-lg-1 display-7">Ikuti kami di</div> <div class="justify-center d-flex icons-wrap pl-lg-0"> <a rel="nofollow" class="socialIcon mb-3 mb-sm-2 mb-md-0" href="https://www.facebook.com/IKEAindonesia/" target="_blank"> <span class="icon fundament-icon-facebook"></span><span class="text d-none">facebook</span> </a> <a rel="nofollow" class="socialIcon mb-3 mb-sm-2 mb-md-0" href="https://www.instagram.com/ikea_id/" target="_blank"> <span class="icon fundament-icon-instagram"></span><span class="text d-none">instagram</span> </a> <a rel="nofollow" class="socialIcon mb-3 mb-sm-2 mb-md-0" href="https://www.pinterest.com/ikeaindonesia/" target="_blank"> <span class="icon fundament-icon-pinterest"></span><span class="text d-none">pinterest</span> </a> <a rel="nofollow" class="socialIcon mb-3 mb-sm-2 mb-md-0" href="https://twitter.com/ikea_ind" target="_blank"> <span class="icon fundament-icon-twitter"></span><span class="text d-none">twitter</span> </a> <a rel="nofollow" class="socialIcon mb-3 mb-sm-2 mb-md-0" href="https://www.youtube.com/channel/UCK5-jZtp3K3Vl347vYaffLg" target="_blank"> <span class="icon fundament-icon-youtube"></span><span class="text d-none">youtube</span> </a> <a rel="nofollow" class="socialIcon mb-3 mb-sm-2 mb-md-0" href="https://www.tiktok.com/@ikea_indonesia" target="_blank"> <span class="icon fundament-icon-tiktok"></span><span class="text d-none">tiktok</span> </a> <div class="credit-card--list"> <span class="credit-card--wrap mr-3 ml-sm-3"> <img class="credit-card--img img-fluid paymentData" src="https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/static_content/payment_partners/visaFooter.svg" alt="Visa"> </span> <span class="credit-card--wrap mr-3"> <img class="credit-card--img img-fluid paymentData" src="https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/static_content/payment_partners/visaElectronFooter.svg" alt="Visa electron"> </span> <span class="credit-card--wrap mr-3"> <img class="credit-card--img img-fluid paymentData" src="https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/static_content/payment_partners/masterCardFooter.svg" alt="Master card"> </span> <span class="credit-card--wrap"> <img class="credit-card--img img-fluid paymentData" src="https://d2xjmi1k71iy2m.cloudfront.net/dairyfarm/id/static_content/payment_partners/maestroFooter.svg" alt="Maestro"> </span> </div> </div> </nav> </div> <div class="languageSelector"> <a class="language" href="#" data-locale="en_us" data-action="changeLocale"><span>en</span></a> <a class="language active" href="#" data-locale="id_id" data-action="changeLocale"><span>id</span></a> </div></div> <div><script type="application/ld+json"> { "@context": "https://schema.org", "@type": "WebSite", "name": "IKEA Indonesia", "url": "https://www.ikea.co.id/in", "potentialAction": { "@type": "SearchAction", "target": "https://www.ikea.co.id/in/search?q={search_term_string}&sort=RECOMMENDED", "query-input": "required name=search_term_string" } } </script></div> <link media='all' href='/webroot/css/layout/footerMainLegal.css?v=1739374061' rel='stylesheet' /> <footer class="container footerMainLegal"> <nav class="navbar navbar-expand-lg navbar-dark"> <div class="mail-legal-wrap"> <p class="navbar-text mb-0">&copy; Inter IKEA Systems B.V. 2014 - 2025</p> <ul class="navbar-nav mr-auto mr-lg-0 ml-lg-auto"> <li class="nav-item"><a class="nav-link" href="/in/layanan-pelanggan/tentang-belanja/syarat-dan-ketentuan/kebijakan-privasi">Kebijakan Privasi</a></li> <li class="nav-item"><a class="nav-link" href="/in/layanan-pelanggan/tentang-belanja/syarat-dan-ketentuan/pembatasan-tanggung-jawab">Pembatasan Tanggung Jawab</a></li> <li class="nav-item"><a class="nav-link" href="/in/layanan-pelanggan/tentang-belanja/syarat-dan-ketentuan/responsible-disclosure">Pengungkapan yang Bertanggung Jawab</a></li> <li class="nav-item"><a class="nav-link" href="/in/kebijakan-cookie">Kebijakan Cookie</a></li> </ul> </div> </nav> </footer> </div> </div> </div> </div> <div id="modal" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">×</span> </button> </div> <div class="modal-body"> </div> <div class="modal-footer"> </div> </div> </div> </div> <div id="modalConfirmation" class="modal-confirmation modal fade" tabindex="-1" role="dialog" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-body"> <div class="content" data-content></div> <div data-hidden></div> </div> <div class="modal-footer"> <div class="container"> <div class="row"> <div class="col-12 d-flex flex-wrap justify-content-between align-items-center"> <button class="modalConfirmationButton btn btn--small btn-icon " data-action="modalConfirmation-cancel" data-dismiss="modal" > <span class="icon left fundament-icon-chevron-left p-0"></span> <span>Batal</span> </button> <button class="modalConfirmationButton btn btn--small btn-icon primary" data-id="156" data-action="modalConfirmation-confirm" > <span>Konfirmasi</span> <span class="icon right fundament-icon-chevron-right p-0"></span> </button> </div> </div> </div> </div> </div> </div> </div> <div id="modalOTP" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true" data-numotp="" data-backdrop="static" data-keyboard = "false" aria-labelledby="staticBackdropLabel" aria-hidden="true"> <div class="modal-dialog modal-lg" role="document"> <div class="modal-content"> <div class="modal-header bg-primary d-flex align-items-center justify-content-center"> <div class="row my-3 w-100"> <div class="col"> <div class="text-center text-white mx-5 mb-0">Verifikasi OTP</div> </div> </div> </div> <div class="modal-body"> <div class="row"> <div class="col-12"> <p class="mb-0">Masukkan kode verifikasi yang dikirim ke nomor handphone Anda</p> <div id="ModalOTP_numbers" class="text-center"></div> <div> <p class="text-danger text-left"> <i class="icon fundament-icon-information-circle icon-rotate d-inline-block"></i> <span id="error_otp">&nbsp;<span> </p> </div> <div id="ModalOTP_resendText"> <p>Tidak menerima OTP? <button id="resendOTP" type="button" class="btn btn-link" data-action>Kirim ulang</button></p> </div> <div id="ModalOTP_counter" class"text-center" style="display:none"> <p class="text-danger">Mengirim ulang OTP dalam <span id="counterModal"></span> seconds</p> </div> </div> </div> </div> </div> </div> </div> <div class="modal fade" id="modalGallery" tabindex="-1" role="dialog" aria-labelledby="modalGallery" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered template_detail" role="document"> <div class="modal-content px-3 px-lg-5 pt-4 pb-5 item_detail_information"> <div class="modal-header mb-4"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="row contentSlider"> <div class="col-lg-12 col-xl-10 slides "> <div class="sliderProductDetail"> <div class="slideItem " data-index=""> <div class="emptyItem"> <span class="icon icon-camera"></span> </div> </div> </div> </div> </div> </div> </div> </div> <script src='/webroot/js/vendor/jquery-3.5.1.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/vendor/axios-1.3.4.min.js?v=1739374061' type='text/javascript'></script> <script defer src='/webroot/js/vendor/bootstrap-4.6.0/bootstrap.bundle.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/vendor/mobile-detect.js/mobile-detect.min.js?v=1739374061' type='text/javascript'></script> <script defer src='/webroot/js/vendor/swiper-8.2.4/swiper-bundle.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/Messages.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/search-algolia/SearchAlgolia_alamsutera.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/repositories/BackendClient.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/repositories/ApiClient.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/repositories/ShoppingCartRepository.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/repositories/ShoppingListRepository.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/repositories/PurchaseServiceRepository.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/repositories/InsiderRepository.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/repositories/OrderRepository.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/repositories/RepositoryFactory.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/plugins/webview/OpenWebViewAppModal.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/vendor/cookieconsent.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/ga_datalayer.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/vendor/moment.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/search-algolia/AlgoliaEvents.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/HeaderMain.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/ProductRoom.min.js?v=1739374061' type='text/javascript'></script> <script> AlgoliaEvents.algolia_config = {"aplication_id":"YH8W494P2N","search_api_key":"c0e41d4bb261e890d6f726b0cb570161","indexes":{"RECOMMENDED":"IKID_PROD_Product_IN","SUGGESTION":"IKID_PROD_Product_IN_query_suggestions","SALES":"IKID_PROD_Product_IN_sales_desc","PRICEASC":"IKID_PROD_Product_IN_price_asc","PRICEDESC":"IKID_PROD_Product_IN_price_desc","RANGE":"IKID_PROD_RangePage_IN","PAGES":"IKID_PROD_WebPage_IN","NORESULTS":"IKID_PROD_Product_IN_no_results"}} AlgoliaEvents.init() </script> <script src='/webroot/js/search-algolia/SearchAlgolia_alamsutera.min.js?v=1739374061' type='text/javascript'></script> <script> SearchAlgolia.default_filters = {"is_available_online":false,"has_stock":false,"is_new":false,"is_activity":false,"prices":{"from":null,"to":null},"measures":[],"series":[],"categories":[],"product_types":[],"colors":[]} SearchAlgolia.shop_currency = {"position":1,"currency":"Rp","dec_number":2,"dec_separator":",","thousand_separator":"."} </script> <script> document.addEventListener('DOMContentLoaded', function() { Messages.addText('or-while-supplies-last', ' atau selama persediaan masih ada'); Messages.addText('success', 'Complete successfully'); Messages.addText('error', 'Maaf, telah terjadi kesalahan. Coba lagi.'); Messages.addText('empty_fields', 'Silakan isi kolom yang kosong'); Messages.addText('email_format', 'Format email salah'); Messages.addText('email_complete', 'Silakan lengkapi email'); Messages.addText('email_length', 'Email salah'); Messages.addText('email_equals', 'Emails must be equal'); Messages.addText('phone_format', 'Harap masukan nomor telepon Indonesia tanpa diawali angka 0'); Messages.addText('assembly_timeslot', 'Kuota layanan perakitan penuh, silakan lanjutkan ke pembayaran dan hubungi Customer Service kami untuk memesan layanan perakitan secara terpisah.'); Messages.addText('only_mobile', 'Pilihan ini hanya tersedia di perangkat mobile.'); Messages.addText('compare', 'Bandingkan'); Messages.addText('comparing', 'Membandingkan'); Messages.addText('array_months', '["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Agu","Sep","Okt","Nov","Des"]'); Messages.addText('array_week', '["Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu"]'); Messages.addText('noStock', "Maaf, stok tidak cukup"); Messages.addText('stock_max_1', "Stok saat ini adalah "); Messages.addText('stock_max_2', "Silakan pilih jumlah lainnya."); Messages.addText('products_text', 'PRODUK'); Messages.addText('limitPerOrder', "Batas pembelian produk ini" + " [LIMIT] " + "pcs untuk setiap pembeli"); Messages.addText("add_item_notification", "telah ditambahkan ke daftar belanja"); Messages.addText("loginAccount_email_error", "Format email salah"); Messages.addText('new-badge', 'BARU'); Messages.addText('new-lower-price-badge', 'HARGA LEBIH RENDAH'); Messages.addText("verification_notification", "Dalam beberapa menit, Anda akan menerima email untuk memverifikasi alamat email Anda"); Messages.addText('phone_without_0', 'Harap masukan nomor telepon Indonesia tanpa diawali angka 0'); Messages.addText('family-price-badge', 'Harga IKEA Family'); Messages.addText('normal-price', 'Harga normal'); Messages.addText('price valid', 'Harga berlaku tanggal'); Messages.addText('article-number-not-valid', 'Harap masukkan nomor artikel yang valid'); }); </script> <script src='/webroot/js/Sidenav.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/Modal.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/vendor/toastr.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/Main.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/vendor/busyLoad/busyLoad.min.js?v=1739374061' type='text/javascript'></script> <script defer src='/webroot/js/vendor/icheck/icheck.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/Breadcrumb_dairyfarm.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/anchorOffset.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/Logout.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/eco/List.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/BasicCart_dairyfarm.min.js?v=1739374061' type='text/javascript'></script> <script defer src='/webroot/js/insider-sw-sdk.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/Insider.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/plugins/HeaderBar.min.js?v=1739374061' type='text/javascript'></script> <script type="text/javascript"> document.addEventListener('DOMContentLoaded', function() { Main.setIsReal(true); list.mobileApp = false $("#addShoppingList[data-action='addShoppingList']").on('click', list.addItem); loginClientId = 0; locale = 'id_id'; checkUrlDeepLink = true let insiderUser= null InsiderEvent.sendObject(insiderUser); }) </script> <script> var displaceTimer; function fixedHeader(windowResize = false) { if (!windowResize) HeaderBar.setPositionTop(); clearTimeout(displaceTimer); } // Initialize Boostrap tooltip $(function () { fixedHeader(); $('[data-toggle="tooltip"]').tooltip(); // validateURL.main('/in', false); }); // Fixed header: Calculate fixed "<header>" height and displaces content to compensate $(window).on('load resize', function (e) { fixedHeader(true); }); // busy-load: Configurable loading spinner $.busyLoadSetup({ animation: "fade", animationDuration: "fast", background: "rgba(255,255,255, 0.8)", text: "Loading...", textPosition: "bottom", textColor: "#000000", color: "#000000", fontawesome: "fa fa-circle-o-notch fa-spin fa-3x fa-fw" }); </script> <script> let locale = 'in'; let href = ''; let message2 = ''; if (locale == 'en') { href = '/en/cookie-policy'; } else { href = '/in/kebijakan-cookie'; message2 = "mengenai kebijakan cookie kami" } let cc_options = { "palette": { "popup": { "background": "#f2f2f2", "text": "#212529" }, "button": { "background": "#407ab1" } }, "position": "bottom", "theme": "classic", "content": { "message": 'Website kami menggunakan cookies untuk meningkatkan pengalaman berbelanja Anda. Dengan menekan tombol “Saya setuju” atau dengan melanjutkan penelusuran, Anda akan mengkonfirmasi persetujuan Anda', "dismiss": "Saya setuju", "link": "pelajari lebih lanjut", "href": window.location.origin+href, "message2": message2 }, "showLink": true, "dismissOnScroll": 3 }; window.addEventListener("load", function () { try { let instance = new cookieconsent.Popup(cc_options); instance.element.style.position = "fixed"; document.body.appendChild(instance.element); } catch (error) { console.error(error) } HeaderBar.setBodyPosition(); }); </script> <script> // Back To top BTN behaviour. $().ready(() => { const scrollToTopBtn = document.getElementById('back-to-top'); const target = document.querySelector('.footer-wrapper'); let windowHeight = window.innerHeight; const isMobile = () => /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent); const switchColorWhenCollide = function() { const obj1 = scrollToTopBtn.getBoundingClientRect(); const obj2 = target.getBoundingClientRect(); if (obj1 && obj2) { if (obj1.bottom >= obj2.top && obj1.top <= obj2.bottom) { scrollToTopBtn.classList.add('btn-dark'); } else { scrollToTopBtn.classList.remove('btn-dark'); } } } const backToTopBtnScroll = function(e, percentage = 125) { if(!percentage) percentage = 125; windowHeight = window.innerHeight; scrollToTopBtn.classList.add('d-lg-none'); if (window.scrollY >= parseInt(percentage * windowHeight/100)) { /* ammount in VH */ scrollToTopBtn.classList.remove('d-lg-none'); if (!window.location.href.includes('checkout')){ switchColorWhenCollide(); } } else { scrollToTopBtn.classList.add('d-lg-none'); } } const createBackToTopBtnEvents = function() { if (isMobile()) { window.removeEventListener('scroll', e => backToTopBtnScroll(e, 0)); window.addEventListener('scroll', e => backToTopBtnScroll(e, 0)); } else { window.removeEventListener('scroll', e => backToTopBtnScroll(e)); window.addEventListener('scroll', e => backToTopBtnScroll(e)); } } if (scrollToTopBtn !== null) { createBackToTopBtnEvents(); // Handle window resize. So, inmediatelly after page finished loading, this will not be triggered. window.addEventListener('resize', function() { if ($(window).width() >= 992) { createBackToTopBtnEvents(); } else { window.removeEventListener('scroll', e => backToTopBtnScroll(e)); scrollToTopBtn.classList.remove('btn-dark'); scrollToTopBtn.classList.add('d-lg-none'); } }); } }); $('#back-to-top').click( e => { e.preventDefault(); window.scrollTo({top: 0, behavior: 'smooth'}); }); </script> <script src="https://www.google.com/recaptcha/api.js?render=6LfEG-gjAAAAAG2QElqfpXMJjIsBXAsvJtRocNUB"></script> <script> let recaptcha = { key_web_site: '6LfEG-gjAAAAAG2QElqfpXMJjIsBXAsvJtRocNUB' } </script> <script> document.addEventListener('DOMContentLoaded', function() { let key_web_site = recaptcha.key_web_site; let input_registration = document.querySelector("#resendOTP"); input_registration.dataset.sitekey = recaptcha.key_web_site }); </script> <script defer src="https://cdn.jsdelivr.net/npm/algoliasearch@4.5.1/dist/algoliasearch-lite.umd.js" integrity="sha256-EXPXz4W6pQgfYY3yTpnDa3OH8/EPn16ciVsPQ/ypsjk=" crossorigin="anonymous"></script> <script defer src="https://cdn.jsdelivr.net/npm/instantsearch.js@4.8.3/dist/instantsearch.production.min.js" integrity="sha256-LAGhRRdtVoD6RLo2qDQsU2mp+XVSciKRC8XPOBWmofM=" crossorigin="anonymous"></script> <script src='/webroot/js/search-algolia/Searcher.min.js?v=1739374061' type='text/javascript'></script> <script> Messages.addText('new-badge', 'BARU') Messages.addText('new-lower-price-badge', 'HARGA LEBIH RENDAH') Messages.addText('business-price-bagde', 'price with IKEA Business') Messages.addText('family-price-bagde', 'price with IKEA Family') Searcher.autocompleteTranslations = { "SUGGESTIONS":"SARAN", "PRODUCT":"SARAN", "PA":"KETIDAKSENGAJAAN", "SERIE":"SERI", "HFB":"JENIS", "RA":"JENIS", "PROMOTION":"PROMOSI", "SUGGESTION":"SARAN", "CUSTOM":"HALAMAN" }; Searcher.web_view_token = 0; </script> <template id="search-autocomplete-layout"> <div class="search-autocomplete d-none"> <div class="search-autocomplete-options"> <div class="left-side d-none"> <div class="keyword-suggestion search-list d-none"> <h6><span class="icon"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M13.9804 15.3946c-1.0361.7502-2.3099 1.1925-3.6869 1.1925C6.8177 16.5871 4 13.7694 4 10.2935 4 6.8177 6.8177 4 10.2935 4c3.4759 0 6.2936 2.8177 6.2936 6.2935 0 1.377-.4423 2.6508-1.1925 3.6869l4.6016 4.6016-1.4142 1.4142-4.6016-4.6016zm.6067-5.1011c0 2.3713-1.9223 4.2936-4.2936 4.2936C7.9223 14.5871 6 12.6648 6 10.2935 6 7.9223 7.9223 6 10.2935 6c2.3713 0 4.2936 1.9223 4.2936 4.2935z" fill="#111"/> </svg> </span> </h6> <ul class="list-unstyled"></ul> </div> <div class="categories-suggestion search-list d-none"> <h6><span class="icon"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path fill-rule="evenodd" clip-rule="evenodd" d="M4 4v7h7V4H4zm2 5V6h3v3H6zm7-5v7h7V4h-7zm2 5V6h3v3h-3zM4 13h7v7H4v-7zm2 2v3h3v-3H6zm7-2v7h7v-7h-7zm2 5v-3h3v3h-3z" fill="#111"/> </svg> </span> </h6> <ul class="list-unstyled"></ul> </div> <div class="pages-suggestion search-list d-none"> <h6><span class="icon"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M8 6h8v2H8V6zm5 4H8v2h5v-2z" fill="#111"/> <path fill-rule="evenodd" clip-rule="evenodd" d="M4 2h16v20H4V2zm2 2v16h12V4H6z" fill="#111"/> </svg> </span> </h6> <ul class="list-unstyled"></ul> </div> <div class="product-suggestion search-list d-none"> <h6>Produk</h6> <ul class="list-inline"></ul> </div> </div> <div class="right-side"> <div class="recent-search d-none"> <div class="search-list"> <span class="icon"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12 3c-2.2824.0158-4.56.8944-6.3015 2.6358-3.5147 3.5147-3.5147 9.2132 0 12.7279 3.5148 3.5148 9.2132 3.5148 12.728 0 3.5147-3.5147 3.5147-9.2132 0-12.7279l1.4142-1.4142H15.598v4.2427L17.0122 7.05c2.7337 2.7337 2.7337 7.1659 0 9.8995-2.7336 2.7337-7.1658 2.7337-9.8994 0-2.7337-2.7336-2.7337-7.1658 0-9.8995C8.4636 5.6991 10.2294 5.0158 12 5V3z" fill="#111"/> <path d="M12.9974 11.5831V6.9973h-2v5.4142l3.7954 3.7953 1.4142-1.4142-3.2096-3.2095z" fill="#111"/> </svg> </span> <ul class="list-unstyled"></ul> </div> </div> <div class="custom-content d-none"> </div> </div> </div> <div id="searcher_overlay" class="dropdown__overlay overlay fade-in"></div> </div> </template> <template id="search-recommended-product"> <div class="search-recommended-product"> <div class="product-image"> <div class="product-sticker"> </div> <a href=""> <img src="" alt="" /> </a> </div> <div class="product-info"> <div class="product-badge"></div> <h6 class="product-name text-truncate"> <a href=""></a> </h6> <p class="product-facts"></p> <p class="product-price itemPriceBox"></p> </div> </div> </template> <template id="search-custom-banner"> <div class="search-custom-banner"> <a href="#"><img src="" alt="search-custom-banner" /></a> </div> </template> <script src='/webroot/js/vendor/slick/slick.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/vendor/picturefill/picturefill.min.js?v=1739374061' type='text/javascript'></script> <script type="text/javascript"> document.createElement( "picture" ); </script> <link media='all' href='/webroot/css/plugins/polygons/polygons.css?v=1739374061' rel='stylesheet' /> <script src='/webroot/js/plugins/polygons/vendor/raphaeljs/raphael.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/plugins/polygons/Polygon.min.js?v=1739374061' type='text/javascript'></script> <script> Messages.addText('clickToOpen', 'Kembali ke atas'); </script> <script type="text/x-template" id="item-tooltip-component"> <div> <div class="tooltip-content"> <div class="row"> <div class="col-4 text-center d-flex align-items-center text-center pip-link tooltip-img--wrap"> <a :href="item.url"> <img loading="lazy" class="img-fluid" :src="item.default_image" /> </a> </div> <div class="col-6 text-left textTooltip"> <div class="row pip-link"> <div class="col-12"> <strong id="itemNameP" class="itemName">${ item.name }</strong> </div> </div> <div class="row pip-link"> <div class="col-12"> <span class="itemFacts">${ item.extra_facts }</span> </div> </div> <!-- Item color --> <div class="row pip-link item-price--wrap"> <div class="col-12"> <strong> <div class="item-price" v-html="item.price"></div> </strong> </div> </div> <div class="row"> <div class="col-12 mt-3 text-center d-flex align-items-center justify-content-center"> <a v-if="isNativeApp" :id="item.id" :href="formatHref(item.id)" class="addToCart btn btn-yellow btn-block btn-icon text-white addcartTooltipBotton" > <span class="fundament-icon-shopping-bag-add"></span> </a> <a v-else :id="item.id" class="addToCart btn btn-yellow btn-block btn-icon text-white addcartTooltipBotton" > <span class="fundament-icon-shopping-bag-add"></span> </a> </div> </div> </div> <div class="col-2 text-center d-flex align-items-center justify-content-end justify-content-lg-center pip-link chevron-wrapper"> <a :href="item.url"> <i><img loading="lazy" src="/webroot/img/plugins/polygons/chevron-right.svg" alt="chevron" /></i> </a> </div> </div> </div> </div> </script> <script type='text/javascript'> Vue.component('item-tooltip-component', { template:'#item-tooltip-component', props: ['item','isNativeApp'], methods: { formatHref(id) { return 'addtocart/' + String(id).padStart(8, "0") } } }); </script> <script type="text/x-template" id="url-tooltip-component"> <div> <a :href="polygon_url" target="_blank"> <div class='tooltip-content'> <div class='row text-center'> <div class='col-12'> <span v-if="polygon_text"> ${ polygon_text } </span> <span v-else> ${ default_text } </span> </div> </div> </div> </a> </div> </script> <script type='text/javascript'> Vue.component('url-tooltip-component', { template:'#url-tooltip-component', data: function(){ return { default_text: Messages.getText('clickToOpen'), } }, props: ['polygon_text', 'polygon_url'], methods: { } }); </script> <div id="polygonTooltipMobile"> <div class="polygonTooltipClose"><img src="/webroot/img/plugins/polygons/cross.svg" alt="cross"> </div> <div class="polygonTooltipContent"> </div> </div> <script src='/webroot/js/selectAlternative_dairyfarm.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/quantityCounter.min.js?v=1739374061' type='text/javascript'></script> <script src='/webroot/js/Slick.min.js?v=1739374061' type='text/javascript'></script> <script type="text/x-template" id="card-group-view-component-template"> <div class="bigger-row__wrapper"> <div class="row bigger-row"> <div class="card-group-view-component col-sm-12 mb-5"> <div v-if="cards.length > 1 || cardGroupType.type == 'COMPACT' || cardGroupType.type == 'BUTTON OVERLAY'"> <h3 class="mb-4">${title}</h3> <div :id="'swiper_' + cardGroupId" class="swiper card-group--row"> <div class="swiper-wrapper"> <div v-for="card in cardsToShow" class="swiper-slide" v-bind:style="(cardGroupType.type == 'BUTTON OVERLAY' ? 'width: 280px;' : '' )"> <card-skapa-expanded-component v-if="cardGroupType.type == 'EXPANDED'" :selectedLanguage="selectedLanguage" :card="card"/> <card-skapa-compact-component v-if="cardGroupType.type == 'COMPACT'" :selectedLanguage="selectedLanguage" :card="card"/> <card-skapa-button-overlay-component v-if="cardGroupType.type == 'BUTTON OVERLAY'" :selectedLanguage="selectedLanguage" :card="card"/> <card-skapa-only-text-component v-if="cardGroupType.type == 'ONLY TEXT'" :selectedLanguage="selectedLanguage" :card="card"/> </div> </div> <div class="swiper-scrollbar"></div> </div> <div :id="'swiper-button-prev' + cardGroupId" class="component-swiper-button-prev"></div> <div :id="'swiper-button-next' + cardGroupId" class="component-swiper-button-next"></div> </div> <div v-else-if="cards.length == 1"> <h3>${title}</h3> <div v-for="card in cardsToShow" class="swiper-slide card-group--row"> <card-skapa-expanded-component v-if="cardGroupType.type == 'EXPANDED'" :selectedLanguage="selectedLanguage" :card="cards.find(i => true)"/> <card-skapa-compact-component v-if="cardGroupType.type == 'COMPACT'" :selectedLanguage="selectedLanguage" :card="cards.find(i => true)"/> <card-skapa-button-overlay-component v-if="cardGroupType.type == 'BUTTON OVERLAY'" :selectedLanguage="selectedLanguage" :card="cards.find(i => true)"/> <card-skapa-only-text-component v-if="cardGroupType.type == 'ONLY TEXT'" :selectedLanguage="selectedLanguage" :card="cards.find(i => true)"/> </div> </div> </div> </div> </div> </script> <script type='text/javascript'> Vue.component('card-group-view-component', { template: '#card-group-view-component-template', props: { cards: { type: Array, required: true }, cardGroupId: { type: Number, required: false, default: null, }, cardGroupType: { type: Object, required: true }, title:{ type: String }, selectedLanguage: {type: String}, }, data: function() { return { swiper: null } }, mounted: function(){ this.loadSwiper() this.sendGaDatalayerPromotionEvent(); }, updated: function(){ this.loadSwiper() }, methods: { loadSwiper: function() { const isExpanded = this.cardGroupType.type === 'EXPANDED' ? true : false const isButtonOverlay = this.cardGroupType.type === 'BUTTON OVERLAY' ? true : false const swiperEl = this.$el.querySelector("#swiper_" + this.cardGroupId) if(swiperEl) { this.swiper = new Swiper(swiperEl, { slidesPerView: "auto", scrollbar: { el: ".swiper-scrollbar", draggable: true, }, breakpoints: { 260: { slidesPerView: isExpanded ? 1 : (isButtonOverlay ? 2.4 : 1.25) }, 360: { slidesPerView: isExpanded ? 1 : (isButtonOverlay ? 2.4 : 1.25) }, 500: { slidesPerView: isExpanded ? 1 : (isButtonOverlay ? 3.4 : 2.25) }, 700: { slidesPerView: isExpanded ? 1 : (isButtonOverlay ? 4.4 : 2.25) }, 900: { slidesPerView: isExpanded ? 1 : (isButtonOverlay ? 6.4 : 3.25) }, }, navigation: { nextEl: '#swiper-button-next' + this.cardGroupId, prevEl: '#swiper-button-prev' + this.cardGroupId } }); } }, sendGaDatalayerPromotionEvent() { cardPromotions = this.$el.querySelectorAll('#swiper_' + this.cardGroupId + ' .swiper-slide') ?? null; cardPromotions.forEach((card) => { let creativeName = card.querySelector('img') ? card.querySelector('img').src.split('/').at(-1) : null; let promotionName = card.querySelector('a .content h2') ? card.querySelector('a .content h2').textContent : this.cards[0].groups; let promotion_id = card.querySelector('a') ? parseInt(card.querySelector('a').dataset.cardId) : '0'; let dataEvent = { event: 'view_promotion', page_name: document.title, ecommerce: { creative_name: creativeName, creative_slot: 'Homepage - Card Group', promotion_id: promotion_id, promotion_name: promotionName, location_id: '0', } }; try { ga_ecommerce_events.getScrollImpressionEvent(card, "view_promotion", dataEvent); card.addEventListener('click', (e) => { dataEvent.event = 'select_promotion'; ga_ecommerce_events.select_promotion(dataEvent); }); } catch (err){ } }); }, }, computed: { cardsToShow: function(){ let cards = [] if(this.cards && this.cards.length > 0){ if(this.hasCompact){ cards = this.cards.map(c => { c.compact = true return c }) }else{ cards = this.cards } } return cards }, hasCompact: function(){ if(this.cards && this.cards.length > 0){ return this.cards.findIndex(c => c.compact == true) !== -1 } return false; } } }); </script> <script type="text/x-template" id="block-gallery-view-component"> <a :href="currentDetail.link" class="block--content text-decoration-none text-white" :data-card-id="item.id"> <div class="block--content-wrap"> <img :src="elementImage" /> <div v-if="currentDetail.title || currentDetail.description" class="block--gallery-wrap"> <h2 class="heading-alignment display-6">${currentDetail.title}</h2> <p>${currentDetail.description}</p> <p class="link my-0 align-right"> <a class="fa fa-arrow-right"></a> </p> </div> </div> </a> </script> <script type='text/javascript'> Vue.component('block-gallery-view-component', { template: '#block-gallery-view-component', props: [ 'selectedLanguage', 'item', ], data: function () { return {} }, methods: { imagePath: function(){ let path = '/webroot/img/icons/noImage.png' if(this.currentDetail.imageObject && typeof this.currentDetail.imageObject == 'object'){ path = this.currentDetail.imageObject.image }else if(this.currentDetail.imageObject && this.currentDetail.imageObject.length > 0){ path = this.currentDetail.imageObject }else if(this.currentDetail.image && this.currentDetail.image.length > 0){ path = this.currentDetail.image } return path }, }, computed: { currentDetail: function(){ if(this.item.details){ return this.item.details.find(d => d.locale == this.selectedLanguage) } return {} }, backgroundImage: function(){ return 'background-image:' +"url("+this.imagePath()+")"; }, elementImage: function(){ return this.imagePath(); }, } }); </script> <script type="text/x-template" id="gallery-preview-component"> <div class="row"> <div class="col-12"> <div class="preview-gallery" :class="[isDesc ? 'screen-size--desc' : 'screen-size--mobile']"> <div class="screen-size screen-size--btn-wrap"> <button type="button" id="desk-size" class="btn btn--with-border btn-sm toggle" @click="toggle" :class="[isDesc ? 'active' : '']">Desktop</button> <button type="button" id="mobile-size" class="btn btn--with-border btn-sm toggle" @click="toggle" :class="[!isDesc ? 'active' : '']">Mobile</button> </div> <div :class="'block block-'+blockGallery.type.type"> <block-gallery-view-component v-for="(item, key) in blockGallery.items" :key="key" :selectedLanguage="selectedLanguage" :item="item" :class="'element-'+key" /> </div> </div> </div> </div> </script> <script type='text/javascript'> Vue.component('gallery-preview-component', { template: '#gallery-preview-component', props: [ 'selectedLanguage', 'blockGallery', ], methods: { toggle() { this.isDesc = !this.isDesc; }, sendGaDatalayerPromotionEvent() { let galleryPromotions = this.$el.querySelectorAll('.block > a'); galleryPromotions.forEach((blockGallery) => { let creativeName = blockGallery.querySelector('img') ? blockGallery.querySelector('img').src.split('/').at(-1) : null; let promotionName = blockGallery.querySelector('h2') ? blockGallery.querySelector('h2').textContent : this.blockGallery.title; let promotion_id = parseInt(blockGallery.dataset.cardId) ?? '0'; let dataEvent = { event: 'view_promotion', page_name: document.title, ecommerce: { creative_name: creativeName, creative_slot: 'Homepage - Block Gallery', promotion_id: promotion_id, promotion_name: promotionName, location_id: '0', } } try{ ga_ecommerce_events.getScrollImpressionEvent(blockGallery, "view_promotion", dataEvent); blockGallery.addEventListener('click', (e) => { dataEvent.event = 'select_promotion'; ga_ecommerce_events.select_promotion(dataEvent); }); } catch (err){} }) }, }, data: function () { return { isDesc: true, } }, mounted: function () { this.sendGaDatalayerPromotionEvent(); } }); </script> <script type="text/x-template" id="card-skapa-wrapper-component-template"> <div :class="mainComponentClass"> <div class="skapa-card__wrap d-flex" :style="cardBodyStyle"> <slot></slot> </div> </div> </script> <script type='text/javascript'> Vue.component('card-skapa-wrapper-component', { template: '#card-skapa-wrapper-component-template', props: { customClasses: { type: Object }, customStyle: { type: Object, required: false, } }, computed: { mainComponentClass: function(){ let mainComponentClass = {'skapa-card': true} if(this.customClasses){ mainComponentClass = {...mainComponentClass, ...this.customClasses} } return mainComponentClass }, cardBodyStyle: function(){ let cardBodyStyle = {} if(this.customStyle){ cardBodyStyle = {...this.customStyle} } return cardBodyStyle } } }); </script> <script type="text/x-template" id="card-skapa-compact-component-template"> <card-skapa-wrapper-component :customClasses="customClasses" :customStyle="customStyle"> <a :href="currentDetail.href" class="w-100" :data-card-id="card.id"> <div v-if="card.without_image == false" class="img-wrap"> <img class="img-fluid img-inspiration-cls" :src="imagePath" alt=""> </div> <div class="content"> <p v-if="currentDetail.label.length > 0">${currentDetail.label}</p> <h2 class="heading-alignment display-6 mb-3 w-100">${currentDetail.title}</h2> <p v-if="currentDetail.body.length > 0">${currentDetail.body}</p> <p v-if="currentDetail.href.length > 0 || currentDetail.cta_label.length > 0" class="btn-wrap link mb-0"> <a v-if="currentDetail.cta_label && currentDetail.cta_label.length > 0" :href="currentDetail.href" class="discover btn">${currentDetail.cta_label}</a> <a v-else :href="currentDetail.href" class="discover btn btn--icon"><i class="fa fa-arrow-right"></i></a> </p> </div> </a> </card-skapa-wrapper-component> </script> <script type='text/javascript'> Vue.component('card-skapa-compact-component', { template: '#card-skapa-compact-component-template', props: { selectedLanguage: String, card: Object }, data: function () { return { } }, methods: { }, computed: { currentDetail: function(){ if(this.card.details){ return this.card.details.find(d => d.locale == this.selectedLanguage) } return {} }, imagePath: function(){ let path = '/webroot/img/icons/noImage.png' if(this.currentDetail.imageObject && typeof this.currentDetail.imageObject == 'object'){ path = this.currentDetail.imageObject.image }else if(this.currentDetail.imageObject && this.currentDetail.imageObject.length > 0){ path = this.currentDetail.imageObject }else if(typeof this.currentDetail.imageObject == 'undefined' && this.currentDetail.image && this.currentDetail.image.length > 0){ path = this.currentDetail.image } return path }, customClasses: function(){ return { 'skapa-card--compact': true, 'skapa-card--trailing': this.card.image_position == 'TRAILING', 'skapa-card--large': this.card.large, 'skapa-card--emphasised': this.card.card_type == 'EMPHASISED', 'skapa-card--dark': this.card.display_mode == 'DARK', 'skapa-card--light': this.card.display_mode == 'LIGHT' }; }, customStyle: function(){ let customStyle = {} if(this.card.card_type == 'EMPHASISED'){ if(this.card.background_color && this.card.background_color.length > 0){ customStyle['background-color'] = this.card.background_color } } return customStyle } } }); </script> <script type="text/x-template" id="card-skapa-expanded-component-template"> <card-skapa-wrapper-component :customClasses="customClasses" :customStyle="customStyle"> <a :href="currentDetail.href" class="w-100" :data-card-id="card.id"> <div v-if="card.without_image == false" class="img-wrap"> <img class="img-fluid img-inspiration-cls" :src="imagePath" alt=""> </div> <div class="content"> <p v-if="currentDetail.label.length > 0">${currentDetail.label}</p> <h2 class="heading-alignment display-6 mb-3 w-100">${currentDetail.title}</h2> <p v-if="currentDetail.body.length > 0">${currentDetail.body}</p> <p v-if="currentDetail.href.length > 0 || currentDetail.cta_label.length > 0" class="btn-wrap link mb-0"> <a v-if="currentDetail.cta_label && currentDetail.cta_label.length > 0" :href="currentDetail.href" class="discover btn">${currentDetail.cta_label}</a> <a v-else :href="currentDetail.href" class="discover btn btn--icon"><i class="fa fa-arrow-right"></i></a> </p> </div> </a> </card-skapa-wrapper-component> </script> <script type='text/javascript'> Vue.component('card-skapa-expanded-component', { template: '#card-skapa-expanded-component-template', props: { selectedLanguage: String, card: Object }, data: function () { return { } }, methods: { }, computed: { currentDetail: function(){ if(this.card.details){ return this.card.details.find(d => d.locale == this.selectedLanguage) } return {} }, imagePath: function(){ let path = '/webroot/img/icons/noImage.png' if(this.currentDetail.imageObject && typeof this.currentDetail.imageObject == 'object'){ path = this.currentDetail.imageObject.image }else if(this.currentDetail.imageObject && this.currentDetail.imageObject.length > 0){ path = this.currentDetail.imageObject }else if(typeof this.currentDetail.imageObject == 'undefined' && this.currentDetail.image && this.currentDetail.image.length > 0){ path = this.currentDetail.image } return path }, customClasses: function(){ return { 'skapa-card--expanded': true, 'skapa-card--trailing': this.card.image_position == 'TRAILING', 'skapa-card--large': this.card.large, 'skapa-card--emphasised': this.card.card_type == 'EMPHASISED', 'skapa-card--dark': this.card.display_mode == 'DARK', 'skapa-card--light': this.card.display_mode == 'LIGHT' }; }, customStyle: function(){ let customStyle = {} if(this.card.card_type == 'EMPHASISED'){ if(this.card.background_color && this.card.background_color.length > 0){ customStyle['background-color'] = this.card.background_color } } return customStyle } } }); </script> <script type="text/x-template" id="card-skapa-button-overlay-component-template"> <card-skapa-wrapper-component :customClasses="customClasses"> <a :href="currentDetail.href" class="anchor-wrap" :data-card-id="card.id"> <div class="img-wrap"> <img class="img-fluid img-inspiration-cls" :src="imagePath" alt=""> <div class="btn-wrap"> <a :href="currentDetail.href" class="discover btn">${currentDetail.cta_label}</a> </div> </div> </a> </card-skapa-wrapper-component> </script> <script type='text/javascript'> Vue.component('card-skapa-button-overlay-component', { template: '#card-skapa-button-overlay-component-template', props: { selectedLanguage: String, card: Object }, data: function () { return { } }, methods: { }, computed: { currentDetail: function(){ if(this.card.details){ return this.card.details.find(d => d.locale == this.selectedLanguage) } return {} }, imagePath: function(){ let path = '/webroot/img/icons/noImage.png' if(this.currentDetail.imageObject && typeof this.currentDetail.imageObject == 'object'){ path = this.currentDetail.imageObject.image }else if(this.currentDetail.imageObject && this.currentDetail.imageObject.length > 0){ path = this.currentDetail.imageObject }else if(typeof this.currentDetail.imageObject == 'undefined' && this.currentDetail.image && this.currentDetail.image.length > 0){ path = this.currentDetail.image } return path }, customClasses: function(){ return { 'skapa-card--button-overlay': true, 'skapa-card--dark': this.card.display_mode == 'DARK', 'skapa-card--light': this.card.display_mode == 'LIGHT' }; } } }); </script> <script type="text/x-template" id="card-skapa-only-text-component-template"> <card-skapa-wrapper-component :customClasses="customClasses"> <a :href="currentDetail.href" class="content" :data-card-id="card.id"> <p v-if="currentDetail.label.length > 0">${currentDetail.label}</p> <h2 class="heading-alignment display-6 mb-3 w-100">${currentDetail.title}</h2> <p v-if="currentDetail.body.length > 0">${currentDetail.body}</p> <p v-if="currentDetail.href.length > 0 || currentDetail.cta_label.length > 0" class="btn-wrap link mb-0"> <a v-if="currentDetail.cta_label && currentDetail.cta_label.length > 0" :href="currentDetail.href" class="discover btn">${currentDetail.cta_label}</a> <a v-else :href="currentDetail.href" class="discover btn btn--icon"><i class="fa fa-arrow-right"></i></a> </p> </a> </card-skapa-wrapper-component> </script> <script type='text/javascript'> Vue.component('card-skapa-only-text-component', { template: '#card-skapa-only-text-component-template', props: { selectedLanguage: String, card: Object }, data: function () { return { } }, methods: { }, computed: { currentDetail: function(){ if(this.card.details){ return this.card.details.find(d => d.locale == this.selectedLanguage) } return {} }, customClasses: function(){ return { 'skapa-card--only-text': true, 'skapa-card--large': this.card.large, }; } } }); </script> <script type="text/x-template" id="home-inspirations-block-component"> <div class="row"> <div class="col-12"> <div class="preview-gallery" :class="[isDesc ? 'screen-size--desc' : 'screen-size--mobile']"> <div class="screen-size screen-size--btn-wrap"> <button type="button" id="desk-size" class="btn btn--with-border btn-sm toggle" @click="toggle" :class="[isDesc ? 'active' : '']">Desktop</button> <button type="button" id="mobile-size" class="btn btn--with-border btn-sm toggle" @click="toggle" :class="[!isDesc ? 'active' : '']">Mobile</button> </div> <div :class="'block block-gallery block--inspiration'"> <h2 class ="mb-3">Inspirasi</h2> <div class ="my-4"> <inspiration-tags-component v-for="(tag, index) in tags" :tag="tag" :key="index" /> </div> <div class="block--inspiration__container"> <inspiration-gallery-view-component v-for="item in inspirations" :key="item.id" :selectedLanguage="selectedLanguage" :item="item" /> </div> <div class="buttons-container d-flex justify-content-center mt-4"> <p class="btn-wrap link mb-0 dark"> <a href="/inspirations" class="discover btn btn-small btn-dark d-flex align-items-center">Lihat lebih banyak</a> </p> </div> </div> </div> </div> </div> </script> <script type='text/javascript'> Vue.component('home-inspirations-block-component', { template: '#home-inspirations-block-component', props: [ 'selectedLanguage', 'inspirations', 'tags' ], mounted: function(){ this.sendDatalayerInspirationGallery(); }, methods: { toggle() { this.isDesc = !this.isDesc; }, sendDatalayerInspirationGallery: function(){ let inspirationGallery = document.querySelectorAll('#contentWrapper .block.block-gallery.block--inspiration') ? document.querySelectorAll('#contentWrapper .block.block-gallery.block--inspiration .card') : null ; inspirationGallery.forEach((inspirationCard) => { let creativeName = inspirationCard.querySelector('img') ? inspirationCard.querySelector('img').getAttribute('src').split('/').at(-1) : null; let promotion_id = inspirationCard.querySelector('a') ? parseInt(inspirationCard.querySelector('a').dataset.cardId) : '0'; let promotionName = inspirationCard.querySelector('.block--gallery-wrap h2') ? inspirationCard.querySelector('.block--gallery-wrap h2').textContent : null; let dataEvent = { event: 'view_promotion', page_name: document.title, ecommerce: { creative_name: creativeName, creative_slot: 'Homepage - Inspiration Gallery', promotion_id: promotion_id, promotion_name: promotionName, location_id: '0' } }; try { ga_ecommerce_events.getScrollImpressionEvent(inspirationCard, "view_promotion", dataEvent); inspirationCard.addEventListener('click', (e) => { dataEvent.event = 'select_promotion'; ga_ecommerce_events.select_promotion(dataEvent); }); } catch (err){ } }); } }, data: function () { return { isDesc: true, } } }); </script> <script type="text/x-template" id="inspiration-gallery-view-component"> <div class="card"> <a :href="redirectUrl" class="block--content text-decoration-none text-white" :data-card-id="item.block_gallery_item_id"> <div class="block--content-wrap"> <img :src="item.image" /> <div class="block--gallery-wrap"> <h2 class="heading-alignment display-6">${item.title}</h2> <p class="link my-0 align-right"> <a class="fa fa-arrow-right"></a> </p> </div> </div> </a> </div> </script> <script type='text/javascript'> Vue.component('inspiration-gallery-view-component', { template: '#inspiration-gallery-view-component', props: ['selectedLanguage', 'item',], data: function () { return {} }, methods: { }, computed: { redirectUrl : function(){ let url = window.location.href+ '/' + this.item.link; return url }, }, }); </script> <script type="text/x-template" id="inspiration-tags-component-template"> <button class="mr-3 mb-2 btn btn-pill" :class="[tag._is_selected ? 'active' : '']" :id="tag.id" v-on:click="redirect(tag)">${decoded64(tag.tag_detail_label)}</button> </script> <script type="text/javascript"> Vue.component('inspiration-tags-component', { template: '#inspiration-tags-component-template', props: { tag :{ required: true } }, data: function(){ return{ checked_class : 'btn-primary', multitag: false, tags_selected: [], } }, methods: { redirect: function(element){ let url = window.location.href + '/inspirations?tags[]=' + element.id; window.location.href = url; }, decoded64: function(el){ return atob(el); // Decode previous encoded base64 label to avoid issues with special characters } } }); </script> <script type="text/x-template" id="item-sticker-template"> <div class="item-sticker-component" :style="style_background" > <div class="sticker_message" :style="style_message" > ${message} </div> </div> </script> <script type='text/javascript'> Vue.component('item-sticker-component', { template: '#item-sticker-template', props: ['sticker'], data() { return { message: (this.sticker.message) ? this.sticker.message : 'Default message', style_background: { 'background-color': (this.sticker.background_color) ? this.sticker.background_color : '#FF4E4E', 'text-align': 'center', }, style_message: { 'color': (this.sticker.font_color) ? this.sticker.font_color : '#000000', }, } }, methods: {} }); </script> <script type="application/javascript"> $(document).ready(function (e) { Object.values(document.querySelectorAll('.vue-container')).forEach(c => { new Vue({ el: c, data(){ return {selectedLanguage: "id_id"} } }) }) }); </script> <script async src="//assets.pinterest.com/js/pinit.js"></script> <script> window.cookieCopy = window.cookieCopy || {}; (function(cc) { let config = {cookies: []}; function copy(cnf = {}) { for (var name in cnf) { config[name] = cnf[name]; } if (!config.cookies) { return; } let pageCookies = {}; document.cookie.split(';').forEach(cString => { pageCookies[cString.split('=')[0].trim()] = cString.split('=')[1]; }); let domain = window.location.hostname.replace('www', ''); config.cookies.forEach(cname => { if (pageCookies[cname]) { document.cookie = cname + "-CATALOG=" + pageCookies[cname] + "; path=/; domain=" + domain + "; secure; samesite=none"; } }); } cc.copy = copy; })(window.cookieCopy); </script> <script> cookieCopy.copy({ cookies: ['PHPSESSID', 'SPCIITEM'] }); </script> <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-ad90988d7377f3014b8","applicationID":"1834327267","transactionName":"NgNSbEcAXhFXURBfVw9JZUpcTlkMUlccGEgJFg==","queueTime":0,"applicationTime":71,"atts":"GkRRGg8aTR8=","errorBeacon":"bam.nr-data.net","agent":""}</script></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10