1 2<!doctype html> 3 <html class="no-js"> 4 <head> 5 <meta charset="utf-8"> 6 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 7 <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> 8 <meta name="apple-itunes-app" content="app-id=1576832504"> 9 <link rel="icon" type="image/x-icon" href="https://harvestcakes.id/imagecd/logo.png"> 10 <title>Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal</title> 11 <meta name="description" content="Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan!"> 12 <meta name="keywords" content="pubtogel, situs toto, toto togel, togel 4d, situs togel, togel online" /> 13 <link rel="canonical" href="https://collegeofnepal.com/"> 14 <link rel="amphtml" href="https://lingkaransetan.com/pub/d7/"/> 15 <meta property="og:type" content="SITUS TOTO"> 16 <meta property="og:title" content="Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal"> 17 <meta property="og:image" content="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg"> 18 <meta property="og:image:secure_url" content="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg"> 19 <meta property="og:image" content="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg"> 20 <meta property="og:image:secure_url" content="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg"> 21 <meta property="og:image" content="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg"> 22 <meta property="og:image:secure_url" content="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg"> 23 <meta property="og:description" content="Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan!"> 24 <meta property="og:price:amount" content="10,000-,"> 25 <meta property="og:price:currency" content="IDR"> 26 <meta property="og:url" content="https://collegeofnepal.com/"> 27 <meta property="og:site_name" content="PUBTOGEL"> 28 <meta name="twitter:site" content="@PUBTOGEL"> 29 <meta name="twitter:card" content="summary"> 30 <meta name="twitter:title" content="Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal"> 31 <meta name="twitter:description" content="Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan!"> 32 <meta name="twitter:image" content="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg"> 33 <meta name="twitter:image:width" content="600"> 34 <meta name="twitter:image:height" content="600"> 35 <link rel="shortcut icon" href="https://harvestcakes.id/imagecd/logo.png" type="image/png"> 36 <meta name="theme-color" content="#ffffff"> 37 <link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700&family=Poppins&display=swap" rel="stylesheet"> 38 <link href="//outerbloom.com/cdn/shop/t/138/assets/custom-styles.css?v=94643080714485117621752652418" rel="stylesheet" type="text/css" media="all" /> 39 <link rel="stylesheet" href="//outerbloom.com/cdn/shop/t/138/assets/wishlist-styles.css?v=166819525406734116961754385201">
39<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer></script>
39 40
40<script 41 src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" 42 integrity="sha512-57oZ/vW8ANMjR/KQ6Be9v/+/h6bq9/l3f0Oc7vn6qMqyhvPd1cvKBRWWpzu0QoneImqr2SkmO4MSqU+RpHom3Q==" 43 crossorigin="anonymous" 44 referrerpolicy="no-referrer" 45 defer 46 ></script>
46 47 <div class="button-login-daftar"> 48 <a class="login" href="https://lingkaransetan.com/pub/d7/" rel="nofollow noreferrer" style="color: white;"> 49 LOGIN 50 </a> 51 <a class="register" href="https://lingkaransetan.com/pub/d7/" rel="nofollow noreferrer" style="color: white;"> 52 DAFTAR 53 </a> 54 </div> 55 56 <link href="//outerbloom.com/cdn/shop/t/138/assets/combine.min.css?v=111340648424012527321754385205" rel="stylesheet" type="text/css" media="all" /> 57 58 <link href="//outerbloom.com/cdn/shop/t/138/assets/font-awesome.css?v=132324219581463622051752652421" rel="stylesheet" type="text/css" media="all" /> 59 <link rel="stylesheet" href="//code.jquery.com/ui/1.13.0/themes/base/jquery-ui.min.css"> 60 61
61<script src="//code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
61 62
62<script src="//outerbloom.com/cdn/shop/t/138/assets/combine.js?v=140218079523075729301752652421" type="text/javascript"></script>
62 63
63<script src="//code.jquery.com/ui/1.13.0/jquery-ui.min.js"></script>
63 64
64<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
64 65 <meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/15896833/digital_wallets/dialog"> 66 <link rel="alternate" type="application/json+oembed" href="https://collegeofnepal.com/.oembed"> 67
67<script async="async" src="/checkouts/internal/preloads.js?locale=en-ID"></script>
67 68
68<script id="shopify-features" type="application/json">{"accessToken":"d2e176e59f6658d5056234d6249b3ab4","betas":["rich-media-storefront-analytics"],"domain":"outerbloom.com","predictiveSearch":true,"shopId":15896833,"locale":"en"}</script>
68 69
69<script>var Shopify = Shopify || {}; 70 Shopify.shop = "outerbloom1.myshopify.com"; 71 Shopify.locale = "en"; 72 Shopify.currency = {"active":"IDR","rate":"1.0"}; 73 Shopify.country = "ID"; 74 Shopify.theme = {"name":"web-outerbloom-shopify\/main","id":153139282135,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"}; 75 Shopify.theme.handle = "null"; 76 Shopify.theme.style = {"id":null,"handle":null}; 77 Shopify.cdnHost = "outerbloom.com/cdn"; 78 Shopify.routes = Shopify.routes || {}; 79 Shopify.routes.root = "/";</script>
79 80
80<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
80 81
81<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
81 82
82<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
82 83
83<script defer="defer" async="async" src="//outerbloom.com/cdn/shopifycloud/shop-js/client.js" onload="window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 84 "></script>
84 85
85<script>(function() { 86 var isLoaded = false; 87 function asyncLoad() { 88 if (isLoaded) return; 89 isLoaded = true; 90 var urls = ["https:\/\/e9e1-180-254-64-204.ngrok.io\/public\/scripts\/shopifyPageScript.js?shop=outerbloom1.myshopify.com","https:\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/3.5.1\/jquery.min.js?shop=outerbloom1.myshopify.com","https:\/\/14e1-180-254-64-204.ngrok.io\/public\/scripts\/shopifyPageScript.js?shop=outerbloom1.myshopify.com","https:\/\/6403-180-254-64-204.ngrok.io\/public\/scripts\/shopify-page-script.js?shop=outerbloom1.myshopify.com","https:\/\/googlesignintest.loca.lt\/public\/scripts\/shopify-page-script.js?shop=outerbloom1.myshopify.com","https:\/\/api-na1.hubapi.com\/scriptloader\/v1\/6800477.js?shop=outerbloom1.myshopify.com"]; 91 for (var i = 0; i < urls.length; i++) { 92 var s = document.createElement('script'); 93 s.type = 'text/javascript'; 94 s.async = true; 95 s.src = urls[i]; 96 var x = document.getElementsByTagName('script')[0]; 97 x.parentNode.insertBefore(s, x); 98 } 99 }; 100 if(window.attachEvent) { 101 window.attachEvent('onload', asyncLoad); 102 } else { 103 window.addEventListener('load', asyncLoad, false); 104 } 105 })();</script>
105 106
106<script id="__st">var __st={"a":15896833,"offset":25200,"reqid":"78149bf2-9ab6-43c0-b2ce-821afbfe5bd0-1759566675","pageurl":"outerbloom.com\/products\/blossom-shine","u":"381e6a1da038","p":"product","rtyp":"product","rid":8144957800663};</script>
106 107
107<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
107 108
108<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.2.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!1,!0)}();</script>
108 109
109<script integrity="sha256-52AcMU7V7pcBOXWImdc/TAGTFKeNjmkeM1Pvks/DTgc=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//outerbloom.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-81c60534.js" crossorigin="anonymous"></script>
109 110
110<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://outerbloom.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 111 </script>
111 112
112<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 113 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 114 </script>
114 115
115<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 116 </script>
116 117 118
118<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
118 119 <!-- /snippets/oldIE-js.liquid --> 120 121 122 <!--[if lt IE 9]> 123
123<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js" type="text/javascript"></script>
123 124
124<script src="//outerbloom.com/cdn/shop/t/138/assets/respond.min.js?v=52248677837542619231752652418" type="text/javascript"></script>
124 125 <link href="//outerbloom.com/cdn/shop/t/138/assets/respond-proxy.html" id="respond-proxy" rel="respond-proxy" /> 126 <link href="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" id="respond-redirect" rel="respond-redirect" /> 127
127<script src="//outerbloom.com/search?q=142e9156869335090161dced0ac98b64" type="text/javascript"></script>
127 128 <![endif]--> 129 130 131 132 133 134 <link href="https://cdn.shopify.com/extensions/5c1bf460-65bd-4bca-82d0-995a5814b48d/bitlogin-social-login-135/assets/app.css" rel="stylesheet" type="text/css" media="all"> 135 <link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch"> 136
136<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 15896833,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "product"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
136 137
137<script id="web-pixels-manager-setup">(function e(e,d,r,n,o){if(void 0===o&&(o={}),!Boolean(null===(a=null===(i=window.Shopify)||void 0===i?void 0:i.analytics)||void 0===a?void 0:a.replayQueue)){var i,a;window.Shopify=window.Shopify||{};var t=window.Shopify;t.analytics=t.analytics||{};var s=t.analytics;s.replayQueue=[],s.publish=function(e,d,r){return s.replayQueue.push([e,d,r]),!0};try{self.performance.mark("wpm:start")}catch(e){}var l=function(){var e={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/},d=e.modern,r=e.legacy,n=navigator.userAgent;return n.match(d)?"modern":n.match(r)?"legacy":"unknown"}(),u="modern"===l?"modern":"legacy",c=(null!=n?n:{modern:"",legacy:""})[u],f=function(e){return[e.baseUrl,"/wpm","/b",e.hashVersion,"modern"===e.buildTarget?"m":"l",".js"].join("")}({baseUrl:d,hashVersion:r,buildTarget:u}),m=function(e){var d=e.version,r=e.bundleTarget,n=e.surface,o=e.pageUrl,i=e.monorailEndpoint;return{emit:function(e){var a=e.status,t=e.errorMsg,s=(new Date).getTime(),l=JSON.stringify({metadata:{event_sent_at_ms:s},events:[{schema_id:"web_pixels_manager_load/3.1",payload:{version:d,bundle_target:r,page_url:o,status:a,surface:n,error_msg:t},metadata:{event_created_at_ms:s}}]});if(!i)return console&&console.warn&&console.warn("[Web Pixels Manager] No Monorail endpoint provided, skipping logging."),!1;try{return self.navigator.sendBeacon.bind(self.navigator)(i,l)}catch(e){}var u=new XMLHttpRequest;try{return u.open("POST",i,!0),u.setRequestHeader("Content-Type","text/plain"),u.send(l),!0}catch(e){return console&&console.warn&&console.warn("[Web Pixels Manager] Got an unhandled error while logging to Monorail."),!1}}}}({version:r,bundleTarget:l,surface:e.surface,pageUrl:self.location.href,monorailEndpoint:e.monorailEndpoint});try{o.browserTarget=l,function(e){var d=e.src,r=e.async,n=void 0===r||r,o=e.onload,i=e.onerror,a=e.sri,t=e.scriptDataAttributes,s=void 0===t?{}:t,l=document.createElement("script"),u=document.querySelector("head"),c=document.querySelector("body");if(l.async=n,l.src=d,a&&(l.integrity=a,l.crossOrigin="anonymous"),s)for(var f in s)if(Object.prototype.hasOwnProperty.call(s,f))try{l.dataset[f]=s[f]}catch(e){}if(o&&l.addEventListener("load",o),i&&l.addEventListener("error",i),u)u.appendChild(l);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(l)}}({src:f,async:!0,onload:function(){if(!function(){var e,d;return Boolean(null===(d=null===(e=window.Shopify)||void 0===e?void 0:e.analytics)||void 0===d?void 0:d.initialized)}()){var d=window.webPixelsManager.init(e)||void 0;if(d){var r=window.Shopify.analytics;r.replayQueue.forEach((function(e){var r=e[0],n=e[1],o=e[2];d.publishCustomEvent(r,n,o)})),r.replayQueue=[],r.publish=d.publishCustomEvent,r.visitor=d.visitor,r.initialized=!0}}},onerror:function(){return m.emit({status:"failed",errorMsg:"".concat(f," has failed to load")})},sri:function(e){var d=/^sha384-[A-Za-z0-9+/=]+$/;return"string"==typeof e&&d.test(e)}(c)?c:"",scriptDataAttributes:o}),m.emit({status:"loading"})}catch(e){m.emit({status:"failed",errorMsg:(null==e?void 0:e.message)||"Unknown error"})}}})({shopId: 15896833,storefrontBaseUrl: "https://outerbloom.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://monorail-edge.shopifysvc.com/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: [],webPixelsConfigList: [{"id":"870383831","configuration":"{\"accountID\":\"outerbloom1\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"162380e6ffd3e5a2854f1aabf54537bb","type":"APP","apiClientId":32196493313,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"824574167","configuration":"{\"shop\":\"outerbloom1.myshopify.com\", \"backend\": \"api.bitbybit.studio\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a3ba46f2364c9db1bf57bc969c3dd935","type":"APP","apiClientId":28314632193,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"521994455","configuration":"{\"config\":\"{\\\"pixel_id\\\":\\\"G-X26HYP4083\\\",\\\"target_country\\\":\\\"ID\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/YjjSCKiog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/RHfSCK6og9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/dMv0CKWog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/Y2DbCJ-og9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/xwQ2CKKog9gZEMHe74Yp\\\",\\\"MC-HY9J2ZJTNZ\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/i9yRCLGog9gZEMHe74Yp\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-X26HYP4083\\\",\\\"AW-11020267329\\\/T9poCKuog9gZEMHe74Yp\\\"]}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"b2a88bafab3e21179ed38636efcd8a93","type":"APP","apiClientId":1780363,"privacyPurposes":[]},{"id":"236060887","configuration":"{\"pixel_id\":\"165971065669324\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"6d8c3ef0426b37b2a9b717daeb719f58","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"]},{"id":"62947543","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["MARKETING"],"name":"Meta pixel (migrated)"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0450","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0450","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Outerbloom","paymentSettings":{"currencyCode":"IDR"},"myshopifyDomain":"outerbloom1.myshopify.com","countryCode":"ID","storefrontUrl":"https:\/\/outerbloom.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":835000.0,"currencyCode":"IDR"},"product":{"title":"Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal","vendor":"Outerbloom Florist","id":"8144957800663","untranslatedTitle":"Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal","url":"\/products\/blossom-shine","type":"Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan!"},"id":"44083045826775","image":{"src":"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426"},"sku":"OBVSTF1086","title":"Default Title","untranslatedTitle":"Default Title"}],"purchasingCompany":null},},"https://outerbloom.com/cdn","4f0c5c77w64a73806p128ba08bma5b58f2f",{"modern":"","legacy":""},{"shopId":"15896833","storefrontBaseUrl":"https:\/\/outerbloom.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[]","isMerchantRequest":"false","hashVersion":"4f0c5c77w64a73806p128ba08bma5b58f2f","publish":"custom","events":"[[\"page_viewed\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":835000.0,\"currencyCode\":\"IDR\"},\"product\":{\"title\":\"Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal\",\"vendor\":\"Outerbloom Florist\",\"id\":\"8144957800663\",\"untranslatedTitle\":\"Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal\",\"url\":\"\/products\/blossom-shine\",\"type\":\"Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan!\"},\"id\":\"44083045826775\",\"image\":{\"src\":\"\/\/outerbloom.com\/cdn\/shop\/files\/Blossom-Shine-WM.jpg?v=1695788426\"},\"sku\":\"OBVSTF1086\",\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});</script>
137<script> 138 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 139 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 140 window.ShopifyAnalytics.meta.currency = 'IDR'; 141 var meta = {"product":{"id":8144957800663,"gid":"gid:\/\/shopify\/Product\/8144957800663","vendor":"Outerbloom Florist","type":"Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan!","variants":[{"id":44083045826775,"price":1000000 142 ,"name":"Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal","public_title":null,"sku":"OBVSTF1086"}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":8144957800663}}; 143 for (var attr in meta) { 144 window.ShopifyAnalytics.meta[attr] = meta[attr]; 145 } 146 </script>
146 147
147<script class="analytics"> 148 (function () { 149 var customDocumentWrite = function(content) { 150 var jquery = null; 151 152 if (window.jQuery) { 153 jquery = window.jQuery; 154 } else if (window.Checkout && window.Checkout.$) { 155 jquery = window.Checkout.$; 156 } 157 158 if (jquery) { 159 jquery('body').append(content); 160 } 161 }; 162 163 var hasLoggedConversion = function(token) { 164 if (token) { 165 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 166 } 167 return false; 168 } 169 170 var setCookieIfConversion = function(token) { 171 if (token) { 172 var twoMonthsFromNow = new Date(Date.now()); 173 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 174 175 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 176 } 177 } 178 179 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 180 if (trekkie.integrations) { 181 return; 182 } 183 trekkie.methods = [ 184 'identify', 185 'page', 186 'ready', 187 'track', 188 'trackForm', 189 'trackLink' 190 ]; 191 trekkie.factory = function(method) { 192 return function() { 193 var args = Array.prototype.slice.call(arguments); 194 args.unshift(method); 195 trekkie.push(args); 196 return trekkie; 197 }; 198 }; 199 for (var i = 0; i < trekkie.methods.length; i++) { 200 var key = trekkie.methods[i]; 201 trekkie[key] = trekkie.factory(key); 202 } 203 trekkie.load = function(config) { 204 trekkie.config = config || {}; 205 trekkie.config.initialDocumentCookie = document.cookie; 206 var first = document.getElementsByTagName('script')[0]; 207 var script = document.createElement('script'); 208 script.type = 'text/javascript'; 209 script.onerror = function(e) { 210 var scriptFallback = document.createElement('script'); 211 scriptFallback.type = 'text/javascript'; 212 scriptFallback.onerror = function(error) { 213 var Monorail = { 214 produce: function produce(monorailDomain, schemaId, payload) { 215 var currentMs = new Date().getTime(); 216 var event = { 217 schema_id: schemaId, 218 payload: payload, 219 metadata: { 220 event_created_at_ms: currentMs, 221 event_sent_at_ms: currentMs 222 } 223 }; 224 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 225 }, 226 sendRequest: function sendRequest(endpointUrl, payload) { 227 // Try the sendBeacon API 228 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 229 var blobData = new window.Blob([payload], { 230 type: 'text/plain' 231 }); 232 233 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 234 return true; 235 } // sendBeacon was not successful 236 237 } // XHR beacon 238 239 var xhr = new XMLHttpRequest(); 240 241 try { 242 xhr.open('POST', endpointUrl); 243 xhr.setRequestHeader('Content-Type', 'text/plain'); 244 xhr.send(payload); 245 } catch (e) { 246 console.log(e); 247 } 248 249 return false; 250 }, 251 isIos12: function isIos12() { 252 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 253 } 254 }; 255 Monorail.produce('monorail-edge.shopifysvc.com', 256 'trekkie_storefront_load_errors/1.1', 257 {shop_id: 15896833, 258 theme_id: 153139282135, 259 app_name: "storefront", 260 context_url: window.location.href, 261 source_url: "//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js"}); 262 263 }; 264 scriptFallback.async = true; 265 scriptFallback.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 266 first.parentNode.insertBefore(scriptFallback, first); 267 }; 268 script.async = true; 269 script.src = '//outerbloom.com/cdn/s/trekkie.storefront.10b9e06bd1980b2ce8435c2fe6c8f07eb6305ae4.min.js'; 270 first.parentNode.insertBefore(script, first); 271 }; 272 trekkie.load( 273 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":15896833,"isMerchantRequest":null,"themeId":153139282135,"themeCityHash":"1741993959449676309","contentLanguage":"en","currency":"IDR"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain"},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 274 ); 275 276 var loaded = false; 277 trekkie.ready(function() { 278 if (loaded) return; 279 loaded = true; 280 281 window.ShopifyAnalytics.lib = window.trekkie; 282 283 var originalDocumentWrite = document.write; 284 document.write = customDocumentWrite; 285 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 286 document.write = originalDocumentWrite; 287 288 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":8144957800663,"shopifyEmitted":true}); 289 290 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 291 var token = match? match[1]: undefined; 292 if (!hasLoggedConversion(token)) {
293 setCookieIfConversion(token); 294 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan!","nonInteraction":true,"remote":false},undefined,undefined,{"shopifyEmitted":true}); 295 window.ShopifyAnalytics.lib.track("monorail:\/\/trekkie_storefront_viewed_product\/1.1",{"currency":"IDR","variantId":44083045826775,"productId":8144957800663,"productGid":"gid:\/\/shopify\/Product\/8144957800663","name":"Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal","price":"835000.00","sku":"OBVSTF1086","brand":"Outerbloom Florist","variant":null,"category":"Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan!","nonInteraction":true,"remote":false,"referer":"https:\/\/outerbloom.com\/products\/blossom-shine"}); 296 } 297 }); 298 299 300 var eventsListenerScript = document.createElement('script'); 301 eventsListenerScript.async = true; 302 eventsListenerScript.src = "//outerbloom.com/cdn/shopifycloud/storefront/assets/shop_events_listener-abeef7a0.js"; 303 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 304 305 })();</script>
305 306
306<script> 307 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 308 window.ga = function ga() { 309 (window.ga.q = window.ga.q || []).push(arguments); 310 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 311 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 312 } 313 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 314 }; 315 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 316 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 317 } 318 } 319 </script>
319 320
320<script 321 defer 322 src="https://outerbloom.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-2.0.13.min.js" 323 data-application="storefront-renderer" 324 data-shop-id="15896833" 325 data-render-region="gcp-asia-southeast1" 326 data-page-type="product" 327 data-theme-instance-id="153139282135" 328 data-theme-name="" 329 data-theme-version="" 330 data-monorail-region="shop_domain" 331 data-resource-timing-sampling-rate="10" 332 data-shs="true" 333 data-shs-beacon="true" 334 data-shs-export-with-fetch="true" 335 data-shs-logs-sample-rate="1" 336 ></script>
336 337 </head><body 338 data-template="product" 339 id="blossom-shine" 340 class="template-product template-product" 341 > 342 <!-- Google Tag Manager (noscript) -->
vendor: 93 bytes, lines 342-345
342 343 <noscript 344 ><iframe 345 src="https://www.googletagmanager.com/ns.html?id=
345GTM-MF9VVZX
vendor: 135 bytes, lines 345-351
345" 346 height="0" 347 width="0" 348 style="display:none;visibility:hidden" 349 ></iframe 350 ></noscript> 351
351<!-- End Google Tag Manager (noscript) --> 352 353 354 355 <div class="header-wrapper"> 356 357 <div id="shopify-section-NotifBar" class="shopify-section m-0"> 358 359 <style> 360 #notification {z-index: 99;width: 100%;transition: top 0.2s ease-in-out;} 361 #notification.promo-up {top: -48px!important;} 362 .promo-bg {width: 100%;padding: 6px 0;background-color: #242424;} 363 .notification__message p {margin: 0;color: #000000;font-size: 14px!important;} 364 .notification__message p a {text-decoration: underline;color: #ffffff;} 365 @media (max-width: 991px){ 366 .notification__message p {font-size: 14px!important;} 367 } 368 </style> 369 <input id="clearCookie" class="hide" type="button" value="Delete Cookie" /> 370 <div id="notification" class="promo-down promo-bg pl-2 pr-2" data-text="up-to-40-off-embrace-traditions-with-our-special-mooncake-hampers-pre-order-now"> 371 <div class="page-width notification__inner "> 372 373 374 <div class="notification__message text-center"> 375 <p><a href="https://collegeofnepal.com/" title="PUBTOGEL">Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal</a></p> 376 </div> 377 </div> 378 </div> 379 380 381 382 383 </div> 384 <div id="shopify-section-new-header" class="shopify-section mb-0 mt-0"><link href="//outerbloom.com/cdn/shop/t/138/assets/section-new-header.css?v=159841885358852784021757475904" rel="stylesheet" type="text/css" media="all"/> 385 386 387 <header style="background-image: url(https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg); background-attachment: fixed;"> 388 <div class="container"> 389 <div class="header-container row justify-content-between pl-lg-0 pr-lg-0"> 390 <a href="https://collegeofnepal.com/"> 391 <img src="https://kucingair.com/fotobaka/logopub.png" alt="logo-PUBTOGEL" style="width: 190px;"></a> 392 <link href="https://harvestcakes.id/imagecd/logo.png" rel="shortcut icon" type="image/x-icon" /> 393 <div id="menu-hamburger" class="d-lg-none"> 394 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="16" height="10" viewBox="0 0 16 10" fill="none"> 395 <path d="M15.5995 0.949976H0.400342C0.320777 0.949976 0.244471 0.918369 0.18821 0.862108C0.131949 0.805847 0.100342 0.729541 0.100342 0.649976C0.100342 0.570411 0.131949 0.494104 0.18821 0.437843C0.244471 0.381582 0.320777 0.349976 0.400342 0.349976H15.5995C15.6791 0.349976 15.7554 0.381582 15.8117 0.437843C15.8679 0.494104 15.8995 0.570411 15.8995 0.649976C15.8995 0.729541 15.8679 0.805847 15.8117 0.862108C15.7554 0.918369 15.6791 0.949976 15.5995 0.949976ZM15.5995 5.29998H0.400342C0.320777 5.29998 0.244471 5.26837 0.18821 5.21211C0.131949 5.15585 0.100342 5.07954 0.100342 4.99998C0.100342 4.92041 0.131949 4.8441 0.18821 4.78784C0.244471 4.73158 0.320777 4.69998 0.400342 4.69998H15.5995C15.6791 4.69998 15.7554 4.73158 15.8117 4.78784C15.8679 4.8441 15.8995 4.92041 15.8995 4.99998C15.8995 5.07954 15.8679 5.15585 15.8117 5.21211C15.7554 5.26837 15.6791 5.29998 15.5995 5.29998ZM15.5995 9.64998H0.400342C0.320777 9.64998 0.244471 9.61837 0.18821 9.56211C0.131949 9.50585 0.100342 9.42954 0.100342 9.34998C0.100342 9.27041 0.131949 9.1941 0.18821 9.13784C0.244471 9.08158 0.320777 9.04998 0.400342 9.04998H15.5995C15.6791 9.04998 15.7554 9.08158 15.8117 9.13784C15.8679 9.1941 15.8995 9.27041 15.8995 9.34998C15.8995 9.42954 15.8679 9.50585 15.8117 9.56211C15.7554 9.61837 15.6791 9.64998 15.5995 9.64998Z" fill="#ffffff"/> 396 </svg> 397 398 <a href="/"><svg xmlns="https://kucingair.com/fotobaka/logopub.png" viewBox="0 0 854 78.29"> 399 <g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path d="M36.85.11a36.6,36.6,0,0,1,14.91,3,34.84,34.84,0,0,1,11.71,8.35,38.29,38.29,0,0,1,7.6,12.48,43.13,43.13,0,0,1,2.69,15.36,41.58,41.58,0,0,1-4.65,19.78,35.49,35.49,0,0,1-13,13.86A36.21,36.21,0,0,1,36.85,78,36.65,36.65,0,0,1,17.37,73,34.34,34.34,0,0,1,4.54,59.15,42.43,42.43,0,0,1,0,39.29,42.2,42.2,0,0,1,2.71,24.1a38.64,38.64,0,0,1,7.67-12.51A35.23,35.23,0,0,1,36.85.11Zm0,8.47a27.77,27.77,0,0,0-15,4,27.18,27.18,0,0,0-10,11A34.19,34.19,0,0,0,8.3,39.29a30.63,30.63,0,0,0,2.19,11.53,31.32,31.32,0,0,0,6.08,9.69,29,29,0,0,0,9.08,6.66,25.84,25.84,0,0,0,11.2,2.44,25.2,25.2,0,0,0,11.2-2.55,30.26,30.26,0,0,0,9.19-6.86,32.46,32.46,0,0,0,6.17-9.74,29.2,29.2,0,0,0,2.21-11.17,32.83,32.83,0,0,0-3.79-16A27.77,27.77,0,0,0,51.54,12.45,28.15,28.15,0,0,0,36.85,8.58Z"></path><path d="M97.26,4.76a4.13,4.13,0,0,1,1.19-2.88A3.59,3.59,0,0,1,101.14.61q4.36,0,4.42,4.15L106,42.33a44.26,44.26,0,0,0,2.27,14.5,19.83,19.83,0,0,0,7,9.73q4.78,3.5,12.53,3.49,8.58,0,13.72-3.49A19.72,19.72,0,0,0,148.94,57a38.56,38.56,0,0,0,2.33-13.83L151.16,4.7v0a4,4,0,0,1,1.19-2.93A3.87,3.87,0,0,1,155.25.5a4.06,4.06,0,0,1,3,1.22,3.93,3.93,0,0,1,1.24,2.93v0l.12,38.4q0,16.5-7.83,25.84T128,78.29q-10.18,0-16.88-4.56a27.51,27.51,0,0,1-10-12.67,50.37,50.37,0,0,1-3.43-18.68L97.26,4.81Z"></path><path d="M180.3,4.48a4.2,4.2,0,0,1,1.25-3,4,4,0,0,1,3-1.27H239.9a4.13,4.13,0,0,1,2.93,1.13,3.75,3.75,0,0,1,1.22,2.85,4.31,4.31,0,0,1-1.22,3,4,4,0,0,1-3,1.3H216.27V73.59A3.9,3.9,0,0,1,215,76.52a4.16,4.16,0,0,1-3,1.22,3.81,3.81,0,0,1-2.88-1.22A4.11,4.11,0,0,1,208,73.59V8.47H184.45a4.13,4.13,0,0,1-2.93-1.14A3.72,3.72,0,0,1,180.3,4.48Z"></path><path d="M264.73,4.48A4,4,0,0,1,266,1.55,4,4,0,0,1,268.88.33l51.84.06h.06a4,4,0,0,1,2.93,1.21,4,4,0,0,1,1.22,2.94,4,4,0,0,1-1.22,2.93,4,4,0,0,1-2.93,1.22h-.06L273,8.63l.05,26a1.48,1.48,0,0,0,.31,0l.25,0,42.55.28a4,4,0,0,1,3,1.19,4.38,4.38,0,0,1,1.19,3.24A3.58,3.58,0,0,1,319.06,42a4.14,4.14,0,0,1-2.87,1.16h-.06l-42.55-.28h-.44l.05,25.73,47.53,0h.06a4.15,4.15,0,0,1,0,8.3h-.06l-51.68,0a4.17,4.17,0,0,1-4.15-4.15Z"></path><path d="M405.09,74.2A3.73,3.73,0,0,1,403.9,77a3.48,3.48,0,0,1-2.4,1.16,4.15,4.15,0,0,1-2.05-.53c-.63-.35-1.09-.62-1.38-.8a40.76,40.76,0,0,1-8.5-8.13,51.74,51.74,0,0,1-6.11-10,33.41,33.41,0,0,0-4.9-8,14.69,14.69,0,0,0-6.17-4.26A28,28,0,0,0,363.26,45l-6.42,0,.06,28.38v.12a4.13,4.13,0,0,1-7.08,2.9,4.1,4.1,0,0,1-1.22-3l-.17-69.16a3.9,3.9,0,0,1,1.22-2.94A4.22,4.22,0,0,1,352.53.06L367.25,0h1.27A51.16,51.16,0,0,1,385,2.43a23.75,23.75,0,0,1,11.18,7.5q4,5.07,4,13a19.65,19.65,0,0,1-2.33,9.71,22.07,22.07,0,0,1-6.09,7,27,27,0,0,1-8.13,4.2,29.33,29.33,0,0,1,4.93,7.2c2.13,4.09,4.26,7.78,6.36,11.06a32.1,32.1,0,0,0,8.35,8.69A4,4,0,0,1,405.09,74.2ZM368.8,8.3H356.73l.11,29.16a3.59,3.59,0,0,1,.72-.06l11.35-.11q10.17-.1,16.65-3.45T392,22.63a11.53,11.53,0,0,0-3.16-8.55,17.83,17.83,0,0,0-8.44-4.45A47.47,47.47,0,0,0,368.8,8.3Z"></path><path d="M480.67,21.63a18.59,18.59,0,0,1-1.61,8.17,20.81,20.81,0,0,1-4.65,6.11A19.72,19.72,0,0,1,481.19,43a21.32,21.32,0,0,1,2.63,10.85q0,11.4-6.14,17.23T460,76.86l-28.39-.06a4.56,4.56,0,0,1-2.85-.91,3.07,3.07,0,0,1-1.19-2.58l-.11-68.94a4,4,0,0,1,1.22-2.85,4,4,0,0,1,2.77-1.3l19,0A48.24,48.24,0,0,1,466,2.46a23.21,23.21,0,0,1,10.76,7.06Q480.67,14.27,480.67,21.63ZM450.9,8.69l-15.11.05L435.85,33l23-.33c4.16-.08,7.46-.94,9.87-2.58s3.63-4.4,3.63-8.27a10.42,10.42,0,0,0-2.83-7.64A16.41,16.41,0,0,0,461.88,10,42.3,42.3,0,0,0,450.9,8.69Zm9,60.25q7.8,0,11.73-3.34t3.93-11.49q0-7.08-4.09-10.12t-11.51-3H459l-23.18.33,0,27.77Z"></path><path d="M511.64,76.75a4.17,4.17,0,0,1-4.15-4.15l-.17-68v0a4,4,0,0,1,1.22-2.94,4.16,4.16,0,0,1,5.87,0,4,4,0,0,1,1.21,2.94v0l.17,63.86h43.33a4.15,4.15,0,0,1,0,8.3Z"></path><path d="M619.75.11a36.6,36.6,0,0,1,14.91,3,34.7,34.7,0,0,1,11.7,8.35A38.14,38.14,0,0,1,654,23.93a43.12,43.12,0,0,1,2.68,15.36A41.69,41.69,0,0,1,652,59.07a35.49,35.49,0,0,1-13,13.86A36.21,36.21,0,0,1,619.75,78,36.63,36.63,0,0,1,600.27,73a34.44,34.44,0,0,1-12.84-13.8,42.54,42.54,0,0,1-4.53-19.86,42.2,42.2,0,0,1,2.71-15.19,38.78,38.78,0,0,1,7.66-12.51A35.23,35.23,0,0,1,619.75.11Zm0,8.47a27.74,27.74,0,0,0-15,4,27.18,27.18,0,0,0-10,11,34.19,34.19,0,0,0-3.54,15.75,30.62,30.62,0,0,0,2.18,11.53,31.53,31.53,0,0,0,6.09,9.69,29,29,0,0,0,9.07,6.66,25.91,25.91,0,0,0,11.21,2.44A25.2,25.2,0,0,0,631,67.06a30.26,30.26,0,0,0,9.19-6.86,32.66,32.66,0,0,0,6.17-9.74,29.39,29.39,0,0,0,2.21-11.17,32.83,32.83,0,0,0-3.79-16,27.64,27.64,0,0,0-25-14.66Z"></path><path d="M715.9.11a36.61,36.61,0,0,1,14.92,3,34.9,34.9,0,0,1,11.7,8.35,38.31,38.31,0,0,1,7.61,12.48,43.34,43.34,0,0,1,2.68,15.36,41.58,41.58,0,0,1-4.65,19.78,35.42,35.42,0,0,1-12.95,13.86A36.21,36.21,0,0,1,715.9,78,36.59,36.59,0,0,1,696.43,73a34.3,34.3,0,0,1-12.84-13.8,42.43,42.43,0,0,1-4.54-19.86,42.42,42.42,0,0,1,2.71-15.19,38.64,38.64,0,0,1,7.67-12.51A35.23,35.23,0,0,1,715.9.11Zm0,8.47a27.77,27.77,0,0,0-15,4,27.18,27.18,0,0,0-10,11,34.19,34.19,0,0,0-3.54,15.75,30.63,30.63,0,0,0,2.19,11.53,31.32,31.32,0,0,0,6.08,9.69,29,29,0,0,0,9.08,6.66,25.87,25.87,0,0,0,11.2,2.44,25.24,25.24,0,0,0,11.21-2.55,30.34,30.34,0,0,0,9.18-6.86,32.27,32.27,0,0,0,6.17-9.74,29.21,29.21,0,0,0,2.22-11.17,32.94,32.94,0,0,0-3.79-16,27.87,27.87,0,0,0-10.3-10.79A28.15,28.15,0,0,0,715.9,8.58Z"></path><path d="M776.31,4.32a4.15,4.15,0,0,1,1.17-2.85,3.86,3.86,0,0,1,5.14-.58,5.18,5.18,0,0,1,1.61,1.66L815.1,53.06,846.31,2.21a3.92,3.92,0,0,1,3.54-2,4,4,0,0,1,2.93,1.22A4,4,0,0,1,854,4.37V73.7a4.15,4.15,0,0,1-8.3,0V19.09l-27.06,44.1a4.14,4.14,0,0,1-7.08,0l-26.95-44V73.48a4.15,4.15,0,0,1-8.3,0Z"></path></g></g> 400 </svg> 401 </a> 402 </div> 403 404 <div class="header-icon-right header-icons col-3"> 405 <div class="icon icon-account-header d-none d-lg-block"> 406 <a href="https://collegeofnepal.com/"> 407 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="20" height="21" viewBox="0 0 20 21" fill="none"> 408 <path d="M19.015 19.8549C18.4842 18.3662 17.3117 17.0514 15.6819 16.1134C14.052 15.1754 12.0547 14.6667 10.0002 14.6667C7.94569 14.6667 5.94835 15.1754 4.31852 16.1134C2.68869 17.0514 1.51618 18.3662 0.985352 19.8549" stroke="#ffffff" stroke-linecap="round"/> 409 <path d="M10.0002 10C12.5775 10 14.6668 7.91068 14.6668 5.33335C14.6668 2.75602 12.5775 0.666687 10.0002 0.666687C7.42283 0.666687 5.3335 2.75602 5.3335 5.33335C5.3335 7.91068 7.42283 10 10.0002 10Z" stroke="#ffffff" stroke-linecap="round"/> 410 </svg> 411
412 </a> 413 </div> 414 <div class="icon icon-wishlist-header"> 415 <a href="https://collegeofnepal.com/"> 416 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 417 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
41711233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 418 </svg> 419 420 <span class="wishlist-count d-none">0</span> 421 </a> 422 </div> 423 <div class="icon icon-cart-header"> 424 <a href="https://collegeofnepal.com/"> 425 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="22" height="21" viewBox="0 0 22 21" fill="none"> 426 <path d="M6.33301 10V5.33335C6.33301 4.09568 6.82467 2.90869 7.69984 2.03352C8.57501 1.15835 9.762 0.666687 10.9997 0.666687C12.2374 0.666687 13.4243 1.15835 14.2995 2.03352C15.1747 2.90869 15.6663 4.09568 15.6663 5.33335V10" stroke="#ffffff" stroke-linecap="round"/> 427 <path d="M1.30956 10.7793C1.47873 8.74817 1.56389 7.73317 2.23356 7.116C2.90323 6.49883 3.92289 6.5 5.96106 6.5H16.0399C18.0769 6.5 19.0966 6.5 19.7662 7.116C20.4359 7.732 20.5211 8.74817 20.6902 10.7793L21.2899 17.973C21.3879 19.1548 21.4369 19.7463 21.0916 20.1232C20.7439 20.5 20.1512 20.5 18.9636 20.5H3.03623C1.84973 20.5 1.25589 20.5 0.909392 20.1232C0.562892 19.7463 0.611892 19.1548 0.711059 17.973L1.30956 10.7793Z" stroke="#ffffff"/> 428 </svg> 429 430 </a> 431 </div> 432 </div> 433 </div> 434 </div> 435 </header> 436 437 <nav class="nav-header" style="background-color: #242424;"> 438 <div class="nav-account-mobile row m-0 d-lg-none"> 439 <div class="col-6 welcome-cust p-0"> 440 441 <h1 class="logo"> 442 <a href="https://collegeofnepal.com/"> 443 <img src="https://kucingair.com/fotobaka/logopub.png" alt="PUBTOGEL" style="max-height:60px;"> 444 </a> 445 </h1> 446 447 448 </div> 449 450 <div class="col-6 login-register text-right p-0"> 451 <a href="https://lingkaransetan.com/pub/d7/">Log In</a> | <a href="https://lingkaransetan.com/pub/d7/">Sign Up</a> 452 </div> 453 </div> 454 <ul class="nav-menu container"> 455 456 <li class="nav-menu container"> 457 <a href="https://collegeofnepal.com/"> 458 <span style="color: #ffffff;">PUBTOGEL</span> 459 460 461 <li class=" nav-menu container"> 462 <a href="https://collegeofnepal.com/"> 463 <span style="color: #ffffff;">SITUS TOTO</span> 464 465 466 <li class=" nav-menu container"> 467 <a href="https://collegeofnepal.com/"> 468 <span style="color: #ffffff;">TOTO TOGEL</span> 469 470 <li class=" nav-menu container"> 471 <a href="https://collegeofnepal.com/"> 472 <span style="color: #ffffff;">TOGEL 4D</span> 473 474 <li class=" nav-menu container"> 475 <a href="https://collegeofnepal.com/"> 476 <span style="color: #ffffff;">SITUS TOGEL</span> 477 478 <li class=" nav-menu container"> 479 <a href="https://collegeofnepal.com/"> 480 <span style="color: #ffffff;">TOGEL ONLINE</span> 481 482 <div class="overlay-nav"> 483 <!-- Mobile Close Button in Overlay --> 484 <button id="nav-close" class="nav-close-btn d-lg-none"> 485 <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="https://kucingair.com/fotobaka/logopub.png"> 486 <path d="M18 6L6 18M6 6L18 18" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 487 </svg> 488 </button> 489 </div> 490 491
491<script> 492 if ($(window).width() < 992) { 493 // Level 1 menu accordion (main menu items) 494 $(".nav-menu .nav-menu container > a").click(function(e){ 495 e.preventDefault() 496 const parentLi = $(this).parent() 497 const isCurrentlyOpen = parentLi.hasClass("menu-open") 498 499 // Close all other open menus (accordion behavior) 500 $(".nav-menu .nav-menu container").not(parentLi).removeClass("menu-open") 501 $(".nav-menu .megamenu").not($(this).next(".megamenu")).slideUp() 502 503 // Toggle current menu 504 if (isCurrentlyOpen) { 505 parentLi.removeClass("menu-open") 506 $(this).next(".megamenu").slideUp() 507 } else { 508 parentLi.addClass("menu-open") 509 $(this).next(".megamenu").slideDown() 510 } 511 }) 512 513 // Level 2 menu accordion (submenu items with grandchildren) 514 $(document).on('click', '.dropdown-menu .has-submenu > a', function(e){ 515 e.preventDefault() 516 const parentLi = $(this).parent() 517 const isCurrentlyOpen = parentLi.hasClass("submenu-open") 518 const grandchild = $(this).next(".grandchild") 519 520 // Close all other open submenus in the same dropdown (accordion behavior) 521 parentLi.siblings('.has-submenu').removeClass("submenu-open") 522 parentLi.siblings('.has-submenu').find('.grandchild').slideUp() 523 parentLi.siblings('.has-submenu').find('.chevron-right').css('transform', 'rotate(0deg)') 524 525 // Toggle current submenu 526 if (isCurrentlyOpen) { 527 parentLi.removeClass("submenu-open") 528 grandchild.slideUp() 529 $(this).find('.chevron-right').css('transform', 'rotate(0deg)') 530 } else { 531 parentLi.addClass("submenu-open") 532 grandchild.slideDown() 533 $(this).find('.chevron-right').css('transform', 'rotate(90deg)') 534 } 535 }) 536 537 $("#menu-hamburger").click(function(e){ 538 e.preventDefault() 539 $("body").toggleClass("nav_open") 540 }) 541 542 // Handle close button click 543 $("#nav-close").click(function(e){ 544 e.preventDefault() 545 $("body").removeClass("nav_open") 546 // Close all open menus when close button is clicked 547 $(".nav-menu .nav-menu container").removeClass("menu-open") 548 $(".nav-menu .megamenu").slideUp() 549 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 550 $(".dropdown-menu .grandchild").slideUp() 551 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 552 }) 553 } 554 555 $(".overlay-nav").click(function(e){ 556 e.preventDefault() 557 $("body").removeClass("nav_open") 558 // Close all open menus when overlay is clicked 559 $(".nav-menu .nav-menu container").removeClass("menu-open") 560 $(".nav-menu .megamenu").slideUp() 561 $(".dropdown-menu .has-submenu").removeClass("submenu-open") 562 $(".dropdown-menu .grandchild").slideUp() 563 $(".dropdown-menu .chevron-right").css('transform', 'rotate(0deg)') 564 }) 565 </script>
565 566 567 568 </div> 569 570 <div id="shopify-section-search-popup" class="shopify-section m-0"><style> 571 #search-trigger { 572 cursor: pointer; 573 } 574 #search-popup { 575 display: none; 576 position: fixed; 577 left: 0; 578 width: 100%; 579 top: 0; 580 height: 100%; 581 justify-content: center; 582 z-index: 9999; 583 background: rgb(196 196 196 / 30%); 584 } 585 #search-input { 586 align-self: center; 587 width: 100%; 588 height: 80px; 589 position: absolute; 590 top: 0; 591 border-bottom: 0.5px solid #A3A3A3; 592 background-color: #fff; 593 } 594 #search-input * { 595 align-self: center; 596 } 597 #search-type { 598 width: 100%; 599 border: none; 600 padding-right: 20px; 601 padding-left: 20px; 602 font-size: 16px; 603 color: #757575; 604 } 605 #search-btn { 606 font-size: 16px; 607 font-weight: 500; 608 } 609 #search-result { 610 min-height: 490px; 611 width: 100%; 612 padding-top: 80px; 613 } 614 #search-result .container { 615 background-color: #fff; 616 padding: 20px 40px; 617 } 618 body.search-popup-open { 619 /* .search-popup-open */ 620 overflow: hidden; 621 } 622 .search-popup-open #loc_delivery { 623 display: none 624 } 625 .search-header svg { 626 display: none; 627 cursor: pointer; 628 } 629 .wrapper-search-popup { 630 max-height: calc(100vh - 150px); 631 overflow-y: auto; 632 overflow-x: hidden; 633 } 634 635 .group-recommend { 636 padding: 20px 40px; 637 } 638 639 .resultsearch { 640 display: none; 641 } 642 .results { padding: 20px 40px } 643 .resultsearch label { 644 font-weight: 600; 645 padding-bottom: 20px; 646 display: block; 647 margin-bottom: 20px; 648 border-bottom: 1px solid #AAAAAA; 649 } 650 651 ul.result_product { 652 max-height: 300px; 653 overflow: auto; 654 } 655 656 .group-promotion ul { 657 margin: 0; 658 } 659 .group-promotion li { 660 list-style: none; 661 margin-bottom: 12px; 662 } 663 .group-promotion li a { 664 color: inherit; 665 } 666 667 .group-recent { 668 position: relative; 669 padding: 20px 40px; 670 } 671 .group-recent ul { 672 margin: 0; 673 } 674 .group-recent li { 675 list-style: none; 676 display: inline-block; 677 margin-right: 60px; 678 } 679 .group-recent li a { 680 color: inherit; 681 } 682 683 .last-search svg { 684 width: 20px; 685 vertical-align: middle; 686 } 687 ul.last-search a { 688 vertical-align: middle; 689 padding: 0 10px; 690 } 691 ul.last-search li span { 692 cursor: pointer; 693 } 694 .delete-all-history { 695 position: absolute; 696 top: 25px; 697 right: 40px; 698 text-decoration: underline; 699 color: #e11d1d; 700 cursor: pointer; 701 font-size: 12px; 702 } 703 704 form.search.search-modal__form { 705 position: relative; 706 } 707 708 button.search__button svg { 709 width: 25px; 710 color: #495057; 711 fill: #757582; 712 } 713 714 button.search__button.field__button { 715 position: absolute; 716 top: 50%; 717 margin-top: -12px; 718 } 719 720 .close-search { 721 display: none; 722 position: absolute; 723 right: 65px; 724 top: 10px; 725 cursor: pointer; 726 } 727 728 .site-overlay { 729 position: fixed; 730 top: 0; 731 width: 100vw; 732 height: 100vh; 733 z-index: 1000; 734 background: #0000005c; 735 visibility: hidden; 736 opacity: 0; 737 pointer-events: none; 738 transition: all .3s linear; 739 display: block !important; 740 } 741 742 .search-popup-open .site-overlay { 743 opacity: 1; 744 visibility: visible; 745 pointer-events: all; 746 z-index: -1; 747 cursor: pointer; 748 } 749 750 @media (min-width: 991px) { 751 .group-recent ul { 752 column-count: 3; 753 } 754 .group-promotion li a { 755 font-size: 12px; 756 font-weight: 400; 757 } 758 .group-recent li a { 759 font-size: 12px; 760 font-weight: 400; 761 } 762 } 763 764 .moreresult { 765 padding: 10px 40px; 766 border-top: 1px solid #AAAAAA; 767 } 768 .moreresult * { 769 align-self: center; 770 } 771 .moreresult p { 772 margin: 0; 773 font-size: 12px !important; 774 } 775 .moreresult svg { 776 width: 13px; 777 } 778 779 @media (max-width: 992px) { 780 .icon-key-mobile { 781 height: auto!important; 782 width: 10px!important; 783 } 784 body.grid-view.search-popup-open .products { 785 -ms-flex: 0 0 100%!important; 786 flex: 0 0 100%!important; 787 max-width: 100%!important; 788 } 789 button.search__button svg {
790 width: 20px; 791 } 792 #search-result { 793 padding-left: 0; 794 padding-right: 0; 795 } 796 #search-result { 797 padding-top: 55px; 798 } 799 #search-input { 800 height: 55px; 801 } 802 .group-recommend { 803 padding: 20px; 804 } 805 #search-input .container { 806 padding: 0 20px; 807 } 808 #search-type { 809 font-size: 14px; 810 } 811 #search-btn { 812 font-size: 12px; 813 text-decoration: underline; 814 } 815 .results { 816 padding: 20px; 817 } 818 .group-recommend h3 { 819 font-size: 16px; 820 } 821 .products .card-body { 822 padding: 8px 0px 10px; 823 } 824 .moreresult { 825 padding: 10px 20px; 826 } 827 } 828 </style> 829 <style type="text/css"> 830 div.advertisement-placeholder { 831 text-align: center; 832 padding-bottom: 20px; 833 display: flex; 834 flex-direction: column; 835 justify-content: center; 836 } 837 div.advertisement-text p { 838 margin: 0; 839 font-family: Open Sans; 840 font-style: normal; 841 font-weight: normal; 842 font-size: 10px; 843 line-height: 20px; 844 color: #999999; 845 } 846 div.advertisement-banner { 847 margin: 0px auto; 848 } 849 div#div-gpt-ad-billboard-placeholder { 850 width: 996px; 851 margin: 0 auto; 852 background: #F5F5F5; 853 padding-bottom: unset !important; 854 min-height: 200px; 855 } 856 div#div-gpt-ad-lb-placeholder { 857 background: #F5F5F5; 858 padding-bottom: unset !important; 859 min-height: 280px; 860 } 861 .faq-section{ 862 max-width:1200px; 863 margin:50px auto; 864 padding:40px 20px; 865 position:relative; 866 background-color: rgba(0, 0, 0, 0.1); 867 backdrop-filter: blur(25px); 868 border-radius: 20px; 869 } 870 871 .faq-section::before{ 872 content:""; 873 position:absolute; 874 top:0;left:50%; 875 transform:translateX(-50%); 876 width:80%; 877 height:2px; 878 background:linear-gradient(90deg,transparent,#1da39c,transparent) 879 } 880 881 .faq-section h2{ 882 text-align:center; 883 font-size:34px;font-weight:700; 884 margin-bottom:50px; 885 background: linear-gradient(135deg, #1da39c, #1da39c, #1da39c); 886 -webkit-background-clip:text; 887 -webkit-text-fill-color:transparent; 888 background-clip:text; 889 font-family:"Poppins",sans-serif;letter-spacing:1px 890 } 891 892 .faq-container{ 893 display:flex; 894 flex-direction:column; 895 gap:25px 896 } 897 898 .faq-item{ 899 background:linear-gradient(145deg,#0a0a0a,#1a1a1a); 900 border:2px solid #ff0000; 901 border-radius:20px;overflow:hidden; 902 transition:all .4s ease;box-shadow:0 5px 20px rgba(0,0,0,0.5) 903 } 904 905 .faq-item:hover{ 906 border-color:#ff0000; 907 transform:translateX(10px); 908 box-shadow:0 12px 35px rgba(253, 4, 4, 0.25) 909 } 910 911 .faq-question{width:100%; 912 padding:28px 35px;background:transparent; 913 color:#ffffff; 914 font-size:18px; 915 font-weight:600; 916 text-align:left; 917 border:none;cursor:pointer; 918 display:flex; 919 justify-content:space-between; 920 align-items:center; 921 font-family:"Poppins",sans-serif; 922 transition:all .3s ease 923 } 924 925 .faq-question:hover{ 926 color:#1da39c 927 } 928 929 .faq-question::after{ 930 content:'+'; 931 font-size:32px; 932 font-weight:300; 933 transition:all .4s ease; 934 color:#1da39c; 935 width:40px; 936 height:40px; 937 display:flex; 938 align-items:center; 939 justify-content:center; 940 border:2px solid #ff0000;border-radius:50%; 941 background:rgba(0, 0, 0, 0.1) 942 } 943 944 .faq-item.active .faq-question::after{ 945 transform:rotate(135deg); 946 background:linear-gradient(135deg,#ff0000,#ff0000); 947 color:#000;border-color:transparent 948 } 949 950 .faq-answer{ 951 max-height:0; 952 overflow:hidden; 953 transition:max-height .5s ease,padding .5s ease; 954 background:linear-gradient(180deg,rgba(253,228,4,0.05),transparent); 955 padding:0 35px 956 } 957 958 .faq-item.active .faq-answer{ 959 max-height:800px;padding:30px 35px; 960 border-top:1px solid rgba(253, 4, 4, 0.3) 961 } 962 963 .faq-answer p{ 964 color:#e0e0e0; 965 font-size:16px; 966 line-height:2; 967 margin:0; 968 font-family:"Poppins",sans-serif 969 } 970 971 @media 972 (max-width:768px) 973 { 974 975 .faq-section 976 {padding:30px 15px} 977 978 .faq-section h2 979 {font-size:26px} 980 981 .faq-question 982 {font-size:16px; 983 padding:22px 25px} 984 985 .faq-question::after 986 {width:35px; 987 height:35px; 988 font-size:28px} 989 990 .faq-answer 991 {padding:0 25px} 992 993 .faq-item.active .faq-answer 994 {padding:25px} 995 996 .faq-item:hover 997 {transform:translateX(5px)} 998 } 999 </style> 1000 <div id="search-popup"> 1001 <div id="search-input" class="row"> 1002 <div class="container w-100"> 1003 <form 1004 action="/search" 1005 method="get" 1006 role="search" 1007 class="search search-modal__form d-flex justify-content-between" 1008 > 1009 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="20" height="20" viewBox="0 0 20 20" fill="none"> 1010 <path d="M18.7327 19.513L11.427 12.2073C10.8437 12.7043 10.1729 13.0889 9.41454 13.3612C8.65621 13.6334 7.89398 13.7695 7.12787 13.7695C5.25965 13.7695 3.67843 13.1228 2.3842 11.8293C1.08998 10.5359 0.442871 8.95505 0.442871 7.08683C0.442871 5.2186 1.0892 3.63699 2.38187 2.34199C3.67454 1.04699 5.25498 0.398714 7.12321 0.397159C8.99143 0.395603 10.5734 1.04271 11.8692 2.33849C13.165 3.63427 13.8129 5.21588 13.8129 7.08333C13.8129 7.89377 13.6694 8.67816 13.3824 9.43649C13.0954 10.1948 12.7182 10.8435 12.2507 11.3825L19.5564 18.687L18.7327 19.513ZM7.12904 12.6017C8.67682 12.6017 9.98348 12.0689 11.049 11.0033C12.1146 9.93777 12.6474 8.63071 12.6474 7.08216C12.6474 5.5336 12.1146 4.22694 11.049 3.16216C9.98348 2.09738 8.67682 1.5646 7.12904 1.56383C5.58126 1.56305 4.2742 2.09583 3.20787 3.16216C2.14154 4.22849 1.60876 5.53516 1.60954 7.08216C1.61032 8.62916 2.14309 9.93583 3.20787 11.0022C4.27265 12.0685 5.57932 12.6013 7.12787 12.6005" fill="#ffffff"/> 1011 </svg> 1012
1013 <input type="hidden" name="type" value="product"> 1014 <input 1015 type="text" 1016 id="search-type" 1017 name="q" 1018 class="search-popup" 1019 placeholder="Gifts that linger: Uncover treasures for cherished moments." 1020 > 1021 <div class="close-search"><svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 1022 <path d="M9 9.708L12.246 12.954C12.3393 13.0473 12.454 13.0973 12.59 13.104C12.726 13.1107 12.8473 13.0607 12.954 12.954C13.0607 12.8473 13.114 12.7293 13.114 12.6C13.114 12.4707 13.0607 12.3527 12.954 12.246L9.708 9L12.954 5.754C13.0473 5.66067 13.0973 5.546 13.104 5.41C13.1107 5.274 13.0607 5.15267 12.954 5.046C12.8473 4.93933 12.7293 4.886 12.6 4.886C12.4707 4.886 12.3527 4.93933 12.246 5.046L9 8.292L5.754 5.046C5.66067 4.95267 5.546 4.90267 5.41 4.896C5.274 4.88933 5.15267 4.93933 5.046 5.046C4.93933 5.15267 4.886 5.27067 4.886 5.4C4.886 5.52933 4.93933 5.64733 5.046 5.754L8.292 9L5.046 12.246C4.95267 12.3393 4.90267 12.4543 4.896 12.591C4.88933 12.7263 4.93933 12.8473 5.046 12.954C5.15267 13.0607 5.27067 13.114 5.4 13.114C5.52933 13.114 5.64733 13.0607 5.754 12.954L9 9.708ZM9.003 18C7.75833 18 6.58833 17.764 5.493 17.292C4.39767 16.8193 3.44467 16.178 2.634 15.368C1.82333 14.558 1.18167 13.606 0.709 12.512C0.236333 11.418 0 10.2483 0 9.003C0 7.75767 0.236333 6.58767 0.709 5.493C1.181 4.39767 1.82133 3.44467 2.63 2.634C3.43867 1.82333 4.391 1.18167 5.487 0.709C6.583 0.236333 7.753 0 8.997 0C10.241 0 11.411 0.236333 12.507 0.709C13.6023 1.181 14.5553 1.82167 15.366 2.631C16.1767 3.44033 16.8183 4.39267 17.291 5.488C17.7637 6.58333 18 7.753 18 8.997C18 10.241 17.764 11.411 17.292 12.507C16.82 13.603 16.1787 14.556 15.368 15.366C14.5573 16.176 13.6053 16.8177 12.512 17.291C11.4187 17.7643 10.249 18.0007 9.003 18ZM9 17C11.2333 17 13.125 16.225 14.675 14.675C16.225 13.125 17 11.2333 17 9C17 6.76667 16.225 4.875 14.675 3.325C13.125 1.775 11.2333 1 9 1C6.76667 1 4.875 1.775 3.325 3.325C1.775 4.875 1 6.76667 1 9C1 11.2333 1.775 13.125 3.325 14.675C4.875 16.225 6.76667 17 9 17Z" fill="#757575"/> 1023 </svg> 1024 </div> 1025 <button id="search-btn">Search</button> 1026 </form> 1027 </div> 1028 </div> 1029 <div id="search-result" class="container m-auto"> 1030 <div class="container p-0"> 1031 <div class="group-promotion"> 1032 <div class="resultsearch"> 1033 <div class="row results"> 1034 <div class="col-12 col-lg-6 mb-3 mb-lg-0"> 1035 <label>SUGGESTIONS</label> 1036 <ul class="result_collection"></ul> 1037 </div> 1038 <div class="col-12 col-lg-6"> 1039 <label>PRODUCTS</label> 1040 <ul class="result_product"></ul> 1041 </div> 1042 </div> 1043 <div class="d-flex justify-content-between moreresult m-0"> 1044 <p>Search for<span></span></p> 1045 <svg version="1.1" xmlns="https://kucingair.com/fotobaka/logopub.png" width="32" height="32" viewBox="0 0 32 32"> 1046 <title>icon-arrow-right</title> 1047 <path d="M25.057 15.333l-6.862-6.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8 8c0.26 0.26 0.26 0.682 0 0.943l-8 8c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l6.862-6.862h-19.724c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h19.724z"></path> 1048 </svg> 1049 </div> 1050 </div> 1051 </div> 1052 <div class="group-recent hide"> 1053 <h3>RECENT SEARCH</h3> 1054 <span class="delete-all-history">Hapus riwayat</span> 1055 <ul class="last-search"></ul> 1056 </div> 1057 <div class="group-recommend"> 1058 <h3>YOU MAY ALSO LIKE</h3> 1059 1060 1061 <div class="row popup-recommend c-products-grid infinite-case product-multi-"> 1062 <div class="swiper-wrapper justify-content-between" style="margin-left:1px;"> 1063 1064 1065 <div class="swiper-slide card"> 1066 1067 1068 1069 1070 <div class="products" data-lazy="false"> 1071 <div class="bg-products"> 1072 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-love-mooncake"> 1073 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1074 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.072
10746 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.11233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1075 </svg> 1076 1077 </div> 1078 <a href="/products/mid-autumn-of-love-mooncake"> 1079 1080 <div class="product-card-img-container p-0 position-relative"> 1081 1082 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Love-Mooncake_6b4cc10d-950d-4e1a-abf7-427b4a6912c8_350x.jpg?v=1755750898" alt="Mid Autumn of Love Mooncake" height="200" width="200"> 1083 </div> 1084 <div class="card-body product-card-info"> 1085 <h5 class="h5 mb-0"> 1086 Mid Autumn of Love Mooncake 1087 </h5> 1088 <div class="product-card-price"> 1089 1090 <div class="product-price-sale"> 1091 <s class="product-card-price-before card-money">Rp 588.000</s> 1092 <span class="product-card-discount small"> 1093 (-40%) 1094 </span> 1095 </div> 1096 1097 1098 1099 <div class="price-discount"> 1100 <h4 class="product-card-price-after card-money">Rp 348.000</h4> 1101 </div> 1102 1103 1104 1105 1106 1107 </div> 1108 1109 </div> 1110 </a> 1111 </div> 1112 1113 </div> 1114 1115 </div> 1116 1117 1118 1119 <div class="swiper-slide card"> 1120 1121 1122 1123 1124 <div class="products" data-lazy="false"> 1125 <div class="bg-products"> 1126 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-joy-mooncake"> 1127 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1128 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
112811233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1129 </svg> 1130 1131 </div> 1132 <a href="/products/mid-autumn-of-joy-mooncake"> 1133 1134 <div class="product-card-img-container p-0 position-relative"> 1135 1136 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Joy-Mooncake_97224b06-a506-4a56-8544-59a0dccb5c17_350x.jpg?v=1755750798" alt="Mid Autumn of Joy Mooncake" height="200" width="200"> 1137 </div> 1138 <div class="card-body product-card-info"> 1139 <h5 class="h5 mb-0"> 1140 Mid Autumn of Joy Mooncake 1141 </h5> 1142 <div class="product-card-price"> 1143 1144 <div class="product-price-sale"> 1145 <s class="product-card-price-before card-money">Rp 888.000</s> 1146 <span class="product-card-discount small"> 1147 (-33%) 1148 </span> 1149 </div> 1150 1151 1152 1153 <div class="price-discount"> 1154 <h4 class="product-card-price-after card-money">Rp 588.000</h4> 1155 </div> 1156 1157 1158 1159 1160 1161 </div> 1162 1163 </div> 1164 </a> 1165 </div> 1166 1167 </div> 1168 1169 </div> 1170 1171 1172 1173 <div class="swiper-slide card"> 1174 1175 1176 1177 1178 <div class="products" data-lazy="false"> 1179 <div class="bg-products"> 1180 <div class="wishlist-toggle" data-product-handle="mid-autumn-of-fortune-mooncake"> 1181 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1182 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
118211233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1183 </svg> 1184 1185 </div> 1186 <a href="/products/mid-autumn-of-fortune-mooncake"> 1187 1188 <div class="product-card-img-container p-0 position-relative"> 1189 1190 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-of-Fortune-Mooncake_de29329d-6ab7-4592-aa00-3e9636d4a323_350x.jpg?v=1755846072" alt="Mid Autumn of Fortune Mooncake" height="200" width="200"> 1191 </div> 1192 <div class="card-body product-card-info"> 1193 <h5 class="h5 mb-0"> 1194 Mid Autumn of Fortune Mooncake 1195 </h5> 1196 <div class="product-card-price"> 1197 1198 <div class="product-price-sale"> 1199 <s class="product-card-price-before card-money">Rp 1.188.000</s> 1200 <span class="product-card-discount small"> 1201 (-33%) 1202 </span> 1203 </div> 1204 1205 1206 1207 <div class="price-discount"> 1208 <h4 class="product-card-price-after card-money">Rp 788.000</h4> 1209 </div> 1210 1211 1212 1213 1214 1215 </div> 1216 1217 </div> 1218 </a> 1219 </div> 1220 1221 </div> 1222 1223 </div> 1224 1225 1226 1227 <div class="swiper-slide card"> 1228 1229 1230 1231 1232 <div class="products" data-lazy="false"> 1233 <div class="bg-products"> 1234 <div class="wishlist-toggle" data-product-handle="mid-autumn-festival-mooncake"> 1235 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1236 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
123611233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1237 </svg> 1238 1239 </div> 1240 <a href="/products/mid-autumn-festival-mooncake"> 1241 1242 <div class="product-card-img-container p-0 position-relative"> 1243 1244 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" data-src="//outerbloom.com/cdn/shop/files/Mid-Autumn-Festival-Mooncake_06ea4f9c-bdaa-49de-b0ba-c3dd60fef351_350x.jpg?v=1755845965" alt="Mid Autumn Festival Mooncake" height="200" width="200"> 1245 </div> 1246 <div class="card-body product-card-info"> 1247 <h5 class="h5 mb-0"> 1248 Mid Autumn Festival Mooncake 1249 </h5> 1250 <div class="product-card-price"> 1251 1252 <div class="product-price-sale"> 1253 <s class="product-card-price-before card-money">Rp 1.288.000</s> 1254 <span class="product-card-discount small"> 1255 (-23%) 1256 </span> 1257 </div> 1258 1259 1260 1261 <div class="price-discount"> 1262 <h4 class="product-card-price-after card-money">Rp 988.000</h4> 1263 </div> 1264 1265 1266 1267 1268 1269 </div> 1270 1271 </div> 1272 </a> 1273 </div> 1274 1275 </div> 1276 1277 </div> 1278 1279 1280 1281 <div class="swiper-slide card"> 1282 1283 1284 1285 1286 <div class="products" data-lazy="false"> 1287 <div class="bg-products"> 1288 <div class="wishlist-toggle" data-product-handle="the-jade-bouquet"> 1289 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1290 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
129011233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1291 </svg> 1292 1293 </div> 1294 <a href="/products/the-jade-bouquet"> 1295 1296 <div class="product-card-img-container p-0 position-relative"> 1297 1298 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" data-src="//outerbloom.com/cdn/shop/files/The-Jade-Bouquet_350x.jpg?v=1751618030" alt="The Jade Bouquet" height="200" width="200"> 1299 </div> 1300 <div class="card-body product-card-info"> 1301 <h5 class="h5 mb-0"> 1302 The Jade Bouquet 1303 </h5> 1304 <div class="product-card-price"> 1305 1306 <div class="product-price-sale"> 1307 <s class="product-card-price-before card-money">Rp 435.000</s> 1308 <span class="product-card-discount small"> 1309 (-34%) 1310 </span> 1311 </div> 1312 1313 1314 1315 <div class="price-discount"> 1316 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1317 </div> 1318 1319 1320 1321 1322 1323 </div> 1324 1325 </div> 1326 </a> 1327 </div> 1328 1329 </div> 1330 1331 </div> 1332 1333 1334 1335 <div class="swiper-slide card"> 1336 1337 1338 1339 1340 <div class="products" data-lazy="false"> 1341 <div class="bg-products"> 1342 <div class="wishlist-toggle" data-product-handle="the-selena-bouquet"> 1343 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1344 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
134411233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1345 </svg> 1346 1347 </div> 1348 <a href="/products/the-selena-bouquet"> 1349 1350 <div class="product-card-img-container p-0 position-relative"> 1351 1352 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" data-src="//outerbloom.com/cdn/shop/files/The-Selena-Bouquet_350x.jpg?v=1751618047" alt="The Selena Bouquet" height="200" width="200"> 1353 </div> 1354 <div class="card-body product-card-info"> 1355 <h5 class="h5 mb-0"> 1356 The Selena Bouquet 1357 </h5> 1358 <div class="product-card-price"> 1359 1360 <div class="product-price-sale"> 1361 <s class="product-card-price-before card-money">Rp 335.000</s> 1362 <span class="product-card-discount small"> 1363 (-29%) 1364 </span> 1365 </div> 1366 1367 1368 1369 <div class="price-discount"> 1370 <h4 class="product-card-price-after card-money">Rp 235.000</h4> 1371 </div> 1372 1373 1374 1375 1376 1377 </div> 1378 1379 </div> 1380 </a> 1381 </div> 1382 1383 </div> 1384 1385 </div> 1386 1387 1388 1389 <div class="swiper-slide card"> 1390 1391 1392 1393 1394 <div class="products" data-lazy="false"> 1395 <div class="bg-products"> 1396 <div class="wishlist-toggle" data-product-handle="the-viola-bouquet"> 1397 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1398 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
139811233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1399 </svg> 1400 1401 </div> 1402 <a href="/products/the-viola-bouquet"> 1403 1404 <div class="product-card-img-container p-0 position-relative"> 1405 1406 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" data-src="//outerbloom.com/cdn/shop/files/The-Viola-Bouquet_350x.jpg?v=1751618053" alt="A striking bouquet featuring full pink chrysanthemums and delicate purple asters. It is elegantly wrapped in deep purple paper with a modern black and white striped accent at the base. The arrangement is tied with a pink ribbon bow, creating a full, rounded shape. This sophisticated bouquet is perfect for birthdays, anniversaries, or as a thoughtful thank-you gesture." height="200" width="200"> 1407 </div> 1408 <div class="card-body product-card-info"> 1409 <h5 class="h5 mb-0"> 1410 The Viola Bouquet 1411 </h5> 1412 <div class="product-card-price"> 1413 1414 <div class="product-price-sale"> 1415 <s class="product-card-price-before card-money">Rp 385.000</s> 1416 <span class="product-card-discount small"> 1417 (-25%) 1418 </span> 1419 </div> 1420 1421 1422 1423 <div class="price-discount"> 1424 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1425 </div> 1426 1427 1428 1429 1430 1431 </div> 1432 1433 </div> 1434 </a> 1435 </div> 1436 1437 </div> 1438 1439 </div> 1440 1441 1442 1443 <div class="swiper-slide card"> 1444 1445 1446 1447 1448 <div class="products" data-lazy="false"> 1449 <div class="bg-products"> 1450 <div class="wishlist-toggle" data-product-handle="the-minerva-bouquet"> 1451 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1452 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
145211233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1453 </svg> 1454 1455 </div> 1456 <a href="/products/the-minerva-bouquet"> 1457 1458 <div class="product-card-img-container p-0 position-relative"> 1459 1460 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" data-src="//outerbloom.com/cdn/shop/files/The-Minerva-Bouquet_350x.jpg?v=1751618061" alt="The Minerva Bouquet" height="200" width="200"> 1461 </div> 1462 <div class="card-body product-card-info"> 1463 <h5 class="h5 mb-0"> 1464 The Minerva Bouquet 1465 </h5> 1466 <div class="product-card-price"> 1467 1468 <div class="product-price-sale"> 1469 <s class="product-card-price-before card-money">Rp 385.000</s> 1470 <span class="product-card-discount small"> 1471 (-25%) 1472 </span> 1473 </div> 1474 1475 1476 1477 <div class="price-discount"> 1478 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1479 </div> 1480 1481 1482 1483 1484 1485 </div> 1486 1487 </div> 1488 </a> 1489 </div> 1490 1491 </div> 1492 1493 </div> 1494 1495 1496 1497 <div class="swiper-slide card"> 1498 1499 1500 1501 1502 <div class="products" data-lazy="false"> 1503 <div class="bg-products"> 1504 <div class="wishlist-toggle" data-product-handle="congraduations-bouquet"> 1505 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1506 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
150611233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1507 </svg> 1508 1509 </div> 1510 <a href="/products/congraduations-bouquet"> 1511 1512 <div class="product-card-img-container p-0 position-relative"> 1513 1514 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" data-src="//outerbloom.com/cdn/shop/files/Congraduations-Bouquet_350x.jpg?v=1749545306" alt="Congraduations Bouquet" height="200" width="200"> 1515 </div> 1516 <div class="card-body product-card-info"> 1517 <h5 class="h5 mb-0"> 1518 Congraduations Bouquet 1519 </h5> 1520 <div class="product-card-price"> 1521 1522 <div class="product-price-sale"> 1523 <s class="product-card-price-before card-money">Rp 380.000</s> 1524 <span class="product-card-discount small"> 1525 (-25%) 1526 </span> 1527 </div> 1528 1529 1530 1531 <div class="price-discount"> 1532 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1533 </div> 1534 1535 1536 1537 1538 1539 </div> 1540 1541 </div> 1542 </a> 1543 </div> 1544 1545 </div> 1546 1547 </div> 1548 1549 1550 1551 <div class="swiper-slide card"> 1552 1553 1554 1555 1556 <div class="products" data-lazy="false"> 1557 <div class="bg-products"> 1558 <div class="wishlist-toggle" data-product-handle="grad-gorgeous-bouquet"> 1559 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="21" viewBox="0 0 24 21" fill="none"> 1560 <path d="M17.4688 0.8125C15.1237 0.8125 13.1025 1.92703 12 3.77328C10.8975 1.92703 8.87625 0.8125 6.53125 0.8125C4.8494 0.814526 3.23702 1.48353 2.04778 2.67278C0.858534 3.86202 0.189526 5.47441 0.1875 7.15625C0.1875 10.2833 2.15625 13.5514 6.02813 16.8677C7.81594 18.3889 9.74622 19.7342 11.7922 20.885C11.856 20.9195 11.9274 20.9375 12 20.9375C12.0726 20.9375 12.144 20.9195 12.2078 20.885C14.2538 19.7342 16.1841 18.3889 17.9719 16.8677C21.8438 13.5514 23.8125 10.2833 23.8125 7.15625C23.8105 5.47441 23.1415 3.86202 21.9522 2.67278C20.763 1.48353 19.1506 0.814526 17.4688 0.8125ZM12 19.9991C10.4688 19.1241 1.0625 13.5077 1.0625 7.15625C1.06424 5.70638 1.64096 4.31639 2.66618 3.29118C3.69139 2.26596 5.08138 1.68924 6.53125 1.6875C8.84016 1.6875 10.7805 2.92453 11.5953 4.91516C11.6283 4.9954 11.6843 5.06403 11.7564 5.
156011233C11.8285 5.16063 11.9133 5.18642 12 5.18642C12.0867 5.18642 12.1715 5.16063 12.2436 5.11233C12.3157 5.06403 12.3717 4.9954 12.4047 4.91516C13.2195 2.92453 15.1598 1.6875 17.4688 1.6875C18.9186 1.68924 20.3086 2.26596 21.3338 3.29118C22.359 4.31639 22.9358 5.70638 22.9375 7.15625C22.9375 13.5 13.5312 19.1284 12 19.9991Z" fill="#ffffff"/> 1561 </svg> 1562 1563 </div> 1564 <a href="/products/grad-gorgeous-bouquet"> 1565 1566 <div class="product-card-img-container p-0 position-relative"> 1567 1568 <img class="product-card-img" lazy="false" src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" data-src="//outerbloom.com/cdn/shop/files/Grad-_-Gorgeous-Bouquet_350x.jpg?v=1749545297" alt="Grad & Gorgeous Bouquet" height="200" width="200"> 1569 </div> 1570 <div class="card-body product-card-info"> 1571 <h5 class="h5 mb-0"> 1572 Grad & Gorgeous Bouquet 1573 </h5> 1574 <div class="product-card-price"> 1575 1576 <div class="product-price-sale"> 1577 <s class="product-card-price-before card-money">Rp 380.000</s> 1578 <span class="product-card-discount small"> 1579 (-25%) 1580 </span> 1581 </div> 1582 1583 1584 1585 <div class="price-discount"> 1586 <h4 class="product-card-price-after card-money">Rp 285.000</h4> 1587 </div> 1588 1589 1590 1591 1592 1593 </div> 1594 1595 </div> 1596 </a> 1597 </div> 1598 1599 </div> 1600 1601 </div> 1602 1603 1604 </div> 1605 </div> 1606 1607 </div> 1608 </div> 1609 </div> 1610 1611 <div class="site-overlay" style="display: none"></div> 1612 </div> 1613
1613<script> 1614 1615 var swiper = new Swiper('.popup-recommend', { 1616 slidesPerView : 4, 1617 spaceBetween: 30, 1618 lazy: true , 1619 speed: 300, 1620 breakpoints: { 1621 // when window width is <= 576px 1622 576: { 1623 slidesPerView: 2, 1624 spaceBetween: 10, 1625 freeMode: true, 1626 resistance : true, 1627 resistanceRatio : 0, 1628 freeModeMomentumRatio : 0.45, 1629 freeModeMomentumVelocityRatio : 1.5 1630 }, 1631 768: { 1632 slidesPerView: 2, 1633 spaceBetween: 10 1634 }, 1635 992: { 1636 slidesPerView: 3, 1637 spaceBetween: 20 1638 } 1639 } 1640 }); 1641 1642 const searchContainer = $("#search-popup") 1643 const searchInput = $(".search-popup") 1644 const result_collection = $('.result_collection') 1645 const result_product = $('.result_product') 1646 const resultsearch = $('.resultsearch') 1647 const resultrecommend = $(".group-recommend") 1648 const moreresult = $(".moreresult") 1649 1650 searchInput.keyup(function(){ 1651 const input = $(this).val() 1652 moreresult.find("p span").text(` �${input}�`) 1653 if(input.length > 2) { 1654 $(".close-search").show() 1655 const url = `https://outerbloom.com/search/suggest.json?resources[limit]=10&resources[limit_scope]=each&resources[type]=collection,product&q=${input}` 1656 $.ajax({
1657 type: 'GET', 1658 url, 1659 beforeSend: function() { 1660 // setting a timeout 1661 // $(placeholder).addClass('loading'); 1662 }, 1663 success: function(response) { 1664 resultsearch.show() 1665 resultrecommend.hide() 1666 result_collection.html("") 1667 result_product.html("") 1668 const collections = response.resources.results.collections 1669 const products = response.resources.results.products 1670 let collection_length = collections.length 1671 let product_length = products.length 1672 // if(collections.length > 5) { 1673 // collection_length = 5 1674 // } 1675 // if(products.length > 5) { 1676 // product_length = 5 1677 // } 1678 for(let i=0;i<collection_length;i++){ 1679 const title = collections[i].title 1680 const url = collections[i].url 1681 let html_collection 1682 if(!title.includes('AIA') && !title.includes('AXA') && !title.includes('WOM') && !title.includes('Upsell')) { 1683 html_collection = ` 1684 <li class="item" data-title="${title}"> 1685 <a href="${url}" data-type="collection" class="item_url" data-title="${title}" data-url="${url}">${title}</a> 1686 </li> 1687 ` 1688 } 1689 result_collection.append(html_collection) 1690 } 1691 for(let i=0;i<product_length;i++){ 1692 const title = products[i].title 1693 const url = products[i].url 1694 const image = products[i].featured_image.url 1695 const vendor = products[i].vendor 1696 let html_product 1697 if(vendor !== 'AIA' && vendor !== 'AXA' && vendor !== 'WOM Finance' && !title.includes('Extra Shipping Cost') && !title.includes('[US]') && !title.includes('Rp')){ 1698 html_product = ` 1699 <li class="item" data-vendor="${vendor}"> 1700 <a href="${url}" class="item_url" data-type="product" data-title="${title}" data-url="${url}"> 1701 <img src="${image}" alt="${title}" style="width: 70px;vertical-align: middle;margin-right: 20px;"><span>${title}</span> 1702 </a> 1703 </li> 1704 ` 1705 } 1706 result_product.append(html_product) 1707 } 1708 }, 1709 error: function(xhr) { // if error occured 1710 alert("Error occured.please try again"); 1711 }, 1712 complete: function(response) { 1713 // $(placeholder).removeClass('loading'); 1714 }, 1715 dataType: 'JSON' 1716 }); 1717 } else { 1718 result_collection.html("") 1719 result_product.html("") 1720 1721 resultsearch.hide() 1722 resultrecommend.show() 1723 } 1724 }) 1725 1726 moreresult.click(function(){ 1727 $("#search-btn").trigger("click"); 1728 }) 1729 1730 $(".close-search").click(function(){ 1731 $(this).hide() 1732 searchInput.val("") 1733 searchInput.focus() 1734 resultsearch.hide() 1735 resultrecommend.show() 1736 }) 1737 1738 function setCookie(name,value,days) { 1739 var expires = ""; 1740 if (days) { 1741 var date = new Date(); 1742 date.setTime(date.getTime() + (days*24*60*60*1000)); 1743 expires = "; expires=" + date.toUTCString(); 1744 } 1745 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 1746 } 1747 function getCookie(name) { 1748 var nameEQ = name + "="; 1749 var ca = document.cookie.split(';'); 1750 for(var i=0;i < ca.length;i++) { 1751 var c = ca[i]; 1752 while (c.charAt(0)==' ') c = c.substring(1,c.length); 1753 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 1754 } 1755 return null; 1756 } 1757 let last_search_name = [] 1758 let last_search_url = [] 1759 $(".group-recent").hide() 1760 if(getCookie("last_search_name") != null && getCookie("last_search_url") != null){ 1761 if(getCookie("last_search_name") != "" && getCookie("last_search_url") != ""){ 1762 $(".group-recent").show() 1763 last_search_name = getCookie("last_search_name"); 1764 last_search_url = getCookie("last_search_url"); 1765 const arrName = last_search_name.substring(1).split(',').reverse() 1766 const arrUrl = last_search_url.substring(1).split(',').reverse() 1767 console.log(arrName, 'Array Name') 1768 console.log(arrUrl, 'Array Url') 1769 let length = arrName.length 1770 if(arrName.length > 5) { 1771 length = 5 1772 } 1773 for(let n=0;n<length;n++){ 1774 let html2 = `<li><svg viewBox="0 0 24 24" xmlns="https://kucingair.com/fotobaka/logopub.png"><title/><path d="M12.25,2A9.81,9.81,0,0,0,4.77,5.46L3.41,4.25a1,1,0,0,0-1.07-.16A1,1,0,0,0,1.75,5V9a1,1,0,0,0,1,1h4.5a1,1,0,0,0,.93-.64,1,1,0,0,0-.27-1.11L6.26,6.78a7.86,7.86,0,0,1,6-2.78A8,8,0,1,1,4.72,14.67a1,1,0,0,0-1.89.66A10,10,0,1,0,12.25,2Z" fill="#C9C9C9"/><path d="M16,16a1,1,0,0,1-.6-.2l-4-3A1,1,0,0,1,11,12V8a1,1,0,0,1,2,0v3.5l3.6,2.7a1,1,0,0,1,.2,1.4A1,1,0,0,1,16,16Z" fill="#C9C9C9"/></svg><a href="${arrUrl[n]}">
1774${arrName[n]}</a><span data-title="${arrName[n]}" data-url="${arrUrl[n]}"></span></li>` 1775 $(".group-recent ul").append(html2) 1776 } 1777 } 1778 } 1779 console.log(last_search_name, 'Name') 1780 console.log(last_search_url, 'url') 1781 1782 resultsearch.delegate(".item a", "click", function(){ 1783 let name = [last_search_name] 1784 let url = [last_search_url] 1785 name.push($(this).attr('data-title')) 1786 url.push($(this).attr('data-url')) 1787 setCookie("last_search_name",name,7); 1788 setCookie("last_search_url",url,7); 1789 }) 1790 1791 $(".delete-all-history").click(function() { 1792 setCookie("last_search_name",null,0); 1793 setCookie("last_search_url",null,0); 1794 $(".last-search").hide(); 1795 setTimeout(function(){ 1796 location.reload(); 1797 }, 500); 1798 }) 1799 1800 $("#search-trigger").click(function(){ 1801 search_open() 1802 }) 1803 $(".icon-search-mobile").click(function(){ 1804 search_open() 1805 }) 1806 $(".search-header svg").click(function(){ 1807 search_close() 1808 }) 1809 $(".icon-key-mobile").click(function(){ 1810 search_close() 1811 }) 1812 1813 function search_open() { 1814 $("body").addClass("search-popup-open") 1815 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").hide() 1816 $("#search-popup, .search-header svg, .icon-key-mobile").show() 1817 $(".search-popup").focus() 1818 $('.popup-recommend')[0].swiper.update(); 1819 } 1820 function search_close() { 1821 $("body").removeClass("search-popup-open") 1822 $("#nav-mobile-icon, .search-header label, .icon-search-mobile").show() 1823 $("#search-popup, .search-header svg, .icon-key-mobile").hide() 1824 searchInput.val("") 1825 resultsearch.hide() 1826 resultrecommend.show() 1827 } 1828 1829 $(".site-overlay").click(function(){ 1830 search_close() 1831 }) 1832 </script>
1832 1833 1834 </div> 1835 </div> 1836 1837 <div id="PageContainer" class="is-moved-by-drawerx" style="background-color: #000000;"> 1838 <main class="main-content pt-0" role="main"> 1839 1840 <div id="breadcrumbProduct" class="d-none d-lg-block"> 1841 <style> 1842 #breadcrumbProduct { 1843 padding: 20px 0; 1844 } 1845 #breadcrumbProduct ul { 1846 display: flex; 1847 padding: 0; 1848 list-style: none; 1849 margin: 0; 1850 gap: 12px; 1851 } 1852 #breadcrumbProduct ul li { 1853 text-transform: uppercase; 1854 margin: 0; 1855 font-size: 12px; 1856 } 1857 #breadcrumbProduct ul li a { 1858 color: #757575; 1859 } 1860 1861 #breadcrumbProduct ul li svg { 1862 width: 10px; 1863 height: 10px; 1864 padding: 0; 1865 color: #757575; 1866 vertical-align: middle; 1867 } 1868 </style> 1869 <div class="container" style="color: #ffffff;"> 1870 <ul role="navigation" aria-label="breadcrumbs"> 1871 <li><a href="https://collegeofnepal.com/" style="color: #ffffff;">PUBTOGEL</a></li> 1872 <li><svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="7" height="10" viewBox="0 0 7 10" fill="none"> 1873 <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/> 1874 </svg></li> 1875 <li>SITUS TOTO</li> 1876 <li>TOTO TOGEL</li> 1877 <li>SITUS TOGEL</li> 1878 <li>Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal</li> 1879 1880 </ul> 1881 </div> 1882 1883 </div> 1884 1885
1885<script type="application/ld+json"> 1886 { 1887 "@context": "https://schema.org", 1888 "@type": "Product", 1889 "name": "Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal", 1890 "image": "https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg", 1891 "description": "Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan!", 1892 "brand": { 1893 "@type": "Brand", 1894 "name": "PUBTOGEL" 1895 }, 1896 "sku": "PUBTOGEL", 1897 "mpn": "PUBTOGEL", 1898 "url": "https://collegeofnepal.com/", 1899 "offers": { 1900 "@type": "Offer", 1901 "url": "https://collegeofnepal.com/", 1902 "priceCurrency": "USD", 1903 "price": "10.00", 1904 "priceValidUntil": "2025-12-25", 1905 "itemCondition": "https://schema.org/NewCondition", 1906 "availability": "https://schema.org/InStock", 1907 "seller": { 1908 "@type": "Organization", 1909 "name": "PUBTOGEL" 1910 } 1911 }, 1912 "aggregateRating": { 1913 "@type": "AggregateRating", 1914 "ratingValue": "5.0", 1915 "reviewCount": 858 1916 }, 1917 "review": [ 1918 { 1919 "@type": "Review", 1920 "reviewRating": { 1921 "@type": "Rating", 1922 "ratingValue": "5", 1923 "bestRating": "5" 1924 }, 1925 "author": { 1926 "@type": "Person", 1927 "name": "juandi" 1928 } 1929 }, 1930 { 1931 "@type": "Review", 1932 "reviewRating": { 1933 "@type": "Rating", 1934 "ratingValue": "5", 1935 "bestRating": "5" 1936 }, 1937 "author": { 1938 "@type": "Person", 1939 "name": "situmorang" 1940 } 1941 } 1942 ] 1943 } 1944 </script>
1944<script type="application/ld+json"> 1945 { 1946 "@context": "https://schema.org", 1947 "@type": "BreadcrumbList", 1948 "itemListElement": [ 1949 { 1950 "@type": "ListItem", 1951 "position": 1, 1952 "name": "PUBTOGEL", 1953 "item": "https://collegeofnepal.com/" 1954 }, 1955 { 1956 "@type": "ListItem", 1957 "position": 2, 1958 "name": "SITUS TOTO", 1959 "item": "https://collegeofnepal.com/" 1960 }, 1961 { 1962 "@type": "ListItem", 1963 "position": 3, 1964 "name": "TOTO TOGEL", 1965 "item": "https://collegeofnepal.com/" 1966 }, 1967 { 1968 "@type": "ListItem", 1969 "position": 4, 1970 "name": "TOGEL 4D", 1971 "item": "https://collegeofnepal.com/" 1972 }, 1973 { 1974 "@type": "ListItem", 1975 "position": 5, 1976 "name": "SITUS TOGEL", 1977 "item": "https://collegeofnepal.com/" 1978 }, 1979 { 1980 "@type": "ListItem", 1981 "position": 6, 1982 "name": "TOGEL ONLINE", 1983 "item": "https://collegeofnepal.com/" 1984 }, 1985 { 1986 "@type": "ListItem", 1987 "position": 7, 1988 "name": "SITUS TOTO TOGEL", 1989 "item": "https://collegeofnepal.com/" 1990 }, 1991 { 1992 "@type": "ListItem", 1993 "position": 8, 1994 "name": "Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal", 1995 "item": "https://collegeofnepal.com/" 1996 } 1997 ] 1998 } 1999 </script>
1999 2000
2000<script type="application/ld+json" id="faq-schema"> 2001{ 2002 "@context": "https://schema.org", 2003 "@type": "FAQPage", 2004 "mainEntity": [ 2005 { 2006 "@type": "Question", 2007 "name": "Mengapa akses ke PUBTOGEL tidak pernah terblokir meskipun ada kebijakan pemblokiran internet positif?", 2008 "acceptedAnswer": { 2009 "@type": "Answer", 2010 "text": "PUBTOGEL secara berkala dan konsisten menyediakan link alternatif resmi yang selalu diperbarui dan mudah diakses. Link-link ini menjamin anggota dapat login dan bermain tanpa hambatan, memastikan pengalaman bermain yang lancar meskipun ada pemblokiran." 2011 } 2012 }, 2013 { 2014 "@type": "Question", 2015 "name": "Apa keunggulan utama yang membedakan PUBTOGEL dari bandar togel online lainnya?", 2016 "acceptedAnswer": { 2017 "@type": "Answer", 2018 "text": "Keunggulan utamanya terletak pada diskon dan hadiah pembayaran (prize) yang paling kompetitif dan besar di pasar. PUBTOGEL dikenal menawarkan diskon pemasangan yang tinggi dan struktur hadiah 4D, 3D, dan 2D yang jauh lebih menguntungkan bagi para pemainnya." 2019 } 2020 }, 2021 { 2022 "@type": "Question", 2023 "name": "Bagaimana PUBTOGEL menjamin keamanan data pribadi dan transaksi jutaan member aktifnya?", 2024 "acceptedAnswer": { 2025 "@type": "Answer", 2026 "text": "PUBTOGEL menggunakan sistem enkripsi data canggih berstandar internasional (seperti SSL 128-bit) dan server berteknologi tinggi untuk melindungi informasi pribadi. Semua transaksi deposit dan withdraw diproses melalui gerbang pembayaran terpercaya dengan pengawasan 24 jam." 2027 } 2028 }, 2029 { 2030 "@type": "Question", 2031 "name": "Sebutkan jenis pasaran toto togel resmi apa saja yang populer dan tersedia di PUBTOGEL?", 2032 "acceptedAnswer": { 2033 "@type": "Answer", 2034 "text": "Pasaran paling populer dan resmi yang tersedia meliputi Togel Singapore (SGP), Togel Hong Kong (HK), dan Togel Sydney (SDY). Selain itu, ada banyak pasaran internasional resmi lainnya yang disediakan dengan hasil result yang dijamin sah." 2035 } 2036 }, 2037 { 2038 "@type": "Question", 2039 "name": "Apa yang dimaksud dengan layanan Customer Service (CS) 24 jam PUBTOGEL dan bagaimana cara menghubungi mereka?", 2040 "acceptedAnswer": { 2041 "@type": "Answer", 2042 "text": "Layanan CS 24 jam berarti tim profesional siap membantu member kapan saja, 7 hari seminggu, untuk mengatasi kendala login, transaksi, atau pertanyaan umum. Mereka dapat dihubungi melalui Live Chat, WhatsApp, atau Line yang tersedia langsung di situs resmi." 2043 } 2044 } 2045 ] 2046} 2047</script>
2047 2048
2048<script type="application/ld+json"> 2049 { 2050 "@context": "https://schema.org", 2051 "@type": "Organization", 2052 "name": "PUBTOGEL", 2053 "url": "https://collegeofnepal.com/", 2054 "logo": "https://kucingair.com/fotobaka/logopub.png", 2055 "sameAs": [ 2056 "https://www.facebook.com/PUBTOGEL", 2057 "https://twitter.com/PUBTOGEL", 2058 "https://www.instagram.com/PUBTOGEL" 2059 ], 2060 "contactPoint": { 2061 "@type": "ContactPoint", 2062 "telephone": "+62-8946-113-4615", 2063 "contactType": "customer support", 2064 "areaServed": "ID", 2065 "availableLanguage": ["Indonesian", "English"] 2066 } 2067 } 2068 </script>
2068 2069 2070
2070<script type="application/ld+json"> 2071 { 2072 "@context": "https://schema.org", 2073 "@type": "VideoObject", 2074 "name": "Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal", 2075 "description": "Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan!", 2076 "thumbnailUrl": [ 2077 "https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg", 2078 "https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2079 ], 2080 "uploadDate": "2025-09-28T04:19:10-04:00", 2081 "duration": "PT168", 2082 "contentUrl": "https://collegeofnepal.com/" 2083 } 2084 </script>
2084 2085 2086
2086<script type="application/ld+json"> 2087 { 2088 "@context": "https://schema.org", 2089 "@type": "BreadcrumbList", 2090 "itemListElement": [ 2091 { 2092 "@type": "ListItem", 2093 "position": 1, 2094 "name": "Home", 2095 "item": "https://collegeofnepal.com/" 2096 } 2097 ] 2098 } 2099 </script>
2099 2100 2101
2101<script type="application/ld+json"> 2102 { 2103 "@context": "https://schema.org", 2104 "@graph": [ 2105 { 2106 "@type": "Organization", 2107 "@id": "https://collegeofnepal.com/#org", 2108 "name": "PUBTOGEL", 2109 "url": "https://collegeofnepal.com/", 2110 "logo": "https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2111 }, 2112 { 2113 "@type": "WebSite", 2114 "@id": "https://collegeofnepal.com/#website", 2115 "url": "https://collegeofnepal.com/", 2116 "name": "PUBTOGEL", 2117 "publisher": { "@id": "https://collegeofnepal.com/#org" }, 2118 "inLanguage": "id-ID", 2119 "potentialAction": { 2120 "@type": "SearchAction", 2121 "target": "https://collegeofnepal.com/?s={search_term_string}", 2122 "query-input": "required name=search_term_string" 2123 } 2124 }, 2125 { 2126 "@type": "SoftwareApplication", 2127 "@id": "https://collegeofnepal.com/#app", 2128 "name": "PUBTOGEL", 2129 "applicationCategory": "GameApplication", 2130 "operatingSystem": "Android, iOS, Windows", 2131 "offers": { "@type": "Offer", "price": "0", "priceCurrency": "IDR" }, 2132 "aggregateRating": { "@type": "AggregateRating", "ratingValue": 4.9, "ratingCount": 62595 } 2133 } 2134 ] 2135 } 2136 </script>
2136 2137 2138 <div id="shopify-section-Product" class="shopify-section product-section mt-0"><link href="https://asset-jko.b-cdn.net/footer-warna.css" rel="stylesheet" type="text/css" media="all" /> 2139 2140 2141 <style> 2142 .bg-card { 2143 background-color: #000000; 2144 } 2145 </style> 2146 2147 <!-- /templates/product.liquid --> 2148 2149 2150 <!-- <div itemscope itemtype="http://schema.org/Product"> --> 2151 2152 2153 <div class="product-standing-flower" data-product-type="flowerBoard"> 2154 <meta itemprop="url" content="https://collegeofnepal.com/"> 2155 <meta itemprop="image" content="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg"> 2156 2157 2158 2159 <input id="data-sku" type="hidden" value="OBVSTF1086"> 2160 <div class="product-single" style="background-image: url(https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg); background-attachment: fixed;"> 2161 <div id="product-top" class="container"> 2162 <div class="row bg-card product-sticky" style="background-color: rgba(0, 0, 0, 0.1);backdrop-filter: blur(25px); padding: 20px 25px;border-radius: 10px;"> 2163 <div id="product-image" class="col-lg-7 text-center"> 2164 <div class="product-image"> 2165 <div class="row no-gutters"> 2166 2167 <div id="product-featured-image" class="row w-100"> 2168 2169 <div id="thumb-image-product" class="col-lg-2 col-12 d-none d-lg-block"> 2170 2171 <div class="swiper-container gallery-thumbs" style="min-height: 500px"> 2172 <ul class="list-unstyled slider swiper-wrapper slider-nav ProductThumbs thumbnails" id="ProductThumbsx"> 2173 2174 <li class="swiper-slide" data-type="image"> 2175 <a 2176 href="files/Blossom-Shine-WM.jpg" 2177 data-standard="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2178 data-image="files/Blossom-Shine-WM.jpg" 2179 data-position="1" 2180 class="product-single__thumbnail" 2181 > 2182 <img 2183 class="lazyload w-100" 2184 src="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2185 alt="Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal" 2186 width="" 2187 height="" 2188 > 2189 </a> 2190 </li> 2191 2192 2193 2194 2195 <li class="swiper-slide" data-type="image"> 2196 <a 2197 href="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2198 data-standard="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2199 data-image="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2200 data-position="2" 2201 class="product-single__thumbnail" 2202 > 2203 <img 2204 class="lazyload w-100" 2205 src="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2206 alt="Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal" 2207 width="" 2208 height="" 2209 > 2210 </a> 2211 </li> 2212 2213 2214 2215 2216 <li class="swiper-slide" data-type="image"> 2217 <a 2218 href="files/Blossom-Shine_3-WM.jpg" 2219 data-standard="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2220 data-image="files/Blossom-Shine_3-WM.jpg" 2221 data-position="3" 2222 class="product-single__thumbnail" 2223 > 2224 <img 2225 class="lazyload w-100" 2226 src="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2227 alt="Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal" 2228 width="" 2229 height="" 2230 > 2231 </a> 2232 </li> 2233 2234 2235 2236 2237 <li class="swiper-slide" data-type="image"> 2238 <a 2239 href="files/Blossom-Shine_4.jpg" 2240 data-standard="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2241 data-image="files/Blossom-Shine_4.jpg" 2242 data-position="4" 2243 class="product-single__thumbnail" 2244 > 2245 <img 2246 class="lazyload w-100" 2247 src="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2248 alt="Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal" 2249 width="" 2250 height="" 2251 > 2252 </a> 2253 </li> 2254 2255 2256 2257 </ul> 2258 </div> 2259 2260 </div> 2261 2262 <div 2263 id="featured-image-product" 2264 class="col-lg-10 col-12 d-none d-lg-block" 2265 > 2266 <div class="swiper-container gallery-top"> 2267 <div class="swiper-slide product-single__image"> 2268 2269 <div class="product-single__photos slider slider-for" id="ProductPhoto"> 2270 2271 2272 <div class="easyzoom easyzoom--overlay easyzoom--with-thumbnails"> 2273 <a href="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg"> 2274 <img 2275 src="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2276 alt="Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal" 2277 id="ProductPhotoImg" 2278 class="lazyload" 2279 > 2280 2281 </a> 2282 </div> 2283 </div> 2284 2285 </div> 2286 <div class="swiper-slide product-single__video" style="display: none"> 2287 <video 2288 src="https://cdn.shopify.com/videos/c/vp/05d379ea115d41c2bd0f7d08b1496bd9/05d379ea115d41c2bd0f7d08b1496bd9.HD-1080p-7.2Mbps-24002195.mp4" 2289 playsinline 2290 loop 2291 muted 2292 ></video> 2293 </div> 2294 </div> 2295 </div> 2296 </div> 2297 2298 <div id="featured-image-product2" class="col-12 d-lg-none"> 2299 <div class="swiper-container gallery-mobile"> 2300 <ul class="swiper-wrapper"> 2301 <li class="swiper-slide img"> 2302 2303 <img 2304 class="swiper-lazy" 2305 src="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2306 data-src="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2307 alt="Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal" 2308 width="" 2309 height="" 2310 > 2311 2312 </li> 2313 2314 2315 <li class="swiper-slide img"> 2316 2317 <img 2318 class="swiper-lazy" 2319 src="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2320 data-src="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2321 alt="Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal" 2322 width="" 2323 height="" 2324 > 2325 2326 </li> 2327 2328 2329 <li class="swiper-slide img"> 2330 2331 <img 2332 class="swiper-lazy" 2333 src="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2334 data-src="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2335 alt="Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal" 2336 width="" 2337 height="" 2338 > 2339 2340 </li> 2341 2342 2343 <li class="swiper-slide img"> 2344 2345 <img 2346 class="swiper-lazy" 2347 src="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2348 data-src="https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg" 2349 alt="Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal" 2350 width="" 2351 height="" 2352 > 2353 2354 </li> 2355 2356 2357 </ul> 2358 2359 <div class="swiper-button-prev"><svg class="icon icon-chevron-left" xmlns="https://kucingair.com/fotobaka/logopub.png" width="7" height="12" viewBox="0 0 7 12"> <circle cx="60%" cy="50%" r="12" fill="transparent" /> <path d="M6.35355339,10.6464466 C6.54881554,10.8417088 6.54881554,11.1582912 6.35355339,11.3535534 C6.15829124,11.5488155 5.84170876,11.5488155 5.64644661,11.3535534 L0.646446609,6.35355339 C0.451184464,6.15829124 0.451184464,5.84170876 0.646446609,5.64644661 L5.64644661,0.646446609 C5.84170876,0.451184464 6.15829124,0.451184464 6.35355339,0.646446609 C6.54881554,0.841708755 6.54881554,1.15829124 6.35355339,1.35355339 L1.70710678,6 L6.35355339,10.6464466 Z"/> </svg></div> 2360 <div class="swiper-button-next"><svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="7" height="10" viewB
2360ox="0 0 7 10" fill="none"> 2361 <path d="M1.51673 0.0583496L6.2334 4.77502L1.51673 9.49168L0.933398 8.90002L5.0584 4.77502L0.933398 0.650016L1.51673 0.0583496Z" fill="#757575"/> 2362 </svg></div> 2363 2364 <!-- Add Pagination --> 2365 <div class="swiper-pagination"></div> 2366 2367 </div> 2368 </div> 2369 2370 <div class="product-m-pageleb-video col-12 text-center d-lg-none"> 2371 <!-- product video --> 2372 <style> 2373 .view-video{display:block; margin:auto; padding:5px 10px;font-size:16px;font-weight:bold;border:2px solid #ffffff;background:#fff;} 2374 .view-video .icon-play{fill:#ffffff;vertical-align: middle;} 2375 .video-modal{display:none;position:fixed;background: rgba(0,0,0,.5); width:100%; height:100%; overflow:auto; z-index:1; top:0;left:0;} 2376 .close-video{position:absolute;right:9px; top:8%;z-index:2;padding:5px;} 2377 .close-video .icon{width:30px;height:30px;} 2378 /*responsive iframe */ 2379 .video-container {position: relative;padding-bottom: 48.25%;padding-top: 35px;height: 0;box-shadow: 0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.3);} 2380 .video-container iframe {position: absolute;top:60%;left: 0;width: 100%;height: 100%;} 2381 2382 .youtube { 2383 background-color: #000; 2384 margin-bottom: 30px; 2385 position: relative; 2386 padding-top: 56.25%; 2387 overflow: hidden; 2388 cursor: pointer; 2389 width: 100%; 2390 } 2391 .swiper-slide .youtube { 2392 max-width: 480px; 2393 } 2394 .youtube img { 2395 width: 100%; 2396 top: -16.82%; 2397 left: 0; 2398 opacity: 0.7; 2399 } 2400 .youtube .play-button { 2401 width: 90px; 2402 height: 60px; 2403 background-color: #333; 2404 box-shadow: 0 0 30px rgba( 0,0,0,0.6 ); 2405 z-index: 1; 2406 opacity: 0.8; 2407 border-radius: 6px; 2408 } 2409 .youtube .play-button:before { 2410 content: ""; 2411 border-style: solid; 2412 border-width: 15px 0 15px 26.0px; 2413 border-color: transparent transparent transparent #fff; 2414 } 2415 .youtube img, 2416 .youtube .play-button { 2417 cursor: pointer; 2418 } 2419 .youtube img, 2420 .youtube iframe, 2421 .youtube .play-button, 2422 .youtube .play-button:before { 2423 position: absolute; 2424 } 2425 .youtube .play-button, 2426 .youtube .play-button:before { 2427 top: 50%; 2428 left: 50%; 2429 transform: translate3d( -50%, -50%, 0 ); 2430 } 2431 .youtube iframe { 2432 height: 100%; 2433 width: 100%; 2434 top: 0; 2435 left: 0; 2436 } 2437 </style> 2438 2439 2440 </div> 2441 </div> 2442 2443 <div class="product-desc-add position-relative d-none d-lg-block m-0"> 2444 2445 </div> 2446 2447
2447<script> 2448 if ($(window).width() < 991) { 2449 var direction = 'horizontal' 2450 } else { 2451 var direction = 'vertical' 2452 $(".gallery-thumbs").height($("#ProductPhotoImg").height()) 2453 } 2454 var swiper = new Swiper('.gallery-thumbs', { 2455 2456 direction, 2457 slidesPerView: 4.5, 2458 spaceBetween: 12, 2459 navigation: { 2460 nextEl: '.swiper-button-next', 2461 prevEl: '.swiper-button-prev', 2462 } 2463 }); 2464 2465 var swiper = new Swiper('.gallery-mobile', { 2466 //loop: true, 2467 lazy: true, 2468 speed: 300, 2469 resistance : true, 2470 resistanceRatio : 0, 2471 freeModeMomentumRatio : 0.45, 2472 freeModeMomentumVelocityRatio : 1.5, 2473 navigation: { 2474 nextEl: '.swiper-button-next', 2475 prevEl: '.swiper-button-prev', 2476 }, 2477 pagination: { 2478 el: '.swiper-pagination' 2479 }, 2480 useCSS3Transforms: false, 2481 loop: false, 2482 on: { 2483 init: function () { 2484 console.log('swiper initialized'); 2485 var currentVideo = $("[data-swiper-slide-index=" + this.realIndex + "]").find("video"); 2486 currentVideo.trigger('play'); 2487 }, 2488 }, 2489 }); 2490 2491 /* GET ALL VIDEOS */ 2492 var sliderVideos = $(".swiper-slide video"); 2493 2494 /* SWIPER API - Event will be fired after animation to other slide (next or previous) */ 2495 swiper.on('slideChange', function () { 2496 console.log('slide changed'); 2497 /* stop all videos */ 2498 sliderVideos.each(function( index ) { 2499 this.currentTime = 0; 2500 }); 2501 2502 /* SWIPER GET CURRENT AND PREV SLIDE (AND The VIDEO INSIDE) */ 2503 var prevVideo = $(`[data-swiper-slide-index="${this.previousIndex}]"`).find("video"); 2504 var currentVideo = $(`[data-swiper-slide-index="${this.realIndex}"]`).find("video"); 2505 prevVideo.trigger('stop'); 2506 currentVideo.trigger('play'); 2507 }); 2508 2509 2510 $("[data-video]").click(function(){ 2511 const file = $(this).data("video") 2512 $(".product-single__video").show() 2513 $(".product-single__image").hide() 2514 $(".product-single__video").find("video").attr("src", file) 2515 $(".product-single__video").find("video")[0].play(); 2516 }) 2517 $("[data-image]").click(function(){ 2518 $(".product-single__video").hide() 2519 $(".product-single__image").show() 2520 $(".product-single__video").find("video")[0].pause(); 2521 }) 2522 2523 $("#product-image .swiper-slide").each(function(){ 2524 let width = $(this).width() 2525 $(this).height(width) 2526 }) 2527 2528 $(window).resize(function() { 2529 $("#product-image .swiper-slide").each(function(){ 2530 let width = $(this).width() 2531 $(this).height(width) 2532 }) 2533 }) 2534 </script>
2534 2535 2536 </div> 2537 2538 2539 <div class="grid__item_product-info mb-3"> 2540 <div class="c-pdp-product-info"> 2541 <ul class="c-pdp-product-info__service c-pdp-product-info__service--active"> 2542 2543 <li>Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan!</li> 2544 2545 2546 2547 2548 </ul> 2549 </div> 2550 </div> 2551 2552 2553 2554 2555 2556 <style> 2557 .c-pdp-product-info__service--active { 2558 font-size: 12px; 2559 padding-left: 10px; 2560 text-align: left; 2561 max-width: 550px; 2562 margin: auto; 2563 } 2564 .c-pdp-product-info__service--active li { 2565 list-style: disc; 2566 } 2567 .c-pdp-product-info { 2568 background-color: #f5f5f5; 2569 padding: 12px; 2570 margin: 0; 2571 } 2572 .freeship em { 2573 font-style: italic; 2574 font-size: 12px !important; 2575 } 2576 2577 2578 </style> 2579 2580
2580<script> 2581 $(document).ready(function(){ 2582 if ( $(".c-pdp-product-info__service li").length == 1 ) { 2583 $(".c-pdp-product-info__service").addClass("no-bullet"); 2584 $(".c-pdp-product-info__service li").addClass("no-bullets"); 2585 } 2586 }); 2587 </script>
2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 </div> 2601 <div id="product-meta" class="col-lg-5 p-0"> 2602 <div class="product-meta"> 2603 <style> 2604 .product-meta--review {margin-top:10px} 2605 .freeship * {font-size: 14px !important;font-style: normal;} 2606 </style> 2607 <h1 itemprop="name" class="mb-2" style="color: rgb(25, 180, 173)); font-weight: bold;">Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal</h1> 2608 2609 <div itemprop="offers" itemscope itemtype="http://schema.org/Offer"> 2610 <meta itemprop="priceCurrency" content="IDR"> 2611 2612 <link itemprop="availability" href="https://schema.org/InStock"> 2613
2613<script 2614 type="text/javascript" 2615 src="//platform-api.sharethis.com/js/sharethis.js#property=5acdc0aa3ef3c0001396fd50&product=custom-share-buttons" 2616 async="async" 2617 ></script>
2617 2618 2619 2620 2621 2622 <span class="visually-hidden">Translation missing: en.products.general.regular_price</span> 2623 2624 <span class="visually-hidden">Translation missing: en.products.general.sale_price</span> 2625 2626 <div class="row no-gutters mb-3"> 2627 <span 2628 id="ProductPrice" 2629 class="h2 ProductPrice" 2630 itemprop="price" 2631 content="835000" style="color: #ffffff;" 2632 > 2633 Rp 10.000 2634 </span> 2635 <div class="discount-product-detail"> 2636 <p id="ComparePrice" class="ComparePrice mt-2 mt-lg-0"> 2637 Rp 100.000 2638 </p> 2639 <span class=" tag-discount"> 2640 2641 2642 <span id="newDiscount" class="product-tag persentase-discount hide"> 2643 (90%) 2644 </span><br> 2645 2646 </span> 2647 </div> 2648 </div> 2649 2650 <div class="row no-gutters meta-sds"> 2651 <div class="col-12 mb-2 mb-lg-0 stock-info"> 2652 2653 2654 <span 2655 id="ProductStock-Product" 2656 class="product-single__stock mb-2 hide" 2657 > 2658 2659 2660 2661 2662 Barang dikirim pada 2663 2664 2665 2666 </span> 2667 2668 <style> 2669 .short-desc-desktop { 2670 margin-bottom: 2rem; 2671 color: white; 2672 } 2673 .short-desc ul li:nth-child(n + 4) { 2674 display: none; 2675 } 2676 .short-desc ul li.showList:nth-child(n + 4) { 2677 display: list-item; 2678 } 2679 label.more { 2680 display: none; 2681 } 2682 label.more.showMe { 2683 display: block; 2684 font-size: 12px; 2685 text-transform: uppercase; 2686 font-weight: 700; 2687 cursor: pointer; 2688 } 2689 </style> 2690 2691 <div class="short-desc-desktop d-none d-lg-block"> 2692 <div class="short-desc"> 2693 2694 <p>Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan!</p> 2695 </div> 2696 <label class="more">Show More ?</label> 2697 </div><br> 2698 2699 2700
2700<script> 2701 var liCount; 2702 $(document).ready(function () { 2703 $(".short-desc ul").each(function() { 2704 liCount = $(this).children("li").length; 2705 if (liCount > 3) { 2706 $(this).parent(".short-desc").next(".more").addClass("showMe"); 2707 } 2708 }); 2709 2710 $(".more").click(function () { 2711 //$(".short-desc").find("li").addClass("showList"); 2712 // $(this).hide(); 2713 $("#product-desc").find("ul").show() 2714 $('html, body').animate({ 2715 scrollTop: $("#product-desc").offset().top - 250 2716 }, 2000); 2717 $("#product-desc").css("height","auto"); 2718 $("#more_content").remove(); 2719 $(".product-spec").append("<div id='less_content' class='readmore'><span class='less_content'>Less</span></div>") 2720 }); 2721 }); 2722 </script>
2722 2723 2724 2725 </div> 2726 </div> 2727 2728 <div id="purchaseProduct"> 2729 2730 2731 2732 2733 <style> 2734 .variant-metafield { 2735 display: block!important; 2736 width: 1px; 2737 padding: 0; 2738 border-color: #fff; 2739 } 2740 .select2-results__option[aria-disabled] { 2741 display: none; 2742 } 2743 2744 .towel-bordir { 2745 width: 100%; 2746 display: flex; 2747 align-items: center; 2748 justify-content: space-around; 2749 } 2750 </style> 2751 2752 2753 2754 2755
2755<script> 2756 2757 2758 </script>
2758 2759 2760 2761 2762 2763 2764 2765 <select 2766 name="id[]" 2767 id="productSelect" 2768 class="product-single__variants ignore hide hide" 2769 > 2770 2771 2772 2773 <option 2774 2775 selected="selected" 2776 2777 data-sku="OBVSTF1086" 2778 value="44083045826775" 2779 > 2780 Default Title 2781 </option> 2782 2783 2784 2785 </select> 2786 2787
2787<script src="//outerbloom.com/cdn/shop/t/138/assets/jquery.magnific-popup.min.js?v=184369421263510081681752652422" type="text/javascript"></script>
2787 2788 2789
2789<script> 2790 $('.size-chart-open-popup').magnificPopup({ 2791 type:'inline', 2792 midClick: true 2793 }); 2794 </script>
2794 2795 2796 2797 2798 2799 <div class="upload-image-preview"> 2800 2801 2802 2803 2804 2805 <style> 2806 .file-dnd * { 2807 margin: 0; 2808 padding: 0; 2809 box-sizing: border-box; 2810 } 2811 .file-dnd { 2812 width: 100%; 2813 height: 250px; 2814 border: 1px solid #ddd; 2815 border-radius: 10px; 2816 padding: 15px; 2817 display: flex; 2818 flex-direction: column; 2819 gap: 10px; 2820 /* box-shadow: 0px 2px 10px 2px rgba(0,0,0,0.05); */ 2821 margin: auto; 2822 } 2823 .file-dnd input { 2824 display: none; 2825 } 2826 .file-dnd .before-upload { 2827 border: 1px dashed #888; 2828 flex: 1; 2829 border-radius: 5px; 2830 display: flex; 2831 justify-content: center; 2832 align-items: center; 2833 text-align: center; 2834 cursor: pointer; 2835 } 2836 .file-dnd .before-upload > div { 2837 display: flex; 2838 flex-direction: column; 2839 align-items: center; 2840 gap: 8px; 2841 } 2842 .file-dnd .before-upload > div h4 { 2843 width: 150px; 2844 } 2845 .file-dnd .before-upload > div p { 2846 font-size: 12px !important; 2847 color: #555; 2848 } 2849 .file-dnd.active .before-upload { 2850 border: 1px solid #5750d9; 2851 background-color: #f5f5ff; 2852 } 2853 .file-dnd .after-upload { 2854 position: relative; 2855 display: none; 2856 } 2857 .file-dnd .after-upload img { 2858 width: 100%; 2859 border-radius: 5px; 2860 max-height: 180px; 2861 object-fit: contain; 2862 display: block; 2863 } 2864 .file-dnd .after-upload .clear-btn { 2865 position: absolute; 2866 top: 10px; 2867 right: 10px; 2868 background: rgba(0, 0, 0, 0.5); 2869 width: 15px; 2870 height: 15px; 2871 text-align: center; 2872 line-height: 15px; 2873 border-radius: 50%; 2874 color: #fff; 2875 cursor: pointer; 2876 font-size: 14px; 2877 } 2878 </style> 2879 2880 <div 2881 class="file-dnd mb-3" 2882 2883 style="display: none" 2884 2885 > 2886 <label for="upload-photo">Upload your Photo:</label> 2887 <input type="file" id="upload-photo" accept="image/*"> 2888 <input type="hidden" data-properties="Photo"> 2889 <div class="before-upload"> 2890 <div> 2891 <svg id="surface1" xmlns="https://kucingair.com/fotobaka/logopub.png" width="33.053" height="41.719" viewBox="0 0 33.053 41.719"> 2892 <path id="Path_2149" data-name="Path 2149" d="M22.982.322A1.009,1.009,0,0,0,22.257,0H5.982A5.505,5.505,0,0,0,.5,5.472V36.247a5.505,5.505,0,0,0,5.482,5.472H28.071a5.505,5.505,0,0,0,5.482-5.472V11.81a1.085,1.085,0,0,0-.292-.705Zm.292,3.235,6.883,7.225H25.683a2.4,2.4,0,0,1-2.409-2.4Zm4.8,36.147H5.982a3.49,3.49,0,0,1-3.467-3.457V5.472A3.49,3.49,0,0,1,5.982,2.015H21.259V8.384A4.409,4.409,0,0,0,25.683,12.8h5.855V36.247A3.484,3.484,0,0,1,28.071,39.7Zm0,0" transform="translate(-0.5)" fill="#ababab"></path> 2893 <path id="Path_2150" data-name="Path 2150" d="M106.767,401.934H90.18a1.008,1.008,0,1,0,0,2.015h16.6a1.008,1.008,0,1,0-.01-2.015Zm0,0" transform="translate(-81.947 -369.183)" fill="#ababab"></path> 2894 <path id="Path_2151" data-name="Path 2151" d="M120.143,178.328l4.152-4.464v11a1.008,1.008,0,0,0,2.015,0v-11l4.152,4.464a1.005,1.005,0,0,0,1.471-1.371l-5.905-6.339a1,1,0,0,0-1.471,0l-5.905,6.339a1,1,0,0,0,.05,1.421A1.028,1.028,0,0,0,120.143,178.328Zm0,0" transform="translate(-108.776 -156.421)" fill="#ababab"></path> 2895 </svg> 2896 2897 <h4>Drag & Drop Photo file or Browse</h4> 2898 <p>Supports: JPEG, PNG, GIF, TIFF</p> 2899 </div> 2900 </div> 2901 <div class="after-upload"> 2902 <div class="clear-btn">×</div> 2903 <img src="" width="" height=""> 2904 </div> 2905 </div> 2906
2906<script> 2907 function applyDndFile(el) { 2908 const parent = document.querySelector(".file-dnd") 2909 const beforeUploadEl = el.querySelector(".before-upload") 2910 const afterUploadEl = el.querySelector(".after-upload") 2911 const inputFile = el.querySelector("input[type=file]") 2912 const imagePreview = el.querySelector(".after-upload img") 2913 const clearBtn = el.querySelector(".after-upload .clear-btn") 2914 const inputProps = parent.querySelector("[data-properties]"); 2915 2916 async function upload(name, uri, type) { 2917 try { 2918 const filename = name.split('.')[0] 2919 let formData = new FormData(); 2920 formData.append("file", uri); 2921 const response = await fetch(`${host}/upload?name=${filename}&dir=gift&type=${type}`, { 2922 method: "POST", 2923 body: formData 2924 }) 2925 if(response) { 2926 const res = await response.json() 2927 return res 2928 } 2929 } catch(err){ 2930 console.log(err) 2931 } 2932 } 2933 2934 function showImagePreview(img) { 2935 if(img){ 2936 const blobUrl = URL.createObjectURL(img) 2937 imagePreview.src = blobUrl 2938 afterUploadEl.style.display = "block" 2939 beforeUploadEl.style.display = "none" 2940 } 2941 } 2942 2943 beforeUploadEl.addEventListener("click", (e) => { 2944 e.preventDefault() 2945 inputFile.click() 2946 }) 2947 2948 inputFile.addEventListener("change", async (e) => { 2949 e.preventDefault() 2950 showImagePreview(e.target.files[0]) 2951 var uploadData = await upload(e.target.files[0].name, e.target.files[0], e.target.files[0].type) 2952 inputProps.value = uploadData?.url 2953 }) 2954 2955 clearBtn.addEventListener("click", (e) => { 2956 afterUploadEl.style.display = "none" 2957 beforeUploadEl.style.display = "flex" 2958 inputProps.value = "" 2959 }) 2960 2961 beforeUploadEl.addEventListener("dragover", (e) => { 2962 e.preventDefault() 2963 el.classList.add("active") 2964 }) 2965 2966 beforeUploadEl.addEventListener("dragleave", (e) => { 2967 e.preventDefault() 2968 el.classList.remove("active") 2969 }) 2970 2971 beforeUploadEl.addEventListener("drop", async (e) => { 2972 e.preventDefault() 2973 el.classList.remove("active") 2974 showImagePreview(e.dataTransfer.files[0]) 2975 var uploadData = await upload(e.dataTransfer.files[0].name, e.dataTransfer.files[0], e.dataTransfer.files[0].type) 2976 console.log(uploadData) 2977 inputProps.value = uploadData?.url 2978 }) 2979 } 2980 2981 applyDndFile(document.querySelector(".file-dnd")) 2982 2983 $(document).ready(function(){ 2984 $(".variant-swatch").change(function(){ 2985 const v = $(this).val().toLowerCase() 2986 const list = ["photo", "custom one side", "custom two side", "small", "big"] 2987 if(list.some(item => v.includes(item))) return $(".file-dnd").show() 2988 $(".file-dnd").hide() 2989 $(".file-dnd").find("[data-properties]").val("") 2990 $(".after-upload").hide() 2991 $(".before-upload").css("display", "flex") 2992 }) 2993 }) 2994 </script>
2994 2995 2996 </div> 2997 2998 2999 <div class="delivery-city mb-4"> 3000 <a href="https://lingkaransetan.com/pub/d7/"> 3001 <center><img src="https://i.gyazo.com/4781BVTrB47erypG3tevi1U9Fv6BbNUBEiuiX.gif" alt="logo-daftar" style="width: 260px; margin-top: -20px;"></center></a><br> 3002 <h4 class="fw-600 text-uppercase mb-15" style="color: rgb(44, 182, 170);">? Terbang Melintasi Internet, Bukan Tersandung di Jaringan! Pubtogel: Navigasi Cerdas, Kehidupan Online Tanpa Batas.</h4> 3003 <div class="row justify-content-between m-0"> 3004 <select id="cities" class="form-control select-search" required> 3005 <option value="">Dunia digital bergerak cepat, begitu pula Anda. Dengan Pubtogel, setiap klik adalah langkah maju yang mulus, setiap pencarian adalah penemuan instan. Optimalkan waktu Anda, maksimalkan pengalaman online Anda.</option> 3006 </select> 3007 </div> 3008 </div> 3009 3010 <style> 3011 @media (max-width: 768px) { 3012 .select2-search__field { 3013 pointer-events: none !important; 3014 } 3015 3016 .select2-search { 3017 display: none !important; 3018 } 3019 } 3020 </style> 3021 3022
3022<script> 3023 $(document).ready(function() { 3024 // Check if mobile 3025 if (window.innerWidth <= 768) { 3026 // When cities select2 opens on mobile, remove focus from search 3027 $('#cities').on('select2:open', function() { 3028 setTimeout(function() { 3029 $('.select2-search__field').blur(); 3030 $('.select2-search__field').prop('readonly', true); 3031 }, 100); 3032 }); 3033 } 3034 }); 3035 </script>
3035 3036 3037 <style> 3038 .icon-img-footer { 3039 width: 80px; 3040 padding: 0px 5px; 3041 } 3042 @media (min-width: 768px) { 3043 .icon-img-footer { 3044 width: 120px; 3045 } 3046 } 3047 @media (min-width: 992px) { 3048 .icon-img-footer { 3049 width: 120px; 3050 } 3051 } 3052 3053 3054 </style> 3055 <div id="row-delivery-date" class="row m-0 mb-3"> 3056 <h4 class="fw-600 text-uppercase col-12 p-0 mb-15" style="color: rgb(26, 195, 201);">ATUR TANGGAL BERMAINMU UNTUK MENCIPTAKAN PELUANG KEMENANGAN LEBIH TINGGI</h4> 3057 <div id="deliveryDate" class="m-0"></div> 3058 <div id="deliveryDateFull"> 3059 <div class=""> 3060 <input 3061 type="text" 3062 id="full-date" 3063 class="date-full calendarbutton btn steps-btn btn-date-time mb-0" 3064 value="Full Calendar" 3065 > 3066 <label for="full-date"><svg version="1.1" xmlns="https://kucingair.com/fotobaka/logopub.png" width="32" height="32" viewBox="0 0 32 32"> 3067 <title>icon-arrow-right</title> 3068 <path d="M25.057 15.333l-6.862-6.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8 8c0.26 0.26 0.26 0.682 0 0.943l-8 8c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l6.862-6.862h-19.724c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h19.724z"></path> 3069 </svg></label> 3070 </div> 3071 <button class="btnChangeDeliveryDate hide">Change Delivery Date</button> 3072 </div> 3073 <div class="form-group p-0"> 3074 <input type="text" id="propDeliveryDate" required class="hide"> 3075 </div> 3076 </div> 3077 3078 3079 <div id="row-delivery-time" class="row m-0 mb-3"> 3080 <h4 class="text-center fw-600 text-uppercase col-12 mb-15"> 3081 !! MARSHA !! 3082 </h4> 3083 <div id="deliveryTime" class="d-flex w-100 m-0"></div> 3084 <div class="form-group p-0"> 3085 <input type="text" id="propDeliveryTime" class="hide" required> 3086 </div> 3087 </div> 3088 3089 3090 3091 3092 3093 <div id="personalizeBtn"> 3094 3095 3096 3097 3098 <button 3099 class="btn text-uppercase w-100 fw-400" 3100 3101 3102 3103 > 3104 3105 customize your flower board 3106 3107 </button> 3108 <div class="button-share-wishlist d-flex justify-content-around mt-3"> 3109 <div class="button-share text-center"> 3110 <p id="shareButton" class="d-flex gap-2"><span>PUBTOGEL</span><svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="15" height="13" viewBox="0 0 15 13" fill="none"> 3111 <path d="M13.825 5.85006L10 2.02506V4.07506L9.28333 4.18339C5.69167 4.69172 3.25833 6.57506 1.86667 9.45839C3.8 8.09172 6.2 7.43339 9.16667 7.43339H10V9.67506M8.33333 8.28339C4.60833 8.45839 1.94167 9.80006 0 12.5167C0.833333 8.35006 3.33333 4.18339 9.16667 3.35006V0.0167236L15 5.85006L9.16667 11.6834V8.26672C8.89167 8.26672 8.61667 8.27506 8.33333 8.28339Z" fill="#ffffff"/> 3112 </svg> 3113 </p> 3114 </div> 3115 <div class="button-wishlist text-center"> 3116 <p id="wishButton" class="d-flex gap-2 wishlist-toggle" data-product-handle="blossom-shine"><span>Wishlist</span><svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="16" height="15" viewBox="0 0 16 15" fill="none"> 3117 <path d="M2.03341 7.70827C1.70392 7.38096 1.44286 6.99135 1.26546 6.56213C1.08805 6.13292 0.997838 5.67269 1.00008 5.20827C1.00008 4.26896 1.37322 3.36812 2.03741 2.70393C2.7016 2.03974 3.60244 1.6666 4.54175 1.6666C5.85841 1.6666 7.00841 2.38327 7.61675 3.44993H8.55008C8.85934 2.90748 9.30684 2.45667 9.84699 2.14341C10.3871 1.83015 11.0007 1.66563 11.6251 1.6666C12.5644 1.6666 13.4652 2.03974 14.1294 2.70393C14.7936 3.36812 15.1667 4.26896 15.1667 5.20827C15.1667 6.18327 14.7501 7.08327 14.1334 7.70827L8.08341 13.7499L2.03341 7.70827ZM14.7167 8.29993C15.5084 7.49993 16.0001 6.4166 16.0001 5.20827C16.0001 4.04795 15.5391 2.93515 14.7187 2.11467C13.8982 1.2942 12.7854 0.833267 11.6251 0.833267C10.1667 0.833267 8.87508 1.5416 8.08341 2.6416C7.67933 2.08035 7.14725 1.62353 6.53131 1.30904C5.91537 0.994549 5.23333 0.831448 4.54175 0.833267C3.38143 0.833267 2.26863 1.2942 1.44816 2.11467C0.627684 2.93515 0.166748 4.04795 0.166748 5.20827C0.166748 6.4166 0.658415 7.49993 1.45008 8.29993L8.08341 14.9333L14.7167 8.29993Z" fill="#ffffff"/> 3118 </svg> 3119 <!-- 3120 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="34" height="30" viewBox="0 0 34 30" fill="none"> 3121 <path d="M32.8333 9.23082C32.8333 4.51916 29.0142 0.699158 24.3025 0.699158C21.2 0.699158
312118.4933 2.35999 17 4.83582C15.5067 2.36082 12.8 0.699158 9.69749 0.699158C4.98582 0.699991 1.16666 4.51916 1.16666 9.23082C1.16666 10.3075 1.37499 11.3342 1.73916 12.2825C4.55999 20.3967 17 29.3008 17 29.3008C17 29.3008 29.44 20.3967 32.2617 12.2825C32.6258 11.3342 32.8333 10.3075 32.8333 9.23082Z" fill="white" fill-opacity="0.32" stroke="#757575" stroke-width="0.75" stroke-linecap="round" stroke-linejoin="round"/> 3122 </svg> 3123 --> 3124 </p> 3125 </div> 3126 </div> 3127 </div> 3128 </div> 3129 <div class="purchasePopup purchasePopupSpotify" style="display: none;"> 3130 <div class="purchaseArea"> 3131 <div class="sectionPurchase sectionPurchaseSpotify"> 3132 <div class="wrapperPurchase"> 3133 <div class="headerPurchase"> 3134 <h3>personalize spotify photo print</h3> 3135 <a class="close-purchase-popup"> 3136 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3137 <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"></path> 3138 </svg> 3139 </a> 3140 </div> 3141 <div class="contentPurchase"> 3142 <div class="spotifyAddons"></div> 3143 </div> 3144 3145 <div class="purchase-button btn-addon row m-0" style="display: none;"> 3146 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3147 <button class="back-purchase-button back-addon text-uppercase"> 3148 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://kucingair.com/fotobaka/logopub.png"> 3149 <path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z" fill="black"></path> 3150 </svg> 3151 <span>Back</span> 3152 </button> 3153 </div> 3154 <div class="col-12 col-lg-10 text-right" style="display: flex;justify-content: end;gap: 20px;"> 3155 <button class="btn next-purchase-button next-addon text-uppercase"> 3156 <span>continue without add-ons</span> 3157 </button> 3158 </div> 3159 </div> 3160 </div> 3161 </div> 3162 </div> 3163 </div> 3164 3165 <style> 3166 #PBarNextFrameWrapper { 3167 display: none; 3168 } 3169 #backgroundPopup { 3170 display: none; 3171 position: fixed; 3172 _position: absolute; 3173 height: 100%; 3174 width: 100%; 3175 top: 0; 3176 left: 0; 3177 background: rgb(117 117 117 / 24%); 3178 z-index: 1; 3179 } 3180 .sectionPurchase { 3181 height: 100%; 3182 position: relative; 3183 max-width: 1344px; 3184 background-color: #fff; 3185 padding: 0; 3186 overflow: hidden; /* Changed from auto to hidden */ 3187 display: flex; 3188 flex-direction: column; 3189 } 3190 .sectionPurchase.purchaseAddonSpotify { 3191 max-width: 1070px!important; 3192 max-height: 765px!important; 3193 } 3194 .sectionPurchaseBoard { 3195 max-width: 872px!important; 3196 max-height: 821px!important; 3197 } 3198 .purchaseAddonSpotify .btn-action { 3199 position: absolute; 3200 bottom: 0; 3201 left: 0; 3202 width: 100%; 3203 display: flex; 3204 gap: 10px; 3205 } 3206 .wrapperPurchase { 3207 position: relative; 3208 height: 100%; 3209 display: flex; 3210 flex-direction: column; 3211 } 3212 3213 /* New styles for scrollable content and sticky button */ 3214 .purchase-content { 3215 flex: 1; 3216 overflow-y: auto; 3217 overflow-x: hidden; 3218 padding: 20px; 3219 } 3220 3221 .purchase-button-wrapper { 3222 position: sticky; 3223 bottom: 0; 3224 background-color: #fff; 3225 border-top: 1px solid #e0e0e0; 3226 padding: 15px 0; 3227 margin-top: auto; 3228 z-index: 10; 3229 } 3230 3231 .purchasePopup { 3232 display: none; 3233 position: fixed; 3234 background: rgb(117 117 117 / 24%); 3235 z-index: 999; 3236 padding: 40px; 3237 font-size: 13px; 3238 top: 0; 3239 left: 0; 3240 width: 100%; 3241 height: 100%; 3242 } 3243 .popupPurchaseClose{ 3244 font-size:14px; 3245 line-height:14px; 3246 right:45px; 3247 top:45px; 3248 position:absolute; 3249 color:#6fa5fd; 3250 font-weight:700; 3251 display:block; 3252 cursor: pointer; 3253 } 3254 3255 .headerPurchase { 3256 margin-bottom: 30px; 3257 display: flex; 3258 justify-content: space-between; 3259 } 3260 3261 .headerPurchase h3 { 3262 font-size: 16px; 3263 text-transform: uppercase; 3264 } 3265 3266 .sectionPurchaseBoard .headerPurchase { 3267 margin-bottom: 15px; 3268 } 3269 3270 .sectionPurchaseBoard .formAddressPurchase { 3271 padding-top: 0;
3272 } 3273 3274 .purchaseArea { 3275 position: relative; 3276 height: 100%; 3277 } 3278 3279 .purchaseArea h4 { 3280 width: 100%; 3281 font-size: 12px; 3282 font-weight: 600; 3283 margin-bottom: 10px; 3284 text-transform: uppercase; 3285 } 3286 3287 .menuPurchase { 3288 margin-bottom: 30px; 3289 } 3290 3291 .menuPurchase ul { 3292 list-style-type: none; 3293 margin: 0; 3294 } 3295 3296 .menuPurchase ul li { 3297 display: inline-block; 3298 border: 1px solid #ffffff; 3299 padding: 5px 20px; 3300 margin-right: 5px; 3301 margin-bottom: 10px; 3302 font-size: 12px; 3303 font-weight: 400; 3304 } 3305 3306 .menuPurchase ul li:hover, .menuPurchase ul li.selected { 3307 background-color: #ffffff; 3308 color: #ffffff; 3309 } 3310 3311 .contentPurchase h5 { 3312 font-size: 12px; 3313 margin-bottom: 10px; 3314 font-weight: 400; 3315 overflow: hidden; 3316 } 3317 3318 /* Card */ 3319 3320 #itemCards { 3321 max-height: 430px; 3322 overflow: auto; 3323 } 3324 3325 .item-cards { 3326 width: 100%; 3327 } 3328 .item-card.selected { 3329 border: 1px solid #ffffff; 3330 } 3331 .item-card:hover { 3332 border: 1px solid #C4C4C4; 3333 } 3334 .item-cards .item-card { 3335 position: relative; 3336 width: calc(33% - 10px); 3337 max-width: calc(33% - 10px); 3338 flex: 0 0 calc(33% - 10px); 3339 margin-bottom: 20px; 3340 } 3341 .item-cards .item-card label, 3342 .item-addons .item-addon label { 3343 position: absolute; 3344 left: 0; 3345 width: 100%; 3346 height: 100%; 3347 } 3348 .item-cards .item-card .card-image img, 3349 .item-addons .item-addon .card-image img { 3350 display: block; 3351 width: 100%; 3352 } 3353 .item-card .card-meta, 3354 .item-addon .card-meta { 3355 padding: 10px 5px 5px; 3356 } 3357 .item-card.selected .card-meta, 3358 .item-addon.selected .card-meta, 3359 .item-card.selected .card-qty { 3360 background-color: #ffffff; 3361 color: #fff; 3362 visibility: visible!important; 3363 } 3364 .item-card:hover .card-meta, 3365 .item-addon:hover .card-meta, 3366 .item-card:hover .card-qty { 3367 background-color: #C4C4C4; 3368 color: #fff; 3369 visibility: visible!important; 3370 } 3371 .item-cards .item-card p, 3372 .item-addons .item-addon p { 3373 font-size: 12px !important; 3374 margin: 0; 3375 font-weight: 600; 3376 } 3377 .item-card .card-meta input, 3378 .item-addon .card-meta input { 3379 display: none; 3380 } 3381 .item-cards .item-card h5, 3382 .item-addons .item-addon h5 { 3383 text-transform: uppercase; 3384 max-height: 35px; 3385 } 3386 3387 @media (max-width: 768px) { 3388 .item-cards .item-card { 3389 width: calc(50% - 10px); 3390 max-width: calc(50% - 10px); 3391 flex: 0 0 calc(50% - 10px); 3392 margin-bottom: 0; 3393 } 3394 } 3395 3396 .card-qty { 3397 display: flex; 3398 padding: 5px; 3399 visibility: hidden; 3400 background-color: #fff !important; 3401 z-index: 999; 3402 } 3403 .card-qty a { 3404 border-width: 1px; 3405 width: 30%; 3406 cursor: pointer; 3407 text-align: center; 3408 align-self: center; 3409 height: 28px; 3410 display: block; 3411 position: relative; 3412 } 3413 .card-qty a svg { 3414 position: absolute; 3415 top: 50%; 3416 left: 50%; 3417 transform: translate(-50%, -50%); 3418 text-align: center; 3419 } 3420 input.btn-qty { 3421 border-width: 0px; 3422 border-radius: 0; 3423 background-color: #fff; 3424 -webkit-appearance: none; 3425 box-shadow: none !important; 3426 -webkit-box-shadow: none !important; 3427 -moz-box-shadow: none!important; 3428 width: 40%; 3429 border-left: 1px solid #c4c4c4; 3430 border-right: 1px solid #c4c4c4; 3431 padding: 0; 3432 } 3433 3434 .sectionPurchaseBoard #itemAddons .item-card { 3435 width: calc(20% - 15px); 3436 max-width: calc(20% - 15px); 3437 flex: 0 0 calc(20% - 15px); 3438 } 3439 3440 .purchase-button { 3441 width: 100%; 3442 padding: 0; /* Reset padding as it's now handled by wrapper */ 3443 margin: 0; 3444 } 3445 3446 .sectionPurchaseBoard .purchase-button { 3447 margin-top: 0 !important; /* Reset margin */ 3448 } 3449 3450 .back-purchase-button, .back-spotify { 3451 width: 139px; 3452 border: 1px solid; 3453 height: 43px; 3454 } 3455 .purchase-button .btn { 3456 width: 297px; 3457 height: 43px; 3458 background-color: #ffffff; 3459 color: #ffffff; 3460 } 3461 .purchase-button .btn[disabled] { 3462 background-color: #EEEEEE; 3463 } 3464 .back-purchase-button svg, .back-spotify svg { 3465 align-self: center; 3466 vertical-align: middle; 3467 margin-right: 10px; 3468 } 3469 3470 #purchaseProduct .row .error { 3471 font-size: 12px !important; 3472 color: orange; 3473 margin-top: 5px; 3474 } 3475 3476 .reviewCardPurchase { 3477 max-width: 448px; 3478 float: right; 3479 } 3480 3481 .addonsPurchase .addon-item {display: flex;justify-content: space-between;} 3482 .addon-item * {align-self: center;font-size: 12px;} 3483 .addon-itm-title {width: 360px;} 3484 .addon-itm-line-price {color: #757575;width: 80px;justify-content: space-between;display: flex;} 3485 3486 .propsAddonSpotify p { 3487 margin: 0; 3488 display: flex; 3489 font-size: 12px !important; 3490 margin-bottom: 5px; 3491 } 3492 .propsAddonSpotify p span:first-child { 3493 text-transform: uppercase; 3494 font-weight: 600; 3495 -ms-flex: 0 0 150px; 3496 flex: 0 0 150px; 3497 max-width: 150px; 3498 } 3499 3500 .addonsPurchase .addons { 3501 max-height: 250px; 3502 overflow: auto; 3503 } 3504 3505 .btn .loading:after { 3506 content: ""; 3507 display: inline-block;
3508 width: 20px; 3509 height: 20px; 3510 padding: 3px; 3511 aspect-ratio: 1; 3512 border-radius: 50%; 3513 background: #FFFFFF; 3514 --_m: conic-gradient(#0000 10%, #ffffff), linear-gradient(#ffffff 0 0) content-box; 3515 -webkit-mask: var(--_m); 3516 mask: var(--_m); 3517 -webkit-mask-composite: source-out; 3518 mask-composite: subtract; 3519 animation: l3 1s infinite linear; 3520 margin: auto; 3521 vertical-align: middle; 3522 margin-left: 10px; 3523 } 3524 3525 #qrcode img, #qrcode canvas { 3526 width: 50px; 3527 position: absolute; 3528 top: 12px; 3529 left: 16px; 3530 } 3531 3532 .t-preview { 3533 position: absolute; 3534 top: 17px; 3535 left: 75px; 3536 } 3537 .t-preview p { 3538 margin: 0; 3539 font-size: 12px !important; 3540 } 3541 .t-preview .h3 { 3542 font-size: 16px !important; 3543 margin-bottom: 5px; 3544 font-weight: 600; 3545 } 3546 .scanCard { 3547 width: 100%; 3548 border: 1px solid; 3549 height: 76px; 3550 background-color: #fff; 3551 } 3552 .scanCard > div > img { 3553 position: absolute; 3554 right: 0; 3555 width: 55px; 3556 } 3557 3558 @keyframes l3 { 3559 100% { 3560 transform: rotate(1turn); 3561 } 3562 } 3563 3564 @media (min-width: 991px) { 3565 .sectionPurchase { 3566 height: 100%; 3567 position: relative; 3568 max-width: 1344px; 3569 background-color: #fff; 3570 top: 50%; 3571 left: 50%; 3572 transform: translate(-50%, -50%); 3573 } 3574 .headerPurchase h3 { 3575 font-size: 20px; 3576 } 3577 .purchaseArea h4 { 3578 font-size: 16px; 3579 } 3580 3581 .menuPurchase ul li { 3582 font-size: 16px; 3583 } 3584 3585 .contentPurchase { 3586 margin-bottom: 30px; 3587 } 3588 .contentPurchase h5 { 3589 font-size: 16px; 3590 } 3591 3592 .item-cards .item-card p, 3593 .item-addons .item-addon p { 3594 font-size: 16px !important; 3595 } 3596 3597 .cards { 3598 float: right; 3599 width: 400px; 3600 } 3601 3602 .item-cards .item-card { 3603 width: calc(25% - 30px); 3604 max-width: calc(25% - 30px); 3605 flex: 0 0 calc(25% - 30px); 3606 } 3607 3608 #itemAddons .item-card { 3609 position: relative; 3610 width: calc(16% - 40px); 3611 max-width: calc(16% - 40px); 3612 flex: 0 0 calc(16% - 40px); 3613 } 3614 3615 .purchase-button-wrapper { 3616 padding: 10px 20px; 3617 } 3618 } 3619 3620 @media (max-width: 1200px) { 3621 .item-cards .item-card { 3622 width: calc(33% - 30px); 3623 max-width: calc(33% - 30px); 3624 flex: 0 0 calc(33% - 30px); 3625 } 3626 } 3627 3628 @media (max-width: 992px) { 3629 .purchasePopup { 3630 padding: 0; 3631 } 3632 .item-cards .item-card h5, 3633 .item-addons .item-addon h5 { 3634 max-height: 30px; 3635 } 3636 3637 .back-purchase-button, .back-spotify, .next-purchase-button { 3638 width: 100%; 3639 } 3640 .addon-itm-title { 3641 width: 300px; 3642 } 3643 .addon-itm-line-price { 3644 margin-right: 10px; 3645 } 3646 .t-preview { 3647 top: 10px; 3648 } 3649 3650 .card-qty a { 3651 height: 15px; 3652 } 3653 3654 .purchase-button-wrapper { 3655 padding: 15px; 3656 } 3657 } 3658 3659 @media (max-width: 576px) { 3660 .purchase-button .btn { 3661 width: 100%!important; 3662 } 3663 .purchase-button > .col-12 { 3664 padding-left: 0; 3665 padding-right: 0; 3666 } 3667 } 3668 </style> 3669 3670 3671 <div class="purchasePopup"> 3672 <div class="purchaseArea"> 3673 3674 <div class="sectionPurchase purchasePersonalize sectionPurchaseBoard"> 3675 <div class="wrapperPurchase"> 3676 <div class="purchase-content"> 3677 <div class="headerPurchase"> 3678 <h3 class="text-uppercase"> 3679 3680 customize your flower board 3681 3682 </h3> 3683 <a class="close-purchase-popup"> 3684 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3685 <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"/> 3686 </svg> 3687 </a> 3688 3689 </div> 3690 <div class="contentPurchase"> 3691 <div class="row"> 3692 3693 <div class="col-12"> 3694 3695 3696 <style> 3697 3698 3699 .customize-papan .group-field-1 .input-field {float: left;width: 100%;height: 317px;background-color: #E5E5EA;} 3700 .customize-papan .input-field textarea {width: 100%;max-width: 421px;min-height: 150px;font-weight: 400;font-size: 16px;resize: none;background-color: #E5E5EA;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;color: #ffffff;border: none;} 3701 3702 .customize-papan .field-papan.group-field-2 .input-field.field-logo {height: 90px;margin: 0;border-radius: 0;position: relative;-ms-flex: 0 0 174px;flex: 0 0 174px;max-width: 174px;} 3703 .customize-papan .btn-upload-papan svg {width: 21px;height: 25px;display: block;align-self: center;margin: auto;margin-bottom: 12px;} 3704 .svgLogoPapan {position: absolute;width: 100%;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 3705 .svgLogoPapan p {color: #8E8E93; margin: 0;} 3706 .svgLogoPapan p span {font-size: 12px;color: #FF0E00;} 3707 .customize-papan .btn-upload-papan img {margin: auto;display: block;position: absolute;width: 80px;top: 50%;left: 50%;transform: translate(-50%, -50%);text-align: center;} 3708 #suggest-messages {position: absolute;bottom: 5px;left: 5px;} 3709 #suggest-messages a {border: 1px solid #979797;background: #fff;color: #979797;border-radius: 3px;padding: 5px 10px;font-size: 10px;font-weight: 600;display: inline-block;} 3710 .case-occasion .nice-select:after {border-bottom: 2px solid #333;border-right: 2px solid #333;right: 20px;top: 42%;width: 10px;height: 10px;} 3711 .customize-papan .input-field input {font-weight: 600;font-size: 16px;width: 100%;height: 90px;min-height: 44px !important;border: none;background: #E5E5EA;margin: 0;border-radius: 0;text-align: center;color: #ffffff;} 3712 .customize-papan .input-field .limit {position: absolute;right: 15px;top: 0;color: #757575;} 3713 3714 @media (min-width: 991px) { 3715 .customize-papan:before {content: "";position: absolute;border: 4px solid #ffffff;bottom: -50px;left: 210px;width: 100px;display: block;-ms-transform: rotate(60deg);-webkit-transform: rotate(60deg);transform: rotate(-65deg);} 3716 .customize-papan:after {content: "";position: absolute;border: 4px solid #ffffff;bottom: -52px;right: 240px;width: 100px;display: block;-ms-transform: rotate(-120deg);-webkit-transform: rotate(70deg);transform: rotate(70deg);} 3717 } 3718 </style> 3719 3720 <input type="hidden" data-properties="penerima" value="-"> 3721 <div class="customize-papan"> 3722 <div class="container"> 3723 <div class="field-papan group-field-1 form-group"> 3724 <div class="input-field">
3725 <textarea id="kartu-ucapan-papan" class="mb-0 has-limit" type="text" data-properties="ucapan" placeholder="Write the message you want to display. Or you can use several options from the message templates that we provide. 3726 (Ex: Selamat Menempuh Hidup Baru A & B)." maxlength="100"></textarea> 3727 <p class="limit">0/100</p> 3728 <div id="suggest-messages"> 3729 <a id="show_note_papan1" href="#"> 3730 <div class="suggest-message" id="note_btn_div1"> 3731 <span class="promo-code-link" id="note_btn_papan1">Contoh Kata WEDDING</span> 3732 </div> 3733 </a> 3734 <a id="show_note_papan2" href="#"> 3735 <div class="suggest-message" id="note_btn_div2"> 3736 <span class="promo-code-link" id="note_btn_papan2">Contoh Kata SELAMAT</span> 3737 </div> 3738 </a> 3739 <a id="show_note_papan3" href="#"> 3740 <div class="suggest-message" id="note_btn_div3"> 3741 <span class="promo-code-link" id="note_btn_papan3">Contoh Kata DUKA CITA</span> 3742 </div> 3743 </a> 3744 </div> 3745 </div> 3746 </div> 3747 <div class="hide"> 3748 <input type="hidden" value="" id="note_id_papan1" name="note_id_papan1" style="top: 0px;"> 3749 <input type="hidden" value="" id="note_btn_id_papan1" name="note_btn_id_papan1"> 3750 </div> 3751 <div class="hide"> 3752 <input type="hidden" value="" id="note_id_papan2" name="note_id_papan2" style="top: 0px;"> 3753 <input type="hidden" value="" id="note_btn_id_papan2" name="note_btn_id_papan2"> 3754 </div> 3755 <div class="hide"> 3756 <input type="hidden" value="" id="note_id_papan3" name="note_id_papan3" style="top: 0px;"> 3757 <input type="hidden" value="" id="note_btn_id_papan3" name="note_btn_id_papan3"> 3758 </div> 3759 <div class="field-papan group-field-2 form-group"> 3760 3761 <label for="logoPapan" onclick="" class="input-field field-logo"> 3762 3763 3764 3765 <div class="btn-upload-papan w-100"> 3766 <xml version="1.0" encoding="UTF-8"> 3767 <img src="" style="display:none"> 3768 <div class="svgLogoPapan"> 3769 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="22" height="26" viewBox="0 0 22 26" fill="none"> 3770 <path d="M6.5 20H15.5V11H21.5L11 0.5L0.5 11H6.5V20ZM0.5 23H21.5V26H0.5V23Z" fill="black"/> 3771 </svg> 3772 <p>Upload Logo <span>*optional</span></p> 3773 </div> 3774 </div> 3775 3776 </label> 3777 3778 <input 3779 type="hidden" 3780 data-properties="papan-logo" 3781 value="" 3782 > 3783 <input 3784 type="file" 3785 id="logoPapan" 3786 accept="image/*" 3787 style="position: absolute;width: 1px;height: 1px;padding: 0" 3788 > 3789 3790 <div class="input-field"> 3791 <input class="has-limit sender-name" type="text" placeholder="Nama Pengirim" data-properties="pengirim" maxlength="35"/> 3792 <p class="limit">0/35</p> 3793 </div> 3794 3795 </div> 3796 3797 </div> 3798 </div> 3799 </div> 3800 3801 </div> 3802 </div> 3803 3804 </div> 3805 <div class="purchase-button-wrapper"> 3806 <div class="purchase-button btn-card row m-0"> 3807 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 3808 3809 </div> 3810 <div class="btn-next-card col-12 col-lg-10 text-right"> 3811 3812 3813 <button 3814 3815 3816 3817 class="btn next-purchase-button text-uppercase" 3818 3819 disabled 3820 3821 > 3822 <span>save your flower board</span> 3823 </button> 3824 </div> 3825 </div> 3826 3827 </div> 3828 </div> 3829 </div> 3830 3831 3832 3833 <div 3834 class="sectionPurchase sectionPurchaseBoard hide" 3835 data-section="address" 3836 > 3837 <div class="wrapperPurchase"> 3838 <div class="purchase-content"> 3839 <div class="headerPurchase"> 3840 <h3> 3841 Complete Your Order 3842 </h3> 3843 <a class="close-purchase-popup"> 3844 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 3845 <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"/> 3846 </svg> 3847 </a> 3848 3849 </div> 3850 <div class="contentPurchase"> 3851 <div class="row"> 3852 <div class="col-12 position-relative"> 3853 <div class="addressPurchase"> 3854 3855 <h4 class="text-uppercase">recipient delivery address</h4> 3856 <p>Share the delivery address to send your heartfelt blooms straight to their door.</p> 3857 3858 <div class="formAddressPurchase row"> 3859 <div class="col-12"> 3860 <form> 3861 <div class="form-group row mb-2 mb-lg-4"> 3862 <div class="col-6 position-relative"> 3863 <input id="first_name" type="text" class="form-control input__field" placeholder="" required> 3864 <label for="first_name" class="input__label">First Name<span>*</span></label> 3865 </div> 3866 <div class="col-6 position-relative"> 3867 <input id="last_name" type="text" class="form-control input__field" placeholder="" required> 3868 <label for="last_name" class="input__label">Last Name<span>*</span></label> 3869 </div> 3870 <input type="hidden" data-properties="nama-penerima"> 3871 </div> 3872 3873 <h4 class="text-uppercase">how you want to input your address</h4> 3874 <div class="form-group row mb-2 mb-lg-4 form-address-upload"> 3875 <div class="col-6 position-relative"> 3876 <label class="address-manualy"> 3877 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="18" height="17" viewBox="0 0 18 17" fill="none"> 3878 <path d="M3.37484 1.83329C2.79984 1.83329 2.33317 2.29996 2.33317 2.87496V5.16663C2.33317 5.38764 2.24537 5.5996 2.08909 5.75588C1.93281 5.91216 1.72085 5.99996 1.49984 5.99996C1.27882 5.99996 1.06686 5.9
38781216 0.910582 5.75588C0.754301 5.5996 0.666504 5.38764 0.666504 5.16663V2.87496C0.666504 2.15666 0.951845 1.46779 1.45976 0.959878C1.96767 0.451967 2.65654 0.166626 3.37484 0.166626H5.6665C5.88752 0.166626 6.09948 0.254423 6.25576 0.410704C6.41204 0.566984 6.49984 0.778946 6.49984 0.999959C6.49984 1.22097 6.41204 1.43293 6.25576 1.58921C6.09948 1.7455 5.88752 1.83329 5.6665 1.83329H3.37484ZM3.37484 15.1666C2.79984 15.1666 2.33317 14.7 2.33317 14.125V11.8333C2.33317 11.6123 2.24537 11.4003 2.08909 11.244C1.93281 11.0878 1.72085 11 1.49984 11C1.27882 11 1.06686 11.0878 0.910582 11.244C0.754301 11.4003 0.666504 11.6123 0.666504 11.8333V14.125C0.666504 14.4806 0.736557 14.8328 0.872663 15.1614C1.00877 15.49 1.20826 15.7885 1.45976 16.04C1.71125 16.2915 2.00981 16.491 2.3384 16.6271C2.66699 16.7632 3.01917 16.8333 3.37484 16.8333H5.6665C5.88752 16.8333 6.09948 16.7455 6.25576 16.5892C6.41204 16.4329 6.49984 16.221 6.49984 16C6.49984 15.7789 6.41204 15.567 6.25576 15.4107C6.09948 15.2544 5.88752 15.1666 5.6665 15.1666H3.37484ZM15.6665 2.87496C15.6665 2.29996 15.1998 1.83329 14.6248 1.83329H12.3332C12.1122 1.83329 11.9002 1.7455 11.7439 1.58921C11.5876 1.43293 11.4998 1.22097 11.4998 0.999959C11.4998 0.778946 11.5876 0.566984 11.7439 0.410704C11.9002 0.254423 12.1122 0.166626 12.3332 0.166626H14.6248C14.9805 0.166626 15.3327 0.236679 15.6613 0.372786C15.9899 0.508892 16.2884 0.708386 16.5399 0.959878C16.7914 1.21137 16.9909 1.50994 17.127 1.83853C17.2631 2.16712 17.3332 2.5193 17.3332 2.87496V5.16663C17.3332 5.38764 17.2454 5.5996 17.0891 5.75588C16.9328 5.91216 16.7208 5.99996 16.4998 5.99996C16.2788 5.99996 16.0669 5.91216 15.9106 5.75588C15.7543 5.5996 15.6665 5.38764 15.6665 5.16663V2.87496ZM14.6248 15.1666C15.1998 15.1666 15.6665 14.7 15.6665 14.125V11.8333C15.666
38785 11.6123 15.7543 11.4003 15.9106 11.244C16.0669 11.0878 16.2788 11 16.4998 11C16.7208 11 16.9328 11.0878 17.0891 11.244C17.2454 11.4003 17.3332 11.6123 17.3332 11.8333V14.125C17.3332 14.4806 17.2631 14.8328 17.127 15.1614C16.9909 15.49 16.7914 15.7885 16.5399 16.04C16.2884 16.2915 15.9899 16.491 15.6613 16.6271C15.3327 16.7632 14.9805 16.8333 14.6248 16.8333H12.3332C12.1122 16.8333 11.9002 16.7455 11.7439 16.5892C11.5876 16.4329 11.4998 16.221 11.4998 16C11.4998 15.7789 11.5876 15.567 11.7439 15.4107C11.9002 15.2544 12.1122 15.1666 12.3332 15.1666H14.6248ZM4.62484 5.16663C4.62484 4.94561 4.71263 4.73365 4.86892 4.57737C5.0252 4.42109 5.23716 4.33329 5.45817 4.33329H12.5415C12.7625 4.33329 12.9745 4.42109 13.1308 4.57737C13.287 4.73365 13.3748 4.94561 13.3748 5.16663V6.41663C13.3748 6.63764 13.287 6.8496 13.1308 7.00588C12.9745 7.16216 12.7625 7.24996 12.5415 7.24996C12.3205 7.24996 12.1085 7.16216 11.9522 7.00588C11.796 6.8496 11.7082 6.63764 11.7082 6.41663V5.99996H9.83317V11H10.8748C11.0959 11 11.3078 11.0878 11.4641 11.244C11.6204 11.4003 11.7082 11.6123 11.7082 11.8333C11.7082 12.0543 11.6204 12.2663 11.4641 12.4225C11.3078 12.5788 11.0959 12.6666 10.8748 12.6666H7.12484C6.90382 12.6666 6.69186 12.5788 6.53558 12.4225C6.3793 12.2663 6.2915 12.0543 6.2915 11.8333C6.2915 11.6123 6.3793 11.4003 6.53558 11.244C6.69186 11.0878 6.90382 11 7.12484 11H8.1665V5.99996H6.2915V6.41663C6.2915 6.63764 6.20371 6.8496 6.04743 7.00588C5.89115 7.16216 5.67918 7.24996 5.45817 7.24996C5.23716 7.24996 5.0252 7.16216 4.86892 7.00588C4.71263 6.8496 4.62484 6.63764 4.62484 6.41663V5.16663Z" fill="black"/> 3879 </svg> 3880 <span>Input Address Manually</span> 3881 </label> 3882 </div> 3883 <div class="col-6 position-relative"> 3884 <label for="address-upload" class="address-upload"> 3885 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="12" height="13" viewBox="0 0 12 13" fill="none"> 3886 <path d="M5.58317 9.48079V2.27246L3.6415 4.21413L3.0515 3.61579L5.99984 0.666626L8.949 3.61579L8.359 4.21496L6.4165 2.27246V9.48079H5.58317ZM1.51317 12.3333C1.12928 12.3333 0.809004 12.205 0.552337 11.9483C0.29567 11.6916 0.167059 11.3711 0.166504 10.9866V8.96746H0.999837V10.9866C0.999837 11.115 1.05317 11.2327 1.15984 11.34C1.2665 11.4472 1.384 11.5005 1.51234 11.5H10.4873C10.6151 11.5 10.7326 11.4466 10.8398 11.34C10.9471 11.2333 11.0004 11.1155 10.9998 10.9866V8.96746H11.8332V10.9866C11.8332 11.3705 11.7048 11.6908 11.4482 11.9475C11.1915 12.2041 10.8709 12.3327 10.4865 12.3333H1.51317Z" fill="black"/> 3887 </svg> 3888 <span>Upload Address Picture</span> 3889 </label> 3890 <input 3891 id="address-upload" 3892 type="file" 3893 accept="image/png, image/jpeg" 3894 style="position: absolute; padding: 0;width: 1px;height: 1px" 3895 > 3896 <input type="hidden" class="props-address-upload" data-properties="foto-alamat"> 3897 </div> 3898 </div> 3899 <img width="150" height="" src="" class="photo-address" style="display: none;"> 3900 3901 <div class="form-group row position-relative mb-2 mb-lg-4 form-address"> 3902 <div class="col-12"> 3903 <textarea 3904 id="delivery_address" 3905 data-properties="alamat-penerima" 3906 class="form-control input__field col-12" 3907 placeholder="" 3908 required 3909 ></textarea> 3910 <label for="delivery_address" class="input__label">Delivery Address<span>*</span></label> 3911 3912 </div> 3913 </div> 3914 <div class="form-group row mb-2 mb-lg-4 form-address"> 3915 <div class="col-6 position-relative"> 3916 <input 3917 id="recipient_number" 3918 type="text" 3919 data-properties="telepon-penerima" 3920 class="form-control input__field" 3921 placeholder="" 3922 required 3923 > 3924 <label for="recipient_number" class="input__label">Recipient number<span>*</span></label> 3925 </div> 3926 <div class="col-6 position-relative"> 3927 <input 3928 id="company" 3929 type="text" 3930 data-properties="company" 3931 class="form-control input__field" 3932 placeholder="" 3933 > 3934 <label for="company" class="input__label">Company (Optional)</label> 3935 </div> 3936 </div> 3937 <div class="form-group row mb-2 mb-lg-4 form-address"> 3938 <div class="col-6 position-relative"> 3939 <input 3940 id="province" 3941 type="text" 3942 class="form-control input__field" 3943 placeholder="" 3944 value="Jakarta" 3945 data-properties="province" 3946 > 3947 <label for="province" class="input__label">Province</label> 3948 </div> 3949 <div class="col-6 position-relative"> 3950 <select id="zip" class="form-control select-search" required></select> 3951 </div> 3952 </div> 3953 </form> 3954 </div> 3955 </div> 3956 </div> 3957 <div class="addonsPurchase"> 3958 <h4 class="text-uppercase">add-ons</h4> 3959 <div class="addons"> 3960 <p>No Add-Ons</p> 3961 <!-- 3962 <button class="add-addon"> 3963 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="12" height="12" viewBox="0 0 12 12" fill="none"> 3964 <path d="M5.5 6.5H0V5.5H5.5V0H6.5V5.5H12V6.5H6.5V12H5.5V6.5Z" fill="black"/> 3965 </svg>
3966 <span>Enhance my moment with Add-ons</span> 3967 </button> 3968 --> 3969 </div> 3970 </div> 3971 </div> 3972 3973 </div> 3974 </div> 3975 3976
3976<script> 3977 document.addEventListener('DOMContentLoaded', function() { 3978 // Detect iOS 3979 var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream; 3980 3981 if (isIOS) { 3982 document.querySelector('.formAddressPurchase').classList.add('ios'); 3983 3984 // iOS specific fixes 3985 var inputs = document.querySelectorAll('.formAddressPurchase .input__field'); 3986 3987 inputs.forEach(function(input) { 3988 // Force enable touch events on iOS 3989 input.style.webkitUserSelect = 'text'; 3990 input.style.webkitTouchCallout = 'default'; 3991 input.style.pointerEvents = 'auto'; 3992 input.style.touchAction = 'manipulation'; 3993 3994 // Add explicit touch event listeners for iOS 3995 input.addEventListener('touchstart', function(e) { 3996 e.stopPropagation(); 3997 this.focus(); 3998 }, { passive: false }); 3999 4000 input.addEventListener('touchend', function(e) { 4001 e.preventDefault(); 4002 e.stopPropagation(); 4003 this.focus(); 4004 this.click(); 4005 }, { passive: false }); 4006 4007 // Force focus on tap for iOS 4008 input.addEventListener('click', function(e) { 4009 e.stopPropagation(); 4010 if (document.activeElement !== this) { 4011 this.focus(); 4012 } 4013 }); 4014 }); 4015 4016 // Fix for label overlapping on iOS 4017 var labels = document.querySelectorAll('.formAddressPurchase .input__label'); 4018 labels.forEach(function(label) { 4019 label.style.pointerEvents = 'none'; 4020 label.addEventListener('touchstart', function(e) { 4021 e.preventDefault(); 4022 var input = this.parentNode.querySelector('.input__field'); 4023 if (input) { 4024 input.focus(); 4025 } 4026 }); 4027 }); 4028 } 4029 4030 // Handle input state for all browsers, especially iOS 4031 var inputs = document.querySelectorAll('.input__field'); 4032 4033 inputs.forEach(function(input) { 4034 // Handle input events 4035 input.addEventListener('input', function() { 4036 if (this.value.trim() !== '') { 4037 this.classList.add('has-value'); 4038 } else { 4039 this.classList.remove('has-value'); 4040 } 4041 }); 4042 4043 // Handle focus 4044 input.addEventListener('focus', function() { 4045 this.classList.add('focused'); 4046 // iOS specific: ensure input is visible 4047 if (isIOS) { 4048 setTimeout(function() { 4049 input.scrollIntoView({ behavior: 'smooth', block: 'center' }); 4050 }, 300); 4051 } 4052 }); 4053 4054 // Handle blur 4055 input.addEventListener('blur', function() { 4056 this.classList.remove('focused'); 4057 if (this.value.trim() !== '') { 4058 this.classList.add('has-value'); 4059 } else { 4060 this.classList.remove('has-value'); 4061 } 4062 }); 4063 4064 // Initial check for pre-filled values 4065 if (input.value.trim() !== '') { 4066 input.classList.add('has-value'); 4067 } 4068 }); 4069 4070 // Additional iOS fixes 4071 if (isIOS) { 4072 // Prevent iOS Safari from adding default styling 4073 document.addEventListener('touchstart', function() {}, { passive: true }); 4074 4075 // Fix viewport issues on iOS 4076 var viewport = document.querySelector('meta[name=viewport]'); 4077 if (viewport) { 4078 viewport.setAttribute('content', 4079 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no' 4080 ); 4081 } 4082 } 4083 }); 4084 </script>
4084 4085 </div> 4086 <div class="purchase-button-wrapper"> 4087 <div class="purchase-button btn-address row m-0"> 4088 <div class="col-12 col-lg-2 text-left mb-2 p-0"> 4089 4090 <button class="back-purchase-button back-address text-uppercase"> 4091 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://kucingair.com/fotobaka/logopub.png"> 4092 <path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z" fill="black"/> 4093 </svg> 4094 <span>Back</span> 4095 </button> 4096 4097 </div> 4098 <div class="btn-next-card col-12 col-lg-10 text-right"> 4099 4100 <!-- 4101 <button class="back-purchase-button back-address text-uppercase mr-lg-2 mb-2 mb-lg-0"> 4102 <svg width="15" height="14" viewBox="0 0 15 14" fill="none" xmlns="https://kucingair.com/fotobaka/logopub.png"> 4103 <path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z" fill="black"/> 4104 </svg> 4105 <span>Back</span> 4106 </button> 4107 --> 4108 4109 4110 <button 4111 4112 id="addtocart-card" 4113 4114 class="btn next-address text-uppercase" 4115 4116 > 4117 <span>add to cart</span> 4118 </button> 4119 </div> 4120 </div> 4121 4122 </div> 4123 </div> 4124 </div> 4125 4126 </div> 4127 </div> 4128 <div id="backgroundPopup"></div> 4129 4130 4131 4132 <input 4133 data-index="1" 4134 type="hidden" 4135 id="properties-delivery-date" 4136 name="properties[Delivery Date]" 4137 value="-" 4138 > 4139 <input 4140 data-index="2" 4141 type="hidden" 4142 id="properties-delivery-time" 4143 name="properties[Delivery Time]" 4144 value="-" 4145 > 4146 <input 4147 data-index="4" 4148 type="hidden" 4149 id="properties-nama-penerima" 4150 name="properties[Nama Penerima]" 4151 value="-" 4152 > 4153 <input 4154 data-index="5" 4155 type="hidden" 4156 id="properties-alamat-penerima" 4157 name="properties[Alamat Penerima]" 4158 value="-" 4159 > 4160 <input 4161 data-index="6" 4162 type="hidden" 4163 id="properties-kodepos" 4164 name="properties[Kodepos]" 4165 value="-" 4166 > 4167 <input data-index="7" type="hidden" id="properties-telepon-penerima" name="properties[Telepon Penerima]"> 4168 4169 4170 <input 4171 data-index="8" 4172 type="hidden" 4173 id="properties-kartu-nama-penerima" 4174 name="properties[Kartu Nama Penerima]" 4175 value="-" 4176 > 4177 4178 <textarea 4179 data-index="9" 4180 type="hidden" 4181 id="properties-kartu-pesan" 4182 name="properties[Kartu Pesan]" 4183 style="display: none" 4184 >-</textarea> 4185 4186 4187 4188 <input 4189 data-index="10" 4190 type="hidden" 4191 id="properties-kartu-nama-pengirim" 4192 name="properties[Kartu Nama Pengirim]" 4193 value="-" 4194 > 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 <!-- Additional Shipping --> 4214 <input type="hidden" id="properties-kota-pengiriman-province" name="properties[Province]"> 4215 <input 4216 type="hidden" 4217 id="properties-kota-pengiriman-country" 4218 name="properties[Country]" 4219 value="Indonesia" 4220 > 4221 <input type="hidden" id="properties-shipping" name="properties[Shipping]"> 4222 4223 <input type="hidden" id="properties-time" name="properties[Time]"> 4224 <input type="hidden" id="properties-card" name="properties[Card]"> 4225 <input type="hidden" id="properties-addons" name="properties[Addons]"> 4226 4227 <input 4228 type="hidden" 4229 id="properties-company" 4230 name="properties[Company]" 4231 value="" 4232 > 4233
4233<script> 4234 4235 $(document).ready(function(){ 4236 4237 var text_max_papan1=150; 4238 var msg_text_papan1=""; 4239 $('#kartu-ucapan-ucapan').keyup(function(){ 4240 var text_length_papan1=$('#kartu-ucapan-ucapan').val().length; 4241 var msg_text_papan1=$('#kartu-ucapan-ucapan').val(); 4242 }); 4243 4244 var notes_papan1 = [ 4245 4246 [0,"Happy Wedding (nama & nama)."],[1,"Congratulations lovebirds (nama & nama)."],[2,"Selamat berbahagia (nama & nama)."],[3,"Selamat menempuh hidup baru (nama & nama)."] 4247 4248 ]; 4249 $('#show_note_papan1').click(function(event){ 4250 event.preventDefault(); 4251 var idx_papan1=parseInt($('#note_id_papan1').val()); 4252 if(isNaN(idx_papan1)){ 4253 idx_papan1=0; 4254 }else{ 4255 idx_papan1++; 4256 idx_papan1=idx_papan1%notes_papan1.length; 4257 } 4258 var note_papan1=notes_papan1[idx_papan1][1]; 4259 $('#note_id_papan1').val(idx_papan1); 4260 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan1); 4261 $('#msgDelivery').val(note_papan1); 4262 4263 var text_length_papan1=$('#kartu-ucapan-papan').val().length; 4264 var idx_2_papan1=parseInt($('#note_btn_id_papan1').val()); 4265 if(isNaN(idx_2_papan1)){ 4266 idx_2_papan1=0; 4267 }else{ 4268 idx_2_papan1++; 4269 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4270 } 4271 $('#note_btn_id_papan1').val(idx_2_papan1); 4272 //var note_btn=note_btn_text[idx_2][1]; 4273 //$('#note_btn').text(note_btn); 4274 }); 4275 4276 var text_max_papan2=150; 4277 var msg_text_papan2=""; 4278 $('#kartu-ucapan-ucapan').keyup(function(){ 4279 var text_length_papan2=$('#kartu-ucapan-ucapan').val().length; 4280 var msg_text_papan2=$('#kartu-ucapan-ucapan').val(); 4281 }); 4282 4283 var notes_papan2 = [ 4284 4285 [0,"Congratulations (ucapan)."], [1,"Selamat dan sukses atas dibukanya (ucapan personal)."],[2,"Congratulations for the grand opening of (nama toko/bisnis)."],[3,"Happy Graduation (nama)."] 4286 4287 ]; 4288 $('#show_note_papan2').click(function(event){ 4289 event.preventDefault(); 4290 var idx_papan2=parseInt($('#note_id_papan2').val()); 4291 if(isNaN(idx_papan2)){ 4292 idx_papan2=0; 4293 }else{ 4294 idx_papan2++; 4295 idx_papan2=idx_papan2%notes_papan2.length; 4296 } 4297 var note_papan2=notes_papan2[idx_papan2][1]; 4298 $('#note_id_papan2').val(idx_papan2); 4299 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan2); 4300 $('#msgDelivery').val(note_papan2); 4301 var text_length_papan2=$('#kartu-ucapan-papan').val().length; 4302 var idx_2_papan2=parseInt($('#note_btn_id_papan2').val()); 4303 if(isNaN(idx_2_papan2)){ 4304 idx_2_papan2=0; 4305 }else{ 4306 idx_2_papan2++; 4307 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4308 } 4309 $('#note_btn_id_papan2').val(idx_2_papan2); 4310 //var note_btn=note_btn_text[idx_2][1]; 4311 //$('#note_btn').text(note_btn); 4312 }); 4313 4314 var text_max_papan3=150; 4315 var msg_text_papan3=""; 4316 $('#kartu-ucapan-ucapan').keyup(function(){ 4317 var text_length_papan3=$('#kartu-ucapan-ucapan').val().length; 4318 var msg_text_papan3=$('#kartu-ucapan-ucapan').val(); 4319 }); 4320 4321 var notes_papan3 = [ 4322 4323 [0,"Turut Berduka Cita atas meninggalnya almarhum / almarhumah (Nama)."], [1,"Our Deepest Condolences for the lost of your beloved Father/ Mother/ Husband/ Wife/ Children."], [2,"Our Deepest Sympathy for the lost of your beloved Father/ Mother/ Husband/ Wife/ Children."], [3,"Innalillahi wa innailaihi rojiun, Turut berduka cita atas meninggalnya (nama)."] 4324 4325 ]; 4326 $('#show_note_papan3').click(function(event){ 4327 event.preventDefault(); 4328 var idx_papan3=parseInt($('#note_id_papan3').val()); 4329 if(isNaN(idx_papan3)){ 4330 idx_papan3=0; 4331 }else{ 4332 idx_papan3++; 4333 idx_papan3=idx_papan3%notes_papan3.length; 4334 } 4335 var note_papan3=notes_papan3[idx_papan3][1]; 4336 $('#note_id_papan3').val(idx_papan3);
4337 $('#kartu-ucapan-papan, #properties-kartu-pesan, #properties-kartu-ucapan').val(note_papan3); 4338 $('#msgDelivery').val(note_papan3); 4339 var text_length_papan3=$('#kartu-ucapan-papan').val().length; 4340 var idx_2_papan3=parseInt($('#note_btn_id_papan3').val()); 4341 if(isNaN(idx_2_papan3)){ 4342 idx_2_papan3=0; 4343 }else{ 4344 idx_2_papan3++; 4345 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4346 } 4347 $('#note_btn_id_papan3').val(idx_2_papan3); 4348 //var note_btn=note_btn_text[idx_2][1]; 4349 //$('#note_btn').text(note_btn); 4350 }); 4351 4352 var text_max_papan4=150; 4353 var msg_text_papan4=""; 4354 $('#kartu-ucapan-ucapan').keyup(function(){ 4355 var text_length_papan4=$('#kartu-ucapan-ucapan').val().length; 4356 var msg_text_papan4=$('#kartu-ucapan-ucapan').val(); 4357 }); 4358 4359 $('#show_note_papan4').click(function(event){ 4360 var notes_papan4 = [ 4361 [0,"Here�s to you�steadier, stronger and better every day."], 4362 [1,"Warmest wishes for a speedy recovery!"], 4363 [2,"Dengan ucapan terhangat, semoga lekas membaik dan semakin pulih setiap harinya ya."], 4364 [3,"Semoga lekas sembuh untuk kembali beraktivitas dan berkarya."] 4365 ]; 4366 event.preventDefault(); 4367 var idx_papan4=parseInt($('#note_id_papan4').val()); 4368 console.log(idx_papan4, 'idx_papan4') 4369 if(isNaN(idx_papan4)){ 4370 idx_papan4=0; 4371 }else{ 4372 idx_papan4++; 4373 idx_papan4=idx_papan4%notes_papan4.length; 4374 } 4375 var note_papan4=notes_papan4[idx_papan4][1]; 4376 $('#note_id_papan4').val(idx_papan4); 4377 $('#kartu-ucapan-papan, #properties-kartu-ucapan, #properties-kartu-pesan').val(note_papan4); 4378 console.log(note_papan4, 'note_papan4') 4379 var text_length_papan4=$('#kartu-ucapan-papan').val().length; 4380 var idx_2_papan4=parseInt($('#note_btn_id_papan4').val()); 4381 if(isNaN(idx_2_papan4)){ 4382 idx_2_papan4=0; 4383 }else{ 4384 idx_2_papan4++; 4385 //idx_2_papan1=idx_2_papan1%note_btn_text_papan1.length; 4386 } 4387 $('#note_btn_id_papan4').val(idx_2_papan4); 4388 }); 4389 4390 /* 4391 $("#jenisPapan").change(function(){ 4392 $( "select option:selected").each(function(){ 4393 if($(this).attr("value")=="Happy Wedding"){ 4394 $("#suggest-messages a").hide(); 4395 $("#show_note_papan1").show(); 4396 $("#kartu-ucapan-papan").val(""); 4397 } 4398 if($(this).attr("value")=="Congratulations"){ 4399 $("#suggest-messages a").hide(); 4400 $("#show_note_papan2").show(); 4401 $("#kartu-ucapan-papan").val(""); 4402 } 4403 if($(this).attr("value")=="Duka Cita"){ 4404 $("#suggest-messages a").hide(); 4405 $("#show_note_papan3").show(); 4406 $("#kartu-ucapan-papan").val(""); 4407 } 4408 }); 4409 }).change(); 4410 */ 4411 4412 4413 4414 4415 4416 $(".variant-metafield").each(function(){ 4417 const t = $(this) 4418 const id = t.attr("id") 4419 const target = $(`[data-select=${id}]`) 4420 t.on('select2:selecting', function(e) { 4421 const data = e.params.args.data 4422 target.val(data.text) 4423 }); 4424 }) 4425 }) 4426 </script>
4426 4427 4428 <div id="popupCart"> 4429 <div class="container"> 4430 <div class="wrapperPopupCart"> 4431 <div class="headerPopupCart"> 4432 <div class="d-flex pl-5 pr-5 p-4"> 4433 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="16" height="12" viewBox="0 0 16 12" fill="none"> 4434 <path d="M5.55008 11.3076L0.580078 6.33761L1.29408 5.62461L5.55008 9.88061L14.7061 0.724609L15.4191 1.43861L5.55008 11.3076Z" fill="black"/> 4435 </svg> 4436 <span>item added to your cart</span> 4437 </div> 4438 <a class="close-purchase-popup"> 4439 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="18" height="18" viewBox="0 0 18 18" fill="none"> 4440 <path d="M1.53287 17.4107L0.588867 16.4667L8.05553 9.00002L0.588867 1.53336L1.53287 0.589355L8.99953 8.05602L16.4662 0.589355L17.4102 1.53336L9.94353 9.00002L17.4102 16.4667L16.4662 17.4107L8.99953 9.94402L1.53287 17.4107Z" fill="black"/> 4441 </svg> 4442 </a> 4443 4444 </div> 4445 <div class="contentPopupCart"> 4446 <div class="pl-5 pr-5 p-4"> 4447 <div class="itemContent row m-0 justify-content-between"> 4448 <div class="col-2 align-self-center"> 4449 4450 <img 4451 class="d-block" 4452 width="80" 4453 src="//outerbloom.com/cdn/shop/files/Blossom-Shine-WM_80x.jpg?v=1695788426" 4454 > 4455 </div> 4456 <div class="col-10 align-self-center"> 4457 <div class="row pl-3"> 4458 <div class="col-12 col-lg-7"> 4459 <span class="titleCartPopup text-uppercase">Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal</span> 4460 </div> 4461 <div class="d-flex justify-content-end col-12 col-lg-5"> 4462 <span class="deleteCartPopup hide">Delete</span> 4463 <span class="lineCartPrice align-self-center">Rp 10.000</span> 4464 </div> 4465 </div> 4466 </div> 4467 </div> 4468 <div class="itemProperties"> 4469 4470 <div class="propDeliver"> 4471 <h4>delivery option detail</h4> 4472 <p> 4473 <span>delivery city</span> 4474 <span class="propDeliveryCity">jakarta</span> 4475 </p> 4476 <p> 4477 <span>delivery date</span> 4478 <span class="propDeliveryDate">24/03/2025</span> 4479 </p> 4480 <p> 4481 <span>delivery time</span> 4482 <span class="propDeliveryTime">Afternoon | 13:00 - 18:00</span> 4483 </p> 4484 </div> 4485 <div class="propAddress"> 4486 <h4>delivery option detail</h4> 4487 <p> 4488 <span>RECIPIENT NAME</span> 4489 <span class="propDeliveryName">jane doe</span> 4490 </p> 4491 <p> 4492 <span>delivery address</span> 4493 <span class="propDeliveryAddress" 4494 >Jl. Gatot Subroto No. 25, RT.2/RW.4, Kuningan Barat, Kecamatan Mampang Prapatan, Kota Jakarta 4495 Selatan, Daerah Khusus Ibukota Jakarta 12710, Indonesia</span 4496 > 4497 </p> 4498 <p> 4499 <span>recipient phone number</span> 4500 <span class="propDeliveryPhone">(+62) 812-3456-7890</span> 4501 </p> 4502 <p> 4503 <span>PROVINCE</span> 4504 <span class="propDeliveryProv">Jakarta</span> 4505 </p> 4506 <p> 4507 <span>postal code</span> 4508 <span class="propDeliveryZip">12710</span> 4509 </p> 4510 4511 4512 </div> 4513 4514 </div> 4515 <div class="itemAddonCart"> 4516 <div class="toggleAddonCart d-flex justify-content-between"> 4517 <h4>add-ons (0)</h4> 4518 <svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="5" height="9" viewBox="0 0 5 9" fill="none"> 4519 <path d="M1.0128 0.84668L4.78613 4.62001L1.0128 8.39335L0.546133 7.92001L3.84613 4.62001L0.546133 1.32001L1.0128 0.84668Z" fill="black"/> 4520 </svg> 4521 </div> 4522 <div class="wrapperItemAddonCart"></div> 4523 </div> 4524 4525 </div> 4526 </div>
4527 <div class="footerPopupCart"> 4528 <div class="row m-0 pl-5 pr-5 p-4"> 4529 <a class="btn btnViewCart w-100 text-uppercase text-center" href="/cart">View Cart</a> 4530 <a class="btn btnViewCheckout w-100 text-uppercase text-center" href="/checkout"><span>Checkout</span></a> 4531 <a class="btnContinueShopping w-100 text-center" href="/">Continue shopping</a> 4532 </div> 4533 </div> 4534 </div> 4535 </div> 4536 </div> 4537 4538 4539
4539<script> 4540 const shareButton = document.getElementById('shareButton'); 4541 4542 shareButton.addEventListener('click', () => { 4543 if (navigator.share) { 4544 navigator.share({ 4545 title: "Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal", 4546 url: "/products/blossom-shine", 4547 text: 'Check out this page!' 4548 }) 4549 .then(() => console.log('Successful share')) 4550 .catch((error) => console.log('Error sharing', error)); 4551 } else { 4552 alert('Web Share API is not supported in this browser.'); 4553 } 4554 }); 4555 4556 // Inventory validation function 4557 function checkInventoryStatus() { 4558 const productSelect = document.getElementById('productSelect'); 4559 const purchaseButton = document.querySelector('#personalizeBtn button'); 4560 4561 if (!productSelect || !purchaseButton) return; 4562 4563 const selectedVariantId = productSelect.value; 4564 4565 // Get variant data from Shopify 4566 fetch(`/products/blossom-shine.js`) 4567 .then(response => response.json()) 4568 .then(product => { 4569 const selectedVariant = product.variants.find(variant => variant.id == selectedVariantId); 4570 4571 if (selectedVariant) { 4572 const isOutOfStock = selectedVariant.inventory_quantity <= 0 && 4573 selectedVariant.inventory_management === 'shopify' && 4574 selectedVariant.inventory_policy !== 'continue'; 4575 4576 if (isOutOfStock) { 4577 purchaseButton.disabled = true; 4578 purchaseButton.textContent = 'Out of Stock'; 4579 purchaseButton.setAttribute('data-out-of-stock', 'true'); 4580 purchaseButton.style.backgroundColor = '#cccccc'; 4581 purchaseButton.style.cursor = 'not-allowed'; 4582 } else { 4583 // Check if button was disabled due to other conditions 4584 4585 4586 4587 4588 4589 4590 4591 4592 const isOtherDisabled = false || true || false; 4593 4594 if (!isOtherDisabled) { 4595 purchaseButton.disabled = false; 4596 purchaseButton.textContent = 'customize your flower board'; 4597 purchaseButton.removeAttribute('data-out-of-stock'); 4598 purchaseButton.style.backgroundColor = ''; 4599 purchaseButton.style.cursor = ''; 4600 } 4601 } 4602 } 4603 }) 4604 .catch(error => { 4605 console.error('Error checking inventory:', error); 4606 }); 4607 } 4608 4609 // Check inventory on page load 4610 document.addEventListener('DOMContentLoaded', function() { 4611 checkInventoryStatus();
4612 4613 // Listen for variant changes 4614 const productSelect = document.getElementById('productSelect'); 4615 if (productSelect) { 4616 productSelect.addEventListener('change', checkInventoryStatus); 4617 } 4618 }); 4619 4620 // Prevent form submission if out of stock 4621 document.addEventListener('click', function(e) { 4622 if (e.target.matches('button[data-out-of-stock="true"]')) { 4623 e.preventDefault(); 4624 e.stopPropagation(); 4625 alert('This product is currently out of stock and cannot be purchased.'); 4626 return false; 4627 } 4628 }); 4629 </script>
4629 4630 4631 4632 4633 </div> 4634 4635 </div> 4636 </div> 4637 </div> 4638 </div> 4639 <div id="product-bottom"> 4640 4641 <div class="product-description rte bg-card col-12 py-3 px-0 m-0" itemprop="description"> 4642 <div class="container"> 4643 4644 4645 4646 4647 4648 <div class="short-desc-mobile d-block d-lg-none mb-3"> 4649 <div class="short-desc"> 4650 <ul> 4651 <li><strong>Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan!</strong></li> 4652 </div> 4653 <label class="more-mobile">Show More ?</label> 4654 </div> 4655 4656 <style> 4657 .animated-title { 4658 text-align: center; 4659 font-weight: bold; 4660 color: #079c02; 4661 font-size: 28px; 4662 position: relative; 4663 animation: glow 2s infinite alternate, moveUpDown 3s infinite; 4664 } 4665 4666 /* Efek glow / bercahaya hijau */ 4667 @keyframes glow { 4668 0% { text-shadow: 0 0 5px #079c02; color: #079c02; } 4669 50% { text-shadow: 0 0 20px #00ff55; color: #12d12b; } 4670 100% { text-shadow: 0 0 10px #1bff00; color: #079c02; } 4671 } 4672 4673 /* Efek gerakan naik turun */ 4674 @keyframes moveUpDown { 4675 0% { transform: translateY(0px); } 4676 50% { transform: translateY(-5px); } 4677 100% { transform: translateY(0px); } 4678 } 4679 </style> 4680 4681
4681<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/shopify-cartjs/1.1.0/cart.min.js"></script>
4681 4682
4682<script> 4683 CartJS.init({"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"IDR","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}); 4684 4685 const productType = $("[data-product-type]").data("product-type") 4686 const productDate = Date.parse(new Date()) 4687 4688 const shop = 'outerbloom1.myshopify.com' 4689 const host = 'https://app.asmaraku.com' 4690 // const host = 'http://localhost:5001' 4691 4692 const gsheet = "https://script.google.com/macros/s/AKfycbyqa6mPD6lVjU6hiHr12J8URZ2aJBGyxBsGQ0QtEIDari-rBk_9vSOITjSSmUXL1NwxEg/exec" 4693 4694 const qrID = "041025" + randomString(4, 'aAbCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ') 4695 4696 $("#properties-time").val(new Date().getTime()) 4697 4698 const isIOS = /iPhone|iPad|iPod/i.test(navigator.userAgent); 4699 4700 if(!isIOS) { 4701 $("#full-date").attr("type", "button") 4702 } 4703 4704 let dateTime = new Date(); 4705 let today = dateTime.getDate(); 4706 let day = dateTime.getDay(); 4707 let hour = dateTime.getHours(); 4708 let min = dateTime.getMinutes(); 4709 let timeOfDay = hour + (min / 100); 4710 4711 async function getFetch(url) { 4712 const response = await fetch(url); 4713 let status = false 4714 let result 4715 if(response.ok) { 4716 status = true 4717 result = await response.json(); 4718 } 4719 return { 4720 status, 4721 data: result 4722 } 4723 } 4724 4725 4726 4727 function setCookie(cname, cvalue, exMins) { 4728 var d = new Date(); 4729 d.setTime(d.getTime() + (exMins*60*1000)); 4730 var expires = "expires="+d.toUTCString(); 4731 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 4732 } 4733 4734 function getCookie(cname) { 4735 let name = cname + "="; 4736 let decodedCookie = decodeURIComponent(document.cookie); 4737 let ca = decodedCookie.split(';'); 4738 for(let i = 0; i <ca.length; i++) { 4739 let c = ca[i]; 4740 while (c.charAt(0) == ' ') { 4741 c = c.substring(1); 4742 } 4743 if (c.indexOf(name) == 0) { 4744 return c.substring(name.length, c.length); 4745 } 4746 } 4747 return ""; 4748 } 4749 4750 async function renderDate() { 4751 let dataDate = await getFetch(`${host}/api/shipping/date?domain=${shop}&productId=8144957800663&v=${Date.now()}`); 4752 console.log(dataDate, 'renderDate') 4753 const data = dataDate?.data 4754 const date = data.date 4755 const time = data.time 4756 4757 console.log(date, 'DATE') 4758 4759 const weekday = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; 4760 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 4761 const htmlDate = []
4762 for(let i = 0;i < date.length;i++) { 4763 const full = date[i].date 4764 const d = new Date(date[i].date); 4765 const day = weekday[d.getDay()]; 4766 const dt = d.getDate(); 4767 const mt = monthly[d.getMonth()]; 4768 const yr = d.getFullYear(); 4769 const isDate = Boolean(date[i].isEnabled) 4770 const cutoffpagi = date[i].cutoff?.pagi 4771 const cutoffsiang = date[i].cutoff?.siang 4772 const cutoffMalam = date[i].cutoff?.Malam 4773 var html = ` 4774 <button data-id="8144957800663" class="date-single calendarbutton btn steps-btn col col-3 btn-date-time" data-day="${day}" data-fulldate="${full}" data-date="${dt < 10 ? '0' + dt : dt}" data-month="${mt}" data-year="${yr}" data-offpagi="${cutoffpagi}" data-offsiang="${cutoffsiang}" data-offMalam="${cutoffMalam}" ${isDate === true ? '' : 'disabled'}> 4775 ${dt === today ? 4776 `Today<span>${dt < 10 ? '0' + dt : dt}</span>` : 4777 `${day}<span>${dt < 10 ? '0' + dt : dt}</span>` 4778 } 4779 </button> 4780 ` 4781 htmlDate.push(html) 4782 } 4783 const htmlTime = []
4784 for(var i = 0;i < time.length;i++) { 4785 const timeText = time[i].text 4786 const timeTime = time[i].time 4787 const timeEnabled = time[i].isEnabled 4788 var html = ` 4789 <button class="time-single calendarbutton2 btn steps-btn" data-time="${timeText}" ${timeEnabled ? '' : 'disabled'}>${timeText}<br/>${timeTime}</button> 4790 ` 4791 htmlTime.push(html) 4792 } 4793 const deliveryDate = document.getElementById("deliveryDate"); 4794 if(deliveryDate) { 4795 deliveryDate.insertAdjacentHTML("afterbegin", htmlDate.join('')) 4796 $("#deliveryTime").html(htmlTime) 4797 if(productType !== '') { 4798 console.log("clarity event " + productType + ' calendaring') 4799 window.clarity("event", `${productType} calendaringSchedule`) 4800 // window.clarity("set", productType, `calendaringSchedule - ${productDate}`) 4801 } 4802 } 4803 } 4804 4805 async function getProvince(city) { 4806 let { data: { province } } = await getFetch(`${host}/api/shipping/address/province?city=${city}`); 4807 console.log(province, 'province') 4808 $("#province").val(province) 4809 } 4810 4811 async function renderAddress() { 4812 let current 4813 if(getCookie("location_delivery")){ 4814 current = getCookie("location_delivery").charAt(0).toUpperCase() + getCookie("location_delivery").slice(1) 4815 } 4816 let address = await getFetch(`${host}/api/shipping/address?domain=${shop}&productId=8144957800663`); 4817 console.log(address) 4818 const data = address?.data?.city 4819 const htmlAddress = [] 4820 const grouping = []
4821 for(let i = 0;i < data?.length;i++) { 4822 if(data[i]){ 4823 if(data[i]?.group) { 4824 grouping.push(data[i].group) 4825 } 4826 const price = rupiah.format(data[i]?.rate) 4827 let promo = '(Promo Free Delivery)' 4828 if(data[i]?.name === 'Jakarta - PickUp ASHTA'){ 4829 promo = '(at SCBD, Ashta)' 4830 } else if(data[i]?.name === 'Jakarta - PickUp ITC'){ 4831 promo = '(at Kuningan, ITC Kuningan)' 4832 } else if(data[i]?.name === 'BSD - PickUp'){ 4833 promo = '(at Goldfinch Gading Serpong)' 4834 } else if(data[i]?.name === 'Kota Lainnya'){ 4835 promo = '' 4836 } 4837 htmlAddress.push(`<option data-province="${data[i]?.province}" data-city="${data[i]?.city}" data-note="${data[i]?.note}" data-price="${data[i]?.rate}" value="${data[i]?.name}">${data[i]?.name === 'Kota Lainnya' ? 'Seluruh Kota Lain di Indonesia' : data[i]?.name} ${data[i]?.rate > 0 ? `(${price})` : promo}</option>`) 4838 } 4839 } 4840 4841 const deliveryCity = document.getElementById("cities"); 4842 if(deliveryCity) { 4843 deliveryCity.insertAdjacentHTML("beforeend", htmlAddress.join('')) 4844 if(!isIOS) { 4845 $(deliveryCity).select2(); 4846 } 4847 } 4848 } 4849 4850 async function renderZip(v, v2, v3) { 4851 const deliveryZip = document.getElementById("zip"); 4852 if(v === '') { 4853 return 4854 } 4855 let dataZip = await getFetch(`${host}/api/shipping/address/zip?city=${v}&city2=${v2}&city3=${v3}`); 4856 let zip = dataZip?.data?.zip 4857 console.log(zip) 4858 let htmlZip = []
4859 for(let i = 0; i < zip?.length;i++) { 4860 htmlZip.push(`<option value="${zip[i]?.postalCode} - ${zip[i]?.subdistrict}">${zip[i]?.postalCode} - ${zip[i]?.subdistrict} - ${zip[i]?.city}</option>`) 4861 } 4862 deliveryZip.insertAdjacentHTML("beforeend", htmlZip.join('')) 4863 } 4864 4865 renderDate() 4866 renderAddress() 4867 4868 let rupiah = new Intl.NumberFormat('id-ID', { 4869 style: 'currency', 4870 currency: 'IDR', 4871 maximumFractionDigits: 0, 4872 minimumFractionDigits: 0 4873 }); 4874 4875 async function insertCard(data) { 4876 const response = await fetch(`${host}/api/card/new`, { 4877 method: "POST", 4878 headers: { 4879 'Content-Type': 'application/json', 4880 }, 4881 body: data 4882 }) 4883 const result = await response.json() 4884 let rowIndex = result?.data?.tableRange.split("Outerbloom!A1:J")[1] 4885 $("#greetingCard").attr("data-index", rowIndex) 4886 return result 4887 } 4888 4889 async function updateCard(data){ 4890 const rowIndex = $("#greetingCard").data("index") 4891 const response = await fetch(`${host}/api/card/update?rowIndex=${rowIndex}`, { 4892 method: "PUT", 4893 headers: { 4894 'Content-Type': 'application/json', 4895 }, 4896 body: data 4897 }) 4898 return response 4899 } 4900 4901 function bytesToSize(bytes) { 4902 var sizes = ['b', 'kb', 'mb', 'gb', 'tb', 'p']; 4903 for (var i = 0; i < sizes.length; i++) { 4904 if (bytes <= 1024) { 4905 return bytes + ' ' + sizes[i]; 4906 } else { 4907 bytes = parseFloat(bytes / 1024).toFixed(2) 4908 } 4909 } 4910 return bytes + ' P'; 4911 } 4912 4913 async function uploadMedia(uri, type) { 4914 nameq = $("#properties-nama-penerima").val() 4915 dear = $("#properties-kartu-nama-penerima").val() 4916 card = $("[data-properties=ucapan]").val() 4917 sender = $("#properties-kartu-nama-pengirim").val() 4918 photo = $("#properties-photo").val() 4919 video = $("#properties-video").val() 4920 status = "Product" 4921 4922 const name = qrID 4923 let formData = new FormData(); 4924 formData.append("file", uri); 4925 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 4926 method: "POST", 4927 body: formData 4928 }) 4929 const result = await response.json(); 4930 if(result) { 4931 const url = result.url 4932 if(type === 'image/jpeg') { 4933 $("#properties-photo").val(url) 4934 $(".preview-image").show() 4935 $(".remove-image").show() 4936 photo = url 4937 } else { 4938 $("#properties-video").val(url) 4939 $("#label-input-video span").text("Change File") 4940 $(".case-qrcode-preview p").text("Scan here for a secret message") 4941 $(".remove-media").show() 4942 $("#product-top #product-meta .case-video-preview p").html(`<span class="replace-video" tite="Replace Video">${uri.name} (${bytesToSize(uri.size)})</span><span> is uploaded</span>`) 4943 $("[for=input-video]").hide() 4944 video = url 4945 } 4946 $(".case-video-preview").show() 4947 $(".steps-card-preview").removeClass("loading") 4948 // updateCard(nameq, dear, card, sender, photo, video, status) 4949 4950 $(".nextBtn").attr("disabled", false) 4951 } 4952 } 4953 4954 function randomString(length, chars) { 4955 var result = ''; 4956 for (var i = length; i > 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))]; 4957 return result; 4958 } 4959 4960 function getNoteCity(fulldate) { 4961 const h_1 = new Date(new Date().setDate(new Date().getDate() + 1)) 4962 const weekday = ["Min","Sen","Sel","Rab","Kam","Jum","Sab"]; 4963 const monthly = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]; 4964 const d = new Date(h_1); 4965 const day = weekday[d.getDay()]; 4966 const dt = d.getDate(); 4967 const mt = monthly[d.getMonth()]; 4968 const yr = d.getFullYear(); 4969 const p = $("#cities").parent(".form-group") 4970 } 4971 4972 function disabledSameDay() { 4973 let btnFirst = $("#deliveryDate").find("button:first-child") 4974 let getDay = new Date().getDay(); 4975 4976 4977 4978 if(getDay == 1 || getDay == 2 || getDay == 3 || getDay == 4 || getDay == 5){ 4979 if(hour >= 14.00){ 4980 btnFirst.attr("disabled", true) 4981 } 4982 } else if(getDay == 6){ 4983 if(hour >= 16.00){ 4984 btnFirst.attr("disabled", true) 4985 } 4986 } else if(getDay == 0){ 4987 if(hour >= 16.00){ 4988 btnFirst.attr("disabled", true) 4989 } 4990 } 4991 4992 4993 } 4994 4995 function disabledays(date) { 4996 let ymd = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate(); 4997 //if u have to disable a list of day 4998 let removeDays 4999 5000 5001 5002 removeDays = ["2025-2-13", "2025-2-14"]; 5003 5004 if ($.inArray(ymd, removeDays) >= 0) { 5005 return [false]; 5006 } else { 5007 let day = date.getDay(); 5008 if(day == 0 && date.getDate() == 13 && date.getMonth() == 1){ 5009 return [(day == 0), '']; 5010 } 5011 5012 if(day == 0){ 5013 return [(day == 0), '']; 5014 } 5015 5016 5017 return [(day != 0), '']; 5018 } 5019 } 5020 5021 /* Indonesian initialisation for the jQuery UI date picker plugin. */ 5022 /* Written by Deden Fathurahman ([email protected]). */ 5023 ( function( factory ) { 5024 if ( typeof define === "function" && define.amd ) { 5025 5026 // AMD. Register as an anonymous module. 5027 define( [ "../widgets/datepicker" ], factory ); 5028 } else { 5029 5030 // Browser globals 5031 factory( jQuery.datepicker ); 5032 } 5033 }( function( datepicker ) { 5034 5035 datepicker.regional.id = { 5036 closeText: "Tutup", 5037 prevText: "<mundur", 5038 nextText: "maju>", 5039 currentText: "Today", 5040 monthNames: [ "January","February","March","April","May","Juny", 5041 "July","August","September","October","November","December" ], 5042 monthNamesShort: [ "Jan","Feb","Mar","Apr","May","Jun", 5043 "Jul","Agu","Sep","Oct","Nov","Dec" ], 5044 dayNames: [ "Minggu","Senin","Selasa","Rabu","Kamis","Jumat","Sabtu" ], 5045 dayNamesShort: [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ], 5046 dayNamesMin: [ "Mg","Sn","Sl","Rb","Km","jm","Sb" ], 5047 weekHeader: "Mg", 5048 dateFormat: "D, dd M", 5049 firstDay: 0, 5050 isRTL: false, 5051 showMonthAfterYear: false, 5052 yearSuffix: "" }; 5053 datepicker.setDefaults( datepicker.regional.id ); 5054 5055 return datepicker.regional.id; 5056 5057 } ) ); 5058 5059 function loadPopup() { 5060 $("#backgroundPopup").fadeIn("slow"); 5061 $(".purchasePopup:not(.purchasePopupSpotify)").fadeIn("slow"); 5062 const firstSection = $(".purchasePopup:not(.purchasePopupSpotify) .sectionPurchase").first() 5063 if(firstSection.hasClass("purchasePersonalize")) { 5064 if(productType !== '') { 5065 console.log("clarity event " + productType + ' personalize') 5066 window.clarity("event", `${productType} cardPersonalization`) 5067 // window.clarity("set", productType, `cardPersonalization - ${productDate}`) 5068 } 5069 } else if (firstSection.hasClass("sectionPurchaseBoard")) { 5070 console.log("clarity event " + productType + ' personalizeBoard') 5071 window.clarity("event", `${productType} personalizeBoard`) 5072 // window.clarity("set", productType, `personalizeBoard - ${productDate}`) 5073 } 5074 firstSection.removeClass("hide") 5075 5076 // Auto-trigger addon loading when addon section becomes visible 5077 setTimeout(function() { 5078 const addonSection = $(".purchaseAddon") 5079 if(addonSection.length > 0 && !addonSection.hasClass("hide")) { 5080 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 5081 $("[data-addon=upsell-all]").trigger("click") 5082 } 5083 } 5084 }, 200) 5085 } 5086 5087 function disablePopup() { 5088 $("#backgroundPopup").fadeOut("slow"); 5089 $(".purchasePopup").fadeOut("slow"); 5090 $("#popupCart").fadeOut("slow"); 5091 } 5092
5093 function scrollTo(parent, div, dur) { 5094 $(parent).animate({ 5095 scrollTop: $(div).offset().top 5096 }, dur); 5097 } 5098 5099 function loadPopupPersonalize() { 5100 const div = "#purchaseProduct" 5101 const p = "html, body, .product-meta" 5102 $("p.error").remove() 5103 loadItemOccasion($("[data-occassion]").eq(0), "greeting-card-all") 5104 const isCity = $("#cities[required]") 5105 const isDate = $("#propDeliveryDate[required]") 5106 const isTime = $("#propDeliveryTime[required]") 5107 // loadPopup() 5108 if(isCity.val() !== '' && isDate.val() !== '' && isTime.val() !== '') { 5109 loadPopup() 5110 } 5111 if(isCity.val() == '') { 5112 isCity.parent(".row").append("<p class='error'>Choose delivery city</p>") 5113 scrollTo(p, div, 500) 5114 } 5115 if(isDate.val() == '') { 5116 isDate.parents(".row").append("<p class='error'>Choose delivery date</p>") 5117 scrollTo(p, div, 500) 5118 } 5119 if(isTime.val() == '') { 5120 isTime.parents(".row").append("<p class='error'>Choose delivery time</p>") 5121 scrollTo(p, div, 500) 5122 } 5123 } 5124 5125 function quantityCounter() { 5126 $(document).on("click", ".item-card.selected .q_up", function () { 5127 var C = $(this).attr("data-id"), 5128 S = 5129 parseInt( 5130 $(this) 5131 .siblings(".quantity-cart-" + C) 5132 .val() 5133 ) + 1; 5134 $(this).attr("data-quantity", S), 5135 $(this) 5136 .siblings(".quantity-cart-" + C) 5137 .val(S); 5138 }), 5139 $(document).on("click", ".item-card.selected .q_down", function () { 5140 var C = $(this).attr("data-id"), 5141 S = parseInt( 5142 $(this) 5143 .siblings(".quantity-cart-" + C) 5144 .val() 5145 ); 5146 0 < S && $(this).attr("data-quantity", S - 1), 5147 0 < S && 5148 $(this) 5149 .siblings(".quantity-cart-" + C) 5150 .val(S - 1); 5151 }); 5152 } 5153 5154 quantityCounter() 5155 5156 const itemAddon = $(".item-card").length 5157 const nofree = $(".nofree").length 5158 5159 const upsell = '' 5160 5161 if(nofree === itemAddon) { 5162 // $("#itemAddons").html("<p>No Items available</p>") 5163 } 5164 5165 $("#itemAddons .item-card").each(function(e){ 5166 $("#itemAddons").attr("data-length", e) 5167 }) 5168 5169 $("[data-addon]").click(function(){ 5170 5171 5172 5173 const t = $(this) 5174 5175 const data = t.data("addon") 5176 5177 $("[data-addon]").removeClass("selected") 5178 t.addClass("selected") 5179 $.get(`https://outerbloom.com/collections/${data}/products.json`, function(data, status){ 5180 const products = data.products 5181 const html = [] 5182 for(let i = 0; i < products.length; i++) { 5183 const id = products[i].id 5184 const variantId = products[i].variants[0].id 5185 const img = products[i].images[0].src 5186 let img2 = img.split('.jpg')[0] 5187 const title = products[i].title 5188 const price = products[i].variants[0].price 5189 const tags = products[i].tags 5190 const qty = products[i].variants[0].available 5191 let type_upsell = '' 5192 if(tags.includes('upsell-item-standing')) { 5193 type_upsell = 'standing' 5194 } 5195 console.log(type_upsell) 5196 if(type_upsell !== '') { 5197 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'} type-${products[i].product_type.toLowerCase()?.replace(' ', '_')}" data-variant="${variantId}" data-id=${id} data-qty="${qty === false ? 0 : ''}" data-upsell="${type_upsell}" data-tags="${tags}"> 5198 5199 <div class="card-image"> 5200 <img src="${img2}_150x.jpg" alt="${title}" width="" height="" /> 5201 </div> 5202 <div class="card-meta"> 5203 <h5>${title}</h5> 5204 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 5205 <input id="card-${variantId}" type="hidden" name="" value="${variantId}"> 5206 </div> 5207 <div class="card-qty"> 5208 <a data-quantity="1" type="submit" id="q_down-${variantId}" class="btn-qty-min q_down drawer-cart" data-id="${variantId}"><svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="12" height="2" viewBox="0 0 12 2" fill="none"><path d="M0 1.90869V0.908691H12V1.90869H0Z" fill="black"/></svg></a> 5209 <input maxlength="3" min="0" class="btn-qty text-center quantity-cart-${variantId}
5209" value="0" data-price=${price} name="quantity"> 5210 <a data-quantity="1" type="submit" class="btn-qty-plus q_up text-green drawer-cart" data-id="${variantId}"><svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="12" height="13" viewBox="0 0 12 13" fill="none"> 5211 <path d="M0 6.87023V5.94715H5.53846V0.408691H6.46154V5.94715H12V6.87023H6.46154V12.4087H5.53846V6.87023H0Z" fill="black"/> 5212 </svg></a> 5213 </div> 5214 </div>` 5215 html.push(body) 5216 } 5217 } 5218 $("#itemAddons .row").html(html.length === 0 ? '<p>No Item available</p>' : html) 5219 $("#itemAddons").attr("data-length", products.length) 5220 // $('#itemAddons')[0].swiper.update(); 5221 }); 5222 }) 5223 5224 async function isAddon(){ 5225 let ids = [] 5226 $("#itemAddons .item-card.selected").each(function(i, e){ 5227 const id = $(this).data("id") 5228 ids.push(id) 5229 }) 5230 console.log(ids) 5231 return ids 5232 } 5233 5234 $("#itemAddons").delegate(".item-card > div:not(.card-qty)", "click", async function(){ 5235 const t = $(this).parent() 5236 const id = t.data("id") 5237 const btn = t.parents(".purchaseAddon").find(".next-purchase-button") 5238 t.toggleClass("selected"); 5239 //$(this).next("input").toggleAttr('name', 'id[]'); 5240 if (t.hasClass('selected')) { 5241 t.find("input").val(1) 5242 t.find("input").attr('name', 'id[]'); 5243 } else { 5244 t.find("input").val(0) 5245 t.find("input").removeAttr('name'); 5246 } 5247 $("#properties-addons").val(addons) 5248 const is = await isAddon() 5249 if(is.length === 0) { 5250 btn.text("continue without add-ons") 5251 return 5252 } 5253 if(is.includes(8835692069079)) { 5254 btn.text("personalize acrylic frame") 5255 } else { 5256 btn.text("Continue") 5257 } 5258 5259 }) 5260 5261 async function myAddon(data) { 5262 const c = $(".addonsPurchase .addons") 5263 let items = [] 5264 5265 const spotifyAddons = $(".spotifyAddons").find("[data-index]") 5266 // if(spotifyAddons.length > 0) { 5267 // $(spotifyAddons).each(function(i, e){ 5268 // const spotifyLink = $(this).find(".spotifyLink").val() 5269 // const spotifySong = $(this).find(".spotifySong").val() 5270 // const spotifyArtist = $(this).find(".spotifyArtist").val() 5271 // const spotifyFotoAddon = $(this).find(".resultPhotoSpotify").val() 5272 // if(spotifyLink !== '') { 5273 // spotifyAddon = `<div class="addon-item" data-id="46067682607319" data-qty="1"> 5274 // <div class="addon-itm-img"> 5275 // <img src="https://cdn.shopify.com/s/files/1/1589/6833/files/Acrylic-Frame_8c71027d-43b7-4322-a98f-d34ab0456397_100x.jpg?v=1739160467" alt="" width="70"/> 5276 // </div> 5277 // <div class="addon-itm-title"> 5278 // <span>[US] Outerbloom Acrylic Frame 4R</span> 5279 // </div> 5280 // <div class="addon-itm-line-total"> 5281 // <span>Rp 99.000</span> 5282 // </div> 5283 // </div> 5284 // <div class="propsAddonSpotify row m-0"> 5285 // <div class="col-12 col-lg-2"></div> 5286 // <div class="col-12 col-lg-10"> 5287 // <p> 5288 // <span>spotify link</span> 5289 // <span class="spotifyLinkAddon">${spotifyLink}</span> 5290 // </p> 5291 // <p> 5292 // <span>uploaded photo</span> 5293 // <span class="spotifyFotoAddon">${spotifyFotoAddon}</span> 5294 // </p> 5295 // <p> 5296 // <span>song / playlist name</span> 5297 // <span class="spotifySongAddon">${spotifySong}</span> 5298 // </p> 5299 // <p> 5300 // <span>artist name</span> 5301 // <span class="spotifyArtistAddon">${spotifyArtist}</span> 5302 // </p> 5303 // </div> 5304 // </div>` 5305 // items.push(spotifyAddon) 5306 // } 5307 // }) 5308 // }
5309 for(let i = 0; i < data.length; i++) { 5310 if(data[i].title !== '[US] Outerbloom Acrylic Frame 4R' ) { 5311 const img = data[i].image 5312 const title = data[i].title 5313 const qty = data[i].qty 5314 const price = data[i].price 5315 const total = Number(qty) * Number(price) 5316 let addons = `<div class="addon-item" data-id="${data[i].id}" data-qty="${qty}"> 5317 <div class="addon-itm-img"> 5318 <img src="${img}" alt="" width="70"/> 5319 </div> 5320 <div class="addon-itm-title"> 5321 <span>${title}</span> 5322 </div> 5323 <div class="addon-itm-line-price"> 5324 <span>${rupiah.format(price)}</span> 5325 ${data[i].title == '[US] Outerbloom Acrylic Frame 4R' ? '' : `<span>x${qty}</span>`} 5326 </div> 5327 <div class="addon-itm-line-total"> 5328 <span>${rupiah.format(total)}</span> 5329 </div> 5330 </div>` 5331 items.push(addons) 5332 } 5333 } 5334 c.html(items) 5335 const parent = $(".purchaseAddon") 5336 const next = parent.next(".sectionPurchase") 5337 parent.addClass("hide") 5338 next.removeClass("hide") 5339 // if(items2.length === 0) return $("#popupCart").addClass("no-addon-cart") 5340 // $(".itemAddonCart").find("h4").text(`add-ons (${items2.length})`) 5341 } 5342 5343 async function listAddon() { 5344 const data = $("#itemAddons").find(".selected") 5345 let ids = [] 5346 $(data).each(function(){ 5347 const id = $(this).data("variant") 5348 const image = $(this).find(".card-image img").attr("src") 5349 const title = $(this).find(".card-meta h5").text() 5350 const qty = $(this).find(".card-qty input").val() 5351 const price = $(this).find(".card-qty input").data("price") 5352 ids.push({ 5353 id: Number(id), 5354 image, 5355 title, 5356 qty, 5357 price 5358 }) 5359 }) 5360 myAddon(ids) 5361 } 5362 5363 async function customSpotify(idx, length, type){ 5364 let isCard = false 5365 5366 let p = $(".purchasePopupSpotify") 5367 const preLink = $(".spotifyLinkFirst").val() 5368 $("[data-index]").hide() 5369 p.find(".headerPurchase h3").text(`personalize spotify photo print${length > 1 ? ` - ${idx}` : ''}`) 5370 p.find(".regulerAddons, .purchase-button").hide() 5371 p.find(".spotifyAddons").show() 5372 5373 const data = await trackUrl(preLink) 5374 5375 const html = `<div class="row" data-index=${idx} data-length=${length}><div class="col-12 col-lg-6"><div class="form-vertical position-relative"><div class="form-group mb-4"><h4>upload photo</h4><div class=uploadResult><label class=btn for=uploadPhotoSpotify><svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="13" height="11" viewB
5375ox="0 0 13 11" fill="none"> 5376 <path d="M0.875 10.6378H12.375C12.4413 10.6378 12.5049 10.6115 12.5518 10.5646C12.5987 10.5177 12.625 10.4541 12.625 10.3878V0.387817C12.625 0.321513 12.5987 0.257925 12.5518 0.211041C12.5049 0.164157 12.4413 0.137817 12.375 0.137817H0.875C0.808696 0.137817 0.745107 0.164157 0.698223 0.211041C0.651339 0.257925 0.625 0.321513 0.625 0.387817V10.3878C0.625 10.4541 0.651339 10.5177 0.698223 10.5646C0.745107 10.6115 0.808696 10.6378 0.875 10.6378ZM1.125 10.1378V7.31882C1.136 7.31082 1.1485 7.30632 1.1585 7.29632L3.7165 4.73832C3.78198 4.67584 3.869 4.64098 3.9595 4.64098C4.05 4.64098 4.13702 4.67584 4.2025 4.73832L7.963 8.49882C8.00919 8.54501 8.07162 8.5713 8.13694 8.57204C8.20225 8.57279 8.26527 8.54794 8.3125 8.50282L10.2455 6.66682C10.3084 6.60323 10.3938 6.56684 10.4832 6.56543C10.5727 6.56403 10.6591 6.59774 10.724 6.65932L12.125 8.18532L12.1255 8.18582V10.1378H1.125ZM12.125 0.637817V7.44682L11.0845 6.31382C11.0066 6.23514 10.9138 6.17275 10.8116 6.13026C10.7094 6.08777 10.5997 6.06603 10.489 6.06632H10.4885C10.3786 6.06584 10.2697 6.08706 10.168 6.12876C10.0664 6.17046 9.97391 6.23182 9.896 6.30932L8.144 7.97332L4.556 4.38482C4.2365 4.06582 3.6815 4.06632 3.363 4.38482L1.125 6.62332V0.637817H12.125Z" fill="black"/> 5377 </svg><span>Upload your file</span></label></div><input class="uploadPhotoSpotify form-control d-none" accept=image/* type=file><input class="resultPhotoSpotify" type="hidden"></div><div class="form-group mb-5"><h4>Add your Spotify link here</h4> <input class="spotifyLink2 form-control spotifyLink" value="${preLink}" placeholder=https://open.spotify.com/ ></div><div class="form-group mb-4 text-left"><label class=checkbox for=isCustomMessage><span>Personalized Message</span><span class=checkmark></span></label></div><div class="form-group mb-4 form-personalize"><label class="text-left d-block mb-2 text-uppercase"for=spotifySong>Song / playlist name</label> ${data?.song ? `<input class="form-control spotifySong" value="${data?.song}">` : '<input class="form-control spotifySong" value="">'}</div><div class="form-group form-personalize"><label class="text-left d-block mb-2 text-uppercase"for=spotifyArtist>Artist name</label> ${data?.artist ? `<input class="form-control spotifyArtist" value="${data?.artist}">` : '<input class="form-control spotifyArtist" value="">'}</div><div class=btn-action><button class="back-spotify"><svg fill=none height=14 viewBox="0 0 15 14"width=15 xmlns=https://kucingair.com/fotobaka/logopub.png><path d="M14.5799 7.41992L2.32992 7.41992L7.57992 12.6699L6.91992 13.4199L0.419922 6.91992L6.91992 0.419922L7.57992 1.16992L2.32992 6.41992L14.5799 6.41992V7.41992Z"fill=black /></svg> <span>Back</span></button><button data-type="${isCard ? 'card' : ''}" ${isCard ? '' : 'id=addtocart-card'} class="text-uppercase btn w-100${type == 'addon' && idx == length ? ' finished' : ' no-addon'}" disabled>${isCard ? 'Continue Personalizing' : 'add to cart'}</button></div></div></div><div class="col-12 col-lg-6 columnRight"><div class=frame-spotify><div class=frameImage><div class=frameImageUploaded><svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="13" height="11" viewB
5377ox="0 0 13 11" fill="none"> 5378 <path d="M0.875 10.6378H12.375C12.4413 10.6378 12.5049 10.6115 12.5518 10.5646C12.5987 10.5177 12.625 10.4541 12.625 10.3878V0.387817C12.625 0.321513 12.5987 0.257925 12.5518 0.211041C12.5049 0.164157 12.4413 0.137817 12.375 0.137817H0.875C0.808696 0.137817 0.745107 0.164157 0.698223 0.211041C0.651339 0.257925 0.625 0.321513 0.625 0.387817V10.3878C0.625 10.4541 0.651339 10.5177 0.698223 10.5646C0.745107 10.6115 0.808696 10.6378 0.875 10.6378ZM1.125 10.1378V7.31882C1.136 7.31082 1.1485 7.30632 1.1585 7.29632L3.7165 4.73832C3.78198 4.67584 3.869 4.64098 3.9595 4.64098C4.05 4.64098 4.13702 4.67584 4.2025 4.73832L7.963 8.49882C8.00919 8.54501 8.07162 8.5713 8.13694 8.57204C8.20225 8.57279 8.26527 8.54794 8.3125 8.50282L10.2455 6.66682C10.3084 6.60323 10.3938 6.56684 10.4832 6.56543C10.5727 6.56403 10.6591 6.59774 10.724 6.65932L12.125 8.18532L12.1255 8.18582V10.1378H1.125ZM12.125 0.637817V7.44682L11.0845 6.31382C11.0066 6.23514 10.9138 6.17275 10.8116 6.13026C10.7094 6.08777 10.5997 6.06603 10.489 6.06632H10.4885C10.3786 6.06584 10.2697 6.08706 10.168 6.12876C10.0664 6.17046 9.97391 6.23182 9.896 6.30932L8.144 7.97332L4.556 4.38482C4.2365 4.06582 3.6815 4.06632 3.363 4.38482L1.125 6.62332V0.637817H12.125Z" fill="black"/> 5379 </svg> <img src="" class=previewImage style=display:none></div></div><div class=frameControl><div class=spotifyData>${data?.song ? `<h3>${data?.song}</h3>` : '<h3><h3>'}${data?.artist ? `<p>${data?.artist}</p>` : '<p></p>'}</div><img src="//outerbloom.com/cdn/shop/t/138/assets/frame-spotify.png?v=138221849636560654691752652420"alt="spotify outerbloom" height=""width=100%><div class=spotifyCode><img src="https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data?.type.slice(0, -1)}:${data?.trackId}"alt=""></div></div></div></div></div>` 5380 // console.log(html) 5381 5382 $(".spotifyAddons").append(html) 5383 5384 $(`[data-index=${idx}]`).show() 5385 5386 if (preLink !== '') { 5387 $(".btn-action .btn").attr("disabled", false) 5388 } else { 5389 $(".btn-action .btn").attr("disabled", true) 5390 } 5391 5392 return html 5393 5394 } 5395 5396 $(".spotifyLinkFirst").keyup(async function(){ 5397 const v = $(this).val() 5398 if(v.includes('spotify:user:spotify')) { 5399 const correct = v.split('user:spotify:')[1] 5400 console.log(correct, 'BNER') 5401 $(this).val(correct) 5402 return 5403 } 5404 if(v.includes("spotify:") || v.includes("https://open.spotify.com/")){ 5405 const data = await trackUrl(v) 5406 if(!data || !data.status) { 5407 $(this).parent().addClass("error") 5408 // $(this).parent().append(`<p class="txt-error">Make sure you copy the complete and correct link from Spotify. Ex: https://open.spotify.com/track/0C3xZJueyBvvMSsl0cETA6</p>`) 5409 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5410 return 5411 } 5412 $(this).parent().removeClass("error") 5413 // $(this).parent().remove("txt-error") 5414 $("#personalizeBtnSpotify .btn").attr("disabled", false) 5415 } else { 5416 $("#personalizeBtnSpotify .btn").attr("disabled", true) 5417 } 5418 }) 5419 5420 $(".purchaseAddon").delegate(".next-addon", "click", function(){ 5421 const parent = $(this).parents(".purchaseAddon") 5422 const next = parent.next(".sectionPurchase") 5423 if(next.hasClass("purchaseAddress")) { 5424 if(productType !== '') { 5425 console.log("clarity event " + productType + ' purchaseDelivery') 5426 window.clarity("event", `${productType} purchaseDelivery`) 5427 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5428 } 5429 } 5430 const data = $("#itemAddons").find(".selected") 5431 const length = $(".quantity-cart-46067682607319").val() 5432 const checked = data.length; 5433 if(checked > 0) { 5434 if(length > 0) { 5435 $(".purchaseAddon").addClass("purchaseAddonSpotify") 5436 customSpotify(1, length, 'addon') 5437 } else { 5438 listAddon() 5439 } 5440 } else { 5441 parent.addClass("hide") 5442 next.removeClass("hide") 5443 } 5444 }) 5445 5446 $("#personalizeBtnSpotify .btn").click(async function(){ 5447 const isCity = $("#cities[required]") 5448 const isDate = $("#propDeliveryDate[required]") 5449 if((isDate.length > 0 && isCity.length > 0) && (isCity.val() === '' || isDate.val() === '')) { 5450 alert('Please choose Delivery City & Delivery Date') 5451 return 5452 } 5453 const data = await customSpotify(1, 1, 'product') 5454 if(data) { 5455 $("#backgroundPopup").fadeIn("slow"); 5456 $(".purchasePopupSpotify").fadeIn("slow"); 5457 5458 if(productType !== '') { 5459 console.log("clarity event " + productType + ' spotify') 5460 window.clarity("event", `${productType} spotify`) 5461 // window.clarity("set", productType, `purchaseDelivery - ${productDate}`) 5462 } 5463 } 5464 }) 5465 5466 function formatBytes(bytes, decimals = 2) { 5467 if (!+bytes) return '0 Bytes' 5468
5469 const k = 1024 5470 const dm = decimals < 0 ? 0 : decimals 5471 const sizes = ['B', 'KB', 'MB'] 5472 5473 const i = Math.floor(Math.log(bytes) / Math.log(k)) 5474 5475 return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}` 5476 } 5477 5478 async function trackUrl(link){ 5479 try { 5480 let trackId = link.split('/').pop().split('?')[0]; 5481 let type = '' 5482 if(link.includes("spotify:")) { 5483 const uri = link.split('spotify:')[1] 5484 trackId = uri.split(':')[1] 5485 type = uri.split(':')[0] + 's' 5486 } else { 5487 if(link.match('track')){ 5488 type = 'tracks' 5489 } else if(link.match('playlist')) { 5490 type = 'playlists' 5491 } else if(link.match('artist')) { 5492 type = 'artists' 5493 } else if(link.match('album')) { 5494 type = 'albums' 5495 } 5496 } 5497 console.log(`${host}/api/spotify/${type}/${trackId}`) 5498 const data = await getFetch(`${host}/api/spotify/${type}/${trackId}`) 5499 console.log(data, 'DATA') 5500 const song = data?.data?.name 5501 const artist = data?.data?.artist 5502 return { 5503 song, artist, type, trackId, status: data.status 5504 } 5505 } catch(err) { 5506 console.log(err) 5507 } 5508 } 5509 5510 $(".spotifyAddons").delegate(".uploadPhotoSpotify", "change", async function(){ 5511 const parent = $(this).parents("[data-index]") 5512 const preview = parent.find(".previewImage") 5513 const file = $(this)[0].files[0]; 5514 if (file) { 5515 const reader = new FileReader(); 5516 reader.onload = async function(e) { 5517 parent.find(".uploadResult label").hide() 5518 parent.find(".uploadedResult").remove() 5519 parent.find(".uploadResult").append(`<div class="uploadedResult d-flex" style="justify-content: space-between"> 5520 <p style="text-align: left;margin: 0;"><span style="color: #34C759;font-style: italic;font-size: 14px;text-overflow: ellipsis;overflow: hidden;max-width: 250px;white-space: nowrap;display: inline-block;vertical-align: middle;">${file.name}</span><span style="font-size: 14px;color: #34C759"> (${formatBytes(file.size)})</span> <span style="font-size: 14px">is uploaded</span></p> 5521 <div style="align-self: center"><span class="changeUpload" style="font-size: 12px;cursor: pointer">Change</span><span class="removeUpload" style="cursor: pointer;border-left: 1px solid;padding-left: 10px;margin-left: 10px;height: 10px;display: inline-flex;vertical-align: middle;">
5521<svg fill="none" height="11" viewBox="0 0 10 11" width="10" xmlns="https://kucingair.com/fotobaka/logopub.png"> 5522 <path d="M2.07799 10.8332C1.78154 10.8332 1.52799 10.7276 1.31732 10.5165C1.10666 10.3054 1.0011 10.0523 1.00066 9.75716V1.49982H0.667322C0.572656 1.49982 0.493545 1.46782 0.429989 1.40382C0.366433 1.33982 0.334433 1.26049 0.333989 1.16582C0.333544 1.07116 0.365545 0.992047 0.429989 0.928491C0.494433 0.864935 0.573545 0.833158 0.667322 0.833158H3.00066C3.00066 0.69538 3.05177 0.57538 3.15399 0.473158C3.25621 0.370935 3.37621 0.319824 3.51399 0.319824H6.48732C6.6251 0.319824 6.7451 0.370935 6.84732 0.473158C6.94954 0.57538 7.00066 0.69538 7.00066 0.833158H9.33399C9.42866 0.833158 9.50777 0.865158 9.57132 0.929158C9.63488 0.993158 9.66688 1.07249 9.66732 1.16716C9.66777 1.26182 9.63577 1.34094 9.57132 1.40449C9.50688 1.46805 9.42777 1.49982 9.33399 1.49982H9.00066V9.75649C9.00066 10.0525 8.8951 10.3058 8.68399 10.5165C8.47288 10.7272 8.21954 10.8327 7.92399 10.8332H2.07799ZM8.33399 1.49982H1.66732V9.75649C1.66732 9.87605 1.70577 9.97427 1.78266 10.0512C1.85954 10.128 1.95799 10.1665 2.07799 10.1665H7.92399C8.04354 10.1665 8.14177 10.128 8.21866 10.0512C8.29554 9.97427 8.33399 9.87605 8.33399 9.75649V1.49982ZM3.87266 8.83316C3.96732 8.83316 4.04666 8.80116 4.11066 8.73716C4.17466 8.67316 4.20643 8.59405 4.20599 8.49982V3.16649C4.20599 3.07182 4.17399 2.99271 4.10999 2.92916C4.04599 2.8656 3.96666 2.8336 3.87199 2.83316C3.77732 2.83271 3.69821 2.86471 3.63466 2.92916C3.5711 2.9936 3.53932 3.07271 3.53932 3.16649V8.49982C3.53932 8.59449 3.57132 8.6736 3.63532 8.73716C3.69932 8.80116 3.77843 8.83316 3.87266 8.83316ZM6.12932 8.83316C6.22399 8.83316 6.3031 8.80116 6.36666 8.73716C6.43021 8.67316 6.46199 8.59405 6.46199 8.49982V3.16649C6.46199 3.07182 6.42999 2.99271 6.36599 2.92916C6.30199 2.86516 6.22288 2.83316 6.12866 2.83316C6.03399 2.83316 5.95466 2.86516 5.89066 2.92916C5.82666 2.99316 5.79488 3.07227 5.79532 3.16649V8.49982C5.79532 8.59449 5.82732 8.6736 5.89132 8.73716C5.95532 8.80071 6.03466 8.83271 6.12932 8.83316Z"fill=#757575 /> 5523 </svg> 5524 </span></div></div>`) 5525 parent.find(".frameImageUploaded svg").hide() 5526 parent.find(".frameImage").addClass("uploaded") 5527 preview.attr("src", e.target.result); 5528 preview.show(); 5529 let formData = new FormData(); 5530 formData.append("file", file); 5531 const response = await fetch(`${host}/api/upload?name=${file.name}&type=image/jpeg&r=${Date.parse(new Date)}`, { 5532 method: "POST", 5533 body: formData 5534 }) 5535 const result = await response.json(); 5536 if(result){ 5537 parent.find(".resultPhotoSpotify").val(result.url) 5538 } 5539 } 5540 5541 reader.readAsDataURL(file); 5542 } else { 5543 preview.hide(); 5544 } 5545 }); 5546 5547 $(".spotifyAddons").delegate(".uploadResult", "click", function(){ 5548 $(this).next("input[type=file]").trigger("click") 5549 }) 5550 5551 $(".spotifyAddons").delegate(".changeUpload", "click", function(){ 5552 $(this).parents("input[type=file]").trigger("click") 5553 }) 5554 5555 $(".spotifyAddons").delegate(".removeUpload", "click", function(){ 5556 const parent = $(this).parents("[data-index]") 5557 parent.find(".uploadPhotoSpotify").val("") 5558 parent.find(".uploadResult label").show() 5559 parent.find(".uploadedResult").remove() 5560 parent.find(".frameImageUploaded svg").show() 5561 parent.find(".previewImage").hide() 5562 parent.find(".frameImage").removeClass("uploaded") 5563 }) 5564 5565 $(".spotifyAddons").delegate("label.checkbox", "click", function(){ 5566 const parent = $(this).parents("[data-index]") 5567 parent.toggleClass("checked") 5568 }) 5569 5570 $(".spotifyAddons").delegate(".spotifyLink", "change", async function(){ 5571 const parent = $(this).parents("[data-index]") 5572 const link = $(this).val() 5573 const data = await trackUrl(link) 5574 5575 console.log(data) 5576 5577 if(data.song) { 5578 parent.find(".spotifySong").val(data.song) 5579 parent.find(".spotifyData").find("h3").text(data.song) 5580 } 5581 if(data.artist) { 5582 parent.find(".spotifyArtist").val(data.artist) 5583 parent.find(".spotifyData").find("p").text(data.artist) 5584 } 5585 parent.find(".spotifyCode img").attr("src", `https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:${data.type.slice(0, -1)}:${data.trackId}`) 5586 // https://scannables.scdn.co/uri/plain/png/FFFFFF/black/640/spotify:track:1er51HCEBhIAtoEemKuC3M 5587 if (data.status === true) { 5588 parent.find(".btn-action .btn").attr("disabled", false) 5589 } else { 5590 parent.find(".btn-action .btn").attr("disabled", true) 5591 } 5592 }) 5593
5594 $(".spotifyAddons").delegate(".spotifySong", "keyup", async function(){ 5595 const parent = $(this).parents("[data-index]") 5596 const v = $(this).val() 5597 parent.find(".spotifyData h3").text(v) 5598 }) 5599 5600 $(".spotifyAddons").delegate(".spotifyArtist", "keyup", async function(){ 5601 const parent = $(this).parents("[data-index]") 5602 const v = $(this).val() 5603 parent.find(".spotifyData p").text(v) 5604 }) 5605 5606 $(".spotifyAddons").delegate(".btn-action .btn:not(.no-addon)", "click", async function(){ 5607 const parent = $(this).parents("[data-index]") 5608 const length = parent.data("length") 5609 const index = parent.data("index") 5610 const indexNext = Number(index) + 1 5611 customSpotify(indexNext, length, 'addon') 5612 }) 5613 5614 5615 $(".spotifyAddons").delegate(".btn-action .btn.finished", "click", async function(){ 5616 const parent = $(this).parents(".purchaseAddon") 5617 const next = parent.next(".sectionPurchase") 5618 parent.addClass("hide") 5619 next.removeClass("hide") 5620 next.find(".purchase-button").show() 5621 listAddon() 5622 }) 5623 5624 $(".spotifyAddons").delegate(".back-spotify", "click", async function(){ 5625 const t = $(this).parents("[data-index]") 5626 const parent = $(this).parents(".sectionPurchase") 5627 const current = t.data("index") 5628 const prevCurrent = Number(current) - 1 5629 if(current == 1) { 5630 parent.removeClass("purchaseAddonSpotify") 5631 parent.find(".purchase-button").show() 5632 parent.find(".headerPurchase h3").text("Make It More Special with Add-Ons!") 5633 $(".spotifyAddons").empty() 5634 $(".regulerAddons").show() 5635 return 5636 } 5637 t.hide() 5638 t.prev("[data-index]").show() 5639 t.remove() 5640 parent.find(".headerPurchase h3").text(`personalize spotify photo print - ${prevCurrent}`) 5641 }) 5642 5643 $("#personalizeBtn .btn").click(async function() { 5644 loadPopupPersonalize() 5645 }); 5646 5647 $(".sectionPurchaseSpotify").delegate(".btn[data-type=card]", "click", function(){ 5648 $(".sectionPurchaseSpotify").hide() 5649 loadPopupPersonalize() 5650 }) 5651 5652 $(".close-purchase-popup").click(function() { 5653 disablePopup(); 5654 }); 5655 $("#backgroundPopup").click(function() { 5656 // disablePopup(); 5657 }); 5658 5659 $("#popupCart .close-purchase-popup").click(function() { 5660 location.reload() 5661 }); 5662 5663 $('#popupCart').on('hide.bs.modal', function (e) { 5664 location.reload() 5665 }) 5666 5667 $(".next-card").click(function(){ 5668 const parent = $(this).parents(".sectionPurchase") 5669 const next = parent.next(".sectionPurchase") 5670 parent.addClass("hide") 5671 next.removeClass("hide") 5672 }) 5673 5674 $(".back-purchase-button").click(function(){ 5675 const parent = $(this).parents(".sectionPurchase") 5676 const prev = parent.prev(".sectionPurchase") 5677 parent.addClass("hide") 5678 prev.removeClass("hide") 5679 }) 5680 5681 $(document).keypress(function(e) { 5682 if (e.keyCode == 27 && popupStatus == 1) { 5683 disablePopup(); 5684 } 5685 }); 5686 5687 const parentImg = $(".case-img-preview") 5688 const parentVid = $(".case-video-preview") 5689 5690 function readURL(input) { 5691 if (input.files && input.files[0]) { 5692 let reader = new FileReader(); 5693 5694 let type = 'image/jpeg' 5695 const size = input.files[0].size 5696 if(input.files[0].type.match('video/')){ 5697 type = 'video/mp4' 5698 if(size > 15728640) { 5699 alert('File size exceeds maximum limit 15 MB') 5700 return 5701 } 5702 } else { 5703 if(size > 5242880) { 5704 alert('File size exceeds maximum limit 5 MB') 5705 return 5706 } 5707 } 5708 5709 reader.onload = function (e) { 5710 $(".nextBtn").attr("disabled", true) 5711 if(type === 'image/jpeg') { 5712 5713 $('.placeholder-image').hide(); 5714 $('.preview-image').show() 5715 $('.preview-image').attr('src', e.target.result); 5716 5717 } else { 5718 // parentVid.find(".ajax-loader").show(); 5719 $(".steps-card-preview").addClass("loading") 5720 } 5721 } 5722 5723 5724
5725 reader.readAsDataURL(input.files[0]); 5726 } 5727 } 5728 5729 async function readURLPapan(input) { 5730 if (input.files && input.files[0]) { 5731 let reader = new FileReader(); 5732 5733 reader.onload = function (e) { 5734 $('.btn-upload-papan').siblings('label').hide(); 5735 $('.btn-upload-papan img').attr('src', e.target.result); 5736 $('.btn-upload-papan img').show(); 5737 $('.svgLogoPapan').hide(); 5738 } 5739 5740 const type = 'image/jpeg' 5741 const name = `logo-8144957800663-${Date.parse(new Date())}` 5742 5743 let formData = new FormData(); 5744 formData.append("file", input.files[0]); 5745 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5746 method: "POST", 5747 body: formData 5748 }) 5749 const result = await response.json(); 5750 if(result) { 5751 const url = result.url 5752 $("[data-properties=papan-logo]").val(url) 5753 } 5754 5755 reader.readAsDataURL(input.files[0]); 5756 } 5757 } 5758 5759 async function readURLAddress(input) { 5760 console.log(input, 'readURLAddress') 5761 if (input.files && input.files[0]) { 5762 let reader = new FileReader(); 5763 5764 reader.onload = function (e) { 5765 $('.photo-address').attr('src', e.target.result); 5766 $('.photo-address').show(); 5767 } 5768 5769 const type = 'image/jpeg' 5770 const name = input.files[0].name?.split('.')[0] 5771 5772 let formData = new FormData(); 5773 formData.append("file", input.files[0]); 5774 const response = await fetch(`${host}/api/upload?name=${name}&type=${type}&r=${randomString(3, '0123456789')}`, { 5775 method: "POST", 5776 body: formData 5777 }) 5778 const result = await response.json(); 5779 5780 reader.readAsDataURL(input.files[0]); 5781 5782 return result 5783 } 5784 } 5785 5786 5787 5788 5789 async function addToCartUang() { 5790 var productAddOnId1 = 42122101162199; 5791 var productAddOnId2 = 42122101194967; 5792 var product_id = 8144957800663 5793 const data = { 5794 items: [ 5795 { 5796 quantity: $("#Quantity-" + productAddOnId1).val(), 5797 id: productAddOnId1, 5798 "properties": { "Time": $("#properties-time").val() } 5799 }, 5800 { 5801 quantity: $("#Quantity-" + productAddOnId2).val(), 5802 id: productAddOnId2, 5803 "properties": { "Time": $("#properties-time").val() } 5804 } 5805 ] 5806 } 5807 await fetch(window.Shopify.routes.root + 'cart/add.js', { 5808 method: 'POST', 5809 headers: { 5810 'Content-Type': 'application/json' 5811 }, 5812 body: JSON.stringify(data) 5813 }) 5814 .then(response => { 5815 console.error('Sukses Buket Uang:', response); 5816 $(".form-flower").submit() 5817 }) 5818 .catch((error) => { 5819 console.error('Error Buket Uang:', error); 5820 $(".form-flower").submit() 5821 }); 5822 } 5823 5824 async function saveCard(){ 5825 let isCard = true 5826 const kartu_penerima = $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '' 5827 const kartu_pengirim = $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '' 5828 const kartu_ucapan = $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '' 5829 const foto = $("#properties-photo").val() 5830 const video = $("#properties-video").val() 5831 const data = JSON.stringify({ 5832 "id": qrID, 5833 "penerima": $("#properties-nama-penerima").val(), 5834 "kartu_penerima": kartu_penerima, 5835 "kartu_ucapan": kartu_ucapan, 5836 "kartu_pengirim": kartu_pengirim, 5837 "foto": foto, 5838 "video": video, 5839 "productId": "8144957800663", 5840 "order_name": "", 5841 "status": "Cart" 5842 }) 5843 5844 5845 } 5846 5847 async function additem(items){ 5848 try { 5849 let formData = items 5850 if(items?.length) { 5851 formData = { 5852 'items': items 5853 }; 5854 } 5855 5856 const add = await fetch(window.Shopify.routes.root + 'cart/add.js', { 5857 method: 'POST', 5858 headers: { 5859 'Content-Type': 'application/json', 5860 'X-Requested-With':'xmlhttprequest' /* XMLHttpRequest is ok too, it's case insensitive */ 5861 }, 5862 body: JSON.stringify(formData) 5863 }) 5864 5865 const data = await add.json(); 5866 return data 5867 } catch(err){ 5868 console.log('Error additem', err) 5869 } 5870 } 5871 5872 async function addons(){ 5873 let items = [] 5874 $(".addon-item").each(function(){ 5875 const p = $(this) 5876 const props = p.next(".propsAddonSpotify") 5877 const id = $(this).data("id") 5878 const quantity = $(this).data("qty") 5879 const propId = $("#properties-time").val() 5880 let properties = {} 5881 if(id === 46067682607319) { 5882 const link = props.find(".spotifyLinkAddon").text() 5883 const photo = props.find(".spotifyFotoAddon").text() 5884 const song = props.find(".spotifySongAddon").text() 5885 const artist = props.find(".spotifyArtistAddon").text() 5886 properties = { 5887 id: propId, 5888 "Spotify Link": link !== '' ? link : '-', 5889 "Spotify Photo": photo !== '' ? photo : '-', 5890 "Spotify Song": song !== '' ? song : '-', 5891 "Spotify Artist": artist !== '' ? artist : '-', 5892 type: 'addon' 5893 } 5894 } else { 5895 properties = { 5896 "id": propId, 5897 "type": "addon" 5898 } 5899 } 5900 items.push({ 5901 id, 5902 quantity, 5903 properties 5904 }) 5905 }) 5906 return items 5907 } 5908 5909 async function propItems() { 5910 let props = {} 5911 $("[data-properties]").each(function(e){
5912 let elementType = this.tagName; 5913 const k = $(this).data("properties") 5914 if(k !== 'penerima' && k !== 'ucapan' && k !== 'pengirim' && k !== 'nama-penerima' && k !== 'alamat-penerima' && k !== 'telepon-penerima' && k !== 'company' && k !== 'province' && k !== 'foto-alamat' && k !== 'papan-logo') { 5915 const v = elementType === 'SELECT' ? $(this).find(":selected").val() : $(this).val(); 5916 if(v !== '') { 5917 props[k] = v?.replace(/[\s\n]/g, ''); 5918 } 5919 } 5920 }) 5921 return props 5922 } 5923 5924 async function showPopupCart(items){ 5925 if(productType !== '') { 5926 console.log("clarity event " + productType + ' completeOrder') 5927 window.clarity("event", `${productType} completeOrder`) 5928 // window.clarity("set", productType, `completeOrder - ${productDate}`) 5929 } 5930 $("#popupCart").show() 5931 5932 $(".propDeliveryCity").text($("#cities").val()) 5933 $(".propDeliveryDate").text($("#propDeliveryDate").val()) 5934 $(".propDeliveryTime").text($("#propDeliveryTime").val()) 5935 $(".propDeliveryName").text($("[data-properties=nama-penerima]").val()) 5936 $(".propDeliveryAddress").text($("[data-properties=alamat-penerima]").val()) 5937 $(".propDeliveryPhone").text($("[data-properties=telepon-penerima]").val()) 5938 $(".propDeliveryProv").text($("#province").val()) 5939 $(".propDeliveryZip").text($("#zip").val()) 5940 5941 5942 5943 const addons = [] 5944 if(items && items.length > 0) { 5945 for(let i = 1; i < items.length; i++) { 5946 const spotifyLink = items[i].properties['Spotify Link'] 5947 const spotifyPhoto = items[i].properties['Spotify Photo'] 5948 const spotifySong = items[i].properties['Spotify Song'] 5949 const spotifyArtist = items[i].properties['Spotify Artist'] 5950 const price = items[i].price / 100 5951 const props = spotifyLink ? `<div class="propsAddonCart row m-0"> 5952 <div class="col-12 col-lg-2"></div> 5953 <div class="col-12 col-lg-10"> 5954 <p> 5955 <span>spotify link</span> 5956 <span>${spotifyLink}</span> 5957 </p> 5958 <p> 5959 <span>Upload Photo</span> 5960 <span>${spotifyPhoto}</span> 5961 </p> 5962 <p> 5963 <span>song / playlist name</span> 5964 <span>${spotifySong}</span> 5965 </p> 5966 <p> 5967 <span>artist name</span> 5968 <span>${spotifyArtist}</span> 5969 </p> 5970 </div> 5971 </div>` : ''; 5972 addons.push(`<div class="row m-0"> 5973 <div class="imgAddonCart col-2"> 5974 <img 5975 width="43" 5976 src="${items[i].image}" 5977 alt="" 5978 > 5979 </div> 5980 <div class="imgAddonTitlePrice col-10 align-self-center"> 5981 <div class="row justify-content-between m-0"> 5982 <div class="col-12 col-lg-8"> 5983 <h5>${items[i].title}</h5> 5984 </div> 5985 <div class="col-12 col-lg-4 text-lg-right"> 5986 <span>${rupiah.format(price)}</span> 5987 </div> 5988 </div> 5989 </div> 5990 </div>${props}`) 5991 } 5992 } 5993 // console.log(addons) 5994 if(addons.length === 0) { 5995 $(".itemAddonCart").hide() 5996 return 5997 } 5998 $(".toggleAddonCart h4").text(`add-ons (${items.length - 1})`) 5999 $(".wrapperItemAddonCart").html(addons) 6000 } 6001 6002 const money = (money) => { 6003 return new Intl.NumberFormat('id-ID', 6004 { style: 'currency', currency: 'IDR', minimumFractionDigits: 0 } 6005 ).format(money); 6006 } 6007 6008 async function showNoteMoney() { 6009 let qty50k = $("[data-properties='Uang 50k']").val() 6010 let qty100k = $("[data-properties='Uang 100k']").val() 6011 const total50k = Number(qty50k) * 50000 6012 const total100k = Number(qty100k) * 100000 6013 const total_all = total50k + total100k 6014 $(".prop50k").html(`<span>${qty50k} Lembar: <strong class="pl-1">${money(total50k)}</strong></span>`) 6015 $(".prop100k").html(`<span>${qty100k} Lembar: <strong class="pl-1">${money(total100k)}</strong></span>`) 6016 $(".itemMoney").html(`<p>For the money arrangement, please transfer <strong>IDR ${money(total_all)}</strong> to <strong>Bank Mandiri 1020001234522 (PT Modern Mekar Abadi)</strong> and contact our <a href="https://lingkaransetan.com/pub/d7/" target="_blank" style="text-decoration: underline;
6016 color: #8d3f2d">Customer Service</a> to confirm with proof of payment.</p>`) 6017 } 6018 6019 async function removeImage() { 6020 const data = JSON.stringify({ 6021 "ID": $("#properties-properties-qrId").val(), 6022 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6023 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6024 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6025 "Nama Penerima": $("#properties-nama-penerima").val(), 6026 "Order Number":"", 6027 "Status":"Product", 6028 "Foto": "", 6029 "Media": $("#properties-video").val(), 6030 "Image": "8144957800663" 6031 }) 6032 const remove = updateCard(data) 6033 if(remove) { 6034 $(this).hide() 6035 $("#properties-photo").val("-") 6036 $(".placeholder-image").show() 6037 $(".preview-image").attr("src", "") 6038 } 6039 } 6040 6041 async function removeVideo() { 6042 const data = JSON.stringify({ 6043 "ID": $("#properties-properties-qrId").val(), 6044 "Kartu Nama Penerima": $("#properties-kartu-nama-penerima").val(), 6045 "Kartu Nama Pengirim": $("#properties-kartu-nama-pengirim").val(), 6046 "Kartu Ucapan": $("[data-properties=ucapan]").val(), 6047 "Nama Penerima": $("#properties-nama-penerima").val(), 6048 "Order Number":"", 6049 "Status":"Product", 6050 "Foto": $("#properties-photo").val(), 6051 "Media": "", 6052 "Image": "8144957800663" 6053 }) 6054 const remove = updateCard(data) 6055 if(remove) { 6056 $("#properties-video").val("-") 6057 $(this).find("img").hide() 6058 $(this).hide() 6059 $(this).prev("p").text("Add video to make it more special (optional)") 6060 $("#label-input-video").show() 6061 $("#label-input-video span").text("Upload Video") 6062 $(".case-video-preview p span").remove() 6063 } 6064 } 6065 6066 async function loadItemOccasion(t, occasion) { 6067 const name = occasion?.replace('greeting-card-', '') 6068 $("#kartu-ucapan").val("") 6069 $("[data-occassion]").removeClass("selected") 6070 $("[data-properties=ucapan]").val("") 6071 $("#save-card").attr("disabled", true) 6072 t.addClass("selected") 6073 $("#show_note").attr("data-card-occassion", name) 6074 $.get(`https://outerbloom.com/collections/${occasion}/products.json`, function(data, status){ 6075 const products = data.products 6076 const html = [] 6077 for(let i = 0; i < products.length; i++) { 6078 const id = products[i].id 6079 const variantId = products[i].variants[0].id 6080 const img = products[i].images[0].src 6081 const title = products[i].title 6082 const price = products[i].variants[0].price 6083 const qty = products[i].variants[0].inventory_quantity 6084 const body = `<div class="item-card${price < 1 ? ' free' : ' nofree'}${i === 0 ? ' selected' : ''}" data-id=${id}> 6085 <label for="card-${variantId}"></label> 6086 <div class="card-image"> 6087 <img src="${img}" alt="${title}" width="" height="" /> 6088 </div> 6089 <div class="card-meta text-center"> 6090 <h5>${title}</h5> 6091 <p>${price < 1 ? 'FREE' : rupiah.format(price)}</p> 6092 <input id="card-${variantId}" type="radio" name="id" value="${variantId}" data-price="${price}"> 6093 </div> 6094 </div>` 6095 html.push(body) 6096 } 6097 const withoutCard = `<div class="item-card item-without-card"> 6098 <label for="card-0"></label> 6099 <div class="card-image"> 6100 <img src="https://cdn.shopify.com/s/files/1/1589/6833/t/129/assets/without-card.png?v=1747632283" alt="Without card" width="" height="" /> 6101 </div> 6102 <div class="card-meta text-center"> 6103 <h5>
6103Send without a greeting card</h5> 6104 <input id="card-0" type="radio" name="id" value="" data-price=""> 6105 </div> 6106 </div>` 6107 $("#itemCards .items-card").html(html.length === 0 ? '<p>No Item available</p>' : html.join("")) 6108 }); 6109 } 6110 6111 $(document).ready(function(){ 6112 6113 // Observer to auto-trigger addon loading when addon section becomes visible 6114 const addonObserver = new MutationObserver(function(mutations) { 6115 mutations.forEach(function(mutation) { 6116 const target = $(mutation.target) 6117 if(target.hasClass('purchaseAddon') && mutation.type === 'attributes' && mutation.attributeName === 'class') { 6118 if(!target.hasClass('hide')) { 6119 // Addon section just became visible, ensure items are loaded 6120 setTimeout(function() { 6121 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6122 console.log("Auto-triggering addon load...") 6123 $("[data-addon=upsell-all]").trigger("click") 6124 } 6125 }, 150) 6126 } 6127 } 6128 }) 6129 }) 6130 6131 // Start observing addon section 6132 const addonSection = document.querySelector('.purchaseAddon') 6133 if(addonSection) { 6134 addonObserver.observe(addonSection, { 6135 attributes: true, 6136 attributeFilter: ['class'] 6137 }) 6138 } 6139 6140 $(".purchasePopup").delegate("#addtocart-card", "click", async function(){ 6141 6142 $(this).find("span").addClass("loading") 6143 let isValid = true 6144 $(".formAddressPurchase [required]").each(function(){ 6145 const t = $(this) 6146 const input = t.val() 6147 const p = t.parent() 6148 if(input === '') { 6149 p.addClass("error") 6150 isValid = false 6151 } 6152 }) 6153 6154 if(!isValid) { 6155 $(this).find("span").removeClass("loading") 6156 return 6157 } 6158 6159 let items = [] 6160 const mainProps = { 6161 6162 "Delivery Date": $("#propDeliveryDate").val(), 6163 "Delivery Time": $("#propDeliveryTime").val() !== '' ? $("#propDeliveryTime").val() : '-' , 6164 "Kota Pengiriman": $("#cities").val(), 6165 "Nama Penerima": $("[data-properties=nama-penerima]").val() !== '' ? $("[data-properties=nama-penerima]").val() : '-' , 6166 "Alamat Penerima": $("[data-properties=alamat-penerima]").val() !== '' ? $("[data-properties=alamat-penerima]").val() : '-' , 6167 "Kodepos": $("#zip").val() !== '' ? $("#zip").val() : '-' , 6168 "Telepon Penerima": $("[data-properties=telepon-penerima").val() !== '' ? $("[data-properties=telepon-penerima").val() : '-' , 6169 6170 6171 "Papan Nama Penerima": $("[data-properties=penerima]").val() !== '' ? $("[data-properties=penerima]").val() : '-' , 6172 "Papan Ucapan": $("[data-properties=ucapan]").val() !== '' ? $("[data-properties=ucapan]").val() : '-' , 6173 "Papan Nama Pengirim": $("[data-properties=pengirim]").val() !== '' ? $("[data-properties=pengirim]").val() : '-' , 6174 "Papan Logo": $("[data-properties=papan-logo]").val() !== '' ? $("[data-properties=papan-logo]").val() : '-' , 6175 "Foto Alamat": $("[data-properties=foto-alamat]").val() !== '' ? $("[data-properties=foto-alamat]").val() : '-' , 6176 6177 6178 "Province": $("#province").val() !== '' ? $("#province").val() : '-' , 6179 "Country": $("#properties-kota-pengiriman-country").val() !== '' ? $("#properties-kota-pengiriman-country").val() : '-' , 6180 "Shipping": $("#properties-shipping").val() !== '' ? $("#properties-shipping").val() : '-' , 6181 "Company": $("[data-properties=company]").val() !== '' ? $("[data-properties=company]").val() : '-' , 6182 "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6183 "type": 'product' 6184 } 6185 const props = await propItems() 6186 properties = {...mainProps, ...props }; 6187 const id = $("#productSelect").find('option:selected').val() 6188 console.log(id, 'main ID') 6189 const mainItem = { 6190 id: Number(id), 6191 quantity: 1, 6192 properties 6193 } 6194 items.push(mainItem) 6195 const cardId = $("#itemCards").find(".selected input").val() 6196 const cardItem = { 6197 id: Number(cardId), 6198 quantity: 1, 6199 properties: { "id": $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', type: 'card' } 6200 } 6201 console.log(cardId, 'cardId') 6202 if(cardId) { 6203 items.push(cardItem) 6204 } 6205 const addon = await addons() 6206 if(addon) { 6207 for(let i = 0;
6207 i < addon.length; i++){ 6208 items.push({ 6209 id: addon[i].id, 6210 quantity: addon[i].quantity, 6211 properties: addon[i].properties 6212 }) 6213 } 6214 } 6215 const addItems = await additem(items) 6216 console.log(addItems.items, 'add items') 6217 if(addItems) { 6218 $(this).find("span").removeClass("loading") 6219 disablePopup() 6220 showPopupCart(addItems.items) 6221 6222 localStorage.setItem("items", JSON.stringify(addItems.items)) 6223 } 6224 }) 6225 6226 $("#addtocart-cart .btn").click(async function(){ 6227 const id = $("#productSelect").find('option:selected').val() 6228 const mainProps = { 6229 id: $("#properties-time").val() !== '' ? $("#properties-time").val() : '-', 6230 type: 'product' 6231 } 6232 const props = await propItems() 6233 const properties = { ...mainProps, ...props }; 6234 const items = { 6235 id: Number(id), 6236 quantity: 1, 6237 properties 6238 } 6239 const addItems = await additem(items) 6240 if(addItems) { 6241 showPopupCart(addItems.items) 6242 localStorage.setItem("items", JSON.stringify(addItems)) 6243 } 6244 }) 6245 6246 $(".formAddressPurchase [required]").change(function(){ 6247 const t = $(this) 6248 const p = t.parent() 6249 const v = t.val() 6250 if(v !== '') { 6251 p.removeClass("error") 6252 } 6253 }) 6254 6255 $("#save-card").click(async function(){ 6256 const parent = $(this).parents(".sectionPurchase") 6257 const next = parent.next(".sectionPurchase") 6258 $(this).find("span").addClass("loading") 6259 const card = await saveCard() 6260 console.log(card, 'ssaveCCC') 6261 if(card?.status === 200 || card?.status === 201) { 6262 $(".scanCard").removeClass("hide") 6263 $(this).find("span").removeClass("loading") 6264 parent.addClass("hide") 6265 next.removeClass("hide") 6266 if(next.hasClass("purchaseAddon")) { 6267 $("[data-addon=upsell-all]").click() 6268 console.log("clarity event addons") 6269 window.clarity("event", `${productType} add-ons`) 6270 // Ensure addon items are loaded when entering addon popup 6271 setTimeout(function() { 6272 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6273 $("[data-addon=upsell-all]").trigger("click") 6274 } 6275 }, 100) 6276 } 6277 if(next.hasClass("purchaseAddress")) { 6278 $("#zip").select2() 6279 } 6280 } 6281 }) 6282 6283 $("#skip-card").click(async function(){ 6284 $("#greetingCard [data-properties]").val("") 6285 $("#properties-photo").val("") 6286 $("#properties-video").val("") 6287 const parent = $(this).parents(".sectionPurchase") 6288 const next = parent.next(".sectionPurchase") 6289 parent.addClass("hide") 6290 next.removeClass("hide") 6291 // $("#itemCards").html("") 6292 removeImage() 6293 removeVideo() 6294 if(next.hasClass("purchaseAddon")) { 6295 $("[data-addon='upsell-all']").click() 6296 console.log("clarity event addons") 6297 window.clarity("event", `${productType} add-ons`) 6298 // Ensure addon items are loaded when entering addon popup 6299 setTimeout(function() { 6300 if($("#itemAddons .row").children().length === 0 || $("#itemAddons .row").text().includes("No Item available")) { 6301 $("[data-addon='upsell-all']").trigger("click") 6302 } 6303 }, 100) 6304 } 6305 if(next.hasClass("purchaseAddress")) { 6306 $("#zip").select2() 6307 } 6308 }) 6309 6310 $("#msgCard").click(async function(){ 6311 $(this).parent().addClass("loading") 6312 let occasion = $(".selected[data-occassion]").data("occassion") 6313 occasion = occasion?.replace("greeting-card-", "") 6314 const { data } = await getFetch(`${host}/api/card/template/occasion?name=${occasion}`); 6315 const d = data?.data 6316 for(let i = 0; i < d.length; i++) { 6317 const num = Math.floor(Math.random() * (d.length - 1 + 1) + 1); 6318 const greeting = d[num]?.Greeting 6319 $(".greetingCard textarea").val(greeting) 6320 $(this).parent().removeClass("loading") 6321 } 6322 $("#save-card").attr("disabled", false) 6323 }) 6324 6325 $(".sectionPurchaseBoard .next-purchase-button").click(function(){ 6326 const parent = $(this).parents(".sectionPurchase") 6327 const next = parent.next(".sectionPurchase") 6328 parent.addClass("hide") 6329 next.removeClass("hide") 6330 }) 6331 6332 $("#editCard").click(function(){ 6333 $(".custom-card").show() 6334 $(".preview-card").hide() 6335 }) 6336 6337 $("#first_name, #last_name").change(function(){ 6338 const v = $(this).val() 6339 const first_name = $("#first_name").val() 6340 const last_name = $("#last_name").val() !== '' ? ' ' + $("#last_name").val() : '' 6341 $("[data-properties=nama-penerima]").val(first_name+last_name) 6342 }) 6343 6344 $("[data-occassion]").click(function(){ 6345 const t = $(this) 6346 const p = t.parents(".sectionPurchase") 6347 // $(".greetingCard").addClass("disabled") 6348 const occasion = t.data("occassion") 6349 loadItemOccasion(t, occasion) 6350 }) 6351 6352 $("#itemCards").delegate(".item-card:not(.item-without-card) label", "click", function(){ 6353 const id = $(this).parent(".item-card").data("id") 6354 const t = $(this).parent(".item-card") 6355 const target = t.find("input") 6356 const v = $('.item-card input[type="radio"]:checked').val(); 6357 $("#itemCards .item-card").removeClass("selected") 6358 t.addClass("selected") 6359 $("#itemCards .item-card").find("input").attr("name", "") 6360 if(target.length > 0) { 6361 target.attr("name", "id[]") 6362 $("#properties-card").val(id) 6363 $(".greetingCard").removeClass("disabled") 6364 $("#skip-card").attr("disabled", false) 6365 } else { 6366 $("#properties-card").val("") 6367 } 6368 }) 6369 6370 $("#itemCards").delegate(".item-without-card label", "click", function(){ 6371 const parent = $(this).parents(".sectionPurchase") 6372 const next = parent.next(".sectionPurchase") 6373 $(".greetingCard").addClass("disabled") 6374 parent.addClass("hide") 6375 next.removeClass("hide") 6376 $("[data-addon=upsell-all]").click() 6377 $("#zip").select2() 6378 }) 6379 6380 $("[data-properties=ucapan]").keyup(function(){ 6381 const v = $(this).val() 6382 const p = $(this).parents(".sectionPurchase") 6383 $(".purchaseAddress").find(".greetingCard textarea").val(v) 6384 if(v.length > 3) { 6385 p.find(".next-purchase-button").attr("disabled", false) 6386 } else { 6387 p.find(".next-purchase-button").attr("disabled", true) 6388 } 6389 }) 6390 6391 $("[data-properties=penerima]").keyup(function(){ 6392 const v = $(this).val() 6393 $(".purchaseAddress").find("[data-properties=penerima]").val(v) 6394 }) 6395 6396 $("[data-properties=pengirim]").keyup(function(){ 6397 const v = $(this).val() 6398 $(".purchaseAddress").find("[data-properties=pengirim]").val(v) 6399 }) 6400 6401 $(document).click(function(e){
6402 6403 if($(e.target).closest('.wrapperPopupCart').length != 0) return false; 6404 // $('#popupCart').fadeOut('slow'); 6405 // location.reload() 6406 }); 6407 6408 $(".toggleAddonCart").click(function(){ 6409 const p = $(this).parent(".itemAddonCart") 6410 p.toggleClass("open") 6411 }) 6412 6413 $(".btnViewCart").click(function(){ 6414 window.location.href = "https://outerbloom.com/cart"; 6415 }) 6416 6417 $(".btnViewCheckout").click(async function(){ 6418 $(this).find("span").addClass("loading") 6419 let zip = $("#zip").val() 6420 const first_name = $("#first_name").val() 6421 const last_name = $("#last_name").val() 6422 const company = $("#company").val() !== '' ? $("#company").val() : '' 6423 const address1 = $("#delivery_address").val() 6424 const address2 = zip && zip !== '' ? zip?.split(' - ')[1] : '' 6425 zip = zip && zip !== '' ? zip?.split(' - ')[0] : '' 6426 const phone = $("#recipient_number").val() 6427 const city = $("#cities").val() 6428 const province = $("#province").val() 6429 const country = 'Indonesia' 6430 const ver = Date.parse(new Date()) 6431 const params = `checkout[email]=&checkout[shipping_address][first_name]=${first_name}&checkout[shipping_address][last_name]=${last_name}&checkout[shipping_address][company]=${company}&checkout[shipping_address][address1]=${address1}&checkout[shipping_address][address2]=${address2}&checkout[shipping_address][city]=${city}&checkout[shipping_address][country]=${country}&checkout[shipping_address][province]=${province}&checkout[shipping_address][zip]=${zip}&checkout[shipping_address][phone]=${phone}&v=${ver}` 6432 6433 const clear = await fetch(`/cart/clear.js`, {method: 'POST'}) 6434 if(clear.status === 200) { 6435 const savedItem = window.localStorage.getItem("items"); 6436 const items = JSON.parse(savedItem) 6437 const addItems = await additem(items) 6438 console.log(addItems, 'new addItems') 6439 if(addItems) { 6440 window.location.href = `https://outerbloom.com/checkout?${params}`; 6441 } 6442 } 6443 }) 6444 6445 $(".btnContinueShopping").click(function(){ 6446 window.location.href = "https://outerbloom.com/"; 6447 }) 6448 6449 if (isIOS) { 6450 $(".empty-state-card").click(function(){ 6451 $("#input-foto").trigger("click") 6452 }) 6453 $(".btn-upload-image").click(function(){ 6454 $("#input-foto").trigger("click") 6455 }) 6456 $("[for=input-video]").click(function(){ 6457 $("#input-video").trigger("click") 6458 }) 6459 $(".btn-upload-papan").click(function(){ 6460 $("#logoPapan").trigger("click") 6461 }) 6462 } 6463 6464 $("[data-properties]").each(function(){ 6465 const select = $(this).parents(".form-group").find("select") 6466 $(this).change(function(){ 6467 const name = $(this).data("properties") 6468 const v = $(this).val() 6469 if (name == 'telepon-penerima') { 6470 let phone = v.replace(/[^0-9]/g, '') 6471 $(this).val(phone); 6472 $("#properties-telepon-penerima").val(phone) 6473 $('.iti__search-input').val('-') 6474 } else { 6475 $("#properties-" + name).val(v) 6476 } 6477 }) 6478 select.on("change", function(){ 6479 const name = $(this).data("properties") 6480 const v = $(this).val() 6481 $("#properties-" + name).val(v) 6482 }) 6483 }) 6484 6485 $("#show_note").click(function(){ 6486 nameq = $("#properties-nama-penerima").val() 6487 dear = $("#properties-kartu-nama-penerima").val() 6488 card = $("[data-properties=ucapan]").val() 6489 sender = $("#properties-kartu-nama-pengirim").val() 6490 photo = $("#properties-photo").val() 6491 video = $("#properties-video").val() 6492 updateCard(nameq, dear, card, sender, photo, video, status) 6493 }) 6494 6495 $(".remove-image").click(function(e){ 6496 e.preventDefault() 6497 $(this).find("img").show() 6498 removeImage() 6499 }) 6500 6501 $(".remove-media").click(function(e){ 6502 e.preventDefault() 6503 $(this).find("img").show() 6504 removeVideo() 6505 }) 6506 6507 6508 6509 $("[data-delivery_method]").click(function(e){
6510 e.preventDefault() 6511 const t = $(this) 6512 const data = t.data("delivery_method") 6513 $("[data-delivery_method]").removeClass("selected") 6514 t.addClass("selected") 6515 $("#cities").val("") 6516 $("#properties-delivery-date").val("-") 6517 $("#deliveryDate button").removeClass("selected") 6518 $("#full-date").val("Full Calendar ?") 6519 $("#propDeliveryDate").val("") 6520 const step3 = $("#step-3") 6521 if(data.match('PickUp')) { 6522 $(".selfpickup-point").show() 6523 step3.find("[data-finished=false]").hide() 6524 $("#panel-4").hide() 6525 step3.find("[data-finished=true]").show() 6526 $("#cities").attr("required", false) 6527 $("#form-group-city").hide() 6528 $("#row-delivery-time").hide() 6529 $("#propDeliveryTime, #properties-delivery-time, #properties-nama-penerima, #properties-alamat-penerima, #properties-kodepos, #properties-kodepos, #properties-telepon-penerima").val("-") 6530 $("#propDeliveryTime").attr("required", false) 6531 // $("#deliveryDate").find("button:first-child").addClass("stop") 6532 $(".form-selfpickup").show() 6533 $(".form-delivery").hide() 6534 $(".form-delivery").find("input, textarea, select").val("") 6535 $(".form-delivery").find("input, textarea, select").attr("required", false) 6536 $("#properties-shipping").val("0") 6537 $("#noteDeliveryDate").hide() 6538 $(".form-delivery .form-control").attr("required", false) 6539 $("#stepNav4").hide() 6540 6541 $("#deliveryDate").find("button:nth-child(1)").addClass("stop") 6542 6543 6544 6545 if(timeOfDay >= 16.01){ 6546 $("#deliveryDate").find("button:nth-child(2)").addClass("stop") 6547 } 6548 } else { 6549 6550 6551 $("#deliveryDate").find("button:nth-child(1)").removeClass("stop") 6552 step3.find("[data-finished=false]").show() 6553 $("#panel-4").show() 6554 step3.find("[data-finished=true]").hide() 6555 $("#cities").attr("required", true) 6556 $(".selfpickup-point").hide() 6557 $("#form-group-city").show() 6558 $("#cities").val('').trigger('change'); 6559 $("#properties-kota-pengiriman").val("-") 6560 6561 $("#row-delivery-date, #row-delivery-time").show() 6562 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6563 $("#deliveryDate").find("button").removeClass("stop") 6564 $(".form-selfpickup").hide() 6565 $(".form-delivery").show() 6566 $(".form-delivery").find("input, textarea, select").attr("required", true)
6567 $(".form-delivery [data-properties]").attr("readonly", false) 6568 $("#properties-kodepos").val("-") 6569 $("#properties-alamat-penerima").val("-") 6570 $(".form-delivery .form-control").attr("required", true) 6571 $(this).parents(".setup-content").attr("id", "step-1") 6572 6573 $("#stepNav4").show() 6574 } 6575 }) 6576 6577 $("[name=selfpickup]").click(function(){ 6578 const p = $(this).parents(".row-pickup") 6579 const pickupCity = $("input[name='selfpickup']:checked").val(); 6580 const pickupAddress = $("input[name='selfpickup']:checked").data("address"); 6581 const pickupZip = $("input[name='selfpickup']:checked").data("zip"); 6582 6583 $(".row-pickup").removeClass("selected") 6584 p.addClass("selected") 6585 6586 $("#properties-kota-pengiriman").val(pickupCity) 6587 $("#province").val("Jakarta") 6588 $("#properties-alamat-penerima").val(pickupAddress) 6589 $("#properties-kodepos").val(pickupZip) 6590 }) 6591 6592 $("#cities").change(function(e){ 6593 e.preventDefault() 6594 $(this).parent(".row").find("p.error").remove() 6595 $("#full-date").val("Full Calendar") 6596 $("#deliveryDate, #deliveryDateFull label ").show() 6597 $("#deliveryDateFull").removeClass("filled") 6598 $(".btnChangeDeliveryDate").addClass("hide") 6599 $("#full-date").prop('disabled', false); 6600 $("#stepNav2, #stepNav3, #stepNav4").removeClass("btn-success") 6601 $("#stepNav2, #stepNav3, #stepNav4").find("a").attr("disabled", true) 6602 const step3 = $("#step-3") 6603 $("#cityNote").remove() 6604 $("#noteDeliveryDate").hide() 6605 $("#noteDeliveryDate").empty() 6606 let v = $(this).val() 6607 let v2 = $('option:selected', this).attr('data-city'); 6608 let v3 = $('option:selected', this).attr('data-province'); 6609 let price = $('option:selected', this).attr('data-price'); 6610 $("#country").val(v) 6611 $("#properties-kota-pengiriman").val(v) 6612 $("#properties-shipping").val(price) 6613 $("#deliveryDate button, #deliveryTime button, .calendarseasonal .button").removeClass("selected") 6614 $("#properties-delivery-date, #properties-delivery-time").val("-") 6615 $("#propDeliveryDate, #propDeliveryTime").val("") 6616 let note = $('option:selected', this).attr('data-note'); 6617 if(v === 'Kota Lainnya') { 6618 $("#noteDeliveryDate").show() 6619 $("#noteDeliveryDate").text("Order akan segera dikirim. Estimasi tanggal diterima akan disesuaikan dengan waktu pengiriman oleh pihak ekspedisi ke lokasi Anda.") 6620 $("#zip").attr("required", false) 6621 $("#zip").hide() 6622 $("#propDeliveryDate, #propDeliveryTime").attr("required", false) 6623 $("#propDeliveryDate, #properties-delivery-date, #propDeliveryTime, #properties-delivery-time").val("-") 6624 $("#row-delivery-date, #row-delivery-time").hide() 6625 $("#properties-shipping").val("") 6626 // $(this).parents(".setup-content").attr("id", "step-2") 6627 6628 } else { 6629 $("#noteDeliveryDate").hide() 6630 $("#zip").attr("required", true) 6631 $("#zip").show() 6632 $("#row-delivery-date, #row-delivery-time").show() 6633 $("#propDeliveryDate, #propDeliveryTime").attr("required", true) 6634 $("#deliveryDate").find("button").removeClass("stop") 6635 // $(this).parents(".setup-content").attr("id", "step-1") 6636 6637 } 6638 6639 6640 6641 // if(v !== 'Jakarta') { 6642 // $("[data-type=upsell]").hide() 6643 // } else { 6644 // $("[data-type=upsell]").show() 6645 // } 6646 // $('.collection-addons')[0].swiper.update(); 6647 6648 6649 getProvince(v) 6650 $("#zip").html(`<option value="">Choose Postal Code</option>`) 6651 renderZip(v, v2, v3) 6652 6653 disabledSameDay() 6654 6655 6656 if(v !== 'Jakarta' && v !== 'Depok' && v !== 'Bekasi' && v !== 'Tangerang') { 6657 6658 $("#cardOccasion, #navAddon, .collection-addons").hide() 6659 6660 $("[data-addon=giftcard]").show() 6661 $("[data-addon=giftcard]").click() 6662 $("#itemAddons").show() 6663 $("#flower-step").addClass("nonjadetabek") 6664 } else { 6665 $("#cardOccasion, #navAddon, .collection-addons").show() 6666 $("[data-addon=all]").click() 6667 $("#flower-step").removeClass("nonjadetabek") 6668 } 6669 6670 if(v !== '') { 6671 $("#personalizeBtn .btn").attr("disabled", false) 6672 } else { 6673 $("#personalizeBtn .btn").attr("disabled", true) 6674 } 6675 6676 }) 6677 6678 $("#zip").change(function(e){
6679 let v = $(this).val() 6680 var city = $("#cities").find('option:selected'); 6681 $("#properties-kodepos").val(v) 6682 if(city === 'Kota Lainnya') { 6683 $(this).attr("required", true) 6684 $("#recipient-address").val("") 6685 } 6686 }) 6687 6688 6689 var minDate = +7 6690 6691 6692 6693 $("#full-date").datepicker({ 6694 minDate, 6695 dateFormat: 'Mdd_yy', //Nop22_2021, 6696 6697 beforeShowDay: disabledays, 6698 6699 onSelect: function (date) { 6700 $("#deliveryDate, #deliveryDateFull label ").hide() 6701 $("#deliveryDateFull").addClass("filled") 6702 $(".btnChangeDeliveryDate").removeClass("hide") 6703 $("#full-date").prop('disabled', true); 6704 $('#propDeliveryDate, #properties-delivery-date').val('Kirim_'+date); 6705 $(".date-full").addClass("selected") 6706 $(".date-single, .calendar-group").removeClass("selected") 6707 $("#propDeliveryTime").val('') 6708 $("#properties-delivery-time").val('-') 6709 $(".time-single").removeClass("selected") 6710 6711 6712 } 6713 }); 6714 6715 $(".btnChangeDeliveryDate").click(function(){ 6716 $("#deliveryDate, #deliveryDateFull label ").show() 6717 $("#deliveryDateFull").removeClass("filled") 6718 $(".btnChangeDeliveryDate").addClass("hide") 6719 $("#full-date").prop('disabled', false); 6720 }) 6721 6722 $("#deliveryDate").delegate(".calendarbutton:not(.date-full)", "click", function(e){ 6723 e.preventDefault() 6724 $(this).parents("#row-delivery-date").find("p.error").remove() 6725 const fulldate = $(this).data("fulldate") 6726 const day = $(this).data("day") 6727 const date = $(this).data("date")
6728 const month = $(this).data("month") 6729 const year = $(this).data("year") 6730 const off_pagi = $(this).data("offpagi") 6731 const off_siang = $(this).data("offsiang") 6732 const off_Malam = $(this).data("offMalam") 6733 $(".calendarbutton").removeClass("selected") 6734 $(this).addClass("selected") 6735 $("#propDeliveryDate, #properties-delivery-date").val(`Kirim_${month}${date}_${year}`) 6736 $("#propDeliveryTime").val('') 6737 $("#properties-delivery-time").val('-') 6738 $(".calendarbutton2").removeClass("selected") 6739 $("#full-date").val("Full Calendar") 6740 6741 6742 if(off_pagi && timeOfDay > off_pagi) { 6743 $("[data-time=Morning]").attr("disabled", true) 6744 } else { 6745 $("[data-time=Morning]").attr("disabled", false) 6746 } 6747 if(off_siang && timeOfDay > off_siang) { 6748 $("[data-time=Afternoon]").attr("disabled", true) 6749 } else { 6750 $("[data-time=Afternoon]").attr("disabled", false) 6751 } 6752 6753 6754 6755 }) 6756 6757 if(today === 14 && timeOfDay > 17.00) { 6758 $("#deliveryDate button:first-child").attr("disabled", true) 6759 } 6760 6761 $("#deliveryTime").delegate(".calendarbutton2", "click", function(e){ 6762 e.preventDefault() 6763 const time = $(this).data("time") 6764 const date = $("#propDeliveryDate").val() 6765 if(date == '') { 6766 return alert('Silakan pilih tanggal terlebih dahulu') 6767 } 6768 $(".calendarbutton2").removeClass("selected") 6769 $(this).addClass("selected") 6770 $("#propDeliveryTime, #properties-delivery-time").val(`KirimJam_${date.replace('Kirim_','')}_${time}`) 6771 }) 6772 6773 $('textarea.has-limit, input.has-limit').keyup(function () { 6774 max = this.getAttribute("maxlength"); 6775 let len = $(this).val().length; 6776 let limit = $(this).siblings(".limit"); 6777 if (len > max) { 6778 alert('you have reached the limit'); 6779 } else { 6780 limit.text(`${len}/${max}`); 6781 } 6782 }); 6783 6784 $("#button-action-step .btn").click(function(){ 6785 $(this).find("span").text("Processing..."); 6786 }); 6787 6788 $(".finishBtn").on('click', function() { 6789 $(this).addClass("is-adding"); 6790 // $(this).click(); 6791 }); 6792 6793 $('.setup-panel .nav-item a.btn-success').trigger('click'); 6794 6795 $("#button-action .btn").click(function(){ 6796 $("#flower-step").addClass("block"); 6797 $("#button-action").hide(); 6798 }); 6799 6800 $(".close-how-order").click(function(){ 6801 $("#flower-step").removeClass("block"); 6802 $("#button-action").show(); 6803 }); 6804 6805 $("#input-foto, #input-video").change(function(e){ 6806 readURL(this); 6807 }); 6808 6809 $("#logoPapan").change(function(){ 6810 readURLPapan(this); 6811 }); 6812 6813 $("#address-upload").change(async function(){ 6814 const upload_address = await readURLAddress(this) 6815 if(upload_address) { 6816 const url = upload_address.url 6817 $(".props-address-upload").val(url) 6818 $(".form-address").addClass("address-uploaded") 6819 $(".form-address-upload").addClass("uploaded") 6820 6821 $(this).parents(".form-group").siblings(".form-group").find("[required]").attr("required", false) 6822 } 6823 }) 6824 6825 $(".address-manualy").click(function(){ 6826 $(".form-address-upload").removeClass("uploaded"); 6827 $(".photo-address").hide(); 6828 $(".form-address").removeClass("address-uploaded") 6829 $("#formAddressPurchase").find(".form-control").attr("required", true) 6830 }); 6831 6832 $(".case-video-preview").delegate(".replace-video", "click", function(){ 6833 $("#input-video").trigger("click") 6834 }) 6835 6836 $('.date-single').click(function(e) { 6837 e.preventDefault(); 6838 $('.date-single').removeClass('selected'); 6839 $('#full-date').removeClass('selected'); 6840 $(this).addClass('selected'); 6841 $('#full-date').html('Full' + '<br/>' + 'Calendar'); 6842 }); 6843 $('#full-date').click(function(e){ 6844 e.preventDefault(); 6845 $('.date-single').removeClass('selected'); 6846 $(this).addClass('selected'); 6847 }); 6848 6849 // $("tr").each(function(){ 6850 // if($(this).text().match('SKU')) { 6851 // $(".sku-product").html($(this).parents("table").html()) 6852 // } 6853 // }) 6854 6855 $("#product-image").scroll(function(){ 6856 $(".desc-add").each(function(){ 6857 const img = $(this).find("img") 6858 const src = img.data("src") 6859 img.attr("src", src) 6860 }) 6861 }) 6862 6863 $(".product-fixed").hide() 6864 6865 let target = $("#personalizeBtn") 6866 6867 6868 $(".product-meta").scroll(function() { 6869 if ($(window).scrollTop() >= target.offset().top ) { 6870 $(".product-fixed").addClass("show") 6871 } else { 6872 $(".product-fixed").removeClass("show") 6873 } 6874 }); 6875 6876 $(window).scroll(function() { 6877 if ($(window).scrollTop() >= target.offset().top ) { 6878 $(".product-fixed").addClass("show") 6879 } else { 6880 $(".product-fixed").removeClass("show") 6881 } 6882 }); 6883 }); 6884 </script>
6884 6885 6886
6886<script> 6887 // 6888 </script>
6888 6889 6890
6890<script> 6891 $(document).ready(function(){ 6892 $('table tr td').each(function(){ 6893 var texto = $(this).text(); 6894 var nextto = $(this).next("td"); 6895 var sku = $("#data-sku").val() 6896 if(texto == 'SKU'){ 6897 nextto.text(sku) 6898 } 6899 }); 6900 6901 $(".stamped-summary-actions-newquestion").text("Tulis Pertanyaan"); 6902 $(".stamped-summary-actions-newreview").text("Tulis Review"); 6903 $("#tab-questions").text("Pertanyaan"); 6904 6905 $(".freeship .icon").click(function(){ 6906 $(".fs-content").slideToggle(); 6907 $(this).parents(".freeship").toggleClass("expand"); 6908 }); 6909 6910 var $easyzoom = $('.easyzoom').easyZoom(); 6911 // Setup thumbnails example 6912 var api1 = $easyzoom.filter('.easyzoom--with-thumbnails').data('easyZoom'); 6913 $('.thumbnails').on('click', 'a', function(e) { 6914 var $this = $(this); 6915 e.preventDefault(); 6916 // Use EasyZoom's `swap` method 6917 api1.swap($this.data('standard'), $this.attr('href')); 6918 }); 6919 6920 $('#playerID').click(function(){ 6921 var videoURL = $('#VdoID').attr('src'), 6922 dataplay = $('#VdoID').attr('data-play'); 6923 6924 //for check autoplay 6925 //if not set autoplay=1 6926 if(dataplay == 0 ){ 6927 $('#VdoID').attr('src',videoURL+'?autoplay=1'); 6928 $('#VdoID').attr('data-play',1); 6929 } 6930 else{ 6931 var videoURL = $('#VdoID').attr('src'); 6932 videoURL = videoURL.replace("?autoplay=1", ""); 6933 $('#VdoID').prop('src',''); 6934 $('#VdoID').prop('src',videoURL); 6935 6936 $('#VdoID').attr('data-play',0); 6937 } 6938 6939 }); 6940 6941 $(".product-photo-thumb-video").click(function(e){ 6942 e.preventDefault(); 6943 6944 var newEmbed = $(this).attr('href'); 6945 $("#featured-image-product").addClass("img-video"); 6946 $("#ProductPhotoImg").hide(); 6947 $("#featured-image-product .video").show(); 6948 $("#featured-image-product iframe").attr('src', newEmbed); 6949 $("#VdoID")[0].src += "&autoplay=1"; 6950 }); 6951 $(".product-single__thumbnail").click(function(evt){ 6952 evt.preventDefault(); 6953 $("#featured-image-product").removeClass("img-video"); 6954 $("#ProductPhotoImg").show(); 6955 $("#featured-image-product .video").hide(); 6956 $("#featured-image-product iframe").attr('src', ''); 6957 }); 6958 6959 if($('#product-meta .short-desc > div').length >= 1){ 6960 //console.log('div detected') 6961 var replacer = $('#product-meta .short-desc > div').contents(); 6962 $('#product-meta .short-desc > div').replaceWith(replacer); 6963 6964 var cAssured = $('.c-assured').detach(); 6965 cAssured.insertAfter('.meta-sds .stock-info'); 6966 } 6967 6968 6969 6970 $(".heading-toggle").click(function(){ 6971 $(this).parent().toggleClass("open") 6972 6973 }); 6974 }); 6975 </script>
6975 6976 6977 6978
6978<script type="application/json" id="ProductJson-Product"> 6979 6980 {"id":8144957800663,"title":"Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJACKTOTO telah berhasil menjadi pusat hiburan situs toto penyedia game togel 4d ekslusif hari ini. Join now dengan menekan tombol join now yang telah disediakan untuk menikmati keseruan dan keuntungannya setiap hari."} 6981 </script>
6981 6982 6983
6983<script type="application/json" id="VariantJson-Product"> 6984 [ 6985 6986 { 6987 "incoming": false, 6988 "next_incoming_date": null 6989 } 6990 6991 ] 6992 </script>
6992 6993 6994 6995 6996 6997 </div> 6998 6999 7000
7000<script src="//outerbloom.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
7000 7001 <style> 7002 .stamped-review-header-title, 7003 .stamped-review-header .author, 7004 .stamped-review-content-body, 7005 .stamped-sort-select, 7006 .stamped-review-header .verified-badge[data-type=buyer]:after, 7007 .stamped-review-header-byline, 7008 .stamped-review-reply-body {font-size: 14px!important;font-family: 'Barlow',sans-serif!important;} 7009 .stamped-review {margin-bottom: 0;} 7010 .stamped-review-body {padding-left: 65px;} 7011 .stamped-review:first-child {padding-top: 25px;} 7012 .stamped-review-content {clear: none;} 7013 .stamped-review-reply {margin: 15px 0 0 65px;background: #f2f2f2;border-left: none;} 7014 .stamped-review-reply-body {padding-left: 65px;} 7015 .stamped-review-header .author {text-transform: capitalize;} 7016 .stamped-questions .stamped-review-content {padding-left: 65px;} 7017 7018 .stamped-pagination {margin: 20px 0 0;} 7019 .stamped-pagination li {position: initial!important;display: inline-block;position: relative;vertical-align: middle;text-decoration: none;-webkit-tap-highlight-color: transparent;-webkit-box-flex: 0;-moz-box-flex: 0;-ms-flex: 0 0 auto;flex: 0 0 auto;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;background: 0 0;text-transform: none;color: #33373D;font-weight: 400;-webkit-transition: background .1s ease,box-shadow .1s ease,color .1s ease;transition: background .1s ease,box-shadow .1s ease,color .1s ease;border: 1px solid #ccc;border-right: none;margin-bottom: 0;} 7020 .stamped-pagination li a {color: #121212;padding: 13px 18px;vertical-align: middle;display: block;} 7021 .stamped-pagination li.active a {background-color: #ddd;font-weight: 400;} 7022 .stamped-pagination li:hover a {background: #ddd;} 7023 .stamped-pagination .next {border-right: 1px solid #ccc;} 7024 .stamped-pagination li:first-child {border-top-left-radius: 5px;border-bottom-left-radius: 5px;} 7025 .stamped-pagination li:last-child {border-top-right-radius: 5px;border-bottom-right-radius: 5px;} 7026 7027 #stamped-pagination-question span.page {display: inline-block;border: 1px solid #ccc;width: 47px;} 7028 #stamped-pagination-question span {font-size: 14px;} 7029 #stamped-pagination-question .page.active {padding: 12px;font-weight: 400;background: #ddd;} 7030 #stamped-pagination-question a, #stamped-pagination-question .page.active {color: #121212;padding: 13px 18px;vertical-align: middle;display: inline-block;} 7031 .stamped-pagination-deco {color: #121212;padding: 13px 18px;width: 47px;vertical-align: middle;display: inline-block;border: 1px solid #ccc;padding: 12px;} 7032 .stamped-pagination-prev, .stamped-pagination-next {position: inherit;} 7033 .stamped-pagination-prev a, .stamped-pagination-next a {width: auto!important;border: 1px solid #ccc;} 7034 7035 @media (max-width: 480px){ 7036 .stamped-review-reply {margin-left: 0!important;} 7037 select.stamped-sort-select {font-size: 13px!important;} 7038 } 7039 7040 #product-reviews .stamped-summary-ratings, #product-reviews .stamped-summary-actions, .stamped-content { 7041 display: block !important; 7042 } 7043 </style> 7044
7044<script> 7045 var selectCallback = function(variant, selector) { 7046 timber.productPage({ 7047 money_format: "Rp {{amount_no_decimals}}", 7048 variant: variant, 7049 selector: selector 7050 }); 7051 }; 7052 7053 jQuery(function($) { 7054 new Shopify.OptionSelectors('productSelect', { 7055 product: 7056 7057 7058 7059 7060 7061 {"id":8144957800663,"title":"Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal","handle":"blossom-shine","description":"\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eJACKTOTO telah berhasil menjadi pusat hiburan situs toto penyedia game togel 4d ekslusif hari ini. Join now dengan menekan tombol join now yang telah disediakan untuk menikmati keseruan dan keuntungannya setiap hari."}, 7062 onVariantSelected: selectCallback, 7063 enableHistoryState: true 7064 }); 7065 7066 // Add label if only one product option and it isn't 'Title'. Could be 'Size'. 7067 7068 7069 // Hide selectors if we only have 1 variant and its title contains 'Default'. 7070 7071 $('.selector-wrapper').hide(); 7072 7073 }); 7074 </script>
7074 7075 7076 7077 7078
7078<script type="application/ld+json"> 7079 { 7080 "@context": "http://schema.org", 7081 "@type": "Product", 7082 "offers": { 7083 "@type": "Offer", 7084 "availability":"https://schema.org/InStock", 7085 "price": 835000, 7086 "priceValidUntil": "05-10-2025", 7087 "priceCurrency": "IDR", 7088 "url": "https://collegeofnepal.com/" 7089 }, 7090 "brand": { 7091 "@type": "Brand", 7092 "name": "Outerbloom Florist" 7093 }, 7094 "sku": "8144957800663", 7095 "gtin13": "Jawa", 7096 "name": "Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal", 7097 "description": "Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan!", 7098 "category": "Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan!", 7099 "url": "https://collegeofnepal.com/", 7100 "image": { 7101 "@type": "ImageObject", 7102 "url": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7103 "image": "https://outerbloom.com/cdn/shop/files/Blossom-Shine-WM_small.jpg?v=1695788426", 7104 "name": "Pubtogel: Navigasi Online Anti-Ribet | Kecepatan & Kenyamanan Maksimal", 7105 "width": 1024, 7106 "height": 1024 7107 } 7108 } 7109 </script>
7109 7110 7111 7112 7113 7114 7115
7115<script id="bss-ltap-hide-price" type="text/javascript" > 7116 !function(e){var t={};function o(r){if(t[r])return t[r].exports;var c=t[r]={i:r,l:!1,exports:{}};return e[r].call(c.exports,c,c.exports,o),c.l=!0,c.exports}o.m=e,o.c=t,o.d=function(e,t,r){o.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},o.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.t=function(e,t){if(1&t&&(e=o(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(o.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var c in e)o.d(r,c,function(t){return e[t]}.bind(null,c));return r},o.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(t,"a",t),t},o.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},o.p="",o(o.s=0)}([function(e,t,o){"use strict";function r(e){e.ltsp={},function(e){e.ltsp.quickView=function(){document.querySelectorAll(".quickview-button").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementById("add-to-cart-quickview-form");if(e){let t=e.querySelector(".groups-btn");t&&t.remove();let o=e.querySelector(".pieces");o&&o.remove();let r=e.querySelector(".bsscommerce-ltsp-message");r&&r.remove()}if(e=document.querySelector("[data-quickview-modal] .halo-modal-body"),e){let t=e.querySelector(".quantity");t&&t.remove()}}),1e3)}))})),document.querySelectorAll(".shop-now-button").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementById("ShopNowContainer");if(e){let t=e.querySelector("#AddToCart");t&&t.remove()}}),2e3)}))})),document.querySelectorAll(".collection__filter").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-grid-item");if(o){let e=o.querySelector(".btn--quick-view");e&&e.remove()}}}),1500)}))})),document.querySelectorAll(".btn--icon.quick-product__btn").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-grid__content");if(o){let e=o.querySelector(".payment-buttons");e&&e.remove()}}}),2e3)}))})),document.querySelectorAll(".product-facet__aside").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-item");if(o){let e=o.querySelector('form[action="/cart/add"]');e&&e.remove();let t=o.querySelector(".product-item__quick-form");t&&t.remove()}}}),1500)}))})),document.querySelectorAll(".pagination").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-item");if(o){let e=o.querySelector('form[action="/cart/add"]');e&&e.remove();let t=o.querySelector(".product-item__quick-form");t&&t.remove()}}}),1800)}))})),document.querySelectorAll(".collection-filters__sort").forEach((function(e){e.addEventListener("change",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".indiv-product");if(o){let e=o.querySelector('form[action="/cart/add"]');e&&e.remove()}}}),1500)}))}
7116)),document.querySelectorAll(".slideout__drawer-right, .sidebar_leftside_wapper, .filtering__results").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-index");if(o){let e=o.querySelector(".js-quickview-trigger");e&&e.remove()}}}),1500)}))})),document.querySelectorAll("a.product-loop__quickview").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".large--one-half");if(o){let e=o.querySelector(".quick-smart-wrapper");e&&e.remove();let t=o.querySelector("#quantity-container");t&&t.remove();let r=o.querySelector(".js-prod-show-soldout");r&&r.remove()}}}),2e3)}))})),document.querySelectorAll(".quick-product__btn").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-single__meta");if(o){let e=o.querySelector("div.payment-buttons");e&&e.remove()}}}),1e3)}))})),document.querySelectorAll(".btn--load-more").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".grid-view-item");if(o){let e=o.querySelector(".quick-add-button");e&&e.remove()}}}),1e3)}))})),document.querySelectorAll(".quick_shop").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product_section");if(o){let e=o.querySelector(".product_form .shopify-product-form .purchase-details"),t=o.querySelector(".product__details .modal_price .price-ui");e&&e.remove(),t&&t.remove()}}}),1e3)}))})),document.querySelectorAll(".qs-button ").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-info-main");if(o){let e=o.querySelector(".qty-box");e&&e.remove();let t=o.querySelector(".btn.btn-cart");t&&t.remove();let r=o.querySelector(".product-single__sale-price");r&&r.remove();let c=o.querySelector(".product-addto-links");c&&c.remove()}}}),1e3)}))}));let e=document.querySelector("a[data-js-cart-icon]");if(e&&e.addEventListener("click",(function(){let e=document.querySelector(".quick-cart__control");e&&e.remove();let t=document.querySelector(".quick-cart__item-right");t.childNodes[3]&&(t.childNodes[3].innerHTML="Login to seen price")})),document.querySelectorAll(".quick-add-button-variants").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest("#AddToCartForm");if(o){let e=o.querySelector(".paymentButtonsWrapper");e&&e.remove()}}}),1e3)}))})),document.querySelectorAll(".product-thumbnail__quickshop-button").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-details");if(o){let e=o.querySelectorAll(".bsscommerce-ltsp-message");e.length>1&&e.forEach((function(e,t){t>0&&e.remove()}));let t=o.querySelector(".product-form__cart-buttons");t&&t.remove();let r=o.querySelector(".product-form__quantity-box-wrapper");r&&r.remove()}}}),800)}))})),"b2b-dbodhi-singapore.myshopify.com"===window.Shopify.shop){let e=0;const t=window.location.pathname.includes("/collections");let o=!0;const r=function(){const e=setInterval((function(){let e=document.querySelectorAll(".thb-product-detail.product .bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t],r=o.closest(".thb-product-detail.product");if(r){let e=r.querySelector(".product-form");e&&e.remove()}r=o.closest("del"),r&&o.remove()}}),500);setTimeout(()=>{clearInterval(e)},6e3)},c=function(){const c=window.pageYOffset||document.documentElement.scrollTop;(c>e||!t||o)&&(document.querySelectorAll(".product-card-quickview").forEach((function(e){e.removeEventListener("click",r),e.addEventListener("click",r)}
7116)),o=!1),e=c<=0?0:c};if(c(),t){const e=function(){const e=c;let t;return()=>{clearTimeout(t),t=setTimeout(()=>{e.apply(this)},3e3)}};window.addEventListener("scroll",e())}}}}(e),function(e){e.ltsp.removeElementByLTSPMessage=function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message"),t=[],o=window.Shopify.shop;for(let r=0;r<e.length;r++){let c=e[r],l=[".grid-product__on-sale",".product-unit-price",".product-price-unit",".grid-link__sale_price","s",".price__compare",".product__compare-price",".price__unit",".card__price--regular",".sale-tag",".compare-price",".old-price",".savings",".was_price",".price--compare",".price-compare",".was"];if("stark-hockey.myshopify.com"===o){const e=c.closest(".product-index");if(e){const t=e.querySelector(".product-modal");t&&t.remove()}continue}let s=c.closest(".product-parent");if(s){let e=s.querySelector("form .tt-btn-addtocart");e&&t.push(e);let o=s.querySelector(".tt-btn-quickview");o&&t.push(o)}if(s=c.closest(".ProductItem"),s){let e=s.querySelector(".quickshop-btn");if(e&&t.push(e),"shrimptoncouture-com.myshopify.com"===o){let e=s.querySelector(".ProductItem__PriceList");e&&e.classList.remove("ProductItem__PriceList")}}if(s=c.closest(".product-item--vertical"),s){if("sparklinbluewholesale.myshopify.com"===o){let e=s.querySelector(".product-item__info .product-item__price-list");e&&t.push(e)}let e=s.querySelector(".product-item__info .product-item__action-button");e&&t.push(e),e=s.querySelector(".product-form__payment-container"),e&&t.push(e)}if(s=c.closest(".card-wrapper.underline-links-hover"),s&&"friends-forever-pets.myshopify.com"===o){let e=s.querySelector(".card__content .quick-add");e&&t.push(e);let o=s.querySelector(".card-information .price__sale .price-item.price-item--regular");o&&t.push(o)}if(s=c.closest(".modal_price"),s&&window.Shopify&&"casa-barba.myshopify.com"!==window.Shopify.shop&&"prideandgroom-wholesale.myshopify.com"!==window.Shopify.shop){let e=s.querySelector(".price-ui");e&&t.push(e)}if(s=c.closest(".info.has-padding-top"),s){let e=s.querySelector(".compare-at-price");e&&t.push(e)}if(s=c.closest(".product-thumbnail__price.price"),s){let e=s.querySelector(".money");e&&t.push(e)}if(s=c.closest(".search-result__description"),s){let e=s.querySelector(".money");e&&t.push(e)}if(s=c.closest(".product__price"),s){let e=s.querySelector("[data-product-price][bss-custom-ltsp-attribute]");e&&t.push(e)}if(s=c.closest("#template-product"),s){let e=s.querySelector(".product-form.cart-bar__form");e&&t.push(e)}if("showroom1-ducanero.myshopify.com"===o){if(s=c.closest(".product-area")||c.closest(".price"),s){let e=s.querySelector(".price-area")||s.querySelector(".theme-money");e&&t.push(e)}}else if(s=c.closest(".product-area__details"),s){let e=s.querySelector(".product-detail__form__action");e&&t.push(e);let o=s.querySelector(".quantity-wrapper");o&&t.push(o)}if("quincaillerie-euroline.myshopify.com"===o&&(s=c.closest(".product-form__info-content"),s)){let e=s.querySelector(".price-list");e&&t.push(e)}if(s=c.closest(".product-form__buttons"),s&&t.push(s),s=c.closest(".product-wrap-2"),s){let e=s.querySelector(".product-action-2");e&&t.push(e)}if(s=c.closest(".span6"),s){let e=s.querySelector(".purchase>input"),o=s.querySelector(".price-container>#price-preview"),r=s.querySelector(".price-container>.vat-price");e&&t.push(e),o&&t.push(o),r&&t.push(r)}if(s=c.closest(".product__page"),s){let e=s.querySelector(".quantity-selector");e&&t.push(e)}if(s=c.closest(".product_details_info"),s){let e=s.querySelector(".pro-detail-button"),o=s.querySelector(".price-box");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".product-content"),s){let e=s.querySelector(".product-action");e&&t.push(e)}if(s=c.closest(".product-view .single-product-wrap"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".collection-category .owl-stage .owl-item"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".product__details"),s){let e=s.querySelector(".product-wrap .thumbnail-overlay .info .price ");e&&t.push(e);let o=s.querySelector(".product-details .price .current_price .money ");o&&t.push(o)}if(s=c.closest(".product_row"),s){let e=s.querySelector(".three-fourths .info .price ");e&&t.push(e)}if(s=c.closest(".thubnail-desc"),s){let e=s.querySelector(".quatity-stock");e&&t.push(e);let o=s.querySelector(".Payment_button");o&&t.push(o)}if(s=c.closest(".single-ponno-product"),s){let e=s.querySelector(".pro-actions-link");e&&t.push(e);let o=s.querySelector(".pro-add-cart");o&&t.push(o)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector("div.product-form__controls-group.product-form__controls-group--submit");e&&e.setAttribute("style","visibility:hidden")}if("homewarerus.myshopify.com"!=window.Shopify.shop&&(s=c.closest(".product-item__info"),s)){let e=s.querySelector("form.product-item__action-list.button-stack");e&&e.remove()}
7116if("bluebasketb2b.myshopify.com"===window.Shopify.shop){if(s=c.closest(".card-information"),s){let e=s.querySelector(".price__sale .price-item--sale.sale-percentage");e&&t.push(e)}if(s=c.closest("tr.cart-item[id*=Cart]"),s){let e=s.querySelector(".cart-item__quantity");e&&e.remove();let t=s.querySelector(".cart-item__totals");t&&t.remove()}}if(s=c.closest(".product-form"),s){let e=s.querySelector(".quantity-submit-row__submit");e&&e.remove();let o=s.querySelector(".product-form__info-list .product-form__info-item.product-form__info-item--quantity .product-form__info-content .quantity-selector.quantity-selector--product");o&&t.push(o)}if(s=c.closest(".product-grid__detail"),s){let e=s.querySelector(".product-form-block form");e&&e.remove()}if(s=c.closest(".tab-body"),s){if(s.querySelector(".purchase-section button, .btn.add-to-cart")){let e=setInterval((function(){let e=document.querySelector(".tab-body .purchase-section button, .tab-body .btn.add-to-cart"),t=document.querySelector(".swym-button-bar.swym-wishlist-button-bar");e&&e.remove(),t&&t.remove()}),200);setTimeout((function(){clearInterval(e)}),1e4)}}if(s=c.closest(".item.relative.product-id.item-row"),s){let e=s.querySelector(".quantity.form");e&&e.remove()}if(s=c.closest(".product-form"),s){let e=s.querySelector(".buy-buttons-row");e&&t.push(e)}if(s=c.closest(".product-grid-item"),s){let e=s.querySelector(".btn--quick-view");e&&t.push(e)}if(s=c.closest(".featured__collection-product"),s){let e=s.querySelector(".js-quickview-trigger");e&&t.push(e)}if(s=c.closest(".product-index"),s){let e=s.querySelector(".js-quickview-trigger");e&&t.push(e)}if(s=c.closest(".product-bottom"),s){let e=s.querySelector(".quantity-selector, .product-add");e&&t.push(e)}if(s=c.closest(".js-sticky-cart"),s){let e=s.querySelector(".sticky-add");e&&t.push(e)}if(s=c.closest(".product-details"),s){let e=s.querySelector(".shopify-payment-button");e&&t.push(e);let r=s.querySelector(".payment-and-quantity__add");r&&t.push(r);let c=s.querySelector(".price__compare-at.visible");c&&"coventa-demo.myshopify.com"===o&&t.push(c)}if(s=c.closest(".product-block__inner"),s){let e=s.querySelector(".quick-buy");e&&t.push(e)}if(s=c.closest(".content-summary"),s){let e=s.querySelector("form.cart");e&&t.push(e)}if(s=c.closest('div[data-pf-type="Section"]'),s){let e=s.querySelector('div[data-pf-type="ProductQuantity"]');e&&t.push(e);let o=s.querySelector('button[data-pf-type="ProductATC"]');o&&t.push(o)}if(s=c.closest(".pc-inner"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e);let o=s.querySelector(".quick_shop");o&&t.push(o)}if(s=c.closest(".product-info-inner"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}if(s=c.closest(".product-details-inline"),s){let e=s.querySelector(".product-quantity");e&&t.push(e)}if(s=c.closest(".product-card"),s){let e=s.querySelector(".js-grid-cart");e&&t.push(e);let o=s.querySelector(".card-header .card-button-hover");o&&t.push(o);let r=s.querySelector(".product-card__quick-buy");r&&t.push(r);let c=s.querySelector("compare-at-price");c&&t.push(c);let l=s.querySelector(".product-card__badge-list");l&&t.push(l)}if(s=c.closest(".product__info"),s){let e=s.querySelector(".product-form__buy-buttons button");e&&t.push(e);let o=s.querySelector(".product-form__quantity");o&&t.push(o)}if(s=c.closest(".product-sticky-form__inner"),s){let e=s.querySelector(".product-sticky-form__payment-container");e&&t.push(e)}if("homewarerus.myshopify.com"!=window.Shopify.shop&&(s=c.closest(".product-item"),s)){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e);let o=s.querySelector(".product-item__quick-form");o&&t.push(o)}if(s=c.closest(".shopify-product-form"),s){let e=s.querySelector("div.quantity");e&&t.push(e)}if(s=c.closest(".product-body"),s){let e=s.querySelector(".product-cta-wrapper");e&&t.push(e)}if(s=c.closest(".tt-product-single-info"),s){let e=s.querySelector("form .btn-addtocart");e&&t.push(e);let o=s.querySelector('form[action*="/cart/add"]');o&&t.push(o)}if(s=c.closest(".product-details-wrapper"),s){let e=s.querySelector(".product-form");e&&t.push(e)}if(s=c.closest(".product-inner"),s){let e=s.querySelector(".product-card-interactions");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".add-to-cart");if(e)if(window.Shopify&&"bundlecomph.myshopify.com"===window.Shopify.shop){e.disabled=!0;let o=s.querySelector(".payment-buttons"),r=s.querySelector(".shopify-payment-button");o&&o.classList.remove("payment-buttons"),r&&t.push(r)}else t.push(e)}if(s=c.closest(".grid-view-item"),s){let e=s.querySelector(".thumbnail-buttons");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".product-form:not(.product-form-product--static):not(.product-form-product-template)");e&&t.push(e)}if(s=c.closest(".pf-product-form"),s){let e=s.querySelector(".sc-lkgURy");e&&t.push(e);let o=s.querySelector(".sc-gzcbmu");o&&t.push(o);let r=s.querySelector(".add-to-cart");r&&t.push(r)}if(s=c.closest(".large--one-half"),s){let e=s.querySelector(".product-smart-wrapper");e&&t.push(e);let o=s.querySelector('div.btn[onmouseup="showProductsDesigner(this)"]');o&&t.push(o);let r=s.querySelector("button.js-prod-show-soldout");r&&t.push(r)}if(s=c.closest("#add-to-cart-form"),s)if("led-signcity.myshopify.com"===o){let e=s.querySelector(".atc-btn");e&&t.push(e);let o=s.querySelector(".price");o&&o.classList.remove("price")}else{let e=s.querySelector(".groups-btn");e&&t.push(e),t.push(c)}
7116if(s=c.closest(".product-shop"),s&&"led-signcity.myshopify.com"!==o){let e=s.querySelector(".groups-btn");e&&t.push(e)}if(s=c.closest(".who-qof-table"),s&&s.classList.add("bsscommerce-hide-price"),s=c.closest(".price-sale"),s){let e=s.querySelector(".old-price");e&&t.push(e);let o=s.querySelector("em");o&&(o.innerHTML="")}if(s=c.closest(".product-details"),s){let e=s.querySelector(".action");e&&t.push(e)}if(s=c.closest(".product_section"),s){let e=s.querySelector("form .add_to_cart, form .b2b-ajax-submit");e&&t.push(e);let o=s.querySelector(".sale.savings");o&&t.push(o);let r=s.querySelector(".purchase-details button.button--add-to-cart");r&&t.push(r);let c=s.querySelector(".purchase-details .purchase-details__quantity.product-quantity-box");c&&t.push(c);let l=s.querySelector(".product__details .modal_price .price-ui");l&&t.push(l)}if(s=c.closest(".quick-shop-style--inline"),s){let e=s.querySelector("form .add_to_cart, form .b2b-ajax-submit");e&&t.push(e)}if(s=c.closest(".product-details"),s){let e=s.querySelector("small em");e&&t.push(e)}if(s=c.closest(".gt_product-body"),s){let e=s.querySelector("form .gt_product-addtocart");e&&t.push(e);let o=s.querySelector(".gt_product-saved");o&&t.push(o);let r=s.querySelector(".gt_product-price--compare");r&&t.push(r)}if(s=c.closest(".gt_product_content"),s){let e=s.querySelector("form .gt_product-addtocart");e&&t.push(e);let o=s.querySelector(".gt_product-price--compare");o&&t.push(o)}if(s=c.closest(".gt-single-product"),s){let e=s.querySelector("div.gt_method_addToCart");e&&t.push(e);let o=s.querySelector(".gt_product-price--compare");o&&t.push(o)}if(s=c.closest("#cont-form"),s){let e=s.querySelector("form .cont-add-btns");e&&t.push(e)}if(s=c.closest(".theiaStickySidebar"),s){let e=s.querySelector(".variations_button");e&&t.push(e)}if(s=c.closest(".product--price-wrapper"),s){let e=s.querySelector(".product--compare-price");e&&t.push(e)}if(s=c.closest(".product-submit"),s){let e=s.querySelector(".payment-buttons-container");e&&t.push(e)}if(s=c.closest(".product-price"),s){let e=s.querySelector(".product-price-compare");e&&t.push(e)}if(s=c.closest(".product-list-item"),s){let e=s.querySelector(".original"),o=s.querySelector(".product-list-item-badge");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".productitem"),s){let e=s.querySelector(".productitem--action");e&&t.push(e);let o=s.querySelectorAll(".bss-ltsp-to-remove");if(o.length)for(let e of o)t.push(e)}if(s=c.closest(".product--outer"),s){let e=s.querySelector(".product-form--atc");e&&t.push(e),e=s.querySelector(".shopify-payment-button"),e&&t.push(e)}if(s=c.closest(".Container"),s)if(window.Shopify&&"mama-shawna.myshopify.com"===window.Shopify.shop){let e=s.querySelector("form.ProductForm");if(window.__st&&e){__st.cid&&t.push(e)}}else{let e=s.querySelector(".ProductForm__BuyButtons");e&&t.push(e)}if(s=c.closest(".product-grouped"),s){let e=s.querySelector(".product_top form#add-to-cart-form");e&&t.push(e)}if(s=c.closest(".product-item"),s){let e=s.querySelector(".product-top .product-des .action"),o=s.querySelector(".slideup");if(e&&t.push(e),o&&t.push(o),o=s.querySelector(".card-quickview"),o&&t.push(o),window.Shopify&&"sitchish.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".product-item-price .money");e&&e.classList.remove("money")}}if(s=c.closest(".modal_price"),s){let e=s.querySelector(".was_price");e&&t.push(e)}if(s=c.closest(".info"),s){let e=s.querySelector(".was_price");e&&t.push(e)}if(s=c.closest(".product-item"),s){let e=s.querySelector('.product-item__action-button[data-action="add-to-cart"]');e&&t.push(e)}if(s=c.closest(".grid__item.grid-product"),s){let e=s.querySelector('form[action="/cart/add"] input[type="submit"]');e&&t.push(e);let r=s.querySelector(".grid-product__tag");r&&t.push(r);let c=s.querySelector(".visually-hidden");c&&t.push(c);let l=s.querySelector(".quick-product__btn");l&&"comphycompany.myshopify.com"===o&&t.push(l)}if(s=c.closest(".product-info"),s){let e=s.querySelector('form[action="/cart/add"] .payment-buttons');e&&t.push(e);let o=s.querySelector(".variant-wrapper.variant-wrapper--button");o&&t.push(o);let r=s.querySelector(".form .product-actions .product-actions-add-to-cart");r&&t.push(r);let c=s.querySelector(".product-price__compare");
7116c&&t.push(c),c=s.querySelector("compare-at-price"),c&&t.push(c);let l=s.querySelector("unit-price");l&&t.push(l),e=s.querySelector(".buy-buttons"),e&&t.push(e);let u=s.querySelector(".product-info__badge-list");u&&t.push(u)}if(s=c.closest(".price"),s){if(s.textContent.includes("From")){let e=s.innerHTML;s.innerHTML=e.replace("From","")}}if(s=c.closest("#product-right"),s){let e=s.querySelector(".was");e&&t.push(e);let o=s.querySelector(".product-add");o&&t.push(o)}if(s=c.closest(".was"),s&&t.push(s),s=c.closest(".product-single__meta"),s){let e=s.querySelector(".pf__actions");e&&t.push(e);let o=s.querySelector("div.product-form__controls-group.product-form__controls-group--submit");o&&o.setAttribute("style","visibility:hidden")}if(s=c.closest(".product-item"),s){let e=s.querySelector(".product-item__add");e&&t.push(e)}if(s=c.closest(".grid-item"),s){let e=s.querySelector("#addToCart-product-template");e&&t.push(e);let o=s.querySelector(".payment-buttons");o&&t.push(o)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector("div.payment-buttons");e&&e.remove()}if(s=c.closest(".modal--root"),s){let e=s.querySelector(".product-form--button-container");e&&t.push(e)}if(s=c.closest(".product-item__info"),s){let e=s.querySelector("a.product-item__action-button.button.button--small.button--primary");e&&t.push(e)}if(s=c.closest(".product-form__info-list"),s){let e=s.querySelector("div.product-form__info-item.product-form__info-item--quantity");e&&t.push(e)}if(s=c.closest(".large--three-fifths"),s){let e=s.querySelector(".multivariants_setbox_footer");e&&t.push(e)}if(s=c.closest(".product-info-main"),s){let e=s.querySelector(".qty-box");e&&t.push(e);let o=s.querySelector(".btn.btn-cart");o&&t.push(o);let r=s.querySelector(".shopify-payment-button");r&&t.push(r)}if(s=c.closest(".product-miniature"),s){let e=s.querySelector(".qty-box");e&&t.push(e);let o=s.querySelector(".product.actions.product-item-actions");o&&t.push(o)}if(s=c.closest("#AddToCartForm"),s){let e=s.querySelector(".paymentButtonsWrapper");e&&t.push(e)}if(s){let e=s.querySelector("#product-add");e&&e.remove()}if(s){let e=s.querySelector("#product-price>.product-price");e&&e.remove()}if(s=c.closest(".grid-view-item"),s){let e=s.querySelector(".quick-add-button");e&&t.push(e)}if("tinalykkegaard.myshopify.com"===o){if(s=c.closest(".main-product__details>.main-product__details-wrapper"),s){let e=s.querySelector(".main-product__actions .main-product__form-buttons");e&&e.remove()}if(s=c.closest(".product-grid .product-card"),s){let e=s.querySelector('form[action="/cart/add"]');e&&e.remove()}}if(s=c.closest(".product-item-caption"),s){let e=s.querySelector(".product-form__item--submit");e&&t.push(e)}if(s=c.closest(".product-item-caption"),s){let e=s.querySelector(".product-form__item--quantity");e&&t.push(e)}if(s=c.closest(".productgrid--item"),s){let e=s.querySelector(".productitem--actions");e&&t.push(e)}if(s=c.closest(".product-single__info-wrapper"),s){let e=s.querySelector(".product-form__quantity-submit");e&&t.push(e);let o=s.querySelector(".shopify-payment-button");o&&t.push(o)}if(s=c.closest(".qv-content"),s){let e=s.querySelector(".qv-add-button");e&&t.push(e);let o=s.querySelector(".qv-quantity");o&&t.push(o)}if(s=c.closest(".product-card"),s){let e=s.querySelector(".btn-grid-cart");e&&t.push(e)}if(s=c.closest(".product_single_detail_section"),s){let e=s.querySelector("#AddToCart");e&&t.push(e);let o=s.querySelector(".shopify-payment-button__button");o&&t.push(o);let r=s.querySelector(".quantity-label");r&&t.push(r);let c=s.querySelector(".quantity_width");c&&t.push(c)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector("#AddToCart--product-template");e&&t.push(e);let o=s.querySelector(".shopify-payment-button");o&&t.push(o)}if(s=c.closest('form[action="/cart/add"]'),s){let e=s.querySelector(".product-page-info__field");e&&t.push(e);let o=s.querySelector(".product-page-info__button-add-to-cart");o&&t.push(o);let r=s.querySelector(".js-store-lists-add-wishlist");r&&t.push(r);let c=s.querySelector(".product-collection__control");c&&t.push(c)}if(s=c.closest(".grid-item__content"),s){let e=s.querySelector(".quick-add-btn");if(e&&t.push(e),window.Shopify&&"sparklinbluewholesale.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".grid-product__price--original"),o=s.querySelector(".grid-product__price--savings"),r=s.querySelector(".quick-product__btn");e&&t.push(e),o&&t.push(o),r&&t.push(r)}}if(s=c.closest(".purchase-box"),s){let e=s.querySelector("#AddToCart-product-template");e&&e.remove();let t=s.querySelector(".quantity-product-template");t&&t.remove()}if(s=c.closest(".item-row"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".product-thumbnail__price"),s){let e=s.querySelectorAll(".bsscommerce-ltsp-message");e.length>1&&e.forEach((function(e,o){o>0&&t.push(e)}))}if(s=c.closest(".product-details"),s){let e=s.querySelector(".product__add-to-cart-button");e&&t.push(e);let r=s.querySelector(".product-form__quantity-box-wrapper");if(r&&t.push(r),"sitchish.myshopify.com"===o){let e=s.querySelector("#product-price");e&&(e.id="");let o=s.querySelector("[data-product-price]");o&&o.removeAttribute("data-product-price");let r=s.querySelector(".form-actions");r&&t.push(r)}let c=s.querySelector(".product-quantity");if(c&&t.push(c),"lavabis-hygiene.myshopify.com"===o){let e=s.querySelector(".price-preview.price");e&&(e.id="")}}if(s=c.closest(".product-details"),s){let e=s.querySelector("#add-to-cart-product-template");e&&t.push(e);let o=s.querySelector(".shopify-payment-button__button");o&&o.remove();let r=s.querySelector(".quantity");r&&t.push(r)}if(s=c.closest(".gryffeditor"),s){let e=s.querySelector(".gf_product-quantity");e&&e.parentElement.remove()}if(s=c.closest("#ProductSection-product-template"),s){let e=s.querySelector(".cbb
7116-frequently-bought-add-button");e&&e.remove();let t=s.querySelector(".cbb-frequently-bought-form");t&&t.remove()}if(s=c.closest(".product__info-wrapper"),s){let e=s.querySelector(".product-form__quantity");e&&e.remove();let t=s.querySelector(".product-form__buttons");t&&t.remove()}if(s=c.closest(".product-form"),s){let e=s.querySelector(".product-form__payment-container");e&&e.remove();let o=s.querySelector("#price");if(o&&o.classList.remove("product-price"),window.Shopify&&"wilkens-gmbh.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".unit-price");e&&t.push(e)}}if(s=c.closest(".product-details"),s){let e=s.querySelector(".button-common");e&&e.remove()}if(s=c.closest(".caption"),s){let e=s.querySelector(".button.btn-cart");e&&t.push(e)}if(s=c.closest(".product-info-main"),s){let e=s.querySelectorAll(".form-group")[1];e&&t.push(e);let o=s.querySelector(".price");o&&(o.id="")}if(s=c.closest(".form_buy_sticky"),s){let e=s.querySelector(".form-group .btn.button.button-cart");e&&t.push(e);let o=s.querySelector(".form-group input#Quantity");o&&t.push(o)}if(s=c.closest(".product-template__container"),s){let e=s.querySelector(".store-availability-container");e&&e.remove()}if(s=c.closest(".product-form--container"),s){let e=s.querySelector(".product-form--options");e&&t.push(e);let o=s.querySelector(".product-form--smart-payment-buttons");o&&t.push(o)}if(s=c.closest(".product--price-wrapper"),s){let e=s.querySelector('.product--from[data-item="accent-text"]');e&&t.push(e)}if(s=c.closest("#zpproductselectorfull1-wrapper"),s){let e=s.querySelector(".zpa-button-alignment-center");e&&t.push(e);let o=s.querySelector(".zpa-quantity-block");o&&t.push(o)}if(s=c.closest(".zpa-multi-product-buy-box"),s){let e=s.querySelector(".zpa-button-alignment-center");e&&t.push(e)}if(s=c.closest(".product-block__inner"),s){let e=s.querySelector('form[action="/cart/add"].product-form.product-form--mini');if(e&&t.push(e),window.Shopify&&"wilkens-gmbh.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".unit-price");e&&t.push(e)}}if(s=c.closest(".was-price.theme-money"),s&&t.push(s),s=c.closest(".box_product_page"),s){let e=s.querySelector(".product-options-bottom");e&&t.push(e)}if(s=c.closest(".product-default"),s){let e=s.querySelector(".add-links.clearfix");e&&t.push(e)}if(s=c.closest(".grid__item.medium-up--three-eighths"),s){let e=s.querySelector('form[action="/cart/add"].shopify-product-form');e&&t.push(e)}if(s=c.closest(".indiv-product"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}if(s=c.closest('form.product-form[action="/cart/add"]'),s){let e=s.querySelector(".sf__pcard-image .sf__pcard-quick-add");e&&t.push(e);let o=s.querySelector(".main-product__block-buy_buttons");o&&t.push(o)}if(s=c.closest(".product-grid-item.woodmart-hover-base"),s){let e=s.querySelector(".fade-in-block");e&&t.push(e);let o=s.querySelector(".product-compare-button");o&&t.push(o)}if(s=c.closest(".grid__item"),s){if("www-bonmatch-com.myshopify.com"===o){let e=s.querySelector(".selector-wrapper.bcpo-file"),o=s.querySelector(".uploadkit.uploadkit-injected"),r=s.querySelector(".uploadkit-form");e&&t.push(e),o&&r&&r.appendChild(o)}let e=s.querySelector(".product__submit__buttons");e&&t.push(e);let r=s.querySelector(".products > .product-detail > .product-button"),c=s.querySelector(".products > .product-container > .product-button > .quick-view-text");r&&t.push(r),c&&t.push(c);let l=s.querySelector("button#AddToCart"),u=s.querySelector('[data-shopify="payment-button"].shopify-payment-button');if(l&&t.push(l),u&&t.push(u),"tienda-suca-bikes.myshopify.com"===o){let e=s.querySelector(".product__unit-price.product__unit-price--spacing"),t=s.querySelector(".c_p-quantity-input-parent"),o=s.querySelector(".masIva"),r=s.querySelector(".c_col-sw-btn");e&&e.classList.remove("hide"),t&&t.remove(),o&&o.remove(),r&&r.remove()}if("youchique-4183.myshopify.com"===o){let e=s.querySelector(".card-information__button");e&&t.push(e);let o=s.querySelector(".swym-wishlist-button-bar");o&&t.push(o)}if("stelladetailsb2b.myshopify.com"===o){let e=s.querySelector(".bss-b2b-product-vat");e&&t.push(e);let o=s.querySelector("#bss-b2b-tax-inc-excl");o&&t.push(o);let r=s.querySelector(".bss-b2b-collection-item-vat");r&&t.push(r);let c=s.querySelector(".price__regular");if(c){c.classList.remove("price__regular");let e=s.querySelector(".price-item--regular");e&&e.classList.remove("price-item--regular")}let l=s.querySelector(".price__sale");l&&t.push(l)}let i=s.querySelector("quick-view-drawer");
7116i&&t.push(i);let p=s.querySelector("add-to-cart");p&&t.push(p)}if(s=c.closest(".shop-the-look__product-info"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}if(s=c.closest(".popover.popover--quick-buy"),s){let e=s.querySelector(".product-form__buy-buttons");e&&t.push(e)}if(s=c.closest(".product__section.product-template .product__section-content .product__section-details"),s){let e=s.querySelector('form[action="/cart/add"] input#addToCart');e&&t.push(e)}if(s=c.closest(".product-item__info-inner"),s){let e=s.querySelector(".unit-price-measurement");e&&t.push(e)}if(s=c.closest(".product-form__info-item"),s){let e=s.querySelector(".unit-price-measurement");e&&t.push(e)}if(s=c.closest("div[data-product-blocks]"),s){let e=s.querySelector(".payment-buttons");e&&t.push(e);let o=s.querySelector(".spt-wishlist-button__wrapper");o&&t.push(o)}if(s=c.closest(".sf__pcard-content.text-center"),s){let e=s.querySelector("button.add-to-cart.sf__btn");e&&t.push(e)}if(s=c.closest(".product-details.section"),s){let e=s.querySelector('form#AddToCartForm.product-content-inner[action="/cart/add"]');e&&t.push(e)}if(s=c.closest(".search-item .product-item, .product-grid-row .product-item"),s){let e=s.querySelector(".product-img .action-btn");e&&t.push(e)}if(s=c.closest(".product-collection__content,.product-page-info"),s){let e=s.querySelector(".js-product-button-add-to-cart");e&&t.push(e)}if(s=c.closest(".details-info"),s){let e=s.querySelector(".group-button .add-to-cart");e&&t.push(e)}if(s=c.closest(".product-collection"),s){let e=s.querySelector(".group-button .add-to-cart");e&&t.push(e)}let u=c.closest("[data-js-product-price]");if(u&&u.setAttribute("bss-ltsp-active",""),s=c.closest(".product__info-container"),s){let e=s.querySelector('.form[data-type="add-to-cart-form"] > .shopify-payment-button[data-shopify="payment-button"]');e&&t.push(e)}if(s=c.closest(".products"),s){let e=s.querySelector(".product-container > .product-button > .variants > .add-cart-btn"),o=s.querySelector(".product-container > .product-button > .quick-view-text");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".dt-sc-tabs-container"),s){let e=s.querySelector(".dt-sc-tabs-content > .tab2 > .owl-stage-outer > .owl-stage > .owl-item > .item-row > .products > .product-container > .product-button > .variants > .add-cart-btn");e&&t.push(e)}if(s=c.closest(".wrapper-container"),s){let e=s.querySelector(".recently-viewed-products > .products-grid > .grid__item > .product-item > .products > .product-bottom > .price-box > .regular-product > .special-price"),o=s.querySelector(".recently-viewed-products > .products-grid > .grid__item > .product-item > .products > .product-bottom > .action > .variants > .add-to-cart-btn");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".featured__collection-product.product-index"),s){let e=s.querySelector(".product_listing_options");e&&t.push(e)}if(s=c.closest(".product-index"),s){let e=s.querySelector(".product_listing_options");e&&t.push(e)}if(s=c.closest(".product__section-details"),s){let e=s.querySelector(".product__section-details__inner
7116--product_buttons");e&&t.push(e)}if(s=c.closest(".product-page--cart-form-block"),s){let e=s.querySelector(".add-to-cart");e&&t.push(e)}if(s=c.closest(".price__sale"),s){let e=s.querySelector(".price-item--regular");e&&t.push(e)}if(s=c.closest(".product-item-v1"),s){let e=s.querySelector(".price-old"),o=s.querySelector(".product-icon-action");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".detail-info > .relative"),s){let e=s.querySelector("#AddToCartForm > .btn-action"),o=s.querySelector('div.shopify-payment-button[data-shopify="payment-button"]'),r=s.querySelector(".product-price > del");e&&t.push(e),o&&t.push(o),r&&t.push(r)}if(s=c.closest(".product-details"),s){let e=s.querySelector(".product-block--form>.product-form--regular");e&&"eurosafetysystems.myshopify.com"!==o&&e.remove();let t=s.querySelector(".button-cart");t&&t.remove()}if("annabellenoeldesigns-com.myshopify.com"==o&&(s=c.closest(".product-block-list__item .card__section"),s)){let e=s.querySelector("#MULTIVARIANTS_APP_SECTION_PLACE .multivariants_block_qty_box");e&&e.remove();let t=s.querySelector("#MULTIVARIANTS_APP_SECTION_PLACE .multivariants_block_last_holder .multivariants_block_prc_holder");t&&t.remove();let o=s.querySelector("#MULTIVARIANTS_APP_SECTION_PLACE #multivariants_add_to_cart_button_h");o&&o.remove();let r=s.querySelector("#MULTIVARIANTS_APP_SECTION_PLACE #multivariants_block_subtotal_h");r&&r.remove()}if("fedua-b2b.myshopify.com"==o){if(s=c.closest(".gp-product-detail .container"),s){let e=s.querySelector(".gp-product-main-button button[type='submit']");e&&e.remove();let t=s.querySelector(".cbb-also-bought-add-to-cart-button");t&&t.remove();let o=s.querySelector(".cbb-also-bought-product-price-container");o&&o.remove()}if(s=c.closest(".gp-product-widget .product-card-grid"),s){let e=s.querySelector(".product-buttons .btn-quick-view ");e&&e.remove()}}if(s=c.closest(".product--price-container"),s){let e=s.querySelectorAll(".product--price-wrapper > a");e.length&&e.forEach(e=>e.remove())}if("linis-bites-b2b.myshopify.com"==window.location.host&&c.querySelector("[bss-customize-ltsp-message]")){let e=c.closest(".price .price__container");if(e){let o=e.querySelector(".unit-price.caption");o&&t.push(o)}}if(s=c.closest(".product-price--wrapper"),s){let e=s.querySelector(".product-price--compare");e&&e.remove()}if(s=c.closest(".price__pricing-group"),s){let e=s.querySelector(".price-item.price-item--regular[data-regular-price]");e&&(e.classList.remove("price-item"),e.classList.remove("price-item--regular"))}if(l.forEach((function(e){c.closest(e)&&t.push(c.closest(e))})),s=c.closest(".product-page-info"),s){let e=s.querySelector("[data-js-footbar-product-limit]");e&&t.push(e)}if(s=c.closest(".product-wrap"),s){let e=s.querySelector(".purchase-details button.button--add-to-cart"),o=s.querySelector(".product-action");if(e&&t.push(e),o&&t.push(o),window.Shopify&&"dermafirmusa.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".price.sale");e&&t.push(e)}}if(s=c.closest(".seven.columns.omega"),s){let e=s.querySelector(".purchase-details__buttons button.shopify-payment-button__button ");e&&t.push(e)}if(s=c.closest("#collectionPr"),s){let e=s.querySelectorAll("#PageContainer .collection .btn.add-to-cart");e.length&&e.forEach(e=>{t.push(e)})}if(s=c.closest(".grid.product-single"),s){let e=s.querySelector('#PageContainer .wrap-product-info button[type="submit"].btn.btn1.pr_btn.addtocart_js');e&&t.push(e)}if(s=c.closest(".gryffeditor"),s){let e=s.querySelector(".module-wrap .gf_add-to-cart.product-form-product-template");e&&t.push(e)}if(s=c.closest(".product-single .product-single__meta"),s){let e=s.querySelector('.product-form__item button[name="add"].product-form__cart-submit');e&&t.push(e)}if(s=c.closest(".shopify-product-form"),s){let e=s.querySelector("#product-price");e&&t.push(e)}if(s=c.closest(".product-item-price"),s){let e=s.querySelector(".money");e&&t.push(e)}if(s=c.closest('main#main[role="main"]'),s){let e=s.querySelector("div.atc-bar");e&&t.push(e)}if(s=c.closest("#CartDrawer"),s){let e=s.querySelector("#CartDrawer-CartItems .cart-item .cart-item__details dl .product-option");e&&t.push(e);let o=s.querySelector("#CartDrawer-CartItems .cart-item .cart-item__totals .cart-item__price-wrapper");o&&t.push(o);let r=s.querySelector("#CartDrawer-CartItems .cart-item .cart-item__quantity");r&&t.push(r);let c=s.querySelector(".drawer__footer");c&&t.push(c)}if(s=c.closest("#main-cart-items"),s){let e=s.querySelector(".cart-item .cart-item__details dl .product-option");e&&t.push(e);let o=s.querySelector(".cart-item .cart-item__quantity .cart-item__quantity-wrapper");o&&t.push(o);let r=s.querySelector(".cart-item .cart-item__totals.right.small-hide .cart-item__price-wrapper");r&&t.push(r)}if(s=c.closest("#main-cart-footer"),s){let e=s.querySelector(".cart__footer");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s&&window.Shopify&&("asiadirectfurniture.mysh
7116opify.com"===window.Shopify.shop||"pure-vision-ch.myshopify.com"===window.Shopify.shop)){let e=s.querySelector(".product__price[data-product-price]");e&&t.push(e)}if(s=c.closest(".product-inner.pr"),s){let e=s.querySelector(".pr_atc.pr_qty_atc > a.pr_atc_.js_addtc");e&&t.push(e)}if(s=c.closest("#shopify-section-pr_summary"),s){let e=s.querySelector("p.price_range, .price.price_varies");e&&t.push(e)}if(s=c.closest(".grid__item"),s){let e=s.querySelector(".product__form-container"),o=s.querySelector(".product__description");e&&(t.push(e),o.style.width="100%")}if(s=c.closest(".featured-product__content-wrapper"),s){let e=s.querySelector(".product-form");e&&t.push(e)}if(s=c.closest(".card__price"),s&&"exosomes-inc.myshopify.com"===o&&(s.style.textAlign="center"),s=c.closest(".Product__InfoWrapper > .Product__Info "),s){let e=s.querySelector('.ProductForm__BuyButtons > button[type="submit"].ProductForm__AddToCart');e&&t.push(e);let o=s.querySelector(".ProductForm__AddToCart");o&&t.push(o)}if(s=c.closest(".product-grid__container .product-grid__content"),s){let e=s.querySelector(".product-single__form .product__quantity");e&&t.push(e);let o=s.querySelector(".add-to-cart");o&&t.push(o);let r=s.querySelector(".product__price--compare");if(r&&t.push(r),window.Shopify&&"sparklinbluewholesale.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".product__price-savings");e&&t.push(e)}}if(s=c.closest(".product-grid-item"),s){let e=s.querySelector(".h1.medium--left");e&&"envogueusa.com"==window.location.host&&t.push(e)}if(s=c.closest("#productPrice-product-template"),s){let e=s.querySelector("small");e&&"envogueusa.com"==window.location.host&&t.push(e),s.appendChild(c)}if(s=c.closest(".product-grid-item"),s){let e=s.querySelector(".form-grid-btn");e&&"mamiereglissepro.myshopify.com"===o&&t.push(e)}if(s=c.closest("#cont-form"),s){let e=s.querySelector(".so-price");e&&t.push(e);let r=s.querySelector("#addToCart");r&&"mamiereglissepro.myshopify.com"===o&&t.push(r)}if(s=c.closest(".template-product"),s){let e=s.querySelector('button[name="add"]#addToCartBis, button[name="add"]#addToCart2');e&&t.push(e)}if(s=c.closest(".grid-product__content"),s){let e=s.querySelector(".quick-product__btn");!e||"wood-hill-boards.myshopify.com"!==o&&"wood-hill-boards-usa.myshopify.com"!==o&&"bundlecomph.myshopify.com"!==o||t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".product__quantity");!e||"wood-hill-boards.myshopify.com"!==o&&"wood-hill-boards-usa.myshopify.com"!==o||t.push(e)}if(s=c.closest(".product-block-area"),s){let e=s.querySelector("#addToCartButton");e&&"wanderlustvision.myshopify.com"===o&&t.push(e)}if(s=c.closest(".product-single__meta--wrapper .product-single__meta"),s){let e=s.querySelector(".price-container.text-money"),o=s.querySelector('button[name="add"].btn--add-to-cart');e&&t.push(e),o&&t.push(o)}if(s=c.closest(".product-single__metas"),s){let e=s.querySelector(".product-single__buttons .js-quantity-selector.product-quantity"),o=s.querySelector(".product-single__buttons button.btn--add-to-cart");e&&t.push(e),o&&t.push(o)}if("dollie-wholesale.myshopify.com"===o&&(s=c.closest(".product-card"),s)){let e=s.querySelector(".product-card__buttons .product-card__quickview"),o=s.querySelector(".product-card__buttons .product-card__form"),r=s.querySelector(".product-card__buttons .button-wishlist"),c=s.querySelector(".wpb-variants-swatch");e&&t.push(e),o&&t.push(o),r&&t.push(r),c&&t.push(c)}if("obsequ.myshopify.com"===o&&(s=c.closest(".product-meta"),s)){let e=s.querySelector(".price-list[data-product-price-list]");e&&e.remove()}if(s=c.closest(".sticky-cart"),s){let e=s.querySelector(".product-form__buttons");e&&t.push(e)}if("wholesale-rubypearlco.myshopify.com"!==o&&"coventa-demo.myshopify.com"!==o&&(s=c.closest(".productitem--info")||c.closest(".product-pricing"),s)){let e=s.querySelector(".price");e&&t.push(e)}if(s=c.closest(".productitem--info"),s){let e=s.querySelector(".price__compare-at.visible");e&&"coventa-demo.myshopify.com"===o&&t.push(e)}if(s=c.closest(".product-block-list"),s&&window.Shopify&&"axiom-wholesale-parts.myshopify.com"===window.Shopify.shop){let e=s.querySelector(".price");e&&e.classList.remove("price")}if(s=c.closest(".product-layout"),s){let e=s.querySelector(".action-links");e&&t.push(e)}if(s=c.closest(".product-single__meta"),s){let e=s.querySelector(".product-block--price");e&&"comphycompany.myshopify.com"===o&&t.push(e)}if(s=c.closest(".product-details, .modal_price"),s){let e=s.querySelector(".current_price, .price__container");e&&t.push(e)}if("wholesale-rubypearlco.myshopify.com"===window.Shopify.shop&&(s=c.closest(".productitem__container .productitem--info, .product-details .product-pricing"),s)){let e=s.querySelectorAll(".price__compare-at--single, .price__compare-at, .price__current--max");
7116e.length&&e.forEach(e=>e.remove())}if("kerriecapelliusa-com.myshopify.com"===window.Shopify.shop&&(s=c.closest(".product-detail.quickbuy-content.spaced-row.container"),s)){let e=s.querySelectorAll(".product-form.theme-init .variant-visibility-area");e.length&&e.forEach(e=>e.remove())}if(s=c.closest(".widget_if_pr, .product-inner, .al_center.fl_center, .widget_if_pr"),s){let e=s.querySelectorAll(".product-price-pr-search, .hover_button, .nt_add_w, .nt_add_cp, .sticky_atc_btn.variations_form, .transcy-money");e.length&&e.forEach(e=>e.remove())}if(s=c.closest(".ProductItem__Wrapper, .ProductForm"),s){let e=s.querySelector(".ProductItem__PriceList, .ProductForm__QuantitySelector");e&&"sirenwireless.myshopify.com"!==o&&e.remove();let r=s.querySelector(".ProductFormWrapper");r&&"sirenwireless.myshopify.com"===o&&t.push(r)}if("butterfly-health-and-wellness.myshopify.com"===window.Shopify.shop){if(s=c.closest(".item-content"),s){let e=s.querySelector('.module-wrap[data-label="(P) Cart Button"] button.gf_add-to-cart');e&&e.remove()}if(s=c.closest(".gf_product-desc"),s){let e=s.querySelector("h4");e&&(e.remove(),c.style.display="none")}if(s=c.closest(".gf_column[data-id]"),s){let e=s.querySelectorAll('.elementor-section[data-element_type="section"] .elementor-text-editor strong, .gf_product-desc h4, .gf_product-desc strong');if(e)for(let t of e)t.remove()}}if(s=c.closest(".product-block"),s){let e=s.querySelector(".quickbuy-toggle");e&&t.push(e)}if(s=c.closest(".productView-details"),s){let e=s.querySelector(".productView-buttons"),r=s.querySelector(".quantity_selector"),c=s.querySelector(".productView-subtotal");e&&t.push(e),r&&t.push(r),c&&t.push(c),"remote-king-au.myshopify.com"===o&&s.querySelectorAll(".product-customInformation").forEach(e=>e.remove())}if(s=c.closest(".product__content"),s&&"campomarzio-trade-uk.myshopify.com"===o){let e=s.querySelector(".product__text"),o=s.querySelector(".select__fieldset"),r=s.querySelector(".product__submit");e&&t.push(e),o&&t.push(o),r&&t.push(r)}if(s=c.closest(".product-card__price, .product-single__meta-list"),s){let e=s.querySelector(".product-single__price, .money-product");e&&e.remove()}if("ens-nutrition-3419.myshopify.com"===o&&(s=c.closest(".card__content"),s)){let e=s.querySelector(".button.quick-add__submit");e&&e.remove()}if("b2b-nandu.myshopify.com"===o){if(s=c.closest(".grid-product__content"),s){let e=s.querySelector(".grid-product__meta .grid-product__price ");e&&e.remove()}let e=c.closest(".product-single__meta");if(e){let t=e.querySelector(".product__price.product__price--compare"),o=e.querySelector(".product__price.on-sale"),r=e.querySelector(".product__price-savings");t&&o&&r&&(t.remove(),o.remove(),r.remove())}}if("impjarwholesale.myshopify.com"===o){if(s=c.closest(".tp-product-content"),s){let e=s.querySelector("button#AddToCart"),o=s.querySelector(".tp-product-singe-action .tp-product-quantity");e&&t.push(e),o&&t.push(o)}if(s=c.closest(".grid-item"),s){let e=s.querySelector('form[action="/cart/add"]');e&&t.push(e)}}if("b2b-dbodhi-singapore.myshopify.com"===o&&(s=c.closest("del"),s&&t.push(c),s=c.closest(".product-information--inner"),s)){const e=s.querySelector(".product-form");e&&t.push(e)}if(s=c.closest(".lh-details-product"),s){if("ags2020.myshopify.com"===o){let e=s.querySelector(".lh-price");e&&e.classList.remove("lh-price")}let e=s.querySelector(".lh-add_to_cart");e&&t.push(e);let r=s.querySelector(".lh-buy-now");r&&t.push(r);let c=s.querySelector(".lh-compare-at-price");c&&t.push(c)}if(s=c.closest(".lh-collection-item"),s){if("ags2020.myshopify.com"===o){let e=s.querySelector(".lh-price");e&&e.classList.remove("lh-price")}let e=s.querySelector(".lh-product-compare-price");e&&t.push(e)}if(s=c.closest(".ProductMeta, .ProductItem__Info"),s){let e=s.querySelectorAll(".Price");e&&e.forEach(e=>e.remove())}}t.forEach((function(e){e.remove()}))}}(e),function(e){e.ltsp.removeElementByLTSPWrapper=function(){let e=document.getElementsByClassName("bss-ltsp-price-wrapper"),t=[];for(let o=0;o<e.length;o++){let r=e[o],c=[],l=r.closest(".product-parent");if(l){let e=l.querySelector("form .tt-btn-addtocart");e&&t.push(e);let o=l.querySelector(".tt-btn-quickview");o&&t.push(o)}if(l=r.closest(".product-single__meta"),l=r.closest(".tt-product-single-info"),l){let e=l.querySelector("form .btn-addtocart");e&&t.push(e);let o=l.querySelector('form[action*="/cart/add"]');o&&t.push(o)}if(l=r.closest(".product_section"),l){let e=l.querySelector("form .add_to_cart, form .b2b-ajax-submit");e&&t.push(e);let o=l.querySelector(".sale.savings");o&&t.push(o)}if(l=r.closest(".quick-shop-style--inline"),l){let e=l.querySelector("form .add_to_cart, form .b2b-ajax-submit");e&&t.push(e)}if(l=r.closest(".product-details"),l){let e=l.querySelector("small em");e&&t.push(e)}if(l=r.closest(".gt_product-body"),l){let e=l.querySelector("form .gt_product-addtocart");e&&t.push(e);let o=l.querySelector(".gt_product-saved");o&&t.push(o);let r=l.querySelector(".gt_product-price--compare");r&&t.push(r)}if(l=r.closest(".gt_product_content"),l){let e=l.querySelector("form .gt_product-addtocart");e&&t.push(e);let o=l.querySelector(".gt_product-price--compare");o&&t.push(o)}if(l=r.closest(".gt-single-product"),l){let e=l.querySelector("div.gt_method_addToCart");e&&t.push(e);let o=l.querySelector(".gt_product-price--compare");o&&t.push(o)}if(l=r.closest("#cont-form"),l){let e=l.querySelector("form .cont-add-btns");e&&t.push(e)}if(l=r.closest(".theiaStickySidebar"),l){let e=l.querySelector(".variations_button");e&&t.push(e)}if(l=r.closest(".product-submit"),l){let e=l.querySelector(".payment-buttons-container");e&&t.push(e)}if(l=r.closest(".productitem"),l){let e=l.querySelector(".productitem--action");e&&t.push(e)}if(l=r.closest(".product--outer"),l){let e=l.querySelector(".product-form--atc");e&&t.push(e),e=l.querySelector(".shopify-payment-button"),e&&t.push(e)}if(l=r.closest(".product-grouped"),l){let e=l.querySelector(".product_top form#add-to-cart-form");e&&t.push(e)}if(l=r.closest(".product-item"),l){let e=l.querySelector(".product-top .product-des .action");e&&t.push(e)}if(l=r.closest(".product-item"),l){let e=l.querySelector('.product-item__action-button[data-action="add-to-cart"]');e&&t.push(e)}if(l=r.closest(".grid__item.grid-product"),l){let e=l.querySelector('form[action="/cart/add"] input[type="submit"]');e&&t.push(e);let o=l.querySelector(".grid-product__tag");o&&t.push(o);let r=l.querySelector(".visually-hidden");r&&t.push(r)}if(l=r.closest(".product-info"),l){let e=l.querySelector('form[action="/cart/add"] .payment-buttons');e&&t.push(e);let o=l.querySelector(".variant-wrapper.variant-wrapper--button");o&&t.push(o)}if(l=r.closest("#product-right"),l){let e=l.querySelector(".was");e&&t.push(e);let o=l.querySelector(".product-add");o&&t.push(o)}if(l=r.closest(".was"),l&&t.push(l),l=r.closest(".product-single__meta"),l){let e=l.querySelector(".pf__actions");e&&t.push(e)}if(l=r.closest("#AddToCartForm-product-template"),l){let e=l.querySelector("#CartButtons-product-template");e&&t.push(e)}if(l=r.closest(".Product__Info"),l){let e=l.querySelector(".ProductMeta__PriceList");e&&t.push(e)}if(l=r.closest(".grid-item"),l){let e=l.querySelector("#addToCart-product-template");e&&t.push(e);let o=l.querySelector(".payment-buttons");o&&t.push(o)}c.forEach((function(e){r.closest(e)&&t.push(r.closest(e))}))}t.forEach((function(e){e.remove()}))}}(e),e.ltsp.removePattern=function(){e.ltsp.removeElementByLTSPMessage(),e.ltsp.removeElementByLTSPWrapper()},e.ltsp.insertBeforeAddToCart=function(){let t=document.querySelectorAll(".bsscommerce-ltsp-message[data-ltsp-cart-message]");for(let o=0;o<t.length;o++){let r=t[o],c=r.getAttribute("data-ltsp-cart-message");r.removeAttribute("data-ltsp-cart-message");let l=[".main-content .product-single__meta",".main-content .grid__item",".main-content .grid-item",".main-content .product__content.product__content--template.product__content--information","main#MainContent .product__info-container",".container#product-product .product-info-main",'main#main section[data-section-id="collection-template"] .product-item',".product-area__details.product-detail .product-detail__form"];for(let t=0;t<l.length;t++){let o=r.closest(l[t]);if(o&&!o.querySelector(".bsscommerce-ltsp-message.hide-message")){let t=
7116o.querySelector('form[action="/cart/add"]');if(t){let o=e.helperLTSP.createHidePriceMessageSpan(c);t.before(o)}}}let s=[[".product-layout .item .item-inner .caption",".button.btn-cart"],['main#main section[data-section-id="product-template"] .card__section',".product-form__payment-container"],[".main#MainContent .content.product",'form[action="/cart/add"] .offers']];for(let t=0;t<s.length;t++){let o=r.closest(s[t][0]);if(o&&!o.querySelector(".bsscommerce-ltsp-message.hide-message")){let r=o.querySelector(s[t][1]);if(r){let t=e.helperLTSP.createHidePriceMessageSpan(c);r.before(t)}}}if(window.Shopify&&"airbesafe.myshopify.com"===window.Shopify.shop){let t=[[".shopify-section--main-collection .product-list__inner .product-item ",".product-item__info .product-item-meta__price-list-container .price-list"],[".shopify-section--main-product .product--thumbnails-bottom .product__info",".product-meta__price-list-container"],["product-item.product-item .product-item__info",".product-item-meta__price-list-container"]];for(let o=0;o<t.length;o++){let l=r.closest(t[o][0]);if(l&&!l.querySelector(".bsscommerce-ltsp-message.hide-message")){let r=l.querySelector(t[o][1]);if(r){let t=e.helperLTSP.createHidePriceMessageSpan(c);r.after(t)}}}}}}}function c(e){!function(e){e.helperLTSP={},e.helperLTSP.createHidePriceMessageSpan=function(e){let t=document.createElement("span");return t.classList.add("bsscommerce-ltsp-message"),t.classList.add("hide-message"),t.style.fontSize="16px",t.style.fontWeight="normal",t.style.color="initial",t.style.textTransform="none",t.style.visibility="visible",t.innerHTML=e,t},e.helperLTSP.onLoadMore=function(e){const t=document.querySelector([".sf__product-listing[data-product-container] > div",'.row[data-js-collection-replace="products"]',".product-list-container .product-list.use-infinite-scroll","#collection-product .product-container",".container #col-main"].join(","));if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e()}))})).observe(t,{childList:!0})}}}(e)}function l(){const e={};c(e),r(e),function(e){e.ptvp={},e.ptvp.addPasscodeForm=function(){let e=document.querySelector('form[action*="/cart/add"]'),t=document.getElementsByClassName("bss-passcode-wrapper-tag"),o=document.getElementsByClassName("bsscommerce-password-form"),r=document.querySelector(".toggle-passcode-input"),c=null;if(o.length&&(c=o[0],c.style.display="block",r&&r.addEventListener("click",(function(e){let t=document.getElementById("bsscommerce-password");"password"===t.type?(t.type="text",e.target.closest(".toggle-passcode-input").style.fill="#5C5F62"):(t.type="password",e.target.closest(".toggle-passcode-input").style.fill="#BABEC3")}))),t.length&&e&&o.length){e.before(c);let o=document.getElementById("bsscommerce-password"),r=new FormData;r.append(o.name,o.value),document.getElementById("bsscommerce-password-submit").style.padding="12px 16px",document.getElementById("bsscommerce-password-submit").style.display="block";let l=new XMLHttpRequest;l.open("post","/cart/update.js"),l.send(r);let s=document.getElementsByClassName("bsscommerce-ltap-password");if(s.length)for(let e=0;e<s.length;e++)s[e].addEventListener("submit",(function(e){e.preventDefault();let t=this;if(t.length)for(let e=0;e<t.length;e++)if("bsscommerce-password"==t[e].id){let o=t[e];if(o.addEventListener("input",(function(){o.classList.remove("input--error")})),o.value)if(""!=o.value){let e=new FormData;e.append(o.name,o.value);let t=new XMLHttpRequest;t.onreadystatechange=function(){4==t.readyState&&200==t.status&&location.reload()},t.open("post","/cart/update.js"),t.send(e)}else o.classList.add("input--error")}}));for(let e=0;e<t.length;e++)t[e].remove()}}}(e),e.ptvp.addPasscodeForm(),document.querySelectorAll(".quick-view-btn").forEach((function(t){t.addEventListener("click",(function(){setTimeout((function(){e.ptvp.addPasscodeForm()}),1e3)}))})),function e(){document.querySelectorAll(".advanced-filter a").forEach((function(t){t.addEventListener("click",(function(){setTimeout((function(){let t=document.getElementsByClassName("bsscommerce-ltsp-message");for(let e=0;e<t.length;e++){let o=t[e].closest(".item-row");
7116if(o){let e=o.querySelector(".add-to-cart");e&&e.remove()}}e()}),1200)}))}))}(),e.ltsp.quickView(),e.ltsp.insertBeforeAddToCart(),e.ltsp.removePattern(),e.helperLTSP.onLoadMore(e.ltsp.removePattern),setTimeout((function(){e.ltsp.removePattern()}),2500);if(window.Shopify&&-1!==["showroom1-ducanero.myshopify.com","sparklinbluewholesale.myshopify.com","youchique-4183.myshopify.com","wilkens-gmbh.myshopify.com","friends-forever-pets.myshopify.com"].indexOf(window.Shopify.shop)&&(window.onscroll=function(e,t){let o;return function(...r){o&&clearTimeout(o),o=setTimeout(()=>{e(...r),o=null},t)}}((function(){let t=setInterval((function(){e.ltsp.removePattern()}),200);setTimeout((function(){clearInterval(t)}),3e3)}),500)),"amoreo.eu"===window.location.host){let t=setInterval((function(){e.ltsp.removePattern()}),200);setTimeout((function(){clearInterval(t)}),3e3)}let t=document.querySelector(".infinite-scrolling-homepage a.btn");"airbesafe.myshopify.com"===window.location.host&&setTimeout((function(){e.ltsp.insertBeforeAddToCart()}),3e3),t&&(t.onclick=function(){setTimeout((function(){e.ltsp.removePattern()}),1e3)});let o=document.querySelectorAll("#shopify-section-product-recommendations, .product-modal-wrapper");var l,s,u;(o.length&&o.forEach((function(t){t.addEventListener("DOMSubtreeModified",(function(){e.ltsp.removePattern()}))})),"valleys-group.myshopify.com"===window.location.host)&&(l=function(){e.ltsp.removePattern();
7116let t=document.querySelectorAll(".slideout__drawer-right, .sidebar_leftside_wapper, .filtering__results");t.length&&t.forEach((function(e){e.addEventListener("click",(function(){setTimeout(()=>{l()},1700)}))}))});"b.salonpremium.com"===window.location.host&&(s=function(){e.ltsp.removePattern();let t=document.querySelectorAll(".pagination");t.length&&t.forEach((function(e){e.addEventListener("click",(function(){setTimeout(()=>{s()},3e3)}))}))});"www.internationalbeauty.ca"===window.location.host&&(u=function(){let t=document.querySelector('[id^="RecentlyViewed"]');new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&(e.ltsp.removePattern(),document.querySelectorAll(".btn--icon.quick-product__btn").forEach((function(e){e.addEventListener("click",(function(){setTimeout((function(){let e=document.getElementsByClassName("bsscommerce-ltsp-message");for(let t=0;t<e.length;t++){let o=e[t].closest(".product-grid__content");if(o){let e=o.querySelector(".payment-buttons");e&&e.remove()}}u()}),2e3)}))})))}))})).observe(t,{childList:!0})});if("bluebasketb2b.myshopify.com"===window.Shopify.shop){let t=document.querySelector("#CartDrawer");const o=()=>{let e=document.querySelectorAll("script#bss-ltap-login-require");for(let t in e)t.remove()};if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&(e.ltsp.removePattern(),o())}))})).observe(t,{childList:!0})}}if("dollie-wholesale.myshopify.com"===window.Shopify.shop){let t=document.querySelector("#product-grid .products__row");if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e.ltsp.removePattern()}))})).observe(t,{childList:!0})}}if("impjarwholesale.myshopify.com"===window.Shopify.shop){let t=document.querySelector(".tp-collection-content");if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e.ltsp.removePattern()}))})).observe(t,{childList:!0})}}if("inex-studio.myshopify.com"===window.Shopify.shop){let t=document.querySelector("#Search .Search__Results");if(t){new MutationObserver((function(t){t.forEach((function(t){t.addedNodes.length&&e.ltsp.removePattern()}))})).observe(t,{childList:!0,subtree:!0})}}}o.r(t),o.d(t,"default",(function(){return l})),l()}]); 7117 </script>
7117 7118 7119 </main> 7120 7121 <div id="shopify-section-newsletter" class="shopify-section"><br> 7122 <style> 7123 #shopify-section-newsletter { 7124 background: url(https://res.cloudinary.com/dxghajqr1/image/upload/v1761891407/PUB_SLIDER_2-min_pvnpbb.jpg); 7125 background-attachment: fixed; 7126 margin-bottom: 0; 7127 } 7128 input:-webkit-autofill, 7129 input:-webkit-autofill:hover, 7130 input:-webkit-autofill:active, 7131 input:-webkit-autofill:focus { 7132 -webkit-box-shadow:0 0 0 50px white inset; 7133 -webkit-text-fill-color: #ffffff; 7134 } 7135 .section-newsletter { 7136 max-width: 800px; 7137 margin: auto; 7138 padding: 50px 0; 7139 } 7140 .section-newsletter h2 { 7141 font-weight: 700; 7142 font-size: 24px; 7143 } 7144 .section-newsletter input[type="email"] { 7145 width: 100%; 7146 text-align: center; 7147 border: none; 7148 border-bottom: 1px solid #ffffff; 7149 font-size: 16px; 7150 color: #757575; 7151 background-color: #eeeeee; 7152 } 7153 .section-newsletter .row label { 7154 font-size: 14px; 7155 cursor: pointer; 7156 } 7157 .section-newsletter .radio-inline input { 7158 width: auto; 7159 } 7160 .section-newsletter .btn { 7161 width: 130px; 7162 border: 1px solid #ffffff; 7163 box-shadow: none; 7164 font-size: 16px; 7165 font-weight: 500; 7166 text-transform: uppercase; 7167 } 7168 .section-newsletter form { 7169 margin: 30px 0 60px; 7170 } 7171 .section-newsletter input[type="radio"] { 7172 position: absolute; 7173 width: 1px; 7174 height: 1px; 7175 } 7176 .section-newsletter [type="radio"]:checked + label, .section-newsletter [type="radio"]:not(:checked) + label { 7177 position: relative; 7178 padding-left: 28px; 7179 cursor: pointer; 7180 line-height: 20px; 7181 display: inline-block; 7182 color: #666; 7183 } 7184 .section-newsletter [type="radio"]:checked + label:before, .section-newsletter [type="radio"]:not(:checked) + label:before { 7185 content: ''; 7186 position: absolute; 7187 left: 0; 7188 top: 0; 7189 width: 18px; 7190 height: 18px; 7191 border: 1px solid #ddd; 7192 border-radius: 100%; 7193 background: #fff; 7194 } 7195 .section-newsletter [type="radio"]:checked + label:after, .section-newsletter [type="radio"]:not(:checked) + label:after { 7196 content: ''; 7197 width: 12px; 7198 height: 12px; 7199 background: #ffffff; 7200 position: absolute; 7201 top: 3px; 7202 left: 3px; 7203 border-radius: 100%; 7204 -webkit-transition: all 0.2s ease; 7205 transition: all 0.2s ease; 7206 } 7207 .section-newsletter [type="radio"]:not(:checked) + label:after { 7208 opacity: 0; 7209 -webkit-transform: scale(0); 7210 transform: scale(0); 7211 } 7212 .opt-newsletter {display:none;} 7213 .footer-newsletter p, .footer-newsletter p a { 7214 color: #757575; 7215 } 7216 @media (max-width:991px){ 7217 .section-newsletter h2 { 7218 font-size: 32px; 7219 } 7220 .section-newsletter input { 7221 width: 300px; 7222 font-size: 14px; 7223 } 7224 .section-newsletter { 7225 padding: 50px 20px; 7226 } 7227 } 7228 @media (max-width: 480px){ 7229 .section-newsletter input[type="email"] {font-size: 16px;} 7230 } 7231 </style> 7232 <style> 7233 .icon-img-footer { 7234 width: 80px; 7235 padding: 0px 5px; 7236 } 7237 @media (min-width: 768px) { 7238 .icon-img-footer { 7239 width: 120px; 7240 } 7241 } 7242 @media (min-width: 992px) { 7243 .icon-img-footer { 7244 width: 120px; 7245 } 7246 } 7247 7248 .button-login-daftar { 7249 display: grid; 7250 grid-template-columns: repeat(2, 1fr); 7251 font-weight: 700; 7252 } 7253 .button-login-daftar a { 7254 text-align: center; 7255 } 7256 .login, 7257 .register { 7258 color: #fff; 7259 padding: 15px 10px; 7260 font-size: 23px; 7261 } 7262 .login, 7263 .login-button { 7264 background: linear-gradient(to bottom,#ff0000 0,#ff0000 100%); 7265 border: 2px solid #ffffff; 7266 } 7267 .register, 7268 .register-button { 7269 background: linear-gradient(to bottom,#ff0000 0,#ff0000 100%); 7270 border: 2px solid #ffffff; 7271 } 7272 7273 7274 7275 </style> 7276 7277 <!-- wp:html --> 7278
7278<script> 7279 document.addEventListener('DOMContentLoaded', 7280 function(){const faqItems=document.querySelectorAll('.faq-item'); 7281 faqItems.forEach(item=>{const question=item.querySelector('.faq-question'); 7282 question.addEventListener('click', 7283 ()=>{const isActive=item.classList.contains('active'); 7284 faqItems.forEach(otherItem=>{otherItem.classList.remove('active')}); 7285 if(!isActive){item.classList.add('active')}})})}); 7286 </script>
7286 7287 7288 7289 <div class="page__overlay" data-view="offCanvasNavToggle" data-off-canvas="close" bis_skin_checked="1"> 7290 </div> 7291<div class="faq-section"> 7292 <h2>FAQ PUBTOGEL</h2> 7293<div class="faq-container"> 7294 7295 <div class="faq-item"> 7296 <button class="faq-question">Kenapa PUBTOGEL gak pernah kena blokir dan selalu bisa diakses?<span></span></button> 7297 <div class="faq-answer"> 7298 <p>Apakah Anda sering merasa frustrasi dengan loading yang lambat, antarmuka yang membingungkan, atau link yang mati saat menjelajah internet? Sebagai pengguna online aktif, waktu Anda terlalu berharga untuk dihabiskan dalam labirin digital yang rumit. Bayangkan semua energi yang terbuang karena navigasi yang tidak efisien. Sudah saatnya ada perubahan!</p> 7299 </div> 7300 </div> 7301 7302 <div class="faq-item"> 7303 <button class="faq-question">Apa yang bikin PUBTOGEL dipercaya sebagai bandar togel aman & pasti bayar?<span></span></button> 7304 <div class="faq-answer"> 7305 <p><div class='card'><h3>Navigasi Secepat Kilat</h3><p>Ucapkan selamat tinggal pada buffering dan loading yang lambat. Pubtogel dirancang untuk kecepatan maksimal, membawa Anda ke tujuan digital tanpa jeda.</p></div><div class='card'><h3>Antarmuka Super Simpel</h3><p>Tidak perlu lagi pusing dengan layout yang rumit. Desain Pubtogel yang intuitif memastikan Anda menemukan apa yang dicari dengan mudah, bahkan untuk pengguna awam sekalipun.</p></div><div class='card'><h3>Aman & Terpercaya</h3><p>Jelajahi internet dengan tenang. Pubtogel tidak hanya cepat, tetapi juga menjaga keamanan data Anda dan memastikan koneksi yang stabil setiap saat.</p></div> 7306</p> 7307 </div> 7308 </div> 7309 7310 <div class="faq-item"> 7311 <button class="faq-question">Beneran bisa jepe 10 juta cuma modal bet 100 di PUBTOGEL?<span></span></button> 7312 <div class="faq-answer"> 7313 <p><div class='card'><p>"Sebelum pakai Pubtogel, browsing itu rasanya kayak jalan di lumpur. Sekarang? Langsung ngebut! Sangat merekomendasikan untuk siapa pun yang sering online."</p><strong>Andi S., Digital Marketer</strong></div><div class='card'><p>"Saya sering pindah-pindah tab dan aplikasi, Pubtogel bikin semuanya seamless. Nggak ada lagi 'mana tadi link-nya?' atau loading lama. Produktivitas saya naik drastis!"</p><strong>Dewi P., Content Creator</strong></div></p> 7314 </div> 7315 </div> 7316 7317 <div class="faq-item"> 7318 <button class="faq-question">Pasaran apa aja yang tersedia di PUBTOGEL?<span></span></button> 7319 <div class="faq-answer"> 7320 <p>Siap Merasakan Revolusi Navigasi Online?</p> 7321 </div> 7322 </div> 7323 7324 <div class="faq-item"> 7325 <button class="faq-question">Jangan biarkan navigasi yang lambat menghambat potensi Anda. Bergabunglah dengan ribuan pengguna cerdas lainnya!<span></span></button> 7326 <div class="faq-answer"> 7327 <p> <a href='https://collegeofnepal.com/' class='btn'>Jelajahi Dunia Online dengan Mulus Sekarang!</a></p> 7328 </div> 7329 </div> 7330 7331</div> 7332 7333 7334</div> 7335 <div class="overlay overlay-cart"></div> 7336 <div id="CartDrawer" class="drawer drawer--right"> 7337 <div class="drawer__header pl-2 pr-2"> 7338 <div class="drawer__icon-cart display-table-cell"> 7339 <a href="/cart" class=""> 7340 <svg class="icon icon-cart" version="1.1" xmlns="https://kucingair.com/fotobaka/logopub.png" width="32" height="32" viewBox="0 0 32 32"> <path fill="#fff" d="M13.638 23.203c0 0 3.5-2.113 3.502-4.11 0.002-2.304-2.689-3.537-3.497-1.76-0.916-1.778-3.493-1.714-3.497 0.59-0.003 1.999 3.491 5.28 3.491 5.28z"></path> <path fill="#fff" d="M8.112 9.809v16.662l11.063 2.491v-17.58l-11.063-1.573zM7.74 8.858l11.925 1.696c0.213 0.030 0.372 0.218 0.372 0.44v18.519c0 0.284-0.254 0.495-0.523 0.434l-11.925-2.685c-0.198-0.045-0.339-0.225-0.339-0.434v-17.53c0-0.27 0.231-0.477 0.49-0.44z"></path> <path fill="#fff" d="M23.7 10.046l-3.275 0.146-0.388 0.897v17.656l3.664-2.174v-16.526zM24.346 27.214l-4.526 2.685c-0.287 0.17-0.646-0.043-0.646-0.385v-18.519l0.037-0.181 0.534-1.235c0.067-0.154 0.212-0.256 0.375-0.263l3.991-0.178c0.245-0.011 0.45 0.191 0.45 0.444v17.247c0 0.159-0.082 0.306-0.216 0.385z"></path> <path fill="#000" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M20.772 27.081l-0.501 2.383c-0.050 0.24-0.28 0.392-0.512 0.34s-0.38-0.289-0.33-0.528l0.569-2.707v-16.588c0-0.245 0.193-0.444 0.431-0.444s0.431 0.199 0.431 0.444v16.215l3.296 0.189c0.238 0.014 0.42 0.223 0.406 0.468s-0.217 0.433-0.454 0.419l-3.335-0.191z"></path> <path fill="#fff" d="M11.336 8.354l-0.257-0.333c-0.243-0.315 0.012-0.774 0.398-0.717l12.51 1.838c0.236 0.035 0.399 0.26 0.366 0.503s-0.252 0.412-0.487 0.377l-11.436-1.68 0.056 0.073c0.209 0.27 0.052 0.672-0.281 0.718l-4.467 0.607c-0.236 0.032-0.452-0.139-0.484-0.383s0.135-0.467 0.371-0.499l3.711-0.504z"></path> <path fill="#fff" d="M17.152 11.344c0.026-0.003 0.053-0.005 0.079-0.005 0.357 0 0.645 0.297 0.645 0.665s-0.288 0.665-0.645 0.665c-0.322 0-0.59-0.245-0.637-0.565-0.383-0.45-0.515-1.321-0.521-2.536-0.003-0.556 0.026-1.149 0.076-1.739 0.028-0.339 0.057-0.603 0.074-0.735 0.195-2.391-2.008-3.379-3.568-1.658-0.64 0.707-1.041 1.855-1.266 3.412-0.092 0.634-0.137 1.111-0.194 2.024 0.107 0.119 0.172 0.278 0.172 0.453 0 0.342-0.251 0.624-0.573 0.661-0.031 0.005-0.064 0.007-0.097 0.005-0.015-0.001-0.029-0.003-0.044-0.
7340005-0.324-0.036-0.576-0.318-0.576-0.661 0-0.218 0.102-0.412 0.259-0.533 0.058-0.924 0.105-1.415 0.201-2.075 0.249-1.719 0.703-3.020 1.489-3.888 2.114-2.335 5.321-0.897 5.054 2.359-0.018 0.141-0.045 0.392-0.072 0.717-0.047 0.566-0.075 1.133-0.073 1.658 0.004 0.839 0.098 1.47 0.216 1.78z"></path> <path fill="#fff" d="M14.43 8.138c-0.008 0.245-0.207 0.438-0.445 0.43s-0.424-0.213-0.417-0.459c0.001-0.026 0.001-0.026 0.002-0.051 0.029-0.909 0.047-1.282 0.102-1.792 0.164-1.528 0.58-2.665 1.434-3.481 2.037-1.949 5.235-0.623 5.066 2.208-0.007 0.119-0.018 0.331-0.029 0.608-0.022 0.539-0.033 1.084-0.029 1.59 0.007 0.797 0.053 1.412 0.139 1.744 0.062 0.237-0.075 0.481-0.305 0.544s-0.466-0.077-0.528-0.314c-0.111-0.427-0.161-1.097-0.168-1.966-0.004-0.523 0.007-1.081 0.029-1.634 0.011-0.284 0.023-0.502 0.030-0.626 0.119-1.995-2.13-2.927-3.619-1.501-0.673 0.644-1.021 1.591-1.164 2.927-0.051 0.479-0.069 0.838-0.097 1.723-0.001 0.026-0.001 0.026-0.002 0.052z"></path> </svg> 7341 </a> 7342 </div> 7343 <div class="drawer__title h4">Keranjang Belanja</div> 7344 <div class="drawer__close js-drawer-close"> 7345 <button type="button"> 7346 <svg class="icon icon-close" version="1.1" xmlns="https://kucingair.com/fotobaka/logopub.png" width="32" height="32" viewBox="0 0 32 32"> 7347 <title>icon-close</title> 7348 <path d="M16.943 16l8.862 8.862c0.26 0.26 0.26 0.682 0 0.943s-0.682 0.26-0.943 0l-8.862-8.862-8.862 8.862c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l8.862-8.862-8.862-8.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8.862 8.862 8.862-8.862c0.26-0.26 0.682-0.26 0.943 0s0.26 0.682 0 0.943l-8.862 8.862z"></path> 7349 </svg> 7350 </button> 7351 </div> 7352 </div> 7353 <div id="CartContainer" class="p-2"></div> 7354 </div> 7355 7356
7356<script> 7357 7358 </script>
7358 7359
7359<script src="//outerbloom.com/cdn/shop/t/138/assets/handlebars.min.js?v=79044469952368397291752652415" defer></script>
7359 7360 <!-- /snippets/ajax-cart-template.liquid --> 7361 7362
7362<script id="CartTemplate" type="text/template"> 7363 7364 <form action="/cart" method="post" novalidate class="cart ajaxcart"> 7365 <div class="ajaxcart__inner" {{ cart.item_count }}> 7366 {{#items}} 7367 <div class="ajaxcart__product"> 7368 <div class="ajaxcart__row" data-line="{{line}}"> 7369 <div class="grid"> 7370 <div class="grid__item one-quarter"> 7371 <a href="{{url}}" class="ajaxcart__product-image"><img src="{{img}}" alt=""></a> 7372 </div> 7373 <div class="grid__item three-quarters"> 7374 <p class="d-block mb-3"> 7375 <a class="h4 d-block mb-2" href="{{url}}" class="ajaxcart__product-name">{{name}}</a> 7376 {{#if variation}} 7377 <span class="ajaxcart__product-meta p">{{variation}}</span> 7378 {{/if}} 7379 {{#properties}} 7380 {{#each this}} 7381 {{#if this}} 7382 <span class="ajaxcart__product-meta p hide">{{@key}}: {{this}}</span> 7383 {{/if}} 7384 {{/each}} 7385 {{/properties}} 7386 7387 </p> 7388 <div class="grid--full display-table"> 7389 <div class="grid__item display-table-cell one-half"> 7390 <div class="ajaxcart__qty"> 7391 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}" data-line="{{line}}"> 7392 <svg version="1.1" xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 7393 <span class="visually-hidden">Kurangi jumlah barang</span> 7394 </button> 7395 <input type="text" name="updates[]" class="btn ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" data-line="{{line}}" aria-label="quantity" pattern="[0-9]*"> 7396 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-line="{{line}}" data-qty="{{itemAdd}}"> 7397 <svg version="1.1" xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7398 <span class="visually-hidden">Tambahkan jumlah barang</span> 7399 </button> 7400 </div> 7401 </div> 7402 <div class="grid__item display-table-cell one-half text-right"> 7403 {{#if discountsApplied}} 7404 <small class="ajaxcart-item__price-strikethrough"><s>{{{originalLinePrice}}}</s></small> 7405 <br><span class="h4">{{{linePrice}}}</span> 7406 {{else}} 7407 <span class="h4">{{{linePrice}}}</span> 7408 {{/if}} 7409 </div> 7410 </div> 7411 {{#if discountsApplied}} 7412 <div class="grid--full display-table"> 7413 <div class="grid__item text-right"> 7414 {{#each discounts}} 7415 <small class="ajaxcart-item__discount">{{ this.title }}</small><br> 7416 {{/each}} 7417 </div> 7418 </div> 7419 {{/if}} 7420 </div> 7421 </div> 7422 </div> 7423 </div> 7424 </div> 7425 </div> 7426 {{/items}} 7427 </div> 7428 <div class="ajaxcart__footer"> 7429 <div class="grid--full cart-subtotal py-2"> 7430 <p>Subtotal</p> 7431 <h3 class="primary">{{{totalPrice}}}</h3> 7432 {{#if totalCartDiscount}} 7433 <p class="ajaxcart__savings text-center"><em>{{{totalCartDiscount}}}</em></p> 7434 {{/if}} 7435 </div> 7436 7437 <a href="/cart" class="btn btn-cta view-more btn-block cart__checkout mt-2">Checkout</a> 7438 7439 <p class="cart-checkout-shipping hide">Free Ongkir dengan belanja di atas Rp.100.000 <a href="/pages/pengiriman">detail</a></p> 7440 </div> 7441 </form> 7442 7443 </script>
7443 7444
7444<script id="AjaxQty" type="text/template"> 7445 7446 <div class="ajaxcart__qty"> 7447 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7448 <svg version="1.1" xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="24" viewBox="0 0 32 32"> 7449 <title>icon-minus</title> 7450 <path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path> 7451 </svg> 7452 <span class="visually-hidden">Kurangi jumlah barang</span> 7453 </button> 7454 <input type="text" class="ajaxcart__qty-num" value="{{itemQty}}" min="0" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*"> 7455 <button type="button" class="ajaxcart__qty-adjust ajaxcart__qty--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7456 <svg version="1.1" xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7457 <span class="visually-hidden">Tambahkan jumlah barang</span> 7458 </button> 7459 </div> 7460 7461 </script>
7461 7462
7462<script id="JsQty" type="text/template"> 7463 7464 <div class="js-qty mx-auto mt-2"> 7465 <button type="button" class="js-qty__adjust js-qty__adjust--minus" data-id="{{key}}" data-qty="{{itemMinus}}"> 7466 <svg version="1.1" xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-minus</title><path d="M6.667 16.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h18.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-18.667z"></path></svg> 7467 <span class="visually-hidden">Kurangi jumlah barang</span> 7468 </button> 7469 <input type="text" class="js-qty__num" value="{{itemQty}}" min="1" data-id="{{key}}" aria-label="quantity" pattern="[0-9]*" name="{{inputName}}" id="{{inputId}}"> 7470 <button type="button" class="js-qty__adjust js-qty__adjust--plus" data-id="{{key}}" data-qty="{{itemAdd}}"> 7471 <svg version="1.1" xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="24" viewBox="0 0 32 32"><title>icon-plus</title><path d="M16.667 15.333h8.667c0.368 0 0.667 0.298 0.667 0.667s-0.298 0.667-0.667 0.667h-8.667v8.667c0 0.368-0.298 0.667-0.667 0.667s-0.667-0.298-0.667-0.667v-8.667h-8.667c-0.368 0-0.667-0.298-0.667-0.667s0.298-0.667 0.667-0.667h8.667v-8.667c0-0.368 0.298-0.667 0.667-0.667s0.667 0.298 0.667 0.667v8.667z"></path></svg> 7472 <span class="visually-hidden">Tambahkan jumlah barang</span> 7473 </button> 7474 </div> 7475 7476 </script>
7476 7477 7478 <style> 7479 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty button, 7480 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty button, 7481 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty button {display: none;} 7482 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7483 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7484 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;opacity: 0.5;} 7485 #CartDrawer .ajaxcart__product.nExtra.Shipping.Cost .ajaxcart__qty input, 7486 #CartDrawer .ajaxcart__product.n3D2N .ajaxcart__qty input, 7487 #CartDrawer .ajaxcart__product.n4D3N .ajaxcart__qty input {pointer-events: none;} 7488 </style> 7489
7489<script src="//outerbloom.com/cdn/shop/t/138/assets/ajax-cart.js?v=51BVTrB47erypG3tevi1U9Fv6BbNUBEiuiX" defer></script>
7489 7490
7490<script> 7491 jQuery(function($) { 7492 ajaxCart.init({ 7493 formSelector: '#AddToCartForm', 7494 cartContainer: '#CartContainer', 7495 addToCartSelector: '#AddToCartXX', 7496 cartCountSelector: '#CartCount, #CartCount2', 7497 cartCostSelector: '#CartCost', 7498 moneyFormat: "Rp {{amount_no_decimals}}" 7499 }); 7500 }); 7501 7502 jQuery(document.body).on('afterCartLoad.ajaxCart', function(evt, cart) { 7503 // Bind to 'afterCartLoad.ajaxCart' to run any javascript after the cart has loaded in the DOM 7504 timber.RightDrawer.open(); 7505 }); 7506 </script>
7506 7507 7508 7509 7510 7511 <style> 7512 /** Search AutoComplete **/ 7513 .resultsearch .ui-menu-item[data-cat="Collection"], 7514 .resultsearch .ui-menu-item[data-cat="Collection"] {display: none;} 7515 .resultsearch .ui-widget.ui-widget-content { 7516 width: 100%; 7517 top: 48px; 7518 border: none; 7519 box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); 7520 } 7521 .resultsearch .ui-menu-item {text-align: left;} 7522 .resultsearch .ui-menu-item>a, .resultsearch .ui-menu-item>span {display: inline-block;width: 100%;font-size: 16px;}.resultsearch .ui-menu-item img {vertical-align: middle;}.resultsearch .ui-menu-item a[data-cat="Collection"] img {display: none;}.resultsearch .ui-menu .ui-state-focus, .resultsearch .ui-menu .ui-state-active {margin: 0;}.ui-state-active, .ui-widget-content .ui-state-active {background: #f2f2f2;border: none;color: #ffffff;}.resultsearch .ui-menu-item>a,.resultsearch .ui-menu-item>span {display: inline-block;width: 100%;font-size: 13px;}.resultsearch .ui-menu-item a[data-cat="Produk"] img {margin-right: 10px;}.resultsearch .ui-menu-item a[data-cat="Produk"] .price {float: right;padding: 15px 0;}.ui-autocomplete-category.ui-menu-item[data-cat="Produk"]:before {content: "Product Populer";font-size: 13px;padding: 5px;margin: 5px 0;background: #f2f2f2;width: 100%;display: block;color: #ffffff;}.ui-autocomplete-category.ui-menu-item[data-cat="Produk"] span {display: none;} 7523 .ui-state-active { 7524 border: none!important; 7525 background-color: #fafafa!important; 7526 color: #000!important; 7527 } 7528 .ui-menu-item a[data-cat="Collection"] {padding: 5px 12px;} 7529 .ui-menu .ui-menu-item {line-height: normal;} 7530 </style> 7531
7531<script> 7532 $(window).load(function(){ 7533 7534 function format(item) {var cell = '';cell += "<a data-cat=" + item.category + " " + "href=" + item.url + ">" + "<img src=" + item.images + "/>" + "<span class='title'>" + item.label + "</span>" + "<span class='price'>" + item.price + "</span>" + "</a>";return cell;} 7535 7536 $.widget("custom.catcomplete", $.ui.autocomplete, { 7537 _renderMenu: function (ul, items) { 7538 // have search reults split up in categories 7539 var that = this, 7540 currentCategory = ""; 7541 $.each(items, function (index, item) { 7542 if (item.category != currentCategory) { 7543 ul.append("<li class='ui-autocomplete-category' data-cat=" + item.category + ">" + "<span>" + item.category + "</span>" + "</li>"); 7544 currentCategory = item.category; 7545 } 7546 that._renderItemData(ul, item); 7547 }); 7548 } 7549 }); 7550 7551 // higlight searched for term 7552 $.ui.autocomplete.prototype._renderItem = function( ul, item ) { 7553 var term = this.element.val(), 7554 html = item.label.replace( term, "<b>$&</b>" ); 7555 return $( "<li>" ) 7556 .append(format(item)) 7557 .appendTo( ul ); 7558 }; 7559 7560 7561 var data = [ 7562 { label: "< Rp 500.000", category: "Collection", url: "/collections/rp-500-000", images: " ", price: " " },{ label: "> Rp 1.000.000", category: "Collection", url: "/collections/rp-1-000-000", images: " ", price: " " },{ label: "Acrylic Jewelry Box", category: "Collection", url: "/collections/acrylic-jewelry-box", images: " ", price: " " },{ label: "Ajmal", category: "Collection", url: "/collections/ajmal", images: " ", price: " " },{ label: "Alamat Rumah Duka", category: "Collection", url: "/collections/rumah-duka", images: " ", price: " " },{ label: "Anggrek Bulan", category: "Collection", url: "/collections/anggrek-bulan", images: " ", price: " " },{ label: "Anniversary Gift", category: "Collection", url: "/collections/kado-anniversary", images: " ", price: " " },{ label: "Aquarius ?? 20Jan - 18Feb", category: "Collection", url: "/collections/kado-untuk-zodiak-aquarius", images: " ", price: " " },{ label: "Aries ?? 21March - 19April", category: "Collection", url: "/collections/kado-untuk-zodiak-aries", images: " ", price: " " },{ label: "Armaf", category: "Collection", url: "/collections/armaf", images: " ", price: " " },{ label: "Aromatherapy Diffuser", category: "Collection", url: "/collections/aromatherapy-diffuser", images: " ", price: " " },{ label: "Artisan Soap", category: "Collection", url: "/collections/artisan-soap", images: " ", price: " " },{ label: "Artisan Tea", category: "Collection", url: "/collections/artisan-tea", images: " ", price: " " },{ label: "AsmaraKu", category: "Collection", url: "/collections/asmaraku", images: " ", price: " " },{ label: "Atkinsons", category: "Collection", url: "/collections/atkinsons", images: " ", price: " " },{ label: "Autumn by Outerbloom", category: "Collection", url: "/collections/autumn-by-outerbloom", images: " ", price: " " },{ label: "Autumn by Outerbloom Chinese New Year", category: "Collection", url: "/collections/autumn-by-outerbloom-chinese-new-year", images: " ", price: " " },{ label: "Autumn by Outerbloom Christmas", category: "Collection", url: "/collections/autumn-by-outerbloom-christmas", images: " ", price: " " },{ label: "Autumn by Outerbloom Luar Jadetabek", category: "Collection", url: "/collections/autumn-by-outerbloom-luar-jadetabek", images: " ", price: " " },{ label: "Autumn by Outerbloom Ramadan", category: "Collection", url: "/collections/autumn-by-outerbloom-ramadan", images: " ", price: " " },{ label: "Autumn Pop", category: "Collection", url: "/collections/autumn-pop", images: " ", price: " " },{ label: "Bachelorette", category: "Collection", url: "/collections/bachelorette", images: " ", price: " " },{ label: "Bag Newborn Hampers", category: "Collection", url: "/collections/bag-newborn-hampers", images: " ", price: " " },{ label: "Balon", category: "Collection", url: "/collections/balon", images: " ", price: " " },{ label: "Beauty Package", category: "Collection", url: "/collections/beauty-package", images: " ", price: " " },{ label: "Best Deal", category: "Collection", url: "/collections/best-deal", images: " ", price: " " },{ label: "Best Seller", category: "Collection", url: "/collections/best-seller", images: " ", price: " " },{ label: "Best Valentine's Deals", category: "Collection", url: "/collections/bes-valentines-deals", images: " ", price: " " },{ label: "Best Value Newborn Hampers Collection", category: "Collection", url: "/collections/best-value-newborn-hampers-collection", images: " ", price: " " },{ label: "Black Tea", category: "Collection", url: "/collections/black-tea", images: " ", price: " " },{ label: "Blessing Hampers", category: "Collection", url: "/collections/blessing-hampers", images: " ", price: " " },{ label: "Bloom Box", category: "Collection", url: "/collections/bloom-box", images: " ", price: " " },{ label: "Bloomcard", category: "Collection", url: "/collections/bloomcard", images: " ", price: " " },{ label: "Boutonniere", category: "Collection", url: "/collections/boutonniere", images: " ", price: " " },{ label: "Bracelet", category: "Collection", url: "/collections/gelang", images: " ", price: " " },{ label: "Buket Bunga Bali", category: "Collection", url: "/collections/buket-bunga-bali", images: " ", price: " " },{ label: "Buket Bunga Bandung", category: "Collection", url: "/collections/buket-bunga-bandung", images: " ", price: " " },{ label: "Buket Bunga Batam", category: "Collection", url: "/collections/buket-bunga-batam", images: " ", price: " " },{ label: "Buket Bunga Demak", category: "Collection", url: "/collections/buket-bunga-demak", images: " ", price: " " },{ label: "Buket Bunga Fresh", category: "Collection", url: "/collections/buket-bunga", images: " ", price: " " },{ label: "Buket Bunga Jepara", category: "Collection", url: "/collections/buket-bunga-jepara", images: " ", price: " " },{ label: "Buket Bunga Medan", category: "Collection", url: "/collections/buket-bunga-medan", images: " ", price: " " },{ label: "Buket Bunga Nusantara", category: "Collection", url: "/collections/buket-bunga-nusantara", images: " ", price: " " },{ label: "Buket Bunga Semarang", category: "Collection", url: "/collections/buket-bunga-semarang", images: " ", price: " " },{ label: "Buket Bunga Sidoarjo", category: "Collection", url: "/collections/buket-bunga-sidoarjo", images: " ", price: " " },{ label: "Buket Bunga Surabaya", category: "Collection", url: "/collections/buket-bunga-surabaya", images: " ", price: " " },{ label: "Buket Bunga Tangerang", category: "Collection", url: "/collections/buket-bunga-tangerang", images: " ", price: " " },{ label: "Buket Bunga Uang", category: "Collection", url: "/collections/buket-bunga-uang", images: " ", price: " " },{ label: "Buket Bunga Valentine", category: "Collection", url: "/collections/buket-bunga-valentine", images: " ", price: " " },{ label: "Buket Bunga Yogyakarta", category: "Collection", url: "/collections/buket-bunga-jogja", images: " ", price: " " },{ label: "Bunga Anggrek Bali", category: "Collection", url: "/collections/bunga-anggrek-bali", images: " ", price: " " },{ label: "Bunga Anggrek Bandung", category: "Collection", url: "/collections/bunga-anggrek-bandung", images: " ", price: " " },{ label: "Bunga Anggrek Surabaya", category: "Collection", url: "/collections/bunga-anggrek-surabaya", images: " ", price: " " },{ label: "Bunga Anniversary", category: "Collection", url: "/collections/bunga-anniversary", images: " ", price: " " },{ label: "Bunga Artificial", category: "Collection", url: "/collections/bunga-artificial", images: " ", price: " " },{ label: "Bunga Buket", category: "Collection", url: "/collections/bunga-buket", images: " ", price: " " },{ label: "Bunga Carnations Bali", category: "Collection", url: "/collections/bunga-carnations-bali", images: " ", price: " " },{ label: "Bunga Carnations Bandung", category: "Collection", url: "/collections/bunga-carnations-bandung", images: " ", price: " " },{ label: "Bunga Carnations Surabaya", category: "Collection", url: "/collections/bunga-carnations-surabaya", images: " ", price: " " },{ label: "Bunga Daisy Bali", category: "Collection", url: "/collections/bunga-daisy-bali", images: " ", price: " " },{ label: "Bunga Daisy Bandung", category: "Collection", url: "/collections/bunga-daisy-bandung", images: " ", price: " " },{ label: "Bunga Daisy Surabaya", category: "Collection", url: "/collections/bunga-daisy-surabaya", images: " ", price: " " },{ label: "Bunga Gerbera Bali", category: "Collection", url: "/collections/bunga-gerbera-bali", images: " ", price: " " },{ label: "Bunga Gerbera Bandung", category: "Collection", url: "/collections/bunga-gerbera-bandung", images: " ", price: " " },{ label: "Bunga Gerbera Surabaya", category: "Collection", url: "/collections/bunga-gerbera-surabaya", images: " ", price: " " },{ label: "Bunga Imlek", category: "Collection", url: "/collections/rangkaian-bunga-tahun-baru-imlek", images: " ", price: " " },{ label: "Bunga Lebaran", category: "Collection", url: "/collections/rangkaian-bunga-lebaran", images: " ", price: " " },{ label: "Bunga Lily Bali", category: "Collection", url: "/collections/bunga-lily-bali", images: " ", price: " " },{ label: "Bunga Lily Bandung", category: "Collection", url: "/collections/bunga-lily-bandung", images: " ", price: " " },{ label: "Bunga Lily Surabaya", category: "Collection", url: "/collections/bunga-lily-surabaya", images: " ", price: " " },{ label: "Bunga Matahari Bali", category: "Collection", url: "/collections/bunga-matahari-bali", images: " ", price: " " },{ label: "Bunga Matahari Bandung", category: "Collection", url: "/collections/bunga-matahari-bandung", images: " ", price: " " },{ label: "Bunga Matahari Surabaya", category: "Collection", url: "/collections/bunga-matahari-surabaya", images: " ", price: " " },{ label: "Bunga Mawar Bali", category: "Collection", url: "/collections/bunga-mawar-bali", images: " ", price: " " },{ label: "Bunga Mawar Bandung", category: "Collection", url: "/collections/bunga-mawar-bandung", images: " ", price: " " },{ label: "Bunga Mawar Surabaya", category: "Collection", url: "/collections/bunga-mawar-surabaya", images: " ", price: " " },{ label: "Bunga Meja", category: "Collection", url: "/collections/bunga-meja", images: " ", price: " " },{ label: "Bunga Meja Bali", category: "Collection", url: "/collections/bunga-meja-bali", images: " ", price: " " },{ label: "Bunga Meja Bandung", category: "Collection", url: "/collections/bunga-meja-bandung", images: " ", price: " " },{ label: "Bunga Meja Batam", category: "Collection", url: "/collections/bunga-meja-batam", images: " ", price: " " },{ label: "Bunga Meja Jepara", category: "Collection", url: "/collections/bunga-meja-jepara", images: " ", price: " " },{ label: "Bunga Meja Medan", category: "Collection", url: "/collections/bunga-meja-medan", images: " ", price: " " },{ label: "Bunga Meja Semarang", category: "Collection", url: "/collections/bunga-meja-semarang", images: " ", price: " " },{ label: "Bunga Meja Sidoarjo", category: "Collection", url: "/collections/bunga-meja-sidoarjo", images: " ", price: " " },{ label: "Bunga Meja Surabaya", category: "Collection", url: "/collections/bunga-meja-surabaya", images: " ", price: " " },{ label: "Bunga Meja Tangerang", category: "Collection", url: "/collections/bunga-meja-tangerang", images: " ", price: " " },{ label: "Bunga Meja Yogyakarta", category: "Collection", url: "/collections/bunga-meja-jogja", images: " ", price: " " },{ label: "Bunga Modern Pastel Bali", category: "Collection", url: "/collections/bunga-modern-pastel-bali", images: " ", price: " " },{ label: "Bunga Modern Pastel Bandung", category: "Collection", url: "/collections/bunga-modern-pastel-bandung", images: " ", price: " " },{ label: "Bunga Modern Pastel Medan", category: "Collection", url: "/collections/bunga-modern-pastel-medan", images: " ", price: " " },{ label: "Bunga Modern Pastel Semarang", category: "Collection", url: "/collections/bunga-modern-pastel-semarang", images: " ", price: " " },{ label: "Bunga Modern Pastel Surabaya", category: "Collection", url: "/collections/bunga-modern-pastel-surabaya", images: " ", price: " " },{ label: "Bunga Modern Pastel Yogyakarta", category: "Collection", url: "/collections/bunga-modern-pastel-yogyakarta", images: " ", price: " " },{ label: "Bunga Natal", category: "Collection", url: "/collections/rangkaian-bunga-christmas", images: " ", price: " " },{ label: "Bunga Papan", category: "Collection", url: "/collections/bunga-papan", images: " ", price: " " },{ label: "Bunga Pernikahan", category: "Collection", url: "/collections/bunga-pernikahan", images: " ", price: " " },{ label: "Bunga Plastik", category: "Collection", url: "/collections/bunga-plastik", images: " ", price: " " },{ label: "Bunga Tulip", category: "Collection", url: "/collections/bunga-tulip", images: " ", price: " " },{ label: "Bunga Ulang Tahun", category: "Collection", url: "/collections/bunga-ulang-tahun", images: " ", price: " " },{ label: "Bunga Wisuda", category: "Collection", url: "/collections/karangan-bunga-wisuda", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/kue", images: " ", price: " " },{ label: "Cake", category: "Collection", url: "/collections/cake", images: " ", price: " " },{ label: "Cake Sameday Delivery", category: "Collection", url: "/collections/cake-sameday-delivery", images: " ", price: " " },{ label: "Cake, Hampers & Gifts", category: "Collection", url: "/collections/cake-hampers", images: " ", price: " " },{ label: "Cancer ?? 22June - 22July", category: "Collection", url: "/collections/kado-untuk-zodiak-cancer", images: " ", price: " " },{ label: "Capricorn ?? 21Dec - 19Jan", category: "Collection", url: "/collections/kado-untuk-zodiak-capricorn", images: " ", price: " " },{ label: "Care Packages", category: "Collection", url: "/collections/toko-parcel-murah", images: " ", price: " " },{ label: "Care Packages (Keluarga, Sahabat, Karyawan)", category: "Collection", url: "/collections/sehat-bebas-corona", images: " ", price: " " },{ label: "Carnations", category: "Collection", url: "/collections/bunga-anyelir", images: " ", price: " " },{ label: "Celebration", category: "Collection", url: "/collections/celebration", images: " ", price: " " },{ label: "Chl�a Paperie", category: "Collection", url: "/collections/chlea-paperie", images: " ", price: " " },{ label: "Chocodot", category: "Collection", url: "/collections/chocodot", images: " ", price: " " },{ label: "Christmas", category: "Collection", url: "/collections/christmas", images: " ", price: " " },{ label: "Classic Cake", category: "Collection", url: "/collections/classic-cake", images: " ", price: " " },{ label: "Classic CNY Hampers", category: "Collection", url: "/collections/classic-cny-hampers", images: " ", price: " " },{ label: "Classic CNY Hampers Luar Jabodetabek", category: "Collection", url: "/collections/classic-cny-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Classic Hampers", category: "Collection", url: "/collections/classic-hampers", images: " ", price: " " },{ label: "Classic Hampers Luar Jadetabek", category: "Collection", url: "/collections/classic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Classic Style Flowers", category: "Collection", url: "/collections/classic-style-flowers", images: " ", price: " " },{ label: "Cokelat", category: "Collection", url: "/collections/permen-coklat", images: " ", price: " " },{ label: "Collection List", category: "Collection", url: "/collections/collection-list", images: " ", price: " " },{ label: "Condolences", category: "Collection", url: "/collections/axa-condolences", images: " ", price: " " },{ label: "Congratulations", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Corporate Gifts", category: "Collection", url: "/collections/corporate-gifts", images: " ", price: " " },{ label: "Corporate Hampers", category: "Collection", url: "/collections/corporate-hampers", images: " ", price: " " },{ label: "Couple Gift", category: "Collection", url: "/collections/couple-gift", images: " ", price: " " },{ label: "Craft Sweetbox Newborn
7562", category: "Collection", url: "/collections/craft-sweetbox-newborn", images: " ", price: " " },{ label: "Crystal Florarium", category: "Collection", url: "/collections/crystal-florarium", images: " ", price: " " },{ label: "Cuddlemate Doll", category: "Collection", url: "/collections/boneka-lucu", images: " ", price: " " },{ label: "Cufflinks", category: "Collection", url: "/collections/cufflinks", images: " ", price: " " },{ label: "Cupcakes", category: "Collection", url: "/collections/cupcakes", images: " ", price: " " },{ label: "Custom Alat Tulis", category: "Collection", url: "/collections/alat-tulis", images: " ", price: " " },{ label: "Custom Cake", category: "Collection", url: "/collections/custom-cake", images: " ", price: " " },{ label: "Custom Card Holder", category: "Collection", url: "/collections/custom-card-holder", images: " ", price: " " },{ label: "Custom Coaster", category: "Collection", url: "/collections/custom-coaster", images: " ", price: " " },{ label: "Custom Cutlery", category: "Collection", url: "/collections/custom-cutlery", images: " ", price: " " },{ label: "Custom E-Money", category: "Collection", url: "/collections/custom-e-money", images: " ", price: " " },{ label: "Custom Earpod", category: "Collection", url: "/collections/custom-earpod", images: " ", price: " " },{ label: "Custom Fan", category: "Collection", url: "/collections/custom-fan", images: " ", price: " " },{ label: "Custom Jewelry", category: "Collection", url: "/collections/custom-jewelry", images: " ", price: " " },{ label: "Custom Keychain", category: "Collection", url: "/collections/custom-keychain", images: " ", price: " " },{ label: "Custom Medallion", category: "Collection", url: "/collections/custom-medallion", images: " ", price: " " },{ label: "Custom Mirror", category: "Collection", url: "/collections/custom-mirror", images: " ", price: " " },{ label: "Custom Mug", category: "Collection", url: "/collections/custom-mug", images: " ", price: " " },{ label: "Custom Necklace", category: "Collection", url: "/collections/custom-necklace", images: " ", price: " " },{ label: "Custom Notebook", category: "Collection", url: "/collections/custom-notebook", images: " ", price: " " },{ label: "Custom Pen & Pencil", category: "Collection", url: "/collections/custom-pen-pencil", images: " ", price: " " },{ label: "Custom Photo Frame", category: "Collection", url: "/collections/photo-frame", images: " ", price: " " },{ label: "Custom Pillow", category: "Collection", url: "/collections/bantal-custom", images: " ", price: " " },{ label: "Custom Powerbank", category: "Collection", url: "/collections/custom-powerbank", images: " ", price: " " },{ label: "Custom Scarf", category: "Collection", url: "/collections/custom-scarf", images: " ", price: " " },{ label: "Custom Speaker", category: "Collection", url: "/collections/custom-speaker", images: " ", price: " " },{ label: "Custom T-Shirt", category: "Collection", url: "/collections/custom-t-shirt", images: " ", price: " " },{ label: "Custom Tote Bag", category: "Collection", url: "/collections/custom-tote-bag", images: " ", price: " " },{ label: "Custom Tumbler Minuman", category: "Collection", url: "/collections/custom-tumbler-minuman", images: " ", price: " " },{ label: "D'paris", category: "Collection", url: "/collections/dparis", images: " ", price: " " },{ label: "Daisy", category: "Collection", url: "/collections/bunga-aster", images: " ", price: " " },{ label: "Dekorasi", category: "Collection", url: "/collections/dekorasi", images: " ", price: " " },{ label: "Dekorasi Duka Cita", category: "Collection", url: "/collections/dekorasi-bunga-duka-cita", images: " ", price: " " },{ label: "Dekorasi Pemakaman", category: "Collection", url: "/collections/dekorasi-pemakaman", images: " ", price: " " },{ label: "Dekorasi Pernikahan", category: "Collection", url: "/collections/dekorasi-bunga-pernikahan", images: " ", price: " " },{ label: "Dekorasi Ulang Tahun", category: "Collection", url: "/collections/dekorasi-bunga-ulang-tahun", images: " ", price: " " },{ label: "Delivery", category: "Collection", url: "/collections/delivery", images: " ", price: " " },{ label: "Deluxe Newborn Hampers Collection", category: "Collection", url: "/collections/deluxe-newborn-hampers-collection", images: " ", price: " " },{ label: "Digital Gift", category: "Collection", url: "/collections/digital-gift", images: " ", price: " " },{ label: "Donasi", category: "Collection", url: "/collections/donasi", images: " ", price: " " },{ label: "E-Card", category: "Collection", url: "/collections/ecard", images: " ", price: " " },{ label: "E-Gift Card", category: "Collection", url: "/collections/e-gift-card", images: " ", price: " " },{ label: "Earrings", category: "Collection", url: "/collections/anting", images: " ", price: " " },{ label: "Edible Gift", category: "Collection", url: "/collections/edible-gift", images: " ", price: " " },{ label: "Enchanted Grande Love Pirouette", category: "Collection", url: "/collections/enchanted-grande-love-pirouette", images: " ", price: " " },{ label: "Enchanted Love Pirouette", category: "Collection", url: "/collections/enchanted-love-pirouette", images: " ", price: " " },{ label: "Engagement", category: "Collection", url: "/collections/rangkaian-bunga-lamaran", images: " ", price: " " },{ label: "Expression", category: "Collection", url: "/collections/expression", images: " ", price: " " }
7562,{ label: "Father's Day Special", category: "Collection", url: "/collections/kado-untuk-ayah", images: " ", price: " " },{ label: "Ferrari", category: "Collection", url: "/collections/ferrari", images: " ", price: " " },{ label: "Ferrero Rocher", category: "Collection", url: "/collections/ferrero-rocher", images: " ", price: " " },{ label: "Festival Belanja Online", category: "Collection", url: "/collections/fbo-2018", images: " ", price: " " },{ label: "Floatbox", category: "Collection", url: "/collections/floatbox", images: " ", price: " " },{ label: "Flower", category: "Collection", url: "/collections/flower", images: " ", price: " " },{ label: "Flower Best Deals", category: "Collection", url: "/collections/flower-best-deals", images: " ", price: " " },{ label: "Flowers", category: "Collection", url: "/collections/toko-bunga", images: " ", price: " " },{ label: "Flowers For Him", category: "Collection", url: "/collections/bunga-untuk-pria", images: " ", price: " " },{ label: "Flowers Style", category: "Collection", url: "/collections/style", images: " ", price: " " },{ label: "Flowers Type", category: "Collection", url: "/collections/type", images: " ", price: " " },{ label: "For Her", category: "Collection", url: "/collections/kado-untuk-wanita", images: " ", price: " " },{ label: "For Him", category: "Collection", url: "/collections/kado-untuk-pria", images: " ", price: " " },{ label: "Forever Flower", category: "Collection", url: "/collections/forever-flower", images: " ", price: " " },{ label: "Forever Flower Holo Series", category: "Collection", url: "/collections/forever-flower-holo-series", images: " ", price: " " },{ label: "Forever Flower x NestBloom", category: "Collection", url: "/collections/forever-flower-x-nestbloom", images: " ", price: " " },{ label: "Fortune Hampers", category: "Collection", url: "/collections/fortune-hampers", images: " ", price: " " },{ label: "Frank & Co", category: "Collection", url: "/collections/franknco", images: " ", price: " " },{ label: "Fresh Flowers", category: "Collection", url: "/collections/fresh-flower", images: " ", price: " " },{ label: "Gantungan Kunci", category: "Collection", url: "/collections/gantungan-kunci", images: " ", price: " " },{ label: "Gelato", category: "Collection", url: "/collections/gelato", images: " ", price: " " },{ label: "Gelato Pie", category: "Collection", url: "/collections/gelato-pie", images: " ", price: " " },{ label: "Gemini ?? 21May - 21June", category: "Collection", url: "/collections/kado-untuk-zodiak-gemini", images: " ", price: " " },{ label: "Gerbera", category: "Collection", url: "/collections/gerbera", images: " ", price: " " },{ label: "Get Well Soon", category: "Collection", url: "/collections/rangkaian-bunga-gws", images: " ", price: " " },{ label: "Giant Flower Bali", category: "Collection", url: "/collections/giant-flower-bali", images: " ", price: " " },{ label: "Giant Flower Bandung", category: "Collection", url: "/collections/giant-flower-bandung", images: " ", price: " " },{ label: "Giant Flower Bouquet", category: "Collection", url: "/collections/giant-flower", images: " ", price: " " },{ label: "Gift", category: "Collection", url: "/collections/souvenir-kado-hadiah", images: " ", price: " " },{ label: "Gift by Recipient", category: "Collection", url: "/collections/gift-by-recipient", images: " ", price: " " },{ label: "Gift for Your Girlfriend", category: "Collection", url: "/collections/kado-untuk-pacar-wanita", images: " ", price: " " },{ label: "Gifts", category: "Collection", url: "/collections/gifts", images: " ", price: " " },{ label: "Glassbox Hampers", category: "Collection", url: "/collections/glassbox-hampers", images: " ", price: " " },{ label: "Glassware Hampers", category: "Collection", url: "/collections/parcel-pecah-belah", images: " ", price: " " },{ label: "Gold Jewelry", category: "Collection", url: "/collections/perhiasan-emas", images: " ", price: " " },{ label: "Grand Opening", category: "Collection", url: "/collections/grand-opening", images: " ", price: " " },{ label: "Granola", category: "Collection", url: "/collections/granola", images: " ", price: " " },{ label: "Green Tea", category: "Collection", url: "/collections/green-tea", images: " ", price: " " },{ label: "Greeting Card All", category: "Collection", url: "/collections/greeting-card-all", images: " ", price: " " },{ label: "Greeting Card Anniversary", category: "Collection", url: "/collections/greeting-card-anniversary", images: " ", price: " " },{ label: "Greeting Card Birthday", category: "Collection", url: "/collections/greeting-card-birthday", images: " ", price: " " },{ label: "Greeting Card Eid", category: "Collection", url: "/collections/greeting-card-eid", images: " ", price: " " },{ label: "Greeting Card Graduation", category: "Collection", url: "/collections/greeting-card-graduation", images: " ", price: " " },{ label: "Greeting Card Mother's Day", category: "Collection", url: "/collections/greeting-card-mothers-day", images: " ", price: " " },{ label: "Greeting Card Newborn", category: "Collection", url: "/collections/greeting-card-newborn", images: " ", price: " " },{ label: "Greeting Card Others", category: "Collection", url: "/collections/greeting-card-others", images: " ", price: " " },{ label: "Greeting Card Valentine", category: "Collection", url: "/collections/greeting-card-valentine", images: " ", price: " " },{ label: "Greeting Card Wedding", category: "Collection", url: "/collections/greeting-card-wedding", images: " ", price: " " },{ label: "Grooming", category: "Collection", url: "/collections/grooming", images: " ", price: " " },{ label: "Hadiah Tahun Baru Imlek", category: "Collection", url: "/collections/kado-imlek", images: " ", price: " " },{ label: "Hadiah untuk Bayi", category: "Collection", url: "/collections/kado-untuk-bayi", images: " ", price: " " },{ label: "Hadiah untuk Pacar", category: "Collection", url: "/collections/kado-untuk-pacar", images: " ", price: " " },{ label: "Hadiah untuk Pernikahan", category: "Collection", url: "/collections/kado-untuk-pernikahan", images: " ", price: " " },{ label: "Hadiah untuk Sahabat", category: "Collection", url: "/collections/kado-untuk-sahabat", images: " ", price: " " },{ label: "Hampers", category: "Collection", url: "/collections/hampers", images: " ", price: " " },{ label: "Hampers Baby Boy", category: "Collection", url: "/collections/hampers-baby-boy", images: " ", price: " " },{ label: "Hampers Baby Girl", category: "Collection", url: "/collections/hampers-baby-girl", images: " ", price: " " },{ label: "Hampers Baby Unisex", category: "Collection", url: "/collections/hampers-baby-unisex", images: " ", price: " " },{ label: "Hampers Delivery Indonesia", category: "Collection", url: "/collections/parcel-indonesia", images: " ", price: " " },{ label: "Hampers Lebaran 2025", category: "Collection", url: "/collections/parcel-lebaran", images: " ", price: " " },{ label: "Hampers Lebaran Bali", category: "Collection", url: "/collections/hampers-lebaran-bali", images: " ", price: " " },{ label: "Hampers Lebaran Bandung", category: "Collection", url: "/collections/hampers-lebaran-bandung", images: " ", price: " " },{ label: "Hampers Lebaran Jakarta", category: "Collection", url: "/collections/hampers-lebaran-jakarta", images: " ", price: " " },{ label: "Hampers Lebaran Semarang", category: "Collection", url: "/collections/hampers-lebaran-semarang", images: " ", price: " " },{ label: "Hampers Lebaran Surabaya", category: "Collection", url: "/collections/hampers-lebaran-surabaya", images: " ", price: " " },{ label: "Hampers Lebaran Yogyakarta", category: "Collection", url: "/collections/hampers-lebaran-yogyakarta", images: " ", price: " " },{ label: "Hand Sanitizer", category: "Collection", url: "/collections/hand-sanitizer", images: " ", price: " " },{ label: "Happy Birthday", category: "Collection", url: "/collections/kado-ulang-tahun", images: " ", price: " " },{ label: "Harbolnas", category: "Collection", url: "/collections/harbolnas-2018", images: " ", price: " " },{ label: "Harbolnas Produk Lokal", category: "Collection", url: "/collections/produk-lokal", images: " ", price: " " },{ label: "Hari Belanja Online Nasional", category: "Collection", url: "/collections/harbolnas", images: " ", price: " " },{ label: "Hari Guru", category: "Collection", url: "/collections/hari-guru", images: " ", price: " " },{ label: "Healthy Creations", category: "Collection", url: "/collections/healthy-creations", images: " ", price: " " },{ label: "Healthy Hampers", category: "Collection", url: "/collections/healthy-hampers", images: " ", price: " " },{ label: "Heritage Box", category: "Collection", url: "/collections/heritage-boxes", images: " ", price: " " },{ label: "Heritage Chinese New Year Hampers", category: "Collection", url: "/collections/heritage-chinese-new-year-hampers", images: " ", price: " " },{ label: "Heritage Christmas Hampers", category: "Collection", url: "/collections/heritage-christmas-hampers", images: " ", price: " " },{ label: "Heritage Hampers", category: "Collection", url: "/collections/heritage-hampers", images: " ", price: " " },{ label: "Heritage Ramadan Hampers", category: "Collection", url: "/collections/heritage-ramadan-hampers", images: " ", price: " " },{ label: "Hexa Hampers", category: "Collection", url: "/collections/hexa-hampers", images: " ", price: " " },{ label: "Hexa Hampers Luar Jadetabek", category: "Collection", url: "/collections/hexa-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Hexa Newborn", category: "Collection", url: "/collections/hexa-newborn", images: " ", price: " " },{ label: "Holo Bag", category: "Collection", url: "/collections/holo-bag", images: " ", price: " " },{ label: "Holo Series", category: "Collection", url: "/collections/holo-series", images: " ", price: " " },{ label: "Home Decoration & Photo Frame", category: "Collection", url: "/collections/home-decoration", images: " ", price: " " }
7562,{ label: "Hospitalization", category: "Collection", url: "/collections/axa-hospitalization", images: " ", price: " " },{ label: "House Hampers", category: "Collection", url: "/collections/house-hampers", images: " ", price: " " },{ label: "I'm Sorry", category: "Collection", url: "/collections/rangkaian-bunga-sorry", images: " ", price: " " },{ label: "Ice Cream Cake", category: "Collection", url: "/collections/ice-cream-cake", images: " ", price: " " },{ label: "Idul Fitri", category: "Collection", url: "/collections/rangkaian-bunga-idul-fitri", images: " ", price: " " },{ label: "Jam Tangan", category: "Collection", url: "/collections/jam-tangan", images: " ", price: " " },{ label: "Jam Tangan Couple", category: "Collection", url: "/collections/jam-tangan-couple", images: " ", price: " " },{ label: "Jam Tangan Pria", category: "Collection", url: "/collections/jam-tangan-pria", images: " ", price: " " },{ label: "Jam Tangan Wanita", category: "Collection", url: "/collections/jam-tangan-wanita", images: " ", price: " " },{ label: "Jasa Packing Parcel", category: "Collection", url: "/collections/jasa-packing-parcel", images: " ", price: " " },{ label: "Jewelry", category: "Collection", url: "/collections/jewelry", images: " ", price: " " },{ label: "Jolly Hampers", category: "Collection", url: "/collections/jolly-hampers", images: " ", price: " " },{ label: "Jual Custom Cake & Hampers Termurah & Terlengkap | Outerbloom Florist & Gift", category: "Collection", url: "/collections/custom-cake-hampers", images: " ", price: " " },{ label: "Just Because", category: "Collection", url: "/collections/just-because", images: " ", price: " " },{ label: "Kado Makanan", category: "Collection", url: "/collections/kado-makanan", images: " ", price: " " },{ label: "Kado Minuman", category: "Collection", url: "/collections/kado-minuman", images: " ", price: " " },{ label: "Kado Natal", category: "Collection", url: "/collections/kado-natal", images: " ", price: " " },{ label: "Kado Unik", category: "Collection", url: "/collections/kado-unik", images: " ", price: " " },{ label: "Kado Valentine Nusantara", category: "Collection", url: "/collections/kado-valentine-nusantara", images: " ", price: " " },{ label: "Kado Valentine untuk Pria", category: "Collection", url: "/collections/kado-valentine-untuk-pria", images: " ", price: " " },{ label: "Kado Wisuda", category: "Collection", url: "/collections/kado-wisuda", images: " ", price: " " },{ label: "Kado Zodiak", category: "Collection", url: "/collections/kado-untuk-zodiak", images: " ", price: " " },{ label: "Karangan Bunga Aceh", category: "Collection", url: "/collections/karangan-bunga-aceh", images: " ", price: " " },{ label: "Karangan Bunga Ambon", category: "Collection", url: "/collections/karangan-bunga-ambon", images: " ", price: " " },{ label: "Karangan Bunga Atambua", category: "Collection", url: "/collections/karangan-bunga-atambua", images: " ", price: " " },{ label: "Karangan Bunga Bali", category: "Collection", url: "/collections/karangan-bunga-bali", images: " ", price: " " },{ label: "Karangan Bunga Balikpapan", category: "Collection", url: "/collections/karangan-bunga-balikpapan", images: " ", price: " " },{ label: "Karangan Bunga Bandung", category: "Collection", url: "/collections/karangan-bunga-bandung", images: " ", price: " " },{ label: "Karangan Bunga Bandung Barat", category: "Collection", url: "/collections/karangan-bunga-bandung-barat", images: " ", price: " " },{ label: "Karangan Bunga Bangka", category: "Collection", url: "/collections/karangan-bunga-bangka", images: " ", price: " " },{ label: "Karangan Bunga Banjarmasin", category: "Collection", url: "/collections/karangan-bunga-banjarmasin", images: " ", price: " " },{ label: "Karangan Bunga Banten", category: "Collection", url: "/collections/karangan-bunga-banten", images: " ", price: " " },{ label: "Karangan Bunga Banyumas", category: "Collection", url: "/collections/karangan-bunga-banyumas", images: " ", price: " " },{ label: "Karangan Bunga Banyuwangi", category: "Collection", url: "/collections/karangan-bunga-banyuwangi", images: " ", price: " " },{ label: "Karangan Bunga Batam", category: "Collection", url: "/collections/karangan-bunga-batam", images: " ", price: " " },{ label: "Karangan Bunga Baubau", category: "Collection", url: "/collections/karangan-bunga-baubau", images: " ", price: " " },{ label: "Karangan Bunga Bengkalis", category: "Collection", url: "/collections/karangan-bunga-bengkalis", images: " ", price: " " },{ label: "Karangan Bunga Bengkayang", category: "Collection", url: "/collections/karangan-bunga-bengkayang", images: " ", price: " " },{ label: "Karangan Bunga Bengkulu", category: "Collection", url: "/collections/karangan-bunga-bengkulu", images: " ", price: " " },{ label: "Karangan Bunga Blora", category: "Collection", url: "/collections/karangan-bunga-blora", images: " ", price: " " },{ label: "Karangan Bunga Bogor", category: "Collection", url: "/collections/karangan-bunga-bogor", images: " ", price: " " },{ label: "Karangan Bunga Bojonegoro", category: "Collection", url: "/collections/karangan-bunga-bojonegoro", images: " ", price: " " },{ label: "Karangan Bunga Boyolali", category: "Collection", url: "/collections/karangan-bunga-boyolali", images: " ", price: " " },{ label: "Karangan Bunga Brebes", category: "Collection", url: "/collections/karangan-bunga-brebes", images: " ", price: " " },{ label: "Karangan Bunga Bukittinggi", category: "Collection", url: "/collections/karangan-bunga-bukittinggi", images: " ", price: " " },{ label: "Karangan Bunga Ciamis", category: "Collection", url: "/collections/karangan-bunga-ciamis", images: " ", price: " " }
7562,{ label: "Karangan Bunga Cianjur", category: "Collection", url: "/collections/karangan-bunga-cianjur", images: " ", price: " " },{ label: "Karangan Bunga Cikarang", category: "Collection", url: "/collections/karangan-bunga-cikarang", images: " ", price: " " },{ label: "Karangan Bunga Cikupa", category: "Collection", url: "/collections/karangan-bunga-cikupa", images: " ", price: " " },{ label: "Karangan Bunga Cilacap", category: "Collection", url: "/collections/karangan-bunga-cilacap", images: " ", price: " " },{ label: "Karangan Bunga Cileunyi", category: "Collection", url: "/collections/karangan-bunga-cileunyi", images: " ", price: " " },{ label: "Karangan Bunga Cimahi", category: "Collection", url: "/collections/karangan-bunga-cimahi", images: " ", price: " " },{ label: "Karangan Bunga Cirebon", category: "Collection", url: "/collections/karangan-bunga-cirebon", images: " ", price: " " },{ label: "Karangan Bunga Ciwidey", category: "Collection", url: "/collections/karangan-bunga-ciwidey", images: " ", price: " " },{ label: "Karangan Bunga Danau Toba", category: "Collection", url: "/collections/karangan-bunga-danau-toba", images: " ", price: " " },{ label: "Karangan Bunga Demak", category: "Collection", url: "/collections/karangan-bunga-demak", images: " ", price: " " },{ label: "Karangan Bunga Denpasar", category: "Collection", url: "/collections/karangan-bunga-denpasar", images: " ", price: " " },{ label: "Karangan Bunga Depok", category: "Collection", url: "/collections/karangan-bunga-depok", images: " ", price: " " },{ label: "Karangan Bunga Duka Cita", category: "Collection", url: "/collections/karangan-bunga-duka-cita", images: " ", price: " " },{ label: "Karangan Bunga Garut", category: "Collection", url: "/collections/karangan-bunga-garut", images: " ", price: " " },{ label: "Karangan Bunga Gianyar", category: "Collection", url: "/collections/karangan-bunga-gianyar", images: " ", price: " " },{ label: "Karangan Bunga Gorontalo", category: "Collection", url: "/collections/karangan-bunga-gorontalo", images: " ", price: " " },{ label: "Karangan Bunga Gowa", category: "Collection", url: "/collections/karangan-bunga-gowa", images: " ", price: " " },{ label: "Karangan Bunga Gresik", category: "Collection", url: "/collections/karangan-bunga-gresik", images: " ", price: " " },{ label: "Karangan Bunga Grobogan", category: "Collection", url: "/collections/karangan-bunga-grobogan", images: " ", price: " " },{ label: "Karangan Bunga Gunung Kidul", category: "Collection", url: "/collections/karangan-bunga-gunungkidul", images: " ", price: " " },{ label: "Karangan Bunga Indramayu", category: "Collection", url: "/collections/karangan-bunga-indramayu", images: " ", price: " " },{ label: "Karangan Bunga Jakarta", category: "Collection", url: "/collections/karangan-bunga-jakarta", images: " ", price: " " },{ label: "Karangan Bunga Jambi", category: "Collection", url: "/collections/karangan-bunga-jambi", images: " ", price: " " },{ label: "Karangan Bunga Jayapura", category: "Collection", url: "/collections/karangan-bunga-jayapura", images: " ", price: " " },{ label: "Karangan Bunga Jember", category: "Collection", url: "/collections/karangan-bunga-jember", images: " ", price: " " },{ label: "Karangan Bunga Jembrana", category: "Collection", url: "/collections/karangan-bunga-jembrana", images: " ", price: " " },{ label: "Karangan Bunga Jepara", category: "Collection", url: "/collections/karangan-bunga-jepara", images: " ", price: " " },{ label: "Karangan Bunga Jombang", category: "Collection", url: "/collections/karangan-bunga-jombang", images: " ", price: " " },{ label: "Karangan Bunga Kampung Baru", category: "Collection", url: "/collections/karangan-bunga-kampung-baru", images: " ", price: " " },{ label: "Karangan Bunga Kapuas", category: "Collection", url: "/collections/karangan-bunga-kapuas", images: " ", price: " " },{ label: "Karangan Bunga Karanganyar", category: "Collection", url: "/collections/karangan-bunga-karanganyar", images: " ", price: " " },{ label: "Karangan Bunga Karangasem", category: "Collection", url: "/collections/karangan-bunga-karangasem", images: " ", price: " " },{ label: "Karangan Bunga Karawang", category: "Collection", url: "/collections/karangan-bunga-karawang", images: " ", price: " " },{ label: "Karangan Bunga Kartosuro", category: "Collection", url: "/collections/karangan-bunga-kartosuro", images: " ", price: " " },{ label: "Karangan Bunga Kebumen", category: "Collection", url: "/collections/karangan-bunga-kebumen", images: " ", price: " " },{ label: "Karangan Bunga Kediri", category: "Collection", url: "/collections/karangan-bunga-kediri", images: " ", price: " " },{ label: "Karangan Bunga Kendal", category: "Collection", url: "/collections/karangan-bunga-ken
7562dal", images: " ", price: " " },{ label: "Karangan Bunga Kendari", category: "Collection", url: "/collections/karangan-bunga-kendari", images: " ", price: " " },{ label: "Karangan Bunga Ketapang", category: "Collection", url: "/collections/karangan-bunga-ketapang", images: " ", price: " " },{ label: "Karangan Bunga Klaten", category: "Collection", url: "/collections/karangan-bunga-klaten", images: " ", price: " " },{ label: "Karangan Bunga Kota Batu", category: "Collection", url: "/collections/karangan-bunga-kota-batu", images: " ", price: " " },{ label: "Karangan Bunga Kudus", category: "Collection", url: "/collections/karangan-bunga-kudus", images: " ", price: " " },{ label: "Karangan Bunga Kupang", category: "Collection", url: "/collections/karangan-bunga-kupang", images: " ", price: " " },{ label: "Karangan Bunga Lamongan", category: "Collection", url: "/collections/karangan-bunga-lamongan", images: " ", price: " " },{ label: "Karangan Bunga Lampung", category: "Collection", url: "/collections/karangan-bunga-lampung", images: " ", price: " " },{ label: "Karangan Bunga Langkat", category: "Collection", url: "/collections/karangan-bunga-langkat", images: " ", price: " " },{ label: "Karangan Bunga Lembang", category: "Collection", url: "/collections/karangan-bunga-lembang", images: " ", price: " " },{ label: "Karangan Bunga Lombok", category: "Collection", url: "/collections/karangan-bunga-lombok", images: " ", price: " " },{ label: "Karangan Bunga Lubuk Pakam", category: "Collection", url: "/collections/karangan-bunga-lubuk-pakam", images: " ", price: " " },{ label: "Karangan Bunga Lumajang", category: "Collection", url: "/collections/karangan-bunga-lumajang", images: " ", price: " " },{ label: "Karangan Bunga Madiun", category: "Collection", url: "/collections/karangan-bunga-madiun", images: " ", price: " " },{ label: "Karangan Bunga Magelang", category: "Collection", url: "/collections/karangan-bunga-magelang", images: " ", price: " " },{ label: "Karangan Bunga Majalengka", category: "Collection", url: "/collections/karangan-bunga-majalengka", images: " ", price: " " },{ label: "Karangan Bunga Makassar", category: "Collection", url: "/collections/karangan-bunga-makassar", images: " ", price: " " },{ label: "Karangan Bunga Malang", category: "Collection", url: "/collections/karangan-bunga-malang", images: " ", price: " " },{ label: "Karangan Bunga Mamuju", category: "Collection", url: "/collections/karangan-bunga-mamuju", images: " ", price: " " },{ label: "Karangan Bunga Manado", category: "Collection", url: "/collections/karangan-bunga-manado", images: " ", price: " " },{ label: "Karangan Bunga Manokwari", category: "Collection", url: "/collections/karangan-bunga-manokwari", images: " ", price: " " },{ label: "Karangan Bunga Maros", category: "Collection", url: "/collections/karangan-bunga-maros", images: " ", price: " " },{ label: "Karangan Bunga Mataram", category: "Collection", url: "/collections/karangan-bunga-mataram", images: " ", price: " " },{ label: "Karangan Bunga Mojokerto", category: "Collection", url: "/collections/karangan-bunga-mojokerto", images: " ", price: " " },{ label: "Karangan Bunga Nganjuk", category: "Collection", url: "/collections/karangan-bunga-nganjuk", images: " ", price: " " },{ label: "Karangan Bunga Nias", category: "Collection", url: "/collections/karangan-bunga-nias", images: " ", price: " " },{ label: "Karangan Bunga Padang", category: "Collection", url: "/collections/karangan-bunga-padang", images: " ", price: " " },{ label: "Karangan Bunga Palangkaraya", category: "Collection", url: "/collections/karangan-bunga-palangkaraya", images: " ", price: " " },{ label: "Karangan Bunga Palu", category: "Collection", url: "/collections/karangan-bunga-palu", images: " ", price: " " },{ label: "Karangan Bunga Pangkal Pinang", category: "Collection", url: "/collections/karangan-bunga-pangkal-pinang", images: " ", price: " " },{ label: "Karangan Bunga Papan", category: "Collection", url: "/collections/karangan-bunga", images: " ", price: " " },{ label: "Karangan Bunga Papan Bandar Lampung", category: "Collection", url: "/collections/karangan-bunga-bandar-lampung", images: " ", price: " " },{ label: "Karangan Bunga Papan Bekasi", category: "Collection", url: "/collections/karangan-bunga-bekasi", images: " ", price: " " },{ label: "Karangan Bunga Papan Binjai", category: "Collection", url: "/collections/karangan-bunga-binjai", images: " ", price: " " },{ label: "Karangan Bunga Papan Blitar", category: "Collection", url: "/collections/karangan-bunga-blitar", images: " ", price: " " },{ label: "Karangan Bunga Papan Buleleng", category: "Collection", url: "/collections/karangan-bunga-buleleng", images: " ", price: " " },{ label: "Karangan Bunga Papan Cibubur", category: "Collection", url: "/collections/karangan-bunga-cibubur", images: " ", price: " " },{ label: "Karangan Bunga Papan Deli Serdang", category: "Collection", url: "/collections/karangan-bunga-deli-serdang", images: " ", price: " " },{ label: "Karangan Bunga Papan Jakarta Timur", category: "Collection", url: "/collections/karangan-bunga-jakarta-timur", images: " ", price: " " },{ label: "Karangan Bunga Papan Karo", category: "Collection", url: "/collections/karangan-bunga-karo", images: " ", price: " " },{ label: "Karangan Bunga Papan Medan", category: "Collection", url: "/collections/karangan-bunga-medan", images: " ", price: " " },{ label: "Karangan Bunga Papan Ngawi", category: "Collection", url: "/collections/karangan-bunga-ngawi", images: " ", price: " " },{ label: "Karangan Bunga Papan Palembang", category: "Collection", url: "/collections/karangan-bunga-palembang", images: " ", price: " " },{ label: "Karangan Bunga Papan Pemalang", category: "Collection", url: "/collections/karangan-bunga-pemalang", images: " ", price: " " },{ label: "Karangan Bunga Papan Rembang", category: "Collection", url: "/collections/karangan-bunga-rembang", images: " ", price: " " },{ label: "Karangan Bunga Papan Sragen", category: "Collection", url: "/collections/karangan-bunga-sragen", images: " ", price: " " },{ label: "Karangan Bunga Papan Tegal", category: "Collection", url: "/collections/karangan-bunga-tegal", images: " ", price: " " },{ label: "Karangan Bunga Papan Temanggung", category: "Collection", url: "/collections/karangan-bunga-temanggung", images: " ", price: " " },{ label: "Karangan Bunga Parepare", category: "Collection", url: "/collections/karangan-bunga-parepare", images: " ", price: " " },{ label: "Karangan Bunga Pasuruan", category: "Collection", url: "/collections/karangan-bunga-pasuruan", images: " ", price: " " },{ label: "Karangan Bunga Pati", category: "Collection", url: "/collections/karangan-bunga-pati", images: " ", price: " " },{ label: "Karangan Bunga Pekalongan", category: "Collection", url: "/collections/karangan-bunga-pekalongan", images: " ", price: " " },{ label: "Karangan Bunga Pekanbaru", category: "Collection", url: "/collections/karangan-bunga-pekanbaru", images: " ", price: " " },{ label: "Karangan Bunga Pematangsiantar", category: "Collection", url: "/collections/karangan-bunga-pematangsiantar", images: " ", price: " " },{ label: "Karangan Bunga Ponorogo", category: "Collection", url: "/collections/karangan-bunga-ponorogo", images: " ", price: " " },{ label: "Karangan Bunga Pontianak", category: "Collection", url: "/collections/karangan-bunga-pontianak", images: " ", price: " " },{ label: "Karangan Bunga Probolinggo", category: "Collection", url: "/collections/karangan-bunga-probolinggo", images: " ", price: " " },{ label: "Karangan Bunga Purbalingga", category: "Collection", url: "/collections/karangan-bunga-purbalingga", images: " ", price: " " },{ label: "Karangan Bunga Purwokerto", category: "Collection", url: "/collections/karangan-bunga-purwokerto", images: " ", price: " " },{ label: "Karangan Bunga Purworejo", category: "Collection", url: "/collections/karangan-bunga-purworejo", images: " ", price: " " },{ label: "Karangan Bunga Riau", category: "Collection", url: "/collections/karangan-bunga-riau", images: " ", price: " " },{ label: "Karangan Bunga Salatiga", category: "Collection", url: "/collections/karangan-bunga-salatiga", images: " ", price: " " },{ label: "Karangan Bunga Samarinda", category: "Collection", url: "/collections/karangan-bunga-samarinda", images: " ", price: " " },{ label: "Karangan Bunga Semarang", category: "Collection", url: "/collections/karangan-bunga-semarang", images: " ", price: " " },{ label: "Karangan Bunga Serang", category: "Collection", url: "/collections/karangan-bunga-serang", images: " ", price: " " },{ label: "Karangan Bunga Sibolga", category: "Collection", url: "/collections/karangan-bunga-sibolga", images: " ", price: " " },{ label: "Karangan Bunga Sidoarjo", category: "Collection", url: "/collections/karangan-bunga-sidoarjo", images: " ", price: " " },{ label: "Karangan Bunga Singkawang", category: "Collection", url: "/collections/karangan-bunga-singkawang", images: " ", price: " " },{ label: "Karangan Bunga Solo", category: "Collection", url: "/collections/karangan-bunga-solo", images: " ", price: " " },{ label: "Karangan Bunga Sorong", category: "Collection", url: "/collections/karangan-bunga-sorong", images: " ", price: " " },{ label: "Karangan Bunga Subang", category: "Collection", url: "/collections/karangan-bunga-subang", images: " ", price: " " },{ label: "Karangan Bunga Sukabumi", category: "Collection", url: "/collections/karangan-bunga-sukabumi", images: " ", price: " " },{ label: "Karangan Bunga Sumbawa", category: "Collection", url: "/collections/karangan-bunga-sumbawa", images: " ", price: " " },{ label: "Karangan Bunga Surabaya", category: "Collection", url: "/collections/karangan-bunga-surabaya", images: " ", price: " " },{ label: "Karangan Bunga Surakarta", category: "Collection", url: "/collections/karangan-bunga-surakarta", images: " ", price: " " },{ label: "Karangan Bunga Tangerang", category: "Collection", url: "/collections/karangan-bunga-tangerang", images: " ", price: " " },{ label: "Karangan Bunga Tasikmalaya", category: "Collection", url: "/collections/karangan-bunga-tasikmalaya", images: " ", price: " " },{ label: "Karangan Bunga Ternate", category: "Collection", url: "/collections/karangan-bunga-ternate", images: " ", price: " " },{ label: "Karangan Bunga Tolitoli", category: "Collection", url: "/collections/karangan-bunga-tolitoli", images: " ", price: " " },{ label: "Karangan Bunga Toraja", category: "Collection", url: "/collections/karangan-bunga-toraja", images: " ", price: " " },{ label: "Karangan Bunga Tuban", category: "Collection", url: "/collections/karangan-bunga-tuban", images: " ", price: " " },{ label: "Karangan Bunga Tulungagung", category: "Collection", url: "/collections/karangan-bunga-tulungagung", images: " ", price: " " },{ label: "Karangan Bunga Wakatobi", category: "Collection", url: "/collections/karangan-bunga-wakatobi", images: " ", price: " " },{ label: "Karangan Bunga Wiyung", category: "Collection", url: "/collections/karangan-bunga-wiyung", images: " ", price: " " },{ label: "Karangan Bunga Wonogiri", category: "Collection", url: "/collections/karangan-bunga-wonogiri", images: " ", price: " " },{ label: "Karangan Bunga Wonokromo", category: "Collection", url: "/collections/karangan-bunga-wonokromo", images: " ", price: " " },{ label: "Karangan Bunga Wonosobo", category: "Collection", url: "/collections/karangan-bunga-wonosobo", images: " ", price: " " },{ label: "Karangan Bunga Yogyakarta", category: "Collection", url: "/collections/karangan-bunga-yogyakarta", images: " ", price: " " },{ label: "Kartu Ucapan", category: "Collection", url: "/collections/kartu-ucapan", images: " ", price: " " },{ label: "Kue Anniversary", category: "Collection", url: "/collections/kue-anniversary", images: " ", price: " " },{ label: "Kue Bachelorette", category: "Collection", url: "/collections/kue-bachelorette", images: " ", price: " " },{ label: "Kue Bandung", category: "Collection", url: "/collections/kue-bandung", images: " ", price: " " },{ label: "Kue Bulan", category: "Collection", url: "/collections/kue-bulan", images: " ", price: " " },{ label: "Kue Imlek", category: "Collection", url: "/collections/kue-imlek", images: " ", price: " " },{ label: "Kue Kering", category: "Collection", url: "/collections/kue-kering", images: " ", price: " " },{ label: "Kue Natal", category: "Collection", url: "/collections/kue-natal", images: " ", price: " " },{ label: "Kue Pernikahan", category: "Collection", url: "/collections/kue-pernikahan", images: " ", price: " " },{ label: "Kue Tart", category: "Collection", url: "/collections/kue-tart", images: " ", price: " " },{ label: "Kue Tart Oma Elly", category: "Collection", url: "/collections/kue-tart-oma-elly", images: " ", price: " " },{ label: "Kue Ulang Tahun", category: "Collection", url: "/collections/kue-ulang-tahun", images: " ", price: " " },{ label: "Lalique", category: "Collection", url: "/collections/lalique", images: " ", price: " " },{ label: "Le Sucre Du Patisserie", category: "Collection", url: "/collections/le-sucre-du-patisserie", images: " ", price: " " },{ label: "Leo ?? 23July - 22Augst", category: "Collection", url: "/collections/kado-untuk-zodiak-leo", images: " ", price: " " },{ label: "Letter Box", category: "Collection", url: "/collections/letter-box", images: " ", price: " " },{ label: "Libra ?? 23Sept - 23Oct", category: "Collection", url: "/collections/kado-untuk-zodiak-libra", images: " ", price: " " },{ label: "Lilin Aromaterapi", category: "Collection", url: "/collections/lilin-aromaterapi", images: " ", price: " " },{ label: "Lily", category: "Collection", url: "/collections/bunga-lily", images: " ", price: " " },{ label: "Lindt", category: "Collection", url: "/collections/lindt", images: " ", price: " " },{ label: "Locations", category: "Collection", url: "/collections/locations", images: " ", price: " " },{ label: "Love & Romance", category: "Collection", url: "/collections/rangkaian-bunga-i-love-you", images: " ", price: " " },{ label: "Love Bag Collection", category: "Collection", url: "/collections/love-bag-collection", images: " ", price: " " },{ label: "Love Bundle", category: "Collection", url: "/collections/paket-promo-spesial-valentine", images: " ", price: " " },{ label: "Love Bundle Nusantara", category: "Collection", url: "/collections/love-bundle-nusantara", images: " ", price: " " },{ label: "Luxury Chinese New Year Hampers", category: "Collection", url: "/collections/luxury-chinese-new-year-hampers", images: " ", price: " " },{ label: "Luxury Christmas Hampers", category: "Collection", url: "/collections/luxury-christmas-hampers", images: " ", price: " " },{ label: "Luxury Hampers", category: "Collection", url: "/collections/luxury-hampers", images: " ", price: " " },{ label: "Luxury Hampers Luar Jadetabek", category: "Collection", url: "/collections/luxury-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Luxury Newborn Hampers Collection", category: "Collection", url: "/collections/luxury-newborn-hampers-collection", images: " ", price: " " },{ label: "Luxury Ramadan Hampers", category: "Collection", url: "/collections/luxury-ramadan-hampers", images: " ", price: " " },{ label: "Luxury Set", category: "Collection", url: "/collections/luxury", images: " ", price: " " },{ label: "Manual", category: "Collection", url: "/collections/manual", images: " ", price: " " },{ label: "Massimo Gelato", category: "Collection", url: "/collections/massimo-gelato", images: " ", price: " " },{ label: "Men's Collection", category: "Collection", url: "/collections/mens-collection", images: " ", price: " " },{ label: "Mercedes Benz", category: "Collection", url: "/collections/mercedes-benz", images: " ", price: " " },{ label: "Mercy Hampers", category: "Collection", url: "/collections/mercy-
7562hampers", images: " ", price: " " },{ label: "Merry Hampers", category: "Collection", url: "/collections/merry-hampers", images: " ", price: " " },{ label: "Merry Hampers Luar Jabodetabek", category: "Collection", url: "/collections/merry-hampers-luar-jabodetabek", images: " ", price: " " },{ label: "Mini Bouquet", category: "Collection", url: "/collections/mini-bouquet", images: " ", price: " " },{ label: "Miss Mondial", category: "Collection", url: "/collections/miss-mondial", images: " ", price: " " },{ label: "Modern & Chic Chinese New Year", category: "Collection", url: "/collections/modern-chic-chinese-new-year", images: " ", price: " " },{ label: "Modern & Chic Christmas Hampers", category: "Collection", url: "/collections/modern-chic-christmas", images: " ", price: " " },{ label: "Modern & Chic Hampers", category: "Collection", url: "/collections/modern-chic-hampers", images: " ", price: " " },{ label: "Modern & Chic Hampers Luar Jadetabek", category: "Collection", url: "/collections/modern-chic-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Modern & Chic Ramadan Hampers", category: "Collection", url: "/collections/modern-chic-ramadan-hampers", images: " ", price: " " },{ label: "Modern & Classy Hampers", category: "Collection", url: "/collections/parcel-unik", images: " ", price: " " },{ label: "Modern 3D Cake", category: "Collection", url: "/collections/custom-3d-cake", images: " ", price: " " },{ label: "Modern Style Flowers", category: "Collection", url: "/collections/modern-style-flowers", images: " ", price: " " },{ label: "Monochrome Hampers", category: "Collection", url: "/collections/monochrome-hampers", images: " ", price: " " },{ label: "Monochrome Hampers Luar Jadetabek", category: "Collection", url: "/collections/monochrome-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Mooncake", category: "Collection", url: "/collections/kue-bulan-mooncake-2025-mid-autumn-festival", images: " ", price: " " },{ label: "Mooncake Assorted Selection", category: "Collection", url: "/collections/mooncake-assorted-selection", images: " ", price: " " },{ label: "Mother's Day", category: "Collection", url: "/collections/rangkaian-bunga-hari-ibu", images: " ", price: " " },{ label: "Mother's Day Special", category: "Collection", url: "/collections/kado-untuk-ibu", images: " ", price: " " },{ label: "Necklace", category: "Collection", url: "/collections/kalung", images: " ", price: " " },{ label: "NestBloom Bird Nest Hampers", category: "Collection", url: "/collections/nestbloom-birds-nest", images: " ", price: " " },{ label: "NestBloom Gift Set", category: "Collection", url: "/collections/nestbloom-gift-set", images: " ", price: " " },{ label: "Nestbloom Ritual Kit", category: "Collection", url: "/collections/nestbloom-ritual-kit", images: " ", price: " " },{ label: "NestBloom Single Bloom", category: "Collection", url: "/collections/nestbloom-single-bloom", images: " ", price: " " },{ label: "New Collection", category: "Collection", url: "/collections/produk-baru", images: " ", price: " " },{ label: "New Product", category: "Collection", url: "/collections/new-product", images: " ", price: " " },{ label: "Newborn", category: "Collection", url: "/collections/rangkaian-bunga-newborn-baby", images: " ", price: " " },{ label: "Newborn Hampers", category: "Collection", url: "/collections/parcel-newborn", images: " ", price: " " },{ label: "Occasions", category: "Collection", url: "/collections/occasions", images: " ", price: " " },{ label: "Oma Elly", category: "Collection", url: "/collections/oma-elly", images: " ", price: " " },{ label: "Oma Elly Gelato", category: "Collection", url: "/collections/oma-elly-gelato", images: " ", price: " " },{ label: "Orchid", category: "Collection", url: "/collections/bunga-anggrek", images: " ", price: " " },{ label: "Orori", category: "Collection", url: "/collections/orori", images: " ", price: " " },{ label: "Outerbloom", category: "Collection", url: "/collections/outerbloom", images: " ", price: " " },{ label: "Outerbloom Cake", category: "Collection", url: "/collections/outerbloom-cake", images: " ", price: " " },{ label: "Outerbloom Florist", category: "Collection", url: "/collections/outerbloom-florist", images: " ", price: " " },{ label: "Outerbloom Gift", category: "Collection", url: "/collections/outerbloom-gift", images: " ", price: " " },{ label: "Outerbloom Hampers", category: "Collection", url: "/collections/outerbloom-hampers", images: " ", price: " " },{ label: "Outerbloom Indonesia", category: "Collection", url: "/collections/indonesia", images: " ", price: " " },{ label: "Outerbloom x Boho Panna", category: "Collection", url: "/collections/outerbloom-x-boh
7562o-panna", images: " ", price: " " },{ label: "Outerbloom x Clairmont", category: "Collection", url: "/collections/outerbloom-x-clairmont", images: " ", price: " " },{ label: "Outerbloom x Kikido", category: "Collection", url: "/collections/outerbloom-x-kikido", images: " ", price: " " },{ label: "Outerbloom x Miwa Pattern", category: "Collection", url: "/collections/outerbloom-x-miwa", images: " ", price: " " },{ label: "Outerbloom x Nestbloom Chinese New Year", category: "Collection", url: "/collections/outerbloom-x-nestbloom-chinese-new-year", images: " ", price: " " },{ label: "Outerbloom x NestBloom Hampers", category: "Collection", url: "/collections/outerbloom-x-nestbloom", images: " ", price: " " },{ label: "Paket Kolaborasi Outerbloom", category: "Collection", url: "/collections/paket-kolaborasi-outerbloom", images: " ", price: " " },{ label: "Paket Kolaborasi Valentine", category: "Collection", url: "/collections/paket-kolaborasi-valentine", images: " ", price: " " },{ label: "Paket Ulang Tahun", category: "Collection", url: "/collections/paket-ulang-tahun", images: " ", price: " " },{ label: "Paket Valentine Nusantara", category: "Collection", url: "/collections/paket-valentine-nusantara", images: " ", price: " " },{ label: "Paket Valentine Outerbloom", category: "Collection", url: "/collections/paket-valentine", images: " ", price: " " },{ label: "Papan Bunga", category: "Collection", url: "/collections/papan-bunga", images: " ", price: " " },{ label: "Papan Bunga Aceh", category: "Collection", url: "/collections/papan-bunga-aceh", images: " ", price: " " },{ label: "Papan Bunga Acrylic", category: "Collection", url: "/collections/papan-bunga-acrylic", images: " ", price: " " },{ label: "Papan Bunga Ambon", category: "Collection", url: "/collections/papan-bunga-ambon", images: " ", price: " " },{ label: "Papan Bunga Artificial", category: "Collection", url: "/collections/papan-bunga-artificial", images: " ", price: " " },{ label: "Papan Bunga Atambua", category: "Collection", url: "/collections/papan-bunga-atambua", images: " ", price: " " },{ label: "Papan Bunga Bali", category: "Collection", url: "/collections/papan-bunga-bali", images: " ", price: " " },{ label: "Papan Bunga Balikpapan", category: "Collection", url: "/collections/papan-bunga-balikpapan", images: " ", price: " " },{ label: "Papan Bunga Bandar Lampung", category: "Collection", url: "/collections/papan-bunga-bandar-lampung", images: " ", price: " " },{ label: "Papan Bunga Bandung", category: "Collection", url: "/collections/papan-bunga-bandung", images: " ", price: " " },{ label: "Papan Bunga Bandung Barat", category: "Collection", url: "/collections/papan-bunga-bandung-barat", images: " ", price: " " },{ label: "Papan Bunga Bangka", category: "Collection", url: "/collections/papan-bunga-bangka", images: " ", price: " " },{ label: "Papan Bunga Banjarmasin", category: "Collection", url: "/collections/papan-bunga-banjarmasin", images: " ", price: " " },{ label: "Papan Bunga Banten", category: "Collection", url: "/collections/papan-bunga-banten", images: " ", price: " " },{ label: "Papan Bunga Banyumas", category: "Collection", url: "/collections/papan-bunga-banyumas", images: " ", price: " " },{ label: "Papan Bunga Banyuwangi", category: "Collection", url: "/collections/papan-bunga-banyuwangi", images: " ", price: " " },{ label: "Papan Bunga Batam", category: "Collection", url: "/collections/papan-bunga-batam", images: " ", price: " " },{ label: "Papan Bunga Baubau", category: "Collection", url: "/collections/papan-bunga-baubau", images: " ", price: " " },{ label: "Papan Bunga Bekasi", category: "Collection", url: "/collections/papan-bunga-bekasi", images: " ", price: " " },{ label: "Papan Bunga Bengkalis", category: "Collection", url: "/collections/papan-bunga-bengkalis", images: " ", price: " " },{ label: "Papan Bunga Bengkayang", category: "Collection", url: "/collections/papan-bunga-bengkayang", images: " ", price: " " },{ label: "Papan Bunga Bengkulu", category: "Collection", url: "/collections/papan-bunga-bengkulu", images: " ", price: " " }
7562,{ label: "Papan Bunga Binjai", category: "Collection", url: "/collections/papan-bunga-binjai", images: " ", price: " " },{ label: "Papan Bunga Blitar", category: "Collection", url: "/collections/papan-bunga-blitar", images: " ", price: " " },{ label: "Papan Bunga Blora", category: "Collection", url: "/collections/papan-bunga-blora", images: " ", price: " " },{ label: "Papan Bunga Bogor", category: "Collection", url: "/collections/papan-bunga-bogor", images: " ", price: " " },{ label: "Papan Bunga Bojonegoro", category: "Collection", url: "/collections/papan-bunga-bojonegoro", images: " ", price: " " },{ label: "Papan Bunga Boyolali", category: "Collection", url: "/collections/papan-bunga-boyolali", images: " ", price: " " },{ label: "Papan Bunga Brebes", category: "Collection", url: "/collections/papan-bunga-brebes", images: " ", price: " " },{ label: "Papan Bunga Bukittinggi", category: "Collection", url: "/collections/papan-bunga-bukittinggi", images: " ", price: " " },{ label: "Papan Bunga Buleleng", category: "Collection", url: "/collections/papan-bunga-buleleng", images: " ", price: " " },{ label: "Papan Bunga Ciamis", category: "Collection", url: "/collections/papan-bunga-ciamis", images: " ", price: " " },{ label: "Papan Bunga Cianjur", category: "Collection", url: "/collections/papan-bunga-cianjur", images: " ", price: " " },{ label: "Papan Bunga Cibubur", category: "Collection", url: "/collections/papan-bunga-cibubur", images: " ", price: " " },{ label: "Papan Bunga Cikarang", category: "Collection", url: "/collections/papan-bunga-cikarang", images: " ", price: " " },{ label: "Papan Bunga Cikupa", category: "Collection", url: "/collections/papan-bunga-cikupa", images: " ", price: " " },{ label: "Papan Bunga Cikupa", category: "Collection", url: "/collections/papan-bunga-cikupa-1", images: " ", price: " " },{ label: "Papan Bunga Cilacap", category: "Collection", url: "/collections/papan-bunga-cilacap", images: " ", price: " " },{ label: "Papan Bunga Cileunyi", category: "Collection", url: "/collections/papan-bunga-cileunyi", images: " ", price: " " },{ label: "Papan Bunga Cirebon", category: "Collection", url: "/collections/papan-bunga-cirebon", images: " ", price: " " },{ label: "Papan Bunga Congratulations", category: "Collection", url: "/collections/papan-bunga-ucapan-selamat", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bali", category: "Collection", url: "/collections/papan-bunga-congratulations-bali", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bandung", category: "Collection", url: "/collections/papan-bunga-congratulations-bandung", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bekasi", category: "Collection", url: "/collections/papan-bunga-congratulations-bekasi", images: " ", price: " " },{ label: "Papan Bunga Congratulations Bogor", category: "Collection", url: "/collections/papan-bunga-congratulations-bogor", images: " ", price: " " },{ label: "Papan Bunga Congratulations Cikupa", category: "Collection", url: "/collections/papan-bunga-congratulations-cikupa", images: " ", price: " " },{ label: "Papan Bunga Congratulations Demak", category: "Collection", url: "/collections/papan-bunga-congratulations-demak", images: " ", price: " " },{ label: "Papan Bunga Congratulations Depok", category: "Collection", url: "/collections/papan-bunga-congratulations-depok", images: " ", price: " " },{ label: "Papan Bunga Congratulations Gresik", category: "Collection", url: "/collections/papan-bunga-congratulations-gresik", images: " ", price: " " },{ label: "Papan Bunga Congratulations Jakarta", category: "Collection", url: "/collections/papan-bunga-congratulations-jakarta", images: " ", price: " " },{ label: "Papan Bunga Congratulations Jepara", category: "Collection", url: "/collections/papan-bunga-congratulations-jepara", images: " ", price: " " },{ label: "Papan Bunga Congratulations Medan", category: "Collection", url: "/collections/papan-bunga-congratulations-medan", images: " ", price: " " },{ label: "Papan Bunga Congratulations Semarang", category: "Collection", url: "/collections/papan-bunga-congratulations-semarang", images: " ", price: " " }
7562,{ label: "Papan Bunga Congratulations Serang", category: "Collection", url: "/collections/papan-bunga-congratulations-serang", images: " ", price: " " },{ label: "Papan Bunga Congratulations Sidoarjo", category: "Collection", url: "/collections/papan-bunga-congratulations-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Congratulations Surabaya", category: "Collection", url: "/collections/papan-bunga-congratulations-surabaya", images: " ", price: " " },{ label: "Papan Bunga Congratulations Tangerang", category: "Collection", url: "/collections/papan-bunga-congratulations-tangerang", images: " ", price: " " },{ label: "Papan Bunga Congratulations Yogyakarta", category: "Collection", url: "/collections/papan-bunga-congratulations-yogyakarta", images: " ", price: " " },{ label: "Papan Bunga Danau Toba", category: "Collection", url: "/collections/papan-bunga-danau-toba", images: " ", price: " " },{ label: "Papan Bunga Deli Serdang", category: "Collection", url: "/collections/papan-bunga-deli-serdang", images: " ", price: " " },{ label: "Papan Bunga Demak", category: "Collection", url: "/collections/papan-bunga-demak", images: " ", price: " " },{ label: "Papan Bunga Denpasar", category: "Collection", url: "/collections/papan-bunga-denpasar", images: " ", price: " " },{ label: "Papan Bunga Depok", category: "Collection", url: "/collections/papan-bunga-depok", images: " ", price: " " },{ label: "Papan Bunga Duka Cita", category: "Collection", url: "/collections/bunga-duka-cita", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bali", category: "Collection", url: "/collections/papan-bunga-duka-cita-bali", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bandung", category: "Collection", url: "/collections/papan-bunga-duka-cita-bandung", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bekasi", category: "Collection", url: "/collections/papan-bunga-duka-cita-bekasi", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Bogor", category: "Collection", url: "/collections/papan-bunga-duka-cita-bogor", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Cikupa", category: "Collection", url: "/collections/papan-bunga-duka-cita-cikupa", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Demak", category: "Collection", url: "/collections/papan-bunga-duka-cita-demak", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Depok", category: "Collection", url: "/collections/papan-bunga-duka-cita-depok", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Gresik", category: "Collection", url: "/collections/papan-bunga-duka-cita-gresik", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Jakarta", category: "Collection", url: "/collections/papan-bunga-duka-cita-jakarta", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Jepara", category: "Collection", url: "/collections/papan-bunga-duka-cita-jepara", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Medan", category: "Collection", url: "/collections/papan-bunga-duka-cita-medan", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Semarang", category: "Collection", url: "/collections/papan-bunga-duka-cita-semarang", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Serang", category: "Collection", url: "/collections/papan-bunga-duka-cita-serang", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Sidoarjo", category: "Collection", url: "/collections/papan-bunga-duka-cita-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Surabaya", category: "Collection", url: "/collections/papan-bunga-duka-cita-surabaya", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Tangerang", category: "Collection", url: "/collections/papan-bunga-duka-cita-tangerang", images: " ", price: " " },{ label: "Papan Bunga Duka Cita Yogyakarta", category: "Collection", url: "/collections/papan-bunga-duka-cita-yogyakarta", images: " ", price: " " },{ label: "Papan Bunga Garut", category: "Collection", url: "/collections/papan-bunga-garut", images: " ", price: " " },{ label: "Papan Bunga Gianyar", category: "Collection", url: "/collections/papan-bunga-gianyar", images: " ", price: " " }
7562,{ label: "Papan Bunga Gorontalo", category: "Collection", url: "/collections/papan-bunga-gorontalo", images: " ", price: " " },{ label: "Papan Bunga Gowa", category: "Collection", url: "/collections/papan-bunga-gowa", images: " ", price: " " },{ label: "Papan Bunga Gresik", category: "Collection", url: "/collections/papan-bunga-gresik", images: " ", price: " " },{ label: "Papan Bunga Grobogan", category: "Collection", url: "/collections/papan-bunga-grobogan", images: " ", price: " " },{ label: "Papan Bunga Gunungkidul", category: "Collection", url: "/collections/papan-bunga-gunungkidul", images: " ", price: " " },{ label: "Papan Bunga Indramayu", category: "Collection", url: "/collections/papan-bunga-indramayu", images: " ", price: " " },{ label: "Papan Bunga Jakarta", category: "Collection", url: "/collections/papan-bunga-jakarta", images: " ", price: " " },{ label: "Papan Bunga Jakarta Timur", category: "Collection", url: "/collections/papan-bunga-jakarta-timur", images: " ", price: " " },{ label: "Papan Bunga Jambi", category: "Collection", url: "/collections/papan-bunga-jambi", images: " ", price: " " },{ label: "Papan Bunga Jayapura", category: "Collection", url: "/collections/papan-bunga-jayapura", images: " ", price: " " },{ label: "Papan Bunga Jember", category: "Collection", url: "/collections/papan-bunga-jember", images: " ", price: " " },{ label: "Papan Bunga Jembrana", category: "Collection", url: "/collections/papan-bunga-jembrana", images: " ", price: " " },{ label: "Papan Bunga Jepara", category: "Collection", url: "/collections/papan-bunga-jepara", images: " ", price: " " },{ label: "Papan Bunga Jombang", category: "Collection", url: "/collections/papan-bunga-jombang", images: " ", price: " " },{ label: "Papan Bunga Kampung Baru", category: "Collection", url: "/collections/papan-bunga-kampung-baru", images: " ", price: " " },{ label: "Papan Bunga Kapuas", category: "Collection", url: "/collections/papan-bunga-kapuas", images: " ", price: " " },{ label: "Papan Bunga Karanganyar", category: "Collection", url: "/collections/papan-bunga-karanganyar", images: " ", price: " " },{ label: "Papan Bunga Karangasem", category: "Collection", url: "/collections/papan-bunga-karangasem", images: " ", price: " " },{ label: "Papan Bunga Karawang", category: "Collection", url: "/collections/papan-bunga-karawang", images: " ", price: " " },{ label: "Papan Bunga Karo", category: "Collection", url: "/collections/papan-bunga-karo", images: " ", price: " " },{ label: "Papan Bunga Kartosuro", category: "Collection", url: "/collections/papan-bunga-kartosuro", images: " ", price: " " },{ label: "Papan Bunga Kebumen", category: "Collection", url: "/collections/papan-bunga-kebumen", images: " ", price: " " },{ label: "Papan Bunga Kediri", category: "Collection", url: "/collections/papan-bunga-kediri", images: " ", price: " " },{ label: "Papan Bunga Kendal", category: "Collection", url: "/collections/papan-bunga-kendal", images: " ", price: " " },{ label: "Papan Bunga Kendari", category: "Collection", url: "/collections/papan-bunga-kendari", images: " ", price: " " },{ label: "Papan Bunga Ketapang", category: "Collection", url: "/collections/papan-bunga-ketapang", images: " ", price: " " },{ label: "Papan Bunga Klaten", category: "Collection", url: "/collections/papan-bunga-klaten", images: " ", price: " " },{ label: "Papan Bunga Kota Batu", category: "Collection", url: "/collections/papan-bunga-kota-batu", images: " ", price: " " },{ label: "Papan Bunga Kudus", category: "Collection", url: "/collections/papan-bunga-kudus", images: " ", price: " " },{ label: "Papan Bunga Kupang", category: "Collection", url: "/collections/papan-bunga-kupang", images: " ", price: " " },{ label: "Papan Bunga Lamongan", category: "Collection", url: "/collections/papan-bunga-lamongan", images: " ", price: " " },{ label: "Papan Bunga Lampu LED", category: "Collection", url: "/collections/papan-bunga-lampu-led", images: " ", price: " " },{ label: "Papan Bunga Lampung", category: "Collection", url: "/collections/papan-bunga-lampung", images: " ", price: " " }
7562,{ label: "Papan Bunga Langkat", category: "Collection", url: "/collections/papan-bunga-langkat", images: " ", price: " " },{ label: "Papan Bunga Lembang", category: "Collection", url: "/collections/papan-bunga-lembang", images: " ", price: " " },{ label: "Papan Bunga Lombok", category: "Collection", url: "/collections/papan-bunga-lombok", images: " ", price: " " },{ label: "Papan Bunga Lubuk Pakam", category: "Collection", url: "/collections/papan-bunga-lubuk-pakam", images: " ", price: " " },{ label: "Papan Bunga Lumajang", category: "Collection", url: "/collections/papan-bunga-lumajang", images: " ", price: " " },{ label: "Papan Bunga Madiun", category: "Collection", url: "/collections/papan-bunga-madiun", images: " ", price: " " },{ label: "Papan Bunga Magelang", category: "Collection", url: "/collections/papan-bunga-magelang", images: " ", price: " " },{ label: "Papan Bunga Majalengka", category: "Collection", url: "/collections/papan-bunga-majalengka", images: " ", price: " " },{ label: "Papan Bunga Makassar", category: "Collection", url: "/collections/papan-bunga-makassar", images: " ", price: " " },{ label: "Papan Bunga Malang", category: "Collection", url: "/collections/papan-bunga-malang", images: " ", price: " " },{ label: "Papan Bunga Mamuju", category: "Collection", url: "/collections/papan-bunga-mamuju", images: " ", price: " " },{ label: "Papan Bunga Manado", category: "Collection", url: "/collections/papan-bunga-manado", images: " ", price: " " },{ label: "Papan Bunga Manokwari", category: "Collection", url: "/collections/papan-bunga-manokwari", images: " ", price: " " },{ label: "Papan Bunga Maros", category: "Collection", url: "/collections/papan-bunga-maros", images: " ", price: " " },{ label: "Papan Bunga Mataram", category: "Collection", url: "/collections/papan-bunga-mataram", images: " ", price: " " },{ label: "Papan Bunga Medan", category: "Collection", url: "/collections/papan-bunga-medan", images: " ", price: " " },{ label: "Papan Bunga Mojokerto", category: "Collection", url: "/collections/papan-bunga-mojokerto", images: " ", price: " " },{ label: "Papan Bunga Nganjuk", category: "Collection", url: "/collections/papan-bunga-nganjuk", images: " ", price: " " },{ label: "Papan Bunga Ngawi", category: "Collection", url: "/collections/papan-bunga-ngawi", images: " ", price: " " },{ label: "Papan Bunga Nias", category: "Collection", url: "/collections/papan-bunga-nias", images: " ", price: " " },{ label: "Papan Bunga Organza", category: "Collection", url: "/collections/papan-bunga-organza", images: " ", price: " " },{ label: "Papan Bunga Padang", category: "Collection", url: "/collections/papan-bunga-padang", images: " ", price: " " },{ label: "Papan Bunga Palangkaraya", category: "Collection", url: "/collections/papan-bunga-palangkaraya", images: " ", price: " " },{ label: "Papan Bunga Palembang", category: "Collection", url: "/collections/papan-bunga-palembang", images: " ", price: " " },{ label: "Papan Bunga Palu", category: "Collection", url: "/collections/papan-bunga-palu", images: " ", price: " " },{ label: "Papan Bunga Pangkal Pinang", category: "Collection", url: "/collections/papan-bunga-pangkal-pinang", images: " ", price: " " },{ label: "Papan Bunga Parepare", category: "Collection", url: "/collections/papan-bunga-parepare", images: " ", price: " " },{ label: "Papan Bunga Pasuruan", category: "Collection", url: "/collections/papan-bunga-pasuruan", images: " ", price: " " },{ label: "Papan Bunga Pati", category: "Collection", url: "/collections/papan-bunga-pati", images: " ", price: " " },{ label: "Papan Bunga Pekalongan", category: "Collection", url: "/collections/papan-bunga-pekalongan", images: " ", price: " " },{ label: "Papan Bunga Pekanbaru", category: "Collection", url: "/collections/papan-bunga-pekanbaru", images: " ", price: " " },{ label: "Papan Bunga Pemalang", category: "Collection", url: "/collections/papan-bunga-pemalang", images: " ", price: " " },{ label: "Papan Bunga Pematangsiantar", category: "Collection", url: "/collections/papan-bunga-pematangsiantar", images: " ", price: " " }
7562,{ label: "Papan Bunga Pernikahan Bali", category: "Collection", url: "/collections/papan-bunga-pernikahan-bali", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Bandung", category: "Collection", url: "/collections/papan-bunga-pernikahan-bandung", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Bekasi", category: "Collection", url: "/collections/papan-bunga-pernikahan-bekasi", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Bogor", category: "Collection", url: "/collections/papan-bunga-pernikahan-bogor", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Cikupa", category: "Collection", url: "/collections/papan-bunga-pernikahan-cikupa", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Demak", category: "Collection", url: "/collections/papan-bunga-pernikahan-demak", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Depok", category: "Collection", url: "/collections/papan-bunga-pernikahan-depok", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Gresik", category: "Collection", url: "/collections/papan-bunga-pernikahan-gresik", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Jakarta", category: "Collection", url: "/collections/papan-bunga-pernikahan-jakarta", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Jepara", category: "Collection", url: "/collections/papan-bunga-pernikahan-jepara", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Medan", category: "Collection", url: "/collections/papan-bunga-pernikahan-medan", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Semarang", category: "Collection", url: "/collections/papan-bunga-pernikahan-semarang", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Serang", category: "Collection", url: "/collections/papan-bunga-pernikahan-serang", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Sidoarjo", category: "Collection", url: "/collections/papan-bunga-pernikahan-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Surabaya", category: "Collection", url: "/collections/papan-bunga-pernikahan-surabaya", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Tangerang", category: "Collection", url: "/collections/papan-bunga-pernikahan-tangerang", images: " ", price: " " },{ label: "Papan Bunga Pernikahan Yogyakarta", category: "Collection", url: "/collections/papan-bunga-pernikahan-yogyakarta", images: " ", price: " " },{ label: "Papan Bunga Ponorogo", category: "Collection", url: "/collections/papan-bunga-ponorogo", images: " ", price: " " },{ label: "Papan Bunga Pontianak", category: "Collection", url: "/collections/papan-bunga-pontianak", images: " ", price: " " },{ label: "Papan Bunga Premium", category: "Collection", url: "/collections/papan-bunga-premium", images: " ", price: " " },{ label: "Papan Bunga Printing", category: "Collection", url: "/collections/papan-bunga-printing", images: " ", price: " " },{ label: "Papan Bunga Printing Congratulations", category: "Collection", url: "/collections/papan-bunga-printing-congratulations", images: " ", price: " " },{ label: "Papan Bunga Probolinggo", category: "Collection", url: "/collections/papan-bunga-probolinggo", images: " ", price: " " },{ label: "Papan Bunga Promo", category: "Collection", url: "/collections/promo-papan-bunga", images: " ", price: " " },{ label: "Papan Bunga Purbalingga", category: "Collection", url: "/collections/papan-bunga-purbalingga", images: " ", price: " " },{ label: "Papan Bunga Purwokerto", category: "Collection", url: "/collections/papan-bunga-purwokerto", images: " ", price: " " },{ label: "Papan Bunga Purworejo", category: "Collection", url: "/collections/papan-bunga-purworejo", images: " ", price: " " },{ label: "Papan Bunga Rembang", category: "Collection", url: "/collections/papan-bunga-rembang", images: " ", price: " " },{ label: "Papan Bunga Riau", category: "Collection", url: "/collections/papan-bunga-riau", images: " ", price: " " },{ label: "Papan Bunga Salatiga", category: "Collection", url: "/collections/papan-bunga-salatiga", images: " ", price: " " }
7562,{ label: "Papan Bunga Samarinda", category: "Collection", url: "/collections/papan-bunga-samarinda", images: " ", price: " " },{ label: "Papan Bunga Selamat Bandung", category: "Collection", url: "/collections/papan-bunga-selamat-bandung", images: " ", price: " " },{ label: "Papan Bunga Selamat Medan", category: "Collection", url: "/collections/papan-bunga-selamat-medan", images: " ", price: " " },{ label: "Papan Bunga Semarang", category: "Collection", url: "/collections/papan-bunga-semarang", images: " ", price: " " },{ label: "Papan Bunga Serang", category: "Collection", url: "/collections/papan-bunga-serang", images: " ", price: " " },{ label: "Papan Bunga Sibolga", category: "Collection", url: "/collections/papan-bunga-sibolga", images: " ", price: " " },{ label: "Papan Bunga Sidoarjo", category: "Collection", url: "/collections/papan-bunga-sidoarjo", images: " ", price: " " },{ label: "Papan Bunga Singkawang", category: "Collection", url: "/collections/papan-bunga-singkawang", images: " ", price: " " },{ label: "Papan Bunga Solo", category: "Collection", url: "/collections/papan-bunga-solo", images: " ", price: " " },{ label: "Papan Bunga Sorong", category: "Collection", url: "/collections/papan-bunga-sorong", images: " ", price: " " },{ label: "Papan Bunga Sragen", category: "Collection", url: "/collections/papan-bunga-sragen", images: " ", price: " " },{ label: "Papan Bunga Standard", category: "Collection", url: "/collections/papan-bunga-standard", images: " ", price: " " },{ label: "Papan Bunga Subang", category: "Collection", url: "/collections/papan-bunga-subang", images: " ", price: " " },{ label: "Papan Bunga Sukabumi", category: "Collection", url: "/collections/papan-bunga-sukabumi", images: " ", price: " " },{ label: "Papan Bunga Sumbawa", category: "Collection", url: "/collections/papan-bunga-sumbawa", images: " ", price: " " },{ label: "Papan Bunga Surabaya", category: "Collection", url: "/collections/papan-bunga-surabaya", images: " ", price: " " },{ label: "Papan Bunga Surakarta", category: "Collection", url: "/collections/papan-bunga-surakarta", images: " ", price: " " },{ label: "Papan Bunga Tangerang", category: "Collection", url: "/collections/papan-bunga-tangerang", images: " ", price: " " },{ label: "Papan Bunga Tasikmalaya", category: "Collection", url: "/collections/papan-bunga-tasikmalaya", images: " ", price: " " },{ label: "Papan Bunga Tegal", category: "Collection", url: "/collections/papan-bunga-tegal", images: " ", price: " " },{ label: "Papan Bunga Temanggung", category: "Collection", url: "/collections/papan-bunga-temanggung", images: " ", price: " " },{ label: "Papan Bunga Ternate", category: "Collection", url: "/collections/papan-bunga-ternate", images: " ", price: " " },{ label: "Papan Bunga Tolitoli", category: "Collection", url: "/collections/papan-bunga-tolitoli", images: " ", price: " " },{ label: "Papan Bunga Toraja", category: "Collection", url: "/collections/papan-bunga-toraja", images: " ", price: " " },{ label: "Papan Bunga Tuban", category: "Collection", url: "/collections/papan-bunga-tuban", images: " ", price: " " },{ label: "Papan Bunga Tulungagung", category: "Collection", url: "/collections/papan-bunga-tulungagung", images: " ", price: " " },{ label: "Papan Bunga Wakatobi", category: "Collection", url: "/collections/papan-bunga-wakatobi", images: " ", price: " " },{ label: "Papan Bunga Wedding", category: "Collection", url: "/collections/papan-bunga-ucapan-pernikahan", images: " ", price: " " },{ label: "Papan Bunga Wiyung", category: "Collection", url: "/collections/papan-bunga-wiyung", images: " ", price: " " },{ label: "Papan Bunga Wonogiri", category: "Collection", url: "/collections/papan-bunga-wonogiri", images: " ", price: " " },{ label: "Papan Bunga Wonokromo", category: "Collection", url: "/collections/papan-bunga-wonokromo", images: " ", price: " " },{ label: "Papan Bunga Wonosobo", category: "Collection", url: "/collections/papan-bunga-wonosobo", images: " ", price: " " },{ label: "Papan Bunga Yogyakarta", category: "Collection", url: "/collections/papan-bunga-yogyakarta", images: " ", price: " " }
7562,{ label: "Paper Flower Board", category: "Collection", url: "/collections/papan-bunga-kertas", images: " ", price: " " },{ label: "Paper Flower Board Bali", category: "Collection", url: "/collections/papan-bunga-kertas-bali", images: " ", price: " " },{ label: "Paper Flower Board Gresik", category: "Collection", url: "/collections/papan-bunga-kertas-gresik", images: " ", price: " " },{ label: "Paper Flower Board Sidoarjo", category: "Collection", url: "/collections/papan-bunga-kertas-sidoarjo", images: " ", price: " " },{ label: "Paper Flower Board Surabaya", category: "Collection", url: "/collections/papan-bunga-kertas-surabaya", images: " ", price: " " },{ label: "Paper Flower Board Yogyakarta", category: "Collection", url: "/collections/papan-bunga-kertas-yogyakarta", images: " ", price: " " },{ label: "Parcel", category: "Collection", url: "/collections/parcel", images: " ", price: " " },{ label: "Parcel Buah", category: "Collection", url: "/collections/parcel-buah-segar", images: " ", price: " " },{ label: "Parcel Buah Bandung", category: "Collection", url: "/collections/parcel-buah-bandung", images: " ", price: " " },{ label: "Parcel Buah Semarang", category: "Collection", url: "/collections/parcel-buah-semarang", images: " ", price: " " },{ label: "Parcel Buah Sidoarjo", category: "Collection", url: "/collections/parcel-buah-sidoarjo", images: " ", price: " " },{ label: "Parcel Buah Surabaya", category: "Collection", url: "/collections/parcel-buah-surabaya", images: " ", price: " " },{ label: "Parcel Imlek 2025", category: "Collection", url: "/collections/parcel-imlek", images: " ", price: " " },{ label: "Parcel Imlek Bandung", category: "Collection", url: "/collections/parcel-imlek-bandung", images: " ", price: " " },{ label: "Parcel Imlek Nusantara", category: "Collection", url: "/collections/parcel-imlek-nusantara", images: " ", price: " " },{ label: "Parcel Lebaran Bandung", category: "Collection", url: "/collections/parcel-lebaran-bandung", images: " ", price: " " },{ label: "Parcel Lebaran Nusantara", category: "Collection", url: "/collections/parcel-lebaran-indonesia", images: " ", price: " " },{ label: "Parcel Lebaran Surabaya", category: "Collection", url: "/collections/parcel-lebaran-surabaya", images: " ", price: " " },{ label: "Parcel Makanan", category: "Collection", url: "/collections/parcel-makanan", images: " ", price: " " },{ label: "Parcel Natal & Tahun Baru 2026", category: "Collection", url: "/collections/hampers-natal", images: " ", price: " " },{ label: "Parcel Natal & Tahun Baru Bandung", category: "Collection", url: "/collections/parcel-natal-bandung", images: " ", price: " " },{ label: "Parcel Newborn Nusantara", category: "Collection", url: "/collections/parcel-newborn-nusantara", images: " ", price: " " },{ label: "Parcel Tahun Baru", category: "Collection", url: "/collections/new-year-tahun-baru", images: " ", price: " " },{ label: "Party Supplies", category: "Collection", url: "/collections/party-supplies", images: " ", price: " " },{ label: "Partysaurus", category: "Collection", url: "/collections/partysaurus", images: " ", price: " " },{ label: "Pasar Bunga Splendid Malang", category: "Collection", url: "/collections/pasar-bunga-splendid-malang", images: " ", price: " " },{ label: "Passionate Red Valentine", category: "Collection", url: "/collections/red-valentine", images: " ", price: " " },{ label: "Pendant", category: "Collection", url: "/collections/liontin", images: " ", price: " " },{ label: "Personalized Fashion", category: "Collection", url: "/collections/fashion", images: " ", price: " " },{ label: "Personalized Gift", category: "Collection", url: "/collections/personalized-gift", images: " ", price: " " },{ label: "Personalized Gift Pria", category: "Collection", url: "/collections/personalized-gift-pria", images: " ", price: " " },{ label: "Personalized Gift Wanita", category: "Collection", url: "/collections/personalized-gift-wanita", images: " ", price: " " },{ label: "Personalized Gifts", category: "Collection", url: "/collections/personalized-gifts", images: " ", price: " " },{ label: "Pesca Ice Cream Cakes", category: "Collection", url: "/collections/pesca", images: " ", price: " " },{ label: "Phone Case", category: "Collection", url: "/collections/phone-case", images: " ", price: " " },{ label: "Photobook", category: "Collection", url: "/collections/photobook", images: " ", price: " " },{ label: "Pisces ?? 19Feb - 20March", category: "Collection", url: "/collections/kado-untuk-zodiak-pisces", images: " ", price: " " },{ label: "Pohon Natal", category: "Collection", url: "/collections/pohon-natal", images: " ", price: " " },{ label: "Premium Hampers", category: "Collection", url: "/collections/parcel-premium", images: " ", price: " " },{ label: "Premium Newborn Hampers Collection", category: "Collection", url: "/collections/premium-newborn-hampers-collection", images: " ", price: " " },{ label: "Printing Cake", category: "Collection", url: "/collections/printing-cake", images: " ", price: " " },{ label: "Prom", category: "Collection", url: "/collections/prom", images: " ", price: " " },{ label: "Promo Merdeka", category: "Collection", url: "/collections/merdeka", images: " ", price: " " },{ label: "Rangkaian Bunga", category: "Collection", url: "/collections/rangkaian-bunga", images: " ", price: " " },{ label: "Rangkaian Bunga Dekorasi", category: "Collection", url: "/collections/rangkaian-bunga-dekorasi", images: " ", price: " " },{ label: "Rangkaian Bunga Ulang Tahun", category: "Collection", url: "/collections/rangkaian-bunga-ulang-tahun", images: " ", price: " " },{ label: "Romantic & Sweets", category: "Collection", url: "/collections/romantic-sweets", images: " ", price: " " },{ label: "Romantic Package", category: "Collection", url: "/collections/romantic-package", images: " ", price: " " },{ label: "Rose Beam", category: "Collection", url: "/collections/rose-beam", images: " ", price: " " },{ label: "Rose Box", category: "Collection", url: "/collections/rose-box", images: " ", price: " " },{ label: "Roses", category: "Collection", url: "/collections/bunga-mawar", images: " ", price: " " },{ label: "Rp 500.000 - Rp 800.000", category: "Collection", url: "/collections/rp-500-000-rp-800-000", images: " ", price: " " },{ label: "Rp 800.000 - Rp 1.000.000", category: "Collection", url: "/collections/rp-800-000-rp-1-000-000", images: " ", price: " " },{ label: "Rustic & Monochrome Ramadan Hampers", category: "Collection", url: "/collections/rustic-monochrome-ramadanhampers", images: " ", price: " " },{ label: "Rustic Bloom", category: "Collection", url: "/collections/dried-flowers", images: " ", price: " " },{ label: "Rustic Style Flowers", category: "Collection", url: "/collections/rustic-style-flowers", images: " ", price: " " },{ label: "Sagittarius ?? 22Nov - 21Des", category: "Collection", url: "/collections/kado-untuk-zodiak-sagittarius", images: " ", price: " " },{ label: "Sameday Delivery", category: "Collection", url: "/collections/sameday", images: " ", price: " " },{ label: "Savoury Dish", category: "Collection", url: "/collections/savoury-dish", images: " ", price: " " },{ label: "Saychiz", category: "Collection", url: "/collections/saychiz", images: " ", price: " " },{ label: "Scented Candles", category: "Collection", url: "/collections/scented-candles", images: " ", price: " " },{ label: "Scorpio ?? 24Oct - 21Nov", category: "Collection", url: "/collections/kado-untuk-zodiak-scorpio", images: " ", price: " " },{ label: "Self Pick-Up", category: "Collection", url: "/collections/self-pick-up", images: " ", price: " " },{ label: "Semua Produk", category: "Collection", url: "/collections/all", images: " ", price: " " },{ label: "Serenitea", category: "Collection", url: "/collections/serenitea", images: " ", price: " " },{ label: "Share Outerbloom Moment", category: "Collection", url: "/collections/share-moment", images: " ", price: " " },{ label: "Share your Happiness", category: "Collection", url: "/collections/share-happiness", images: " ", price: " " },{ label: "Signature Cake", category: "Collection", url: "/collections/signature-cake", images: " ", price: " " },{ label: "Signature Chinese New Year Hampers", category: "Collection", url: "/collections/signature-chinese-new-year-hampers", images: " ", price: " " },{ label: "Signature Christmas & New Year Hampers", category: "Collection", url: "/collections/signature-christmas-hampers", images: " ", price: " " },{ label: "Signature Hampers", category: "Collection", url: "/collections/signature-hampers", images: " ", price: " " },{ label: "Signature Hampers Luar Jadetabek", category: "Collection", url: "/collections/signature-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Signature Hampers Sameday", category: "Collection", url: "/collections/signature-hampers-sameday", images: " ", price: " " },{ label: "Signature Ramadan Hampers", category: "Collection", url: "/collections/signature-ramadan-hampers", images: " ", price: " " },{ label: "Slice Cake", category: "Collection", url: "/collections/slice-cake", images: " ", price: " " },{ label: "Snack Box", category: "Collection", url: "/collections/snack-box", images: " ", price: " " },{ label: "Sol et Terre", category: "Collection", url: "/collections/sol-et-terre", images: " ", price: " " },{ label: "Sorbet", category: "Collection", url: "/collections/sorbet", images: " ", price: " " },{ label: "Special Day", category: "Collection", url: "/collections/special-day", images: " ", price: " " },{ label: "Special Edition", category: "Collection", url: "/collections/special-edition", images: " ", price: " " },{ label: "Special For Her", category: "Collection", url: "/collections/special-for-her", images: " ", price: " " },{ label: "Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan!", category: "Collection", url: "/collections/standing-flower", images: " ", price: " " },{ label: "Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan! Bali", category: "Collection", url: "/collections/standing-flower-bali", images: " ", price: " " },{ label: "Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan! Bandung", category: "Collection", url: "/collections/standing-flower-bandung", images: " ", price: " " },{ label: "Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan! Congratulations", category: "Collection", url: "/collections/standing-flower-congratulations", images: " ", price: " " },{ label: "Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan! Demak", category: "Collection", url: "/collections/standing-flower-demak", images: " ", price: " " },{ label: "Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan! Jepara", category: "Collection", url: "/collections/standing-flower-jepara", images: " ", price: " " },{ label: "Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan! Semarang", category: "Collection", url: "/collections/standing-flower-semarang", images: " ", price: " " },{ label: "Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan! Sidoarjo", category: "Collection", url: "/collections/standing-flower-sidoarjo", images: " ", price: " " },{ label: "Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan! Surabaya", category: "Collection", url: "/collections/standing-flower-surabaya", images: " ", price: " " },{ label: "Lelah dengan navigasi yang lambat dan rumit? Pubtogel hadir sebagai solusi cerdas untuk pengguna online aktif. Rasakan kecepatan, keamanan, dan kemudahan akses ke dunia digital Anda. Jelajahi lebih jauh, tanpa hambatan! Yogyakarta", category: "Collection", url: "/collections/standing-flower-yogyakarta", images: " ", price: " " },{ label: "Standing Giant Flower", category: "Collection", url: "/collections/standing-giant-flower", images: " ", price: " " },{ label: "Stationery", category: "Collection", url: "/collections/stationery", images: " ", price: " " },{ label: "Steekwerk", category: "Collection", url: "/collections/steekwerk", images: " ", price: " " },{ label: "Stylish Hampers", category: "Collection", url: "/collections/stylish-hampers", images: " ", price: " " },{ label: "Stylish Hampers Luar Jadetabek", category: "Collection", url: "/collections/stylish-hampers-luar-jadetabek", images: " ", price: " " },{ label: "Succulent", category: "Collection", url: "/collections/succulent", images: " ", price: " " },{ label: "Sunflower", category: "Collection", url: "/collections/bunga-matahari", images: " ", price: " " },{ label: "Sweet & Savoury Hampers", category: "Collection", url: "/collections/sweet-savoury-hampers", images: " ", price: " " },{ label: "Sweet Gracie", category: "Collection", url: "/collections/sweet-gracie", images: " ", price: " " },{ label: "Sweet Pastel Love", category: "Collection", url: "/collections/pastel-love", images: " ", price: " " },{ label: "Sweet Pastel Love Nusantara", category: "Collection", url: "/collections/sweet-pastel-love-nusantara", images: " ", price: " " },{ label: "Sweet Treats", category: "Collection", url: "/collections/sweet-treats", images: " ", price: " " },{ label: "Sweetooth", category: "Collection", url: "/collections/sweetooth", images: " ", price: " " },{ label: "Taurus ?? 20April - 20May", category: "Collection", url: "/collections/kado-untuk-zodiak-taurus", images: " ", price: " " },{ label: "Teddy Bear", category: "Collection", url: "/collections/boneka-teddy-bear", images: " ", price: " " },{ label: "Teh", category: "Collection", url: "/collections/teh", images: " ", price: " " },{ label: "Test Error", category: "Collection", url: "/collections/test-error", images: " ", price: " " },{ label: "Testing", category: "Collection", url: "/collections/testing", images: " ", price: " " },{ label: "Thank You", category: "Collection", url: "/collections/rangkaian-bunga-ucapan-terima-kasih", images: " ", price: " " },{ label: "The Classic Astoria", category: "Collection", url: "/collections/astoria", images: " ", price: " " },{ label: "The Classic Enchanted Dome", category: "Collection", url: "/collections/enchanted-dome", images: " ", price: " " },{ label: "The Enchanted Love Pirouette Special Edition", category: "Collection", url: "/collections/the-enchanted-love-pirouette-special-edition", images: " ", price: " " },{ label: "The F Thing", category: "Collection", url: "/collections/the-f-thing", images: " ", price: " " },{ label: "The First", category: "Collection", url: "/collections/the-first", images: " ", price: " " },{ label: "The Novo Astoria", category: "Collection", url: "/collections/the-novo-astoria", images: " ", price: " " },{ label: "The Novo Enchanted Dome", category: "Collection", url: "/collections/the-novo-enchanted-dome", images: " ", price: " " },{ label: "The Novo Enchanted Dome Special Edition", category: "Collection", url: "/collections/the-novo-enchanted-dome-special-edition", images: " ", price: " " },{ label: "The Palace", category: "Collection",
7562 url: "/collections/the-palace", images: " ", price: " " },{ label: "Ties", category: "Collection", url: "/collections/dasi", images: " ", price: " " },{ label: "Tisane", category: "Collection", url: "/collections/tisane", images: " ", price: " " },{ label: "Toko Bunga Aceh", category: "Collection", url: "/collections/toko-bunga-aceh", images: " ", price: " " },{ label: "Toko Bunga Ambon", category: "Collection", url: "/collections/toko-bunga-ambon", images: " ", price: " " },{ label: "Toko Bunga Atambua", category: "Collection", url: "/collections/toko-bunga-atambua", images: " ", price: " " },{ label: "Toko Bunga Bali", category: "Collection", url: "/collections/toko-bunga-bali", images: " ", price: " " },{ label: "Toko Bunga Balikpapan", category: "Collection", url: "/collections/toko-bunga-balikpapan", images: " ", price: " " },{ label: "Toko Bunga Bandar Lampung", category: "Collection", url: "/collections/toko-bunga-bandar-lampung", images: " ", price: " " },{ label: "Toko Bunga Bandung", category: "Collection", url: "/collections/toko-bunga-bandung", images: " ", price: " " },{ label: "Toko Bunga Bandung Barat", category: "Collection", url: "/collections/toko-bunga-bandung-barat", images: " ", price: " " },{ label: "Toko Bunga Banjarmasin", category: "Collection", url: "/collections/toko-bunga-banjarmasin", images: " ", price: " " },{ label: "Toko Bunga Banten", category: "Collection", url: "/collections/toko-bunga-banten", images: " ", price: " " },{ label: "Toko Bunga Banyumas", category: "Collection", url: "/collections/toko-bunga-banyumas", images: " ", price: " " },{ label: "Toko Bunga Banyuwangi", category: "Collection", url: "/collections/toko-bunga-banyuwangi", images: " ", price: " " },{ label: "Toko Bunga Batam", category: "Collection", url: "/collections/toko-bunga-batam", images: " ", price: " " },{ label: "Toko Bunga Baubau", category: "Collection", url: "/collections/toko-bunga-baubau", images: " ", price: " " },{ label: "Toko Bunga Bekasi", category: "Collection", url: "/collections/toko-bunga-bekasi", images: " ", price: " " },{ label: "Toko Bunga Bengkalis", category: "Collection", url: "/collections/toko-bunga-bengkalis", images: " ", price: " " },{ label: "Toko Bunga Bengkayang", category: "Collection", url: "/collections/toko-bunga-bengkayang", images: " ", price: " " },{ label: "Toko Bunga Binjai", category: "Collection", url: "/collections/toko-bunga-binjai", images: " ", price: " " },{ label: "Toko Bunga Bintaro", category: "Collection", url: "/collections/toko-bunga-bintaro", images: " ", price: " " },{ label: "Toko Bunga Blitar", category: "Collection", url: "/collections/toko-bunga-blitar", images: " ", price: " " },{ label: "Toko Bunga Blora", category: "Collection", url: "/collections/toko-bunga-blora", images: " ", price: " " },{ label: "Toko Bunga Bogor", category: "Collection", url: "/collections/toko-bunga-bogor", images: " ", price: " " },{ label: "Toko Bunga Bojonegoro", category: "Collection", url: "/collections/toko-bunga-bojonegoro", images: " ", price: " " },{ label: "Toko Bunga Boyolali", category: "Collection", url: "/collections/toko-bunga-boyolali", images: " ", price: " " },{ label: "Toko Bunga Brebes", category: "Collection", url: "/collections/toko-bunga-brebes", images: " ", price: " " },{ label: "Toko Bunga Bukittinggi", category: "Collection", url: "/collections/toko-bunga-bukittinggi", images: " ", price: " " },{ label: "Toko Bunga Buleleng", category: "Collection", url: "/collections/toko-bunga-buleleng", images: " ", price: " " },{ label: "Toko Bunga Cakung", category: "Collection", url: "/collections/toko-bunga-cakung", images: " ", price: " " },{ label: "Toko Bunga Cawang", category: "Collection", url: "/collections/toko-bunga-cawang", images: " ", price: " " },{ label: "Toko Bunga Cempaka Putih", category: "Collection", url: "/collections/toko-bunga-cempaka-putih", images: " ", price: " " },{ label: "Toko Bunga Cengkareng", category: "Collection", url: "/collections/toko-bunga-cengkareng", images: " ", price: " " },{ label: "Toko Bunga Ciamis", category: "Collection", url: "/collections/toko-bunga-ciamis", images: " ", price: " " }
7562,{ label: "Toko Bunga Cianjur", category: "Collection", url: "/collections/toko-bunga-cianjur", images: " ", price: " " },{ label: "Toko Bunga Cibinong", category: "Collection", url: "/collections/toko-bunga-cibinong", images: " ", price: " " },{ label: "Toko Bunga Cibubur", category: "Collection", url: "/collections/toko-bunga-cibubur", images: " ", price: " " },{ label: "Toko Bunga Cijantung", category: "Collection", url: "/collections/toko-bunga-cijantung", images: " ", price: " " },{ label: "Toko Bunga Cikarang", category: "Collection", url: "/collections/toko-bunga-cikarang", images: " ", price: " " },{ label: "Toko Bunga Cikini", category: "Collection", url: "/collections/toko-bunga-cikini", images: " ", price: " " },{ label: "Toko Bunga Cilacap", category: "Collection", url: "/collections/toko-bunga-cilacap", images: " ", price: " " },{ label: "Toko Bunga Cilandak", category: "Collection", url: "/collections/toko-bunga-cilandak", images: " ", price: " " },{ label: "Toko Bunga Cileunyi", category: "Collection", url: "/collections/toko-bunga-cileunyi", images: " ", price: " " },{ label: "Toko Bunga Ciracas", category: "Collection", url: "/collections/toko-bunga-ciracas", images: " ", price: " " },{ label: "Toko Bunga Cirebon", category: "Collection", url: "/collections/toko-bunga-cirebon", images: " ", price: " " },{ label: "Toko Bunga Ciwidey", category: "Collection", url: "/collections/toko-bunga-ciwidey", images: " ", price: " " },{ label: "Toko Bunga Danau Toba", category: "Collection", url: "/collections/toko-bunga-danau-toba", images: " ", price: " " },{ label: "Toko Bunga Demak", category: "Collection", url: "/collections/toko-bunga-demak", images: " ", price: " " },{ label: "Toko Bunga Denpasar", category: "Collection", url: "/collections/toko-bunga-denpasar", images: " ", price: " " },{ label: "Toko Bunga Depok", category: "Collection", url: "/collections/toko-bunga-depok", images: " ", price: " " },{ label: "Toko Bunga Duren Sawit", category: "Collection", url: "/collections/toko-bunga-duren-sawit", images: " ", price: " " },{ label: "Toko Bunga Garut", category: "Collection", url: "/collections/toko-bunga-garut", images: " ", price: " " },{ label: "Toko Bunga Gianyar", category: "Collection", url: "/collections/toko-bunga-gianyar", images: " ", price: " " },{ label: "Toko Bunga Gowa", category: "Collection", url: "/collections/toko-bunga-gowa", images: " ", price: " " },{ label: "Toko Bunga Gresik", category: "Collection", url: "/collections/toko-bunga-gresik", images: " ", price: " " },{ label: "Toko Bunga Grobogan", category: "Collection", url: "/collections/toko-bunga-grobogan", images: " ", price: " " },{ label: "Toko Bunga Grogol", category: "Collection", url: "/collections/toko-bunga-grogol", images: " ", price: " " },{ label: "Toko Bunga Gunungkidul", category: "Collection", url: "/collections/toko-bunga-gunungkidul", images: " ", price: " " },{ label: "Toko Bunga Indramayu", category: "Collection", url: "/collections/toko-bunga-indramayu", images: " ", price: " " },{ label: "Toko Bunga Jakarta", category: "Collection", url: "/collections/toko-bunga-jakarta", images: " ", price: " " },{ label: "Toko Bunga Jakarta Barat", category: "Collection", url: "/collections/toko-bunga-jakarta-barat", images: " ", price: " " },{ label: "Toko Bunga Jakarta Pusat", category: "Collection", url: "/collections/toko-bunga-jakarta-pusat", images: " ", price: " " },{ label: "Toko Bunga Jakarta Selatan", category: "Collection", url: "/collections/toko-bunga-jakarta-selatan", images: " ", price: " " },{ label: "Toko Bunga Jakarta Timur", category: "Collection", url: "/collections/toko-bunga-jakarta-timur", images: " ", price: " " },{ label: "Toko Bunga Jakarta Utara", category: "Collection", url: "/collections/toko-bunga-jakarta-utara", images: " ", price: " " },{ label: "Toko Bunga Jambi", category: "Collection", url: "/collections/toko-bunga-jambi", images: " ", price: " " },{ label: "Toko Bunga Jatinegara", category: "Collection", url: "/collections/toko-bunga-jatinegara", images: " ", price: " " },{ label: "Toko Bunga Jawa & Bali", category: "Collection", url: "/collections/toko-bunga-jawa-bali", images: " ", price: " " },{ label: "Toko Bunga Jayapura", category: "Collection", url: "/collections/toko-bunga-jayapura", images: " ", price: " " },{ label: "Toko Bunga Jelambar - Florist Onine 24 Jam", category: "Collection", url: "/collections/toko-bunga-jelambar", images: " ", price: " " },{ label: "Toko Bunga Jember", category: "Collection", url: "/collections/toko-bunga-jember", images: " ", price: " " },{ label: "Toko Bunga Jembrana", category: "Collection", url: "/collections/toko-bunga-jembrana", images: " ", price: " " },{ label: "Toko Bunga Jepara", category: "Collection", url: "/collections/toko-bunga-jepara", images: " ", price: " " },{ label: "Toko Bunga Joglo", category: "Collection", url: "/collections/toko-bunga-joglo", images: " ", price: " " },{ label: "Toko Bunga Jombang", category: "Collection", url: "/collections/toko-bunga-jombang", images: " ", price: " " },{ label: "Toko Bunga Kalibata", category: "Collection", url: "/collections/toko-bunga-kalibata", images: " ", price: " " },{ label: "Toko Bunga Kalimantan", category: "Collection", url: "/collections/toko-bunga-kalimantan", images: " ", price: " " },{ label: "Toko Bunga Kalisari Semarang", category: "Collection", url: "/collections/toko-bunga-kalisari-semarang", images: " ", price: " " },{ label: "Toko Bunga Kampung Baru", category: "Collection", url: "/collections/toko-bunga-kampung-baru", images: " ", price: " " },{ label: "Toko Bunga Kapuas", category: "Collection", url: "/collections/toko-bunga-kapuas", images: " ", price: " " },{ label: "Toko Bunga Karanganyar", category: "Collection", url: "/collections/toko-bunga-karanganyar", images: " ", price: " " },{ label: "Toko Bunga Karangasem", category: "Collection", url: "/collections/toko-bunga-karangasem", images: " ", price: " " },{ label: "Toko Bunga Karawang", category: "Collection", url: "/collections/toko-bunga-karawang", images: " ", price: " " },{ label: "Toko Bunga Kartosuro", category: "Collection", url: "/collections/toko-bunga-kartosuro", images: " ", price: " " },{ label: "Toko Bunga Kayoon Surabaya", category: "Collection", url: "/collections/toko-bunga-kayoon-surabaya", images: " ", price: " " },{ label: "Toko Bunga Kebayoran Baru", category: "Collection", url: "/collections/toko-bunga-kebayoran-baru", images: " ", price: " " },{ label: "Toko Bunga Kebon Jeruk", category: "Collection", url: "/collections/toko-bunga-kebon-jeruk", images: " ", price: " " },{ label: "Toko Bunga Kebumen", category: "Collection", url: "/collections/toko-bunga-kebumen", images: " ", price: " " },{ label: "Toko Bunga Kediri", category: "Collection", url: "/collections/toko-bunga-kediri", images: " ", price: " " },{ label: "Toko Bunga Kelapa Gading", category: "Collection", url: "/collections/toko-bunga-kelapa-gading", images: " ", price: " " },{ label: "Toko Bunga Kemayoran", category: "Collection", url: "/collections/toko-bunga-kemayoran", images: " ", price: " " },{ label: "Toko Bunga Kendal", category: "Collection", url: "/collections/toko-bunga-ken
7562dal", images: " ", price: " " },{ label: "Toko Bunga Kendari", category: "Collection", url: "/collections/toko-bunga-kendari", images: " ", price: " " },{ label: "Toko Bunga Ketapang", category: "Collection", url: "/collections/toko-bunga-ketapang", images: " ", price: " " },{ label: "Toko Bunga Klaten", category: "Collection", url: "/collections/toko-bunga-klaten", images: " ", price: " " },{ label: "Toko Bunga Klender", category: "Collection", url: "/collections/toko-bunga-klender", images: " ", price: " " },{ label: "Toko Bunga Kota Baru Yogyakarta", category: "Collection", url: "/collections/toko-bunga-kota-baru-yogyakarta", images: " ", price: " " },{ label: "Toko Bunga Kota Batu", category: "Collection", url: "/collections/toko-bunga-kota-batu", images: " ", price: " " },{ label: "Toko Bunga Kramat Jati", category: "Collection", url: "/collections/toko-bunga-kramat-jati", images: " ", price: " " },{ label: "Toko Bunga Kudus", category: "Collection", url: "/collections/toko-bunga-kudus", images: " ", price: " " },{ label: "Toko Bunga Kupang", category: "Collection", url: "/collections/toko-bunga-kupang", images: " ", price: " " },{ label: "Toko Bunga Lamongan", category: "Collection", url: "/collections/toko-bunga-lamongan", images: " ", price: " " },{ label: "Toko Bunga Langkat", category: "Collection", url: "/collections/toko-bunga-langkat", images: " ", price: " " },{ label: "Toko Bunga Lebak Bulus", category: "Collection", url: "/collections/toko-bunga-lebak-bulus", images: " ", price: " " },{ label: "Toko Bunga Lembang", category: "Collection", url: "/collections/toko-bunga-lembang", images: " ", price: " " },{ label: "Toko Bunga Lenteng Agung", category: "Collection", url: "/collections/toko-bunga-lenteng-agung", images: " ", price: " " },{ label: "Toko Bunga Lombok", category: "Collection", url: "/collections/toko-bunga-lombok", images: " ", price: " " },{ label: "Toko Bunga Lubuk Pakam", category: "Collection", url: "/collections/toko-bunga-lubuk-pakam", images: " ", price: " " },{ label: "Toko Bunga Lumajang", category: "Collection", url: "/collections/toko-bunga-lumajang", images: " ", price: " " },{ label: "Toko Bunga Madiun", category: "Collection", url: "/collections/toko-bunga-madiun", images: " ", price: " " },{ label: "Toko Bunga Magelang", category: "Collection", url: "/collections/toko-bunga-magelang", images: " ", price: " " },{ label: "Toko Bunga Majalengka", category: "Collection", url: "/collections/toko-bunga-majalengka", images: " ", price: " " },{ label: "Toko Bunga Makassar", category: "Collection", url: "/collections/toko-bunga-makassar", images: " ", price: " " },{ label: "Toko Bunga Malang", category: "Collection", url: "/collections/toko-bunga-malang", images: " ", price: " " },{ label: "Toko Bunga Manado", category: "Collection", url: "/collections/toko-bunga-manado", images: " ", price: " " },{ label: "Toko Bunga Mangga Besar", category: "Collection", url: "/collections/toko-bunga-mangga-besar", images: " ", price: " " },{ label: "Toko Bunga Manokwari", category: "Collection", url: "/collections/toko-bunga-manokwari", images: " ", price: " " },{ label: "Toko Bunga Maros", category: "Collection", url: "/collections/toko-bunga-maros", images: " ", price: " " },{ label: "Toko Bunga Mataram", category: "Collection", url: "/collections/toko-bunga-mataram", images: " ", price: " " },{ label: "Toko Bunga Medan", category: "Collection", url: "/collections/toko-bunga-medan", images: " ", price: " " },{ label: "Toko Bunga Mojokerto", category: "Collection", url: "/collections/toko-bunga-mojokerto", images: " ", price: " " },{ label: "Toko Bunga Nganjuk", category: "Collection", url: "/collections/toko-bunga-nganjuk", images: " ", price: " " },{ label: "Toko Bunga Ngawi", category: "Collection", url: "/collections/toko-bunga-ngawi", images: " ", price: " " },{ label: "Toko Bunga Nias", category: "Collection", url: "/collections/toko-bunga-nias", images: " ", price: " " },{ label: "Toko Bunga Nusa Tenggara", category: "Collection", url: "/collections/toko-bunga-nusa-tenggara", images: " ", price: " " },{ label: "Toko Bunga Padang", category: "Collection", url: "/collections/toko-bunga-padang", images: " ", price: " " },{ label: "Toko Bunga Palembang", category: "Collection", url: "/collections/toko-bunga-palembang", images: " ", price: " " },{ label: "Toko Bunga Palu", category: "Collection", url: "/collections/toko-bunga-palu", images: " ", price: " " },{ label: "Toko Bunga Pangkal Pinang", category: "Collection", url: "/collections/toko-bunga-pangkal-pinang", images: " ", price: " " },{ label: "Toko Bunga Papua", category: "Collection", url: "/collections/toko-bunga-papua", images: " ", price: " " },{ label: "Toko Bunga Parepare", category: "Collection", url: "/collections/toko-bunga-parepare", images: " ", price: " " },{ label: "Toko Bunga Pasar Baru", category: "Collection", url: "/collections/toko-bunga-pasar-baru", images: " ", price: " " },{ label: "Toko Bunga Pasar Minggu", category: "Collection", url: "/collections/toko-bunga-pasar-minggu", images: " ", price: " " },{ label: "Toko Bunga Pasar Rebo", category: "Collection", url: "/collections/toko-bunga-pasar-rebo", images: " ", price: " " },{ label: "Toko Bunga Pasuruan", category: "Collection", url: "/collections/toko-bunga-pasuruan", images: " ", price: " " },{ label: "Toko Bunga Pati", category: "Collection", url: "/collections/toko-bunga-pati", images: " ", price: " " },{ label: "Toko Bunga Pekalongan", category: "Collection", url: "/collections/toko-bunga-pekalongan", images: " ", price: " " },{ label: "Toko Bunga Pekanbaru", category: "Collection", url: "/collections/toko-bunga-pekanbaru", images: " ", price: " " },{ label: "Toko Bunga Pemalang", category: "Collection", url: "/collections/toko-bunga-pemalang", images: " ", price: " " }, 7563 { label: "grand salutation jabodetabek", category: "Produk", url: "/products/grand-salutation", images: "//outerbloom.com/cdn/shop/files/JKTCON1005_Grand-Salutation-Jabodetabek-WM_thumb.jpg?v=1703241523", price: "Rp 435.000" },{ label: "consolantibus jabodetabek", category: "Produk", url: "/products/consolantibus", images: "//outerbloom.com/cdn/shop/files/JKTDUK1011_Consolantibus-Jabodetabek-WM_thumb.jpg?v=1703239823", price: "Rp 435.000" },{ label: "classic midnight hand bouquet fiery red", category: "Produk", url: "/products/the-classic-midnight-hand-bouquet-fiery-red", images: "//outerbloom.com/cdn/shop/files/OBVBUQDgwqVE-6aMBLYLbQv6i5N5y7bC5SajqSjHPzt8UJUqbZ8a-large_thumb.jpg?v=1757302521", price: "Rp 385.000" },{ label: "enchanted dome passionate red", category: "Produk", url: "/products/enchanted-dome-passionate-red", images: "//outerbloom.com/cdn/shop/files/Enchanted-dome-red-new-box_3_2_26c081bf-f2a5-42b4-9ce4-3c0304c498e5_thumb.jpg?v=1712639476", price: "Rp 1.435.000" },{ label: "endearing ruby", category: "Produk", url: "/products/endearing-ruby", images: "//outerbloom.com/cdn/shop/products/OUTSTF1003_Endearing-Ruby_thumb.jpg?v=1631296611", price: "Rp 585.000" },{ label: "gentle soul jabodetabek", category: "Produk", url: "/products/gentle-soul-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTDUK1030_Gentle-Soul-Jabodetabek-WM_thumb.jpg?v=1703239894", price: "Rp 435.000" },{ label: "belleza jabodetabek", category: "Produk", url: "/products/belleza", images: "//outerbloom.com/cdn/shop/files/Belleza-Jabodetabek-LED_aecb756a-0737-45cc-8bfb-008515ca0a37_thumb.gif?v=1759229680", price: "Rp 435.000" }
7563,{ label: "majestic pink roses with baby breath bouquet", category: "Produk", url: "/products/majestic-pink-roses-with-baby-breath-bouquet", images: "//outerbloom.com/cdn/shop/products/ef4a3be9-c938-4c70-98ac-4873e7da82bf_90820a66-923a-463d-a464-81bcbe6e6644_thumb.jpg?v=1581413440", price: "Rp 485.000" },{ label: "sentiments jabodetabek", category: "Produk", url: "/products/sentiments", images: "//outerbloom.com/cdn/shop/files/Sentiments-Jabodetabek-WM_thumb.jpg?v=1759224099", price: "Rp 485.000" },{ label: "rose poetry bouquet", category: "Produk", url: "/products/rose-poetry-bouquet", images: "//outerbloom.com/cdn/shop/products/Rose-Poetry-Bouquet-20-tangkai_thumb.jpg?v=1675151039", price: "Rp 385.000" },{ label: "genuine feeling", category: "Produk", url: "/products/genuine-feeling", images: "//outerbloom.com/cdn/shop/products/OUQDgwqVE-6aMBLYLbQv6i5N5y7bC5SajqSjHPzt8UJUqbZ8a-8d76175a0e4d_thumb.jpg?v=1612352389", price: "Rp 585.000" },{ label: "eternal fidelity jabodetabek", category: "Produk", url: "/products/eternal-fidelity-jabodetabek", images: "//outerbloom.com/cdn/shop/products/0b89df45-dcc1-4876-820e-61b2243a1945_964e211d-2972-46c9-8593-976210929089_thumb.jpg?v=1590491458", price: "Rp 435.000" },{ label: "rosabelle hand bouquet", category: "Produk", url: "/products/rosabelle-hand-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1429_Rosabelle-Hand-Bouquet-Medium_thumb.jpg?v=1756971848", price: "Rp 385.000" },{ label: "dreaming in pink luxury in vase", category: "Produk", url: "/products/dreaming-in-pink-luxury-in-vase", images: "//outerbloom.com/cdn/shop/products/OBVBUN1051_Dreaming-In-Pink-Luxury-In-Vase_3_thumb.jpg?v=1614594504", price: "Rp 735.000" },{ label: "excito jabodetabek", category: "Produk", url: "/products/excito", images: "//outerbloom.com/cdn/shop/files/JKTCON1010_Excito-Jabodetabek-2023_thumb.gif?v=1717494677", price: "Rp 485.000" },{ label: "golden toast jabodetabek", category: "Produk", url: "/products/golden-toast", images: "//outerbloom.com/cdn/shop/products/LED-GoldenToast_thumb.gif?v=1579249585", price: "Rp 485.000" },{ label: "spirit of eminance jabodetabek", category: "Produk", url: "/products/spirit-of-eminance-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTCON1026_Spirit-of-Eminance-Jabodetabek-newest-WM_thumb.jpg?v=1693297526", price: "Rp 485.000" },{ label: "white elysian bloom box", category: "Produk", url: "/products/white-elysian-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1704_White-Elysian-Bloom-Box_thumb.jpg?v=1757328247", price: "Rp 685.000" },{ label: "charming forevermore jabodetabek", category: "Produk", url: "/products/charming-forevermore-jabodetabek", images: "//outerbloom.com/cdn/shop/files/JKTWUQDgwqVE-6aMBLYLbQv6i5N5y7bC5SajqSjHPzt8UJUqbZ8a.jpg?v=1703239534", price: "Rp 485.000" },{ label: "moment of glory jabodetabek", category: "Produk", url: "/products/moment-of-glory-jabodetabek", images: "//outerbloom.com/cdn/shop/products/JKTCON1051_Moment-of-Glory-Jabodetabek_2_thumb.jpg?v=1596614663", price: "Rp 385.000" },{ label: "sweet romance jabodetabek", category: "Produk", url: "/products/sweet-romance", images: "//outerbloom.com/cdn/shop/products/JKTWED1005_Sweet-Romance-Jabodetabek_thumb.gif?v=1677134791", price: "Rp 635.000" },{ label: "with love bouquet", category: "Produk", url: "/products/with-love-bouquet", images: "//outerbloom.com/cdn/shop/products/c5d6fed6-8ada-4c38-ae0f-36d395aacb19_613f78f0-d52c-443b-9e13-63a151cd8ec5_thumb.jpg?v=1590748429", price: "Rp 535.000" },{ label: "sunflower yellow and with white daisies in vase", category: "Produk", url: "/products/sunflower-yellow-roses-with-white-and-yellow-daisies-in-a-glass-vase", images: "//outerbloom.com/cdn/shop/files/OBVBUN1132_Sunflower-Yellow-And-With-White-Daisies-in-Vase_thumb.jpg?v=1757930628", price: "Rp 435.000" },{ label: "everlasting peace jabodetabek", category: "Produk", url: "/products/everlasting-peace-jabodetabek", images: "//outerbloom.com/cdn/shop/products/JKTDUK1034_Everlasting-Peace-Jabodetabek_2_thumb.jpg?v=1596614613", price: "Rp 385.000" },{ label: "astoria passionate red", category: "Produk", url: "/products/astoria-passionate-red", images: "//outerbloom.com/cdn/shop/products/Astoria-passionate-red_b59b26f6-c39d-46d3-adcb-262c675bb16f_thumb.jpg?v=1633502742", price: "Rp 685.000" },{ label: "classic purple orchid majesty in vase", category: "Produk", url: "/products/classic-purple-orchid-majesty-in-vase", images: "//outerbloom.com/cdn/shop/products/Classic-Purple-Orchid-Majesty-in-Vase---White---4-Tangkai_40a5e337-283f-40f5-911c-5df9b506b9da_thumb.jpg?v=1639981404", price: "Rp 435.000" },{ label: "passion rouge bloom box", category: "Produk", url: "/products/passion-rouge-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1725_Passion-Rouge-Bloom-Box_thumb.jpg?v=1756972410", price: "Rp 385.000" },{ label: "classic white orchid majesty in vase", category: "Produk", url: "/products/classic-white-orchid-majesty-in-vase", images: "//outerbloom.com/cdn/shop/products/Classic-white-Orchid-Majesty-in-Vase---white---4-Tangkai_thumb.jpg?v=1644205542", price: "Rp 435.000" }
7563,{ label: "majestic blue romance bouquet", category: "Produk", url: "/products/majestic-blue-romance-bouquet", images: "//outerbloom.com/cdn/shop/files/OBVBUN1357_Majestic-Blue-Romance-Bouquet_99b8ba96-0e67-4eef-a00e-b2daedcddb6a_thumb.jpg?v=1757390540", price: "Rp 435.000" },{ label: "sincerely", category: "Produk", url: "/products/sincerely", images: "//outerbloom.com/cdn/shop/files/Sincerely-WM_thumb.jpg?v=1688354677", price: "Rp 585.000" },{ label: "happy days jabodetabek", category: "Produk", url: "/products/happy-days-jabodetabek", images: "//outerbloom.com/cdn/shop/files/Happy-Days-Jabodetabek_WM_thumb.jpg?v=1759224026", price: "Rp 485.000" },{ label: "solemn comfort jabodetabek", category: "Produk", url: "/products/solemn-comfort-jabodetabek", images: "//outerbloom.com/cdn/shop/products/7fe123d8-6bb2-4c0d-bd4c-f8c3032823f2_6b9c33b6-4a23-41cb-8709-fc9223fe096a_thumb.png?v=1590662086", price: "Rp 635.000" },{ label: "big dreams jabodetabek", category: "Produk", url: "/products/big-dreams", images: "//outerbloom.com/cdn/shop/files/JKTCON1002_Big-Dreams-Jabodetabek_thumb.gif?v=1717494603", price: "Rp 485.000" },{ label: "signature ramadan deluxe hampers", category: "Produk", url: "/products/outerbloom-signature-ramadhan-deluxe-hampers", images: "//outerbloom.com/cdn/shop/files/Signature-Deluxe-Hampers_thumb.jpg?v=1739242254", price: "Rp 985.000" },{ label: "amorous amos jabodetabek", category: "Produk", url: "/products/amorous-amos-jabodetabek", images: "//outerbloom.com/cdn/shop/files/Amorous-Amos-Jabodetabek-WM_thumb.jpg?v=1759224071", price: "Rp 485.000" },{ label: "pink darling bouquet", category: "Produk", url: "/products/pink-darling-bouquet", images: "//outerbloom.com/cdn/shop/products/Pink-Darling-Bouquet_thumb.jpg?v=1669969725", price: "Rp 485.000" },{ label: "black pink bouquet", category: "Produk", url: "/products/black-pink-bouquet", images: "//outerbloom.com/cdn/shop/files/Black-Pink-Bouquet_thumb.jpg?v=1756434063", price: "Rp 485.000" },{ label: "profound happiness jabodetabek", category: "Produk", url: "/products/profound-happiness-jabodetabek", images: "//outerbloom.com/cdn/shop/files/profound-happiness_thumb.gif?v=1689940309", price: "Rp 635.000" },{ label: "healing trove", category: "Produk", url: "/products/healing-trove", images: "//outerbloom.com/cdn/shop/products/2ef5379f-27a6-41ba-85c7-c65cf3ec3f08_thumb.jpg?v=1571471845", price: "Rp 485.000" },{ label: "sincerity solace", category: "Produk", url: "/products/sincerity-solace", images: "//outerbloom.com/cdn/shop/products/OUTSTF1038_sincerity-solace-WM_thumb.jpg?v=1612352477", price: "Rp 485.000" },{ label: "bellarosa bloom box", category: "Produk", url: "/products/bellarosa-bloom-box", images: "//outerbloom.com/cdn/shop/files/OBVBUN1783_Bellarosa-Bloom-Box_c0000424-411c-48ed-abf4-0de7d925ea53_thumb.jpg?v=1757316757", price: "Rp 785.000" } 7564 ]; 7565 7566 7567 $( ".header-input-search" ).catcomplete({ 7568 appendTo: ".searchResult",source: function(request, response) { 7569 var results = $.ui.autocomplete.filter(data, request.term); 7570 var predicate = function () { 7571 var counter = { Collection: 0, Produk: 0 }; 7572 var fn = function(item) {counter[item.category] += 1;return (counter[item.category] <= 5);} 7573 return fn 7574 }(); 7575 response(results.filter(predicate)); 7576 }, 7577 minLength:1, 7578 //results are clickable 7579 select: function( event, ui ) {window.location = ui.item.url;} 7580 }); 7581 $( ".header-input-search2" ).catcomplete({ 7582 appendTo: ".searchResult2", 7583 source: function(request, response) { 7584 var results = $.ui.autocomplete.filter(data, request.term); 7585 var predicate = function () { 7586 var counter = { Collection: 0, Produk: 0 }; 7587 var fn = function(item) { 7588 counter[item.category] += 1; 7589 return (counter[item.category] <= 5); 7590 } 7591 return fn 7592 }(); 7593 response(results.filter(predicate)); 7594 }, 7595 minLength:1, 7596 //results are clickable 7597 select: function( event, ui ) { 7598 window.location = ui.item.url; 7599 } 7600 }); 7601 }); 7602 </script>
7602 7603 7604
7604<script src="//outerbloom.com/cdn/shop/t/138/assets/vendors.js?v=6349622868601634021752652419" defer></script>
7604 7605
7605<script src="//outerbloom.com/cdn/shop/t/138/assets/app.js?v=136050180318808583701752652452" defer></script>
7605 7606 7607
7607<script> 7608 ( function() { 7609 var youtube = document.querySelectorAll( ".youtube" ); 7610 for (var i = 0; i < youtube.length; i++) { 7611 var source = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault_1x.jpg"; 7612 var datasource = "https://img.youtube.com/vi/"+ youtube[i].dataset.embed +"/sddefault.jpg"; 7613 var image = new Image(); 7614 image.src = source; 7615 image.setAttribute("data-src", datasource); 7616 image.classList.add("swiper-lazy"); 7617 image.addEventListener( "load", function() { 7618 youtube[ i ].appendChild( image ); 7619 }( i ) ); 7620 youtube[i].addEventListener( "click", function() { 7621 var iframe = document.createElement( "iframe" ); 7622 iframe.setAttribute( "width", "480" ); 7623 iframe.setAttribute( "height", "480" ); 7624 iframe.setAttribute( "frameborder", "0" ); 7625 iframe.setAttribute( "allowfullscreen", "" ); 7626 iframe.setAttribute( "src", "https://www.youtube.com/embed/"+ this.dataset.embed +"?rel=0&showinfo=0&autoplay=1" ); 7627 this.innerHTML = ""; 7628 this.appendChild( iframe ); 7629 } ); 7630 }; 7631 7632 } )(); 7633 7634 /* Lazy Load */ 7635 const mainLazyLoad = new LazyLoad({threshold:400}); 7636 $(document).ready(function(){ 7637 7638 $("selectxxx").addClass("needsclick"); 7639 FastClick.attach(document.body); 7640 7641 var $customSelects = $('.select-search'); 7642 $customSelects.select2({ 7643 templateResult: function(result, container) { 7644 if (!result.id) { 7645 return result.text; 7646 } 7647 container.className += ' needsclick'; 7648 return result.text; 7649 } 7650 }); 7651 $customSelects.each(function(index, el){$(el).data('select2').$container.find('*').addClass('needsclick');}); 7652 $(document).on('select2:open', () => { 7653 document.querySelector('.select2-search__field').focus(); 7654 }); 7655 7656 7657 $(".overlay").click(function(){ 7658 $(".js-drawer-close").click(); 7659 }); 7660 $(".site-nav--mobile .js-drawer-open-left, #NavDrawer .icon-close, .overlay-nav").click(function(){ 7661 $("html").toggleClass("nav_open"); 7662 }); 7663 7664 $('.swatch-element label').on('click', function(){ 7665 var srcImg = $(this).data('src'); 7666 $('#thumb-image-product .product-single__thumbnail').each(function(){ 7667 if ($(this).attr("href") == srcImg) { 7668 $(this).trigger('click'); 7669 } 7670 }); 7671 }); 7672 var defaultValue = $(".swatch input:checked").val() 7673 7674 $('#purchaseProduct .swatch [type=radio]').change(function() { 7675 var optionIndex = $(this).closest('.swatch').attr('data-option-index'); 7676 var optionValue = $(this).val(); 7677 console.log(optionIndex, optionValue) 7678 var value = parseInt(optionValue.split(' ')[0]) 7679 $(this) 7680 .closest('#purchaseProduct') 7681 .find('.single-option-selector') 7682 .eq(optionIndex) 7683 .val(optionValue) 7684 .trigger('change'); 7685 7686 }); 7687 7688 }); 7689 $(document).ready(function(){ 7690 $(".nav-search a").click(function(e){ 7691 e.preventDefault(); 7692 $(".icon-navsearch").toggle(); 7693 $(".icon-navclose").toggle(); 7694 $(".site-nav__item > .site-nav__link").toggle(); 7695 $(".open-search").toggle(); 7696 $(".open-search input").focus(); 7697 }); 7698 $(".best-price-guarantee").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/logo-best-price-guarantee-grid_75x.png?v=72489032173169839651752652420' alt='Logo Best Price Guarantee'>"); 7699 if ($(window).width() < 768) { 7700 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_75x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7701 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_45x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7702 $(".bg-products .label-tag.free-valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-valentine_150x.png?v=1BVTrB47erypG3tevi1U9Fv6BbNUBEiuiX' alt='Icon Free Valentine'>"); 7703 } else { 7704 $(".bg-products .label-tag.valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-valentine_60x.png?v=82732945490105366961752652419' alt='Icon Valentine'>"); 7705 $(".bg-products .label-tag.cny").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/icon-cny_60x.png?v=101884295148001743851752652418' alt='Icon CNY'>"); 7706 $(".bg-products .label-tag.free-valentine").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-valentine_200x.png?v=1BVTrB47erypG3tevi1U9Fv6BbNUBEiuiX' alt='Icon Free Valentine'>"); 7707 } 7708 $(".bg-products .label-tag.free-cookies").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/free-cookies_80x.png?51468' alt='Icon Free Cookies'>"); 7709 $(".bg-products .label-tag.mothersday").html("<img src='//outerbloom.com/cdn/shop/t/138/assets/mothers-day_70x.png?v=1BVTrB47erypG3tevi1U9Fv6BbNUBEiuiX' alt='Icon Mothers day'>"); 7710 }); 7711 </script>
7711 7712 7713 7714 7715 7716 7717 7718 7719
7719<script type="text/javascript"> 7720 var wishlistpage = 0; 7721 7722 var quickShop_money_format="<span class='money'>"+"Rp {{amount_no_decimals}}"+"</span>"; 7723 </script>
7723 7724 7725 <!-- Remove duplicate wishlist.js reference --> 7726 <style> 7727 .fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999999;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.fade.in{opacity:1}.modal-open .modal{overflow-x:hidden;overflow-y:auto;z-index:999999;background-color:rgba(0,0,0,.3)}.modal-dialog{position:relative;width:auto;margin:10px}.wishlist-model .modal-dialog{width:700px}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.wishlist-model .modal-content{}.wishlist-model .modal-header{min-height:0;padding:0;border-bottom:0}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #121212;filter:alpha(opacity=20);opacity:.2}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-header .close{margin-top:-2px}.wishlist-model .close{position:absolute;top:-10px;right:-10px;background:#fff;opacity:1;width:30px;height:30px;font-size:15px;border-radius:50%;z-index:10;box-shadow:0 1px 4px 0 #121212}.wishlist-model .close .icon-close{width:25px;height:25px}.modal-body{position:relative;padding:15px}.wishlist-model .modal-body{padding:0 30px;display:flex}.wishlist-model .wishlist-left{width:66.67%;border-right:1px solid #ccc;padding:30px 0}.wishlist-model .wishlist-note{position:relative;display:inline-block;margin-bottom:20px;margin-left:35px;border-bottom:1px solid #121212;color:#121212}.wishlist-model .wishlist-note a{color: #ffffff;}.wishlist-model .wishlist-note .cirle{position:absolute;top:-4px;left:-35px;width:25px;height:25px;color:#fff;background:#121212;line-height:25px;border-radius:50%;text-align:center}.wishlist-model .wishlist-note svg{fill:#fff}.wishlist-model .wishlist-note .cirle .icon-check{vertical-align:middle}.wishlist-model .product-left{width:33.33%;float:left;margin-right:30px}.wishlist-model .wishlist-image{overflow:hidden}.wishlist-model .wishlist-image img{transition:all .3s linear}.wishlist-model .wishlist-name{padding:0;margin-bottom:10px}.wishlist-model .wishlist-name a{color: #ffffff;}.wishlist-model .wishlist-price{margin-bottom:10px}.wishlist-model .wishlist-price .price{font-weight:700;margin-right:10px;font-size:15px}.wishlist-model .wishlist-price .price_compare{color:#ccc}.wishlist-model .wishlist-right{width:33.33%;padding:30px 0;padding-left:30px}.wishlist-model .btn-quick-shop{width:100%;border-color:#121212;background:#fff;color:#121212;padding:0 30px;transition:all .2s linear;height:36px;margin-bottom:10px;text-transform:uppercase}.wishlist-model .btn-cta{width:100%;font-size:1em;border-color:#ffffff;background:#ffffff;color:#fff;padding:0;transition:all .2s linear;height:36px;line-height:36px;margin-bottom:10px}.wishlist-model .quantity-content{text-align:center}.wishlist-model .quantity-content input{outline:none;text-align:center;font-weight:600;border:1px solid #121212}.wishlist-model .quantity-content button{border-color:#121212}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}} 7728 </style> 7729 7730 <div class="modal fade" id="modalwishlist0" tabindex="-1" role="dialog"> 7731 <div class="modal-dialog" role="document"> 7732 <div class="modal-content"> 7733 <div class="modal-body">Your Wishlist is empty!</div> 7734 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> 7735 </div> 7736 </div> 7737 </div> 7738 7739 <div class="wishlist-model"> 7740 <div class="modal fade" id="modalwishlist1" tabindex="-1" role="dialog" aria-hidden="true"> 7741 <div class="modal-dialog white-modal"> 7742 <div class="modal-content"> 7743 <div class="modal-header"> 7744 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 7745 <svg class="icon icon-close" version="1.1" xmlns="https://kucingair.com/fotobaka/logopub.png" width="32" height="32" viewBox="0 0 32 32"> 7746 <title>icon-close</title> 7747 <path d="M16.943 16l8.862 8.862c0.26 0.26 0.26 0.682 0 0.943s-0.682 0.26-0.943 0l-8.862-8.862-8.862 8.862c-0.26 0.26-0.682 0.26-0.943 0s-0.26-0.682 0-0.943l8.862-8.862-8.862-8.862c-0.26-0.26-0.26-0.682 0-0.943s0.682-0.26 0.943 0l8.862 8.862 8.862-8.862c0.26-0.26 0.682-0.26 0.943 0s0.26 0.682 0 0.943l-8.862 8.862z"></path> 7748 </svg> 7749 </button> 7750 </div> 7751 <div class="modal-body"> 7752 <div class="wishlist-left"> 7753 <div class="wishlist-note">
7754 <span class="cirle"><svg version="1.1" xmlns="https://kucingair.com/fotobaka/logopub.png" width="32" height="32" viewBox="0 0 32 32"> 7755 <title>icon-check</title> 7756 <path d="M12 21.766l14.218-12.926c0.272-0.248 0.694-0.228 0.942 0.045s0.228 0.694-0.045 0.942l-14.667 13.333c-0.254 0.231-0.643 0.231-0.897 0l-6.667-6.061c-0.272-0.248-0.293-0.669-0.045-0.942s0.669-0.293 0.942-0.045l6.218 5.653z"></path> 7757 </svg></span> 7758 Product added to <a href="/pages/wish-list">Wishlist</a> 7759 </div> 7760 <div class="wishlist-product"> 7761 <div class="product-left"> 7762 <div class="wishlist-image"></div> 7763 </div> 7764 <div class="product-right"> 7765 <div class="wishlist-name"></div> 7766 <div class="wishlist-price"></div> 7767 </div> 7768 </div> 7769 </div> 7770 <div class="wishlist-right"> 7771 <div class="wishlist-cart"> 7772 <form action="/cart/add" method="post" class="variants-form variants" id="AddToCartForm" enctype="multipart/form-data"> 7773 <div class="others-bottom"> 7774 <a class="btn btn-quick-shop" href="/pages/wish-list">View Wishlist</a> 7775 <button type="submit" name="add" id="AddToCart" class="btn btn-cta"> 7776 <span id="AddToCartText" class="">Beli Sekarang</span> 7777 </button> 7778 </div> 7779 <div id="wishlist-variants-container" class="variants-wrapper"></div> 7780 <div class="quantity-content"> 7781 <label>QTY</label> 7782 <input type="number" size="5" class="" name="quantity" value="1" /> 7783 </div> 7784 </form> 7785 </div> 7786 </div> 7787 </div> 7788 </div> 7789 </div> 7790 </div> 7791 </div> 7792 7793 7794 <style> 7795 .stamped-badge[data-rating="0.0"]{display: none !Important;} 7796 7797 div[data-load-type="continue"] ul.stamped-pagination li.next a, div[data-widget-load-type="continue"] ul.stamped-pagination li.next a { 7798 border-radius: 0px; 7799 } 7800 .stamped-review-body { 7801 padding-left: 0px !important; 7802 } 7803 #product-reviews .stamped-header:after { 7804 display:none !Important; 7805 } 7806 #stamped-main-widget .stamped-container, .stamped-badge-caption,#stamped-reviews-widget { 7807 font-family:inherit !important; 7808 } 7809 </style> 7810 7811 7812 7813 <div id='stamped-rewards-init' class='stamped-rewards-init' 7814 data-key-public='' 7815 7816 ></div> 7817 7818
7818<script src="//outerbloom.com/cdn/shop/t/138/assets/variant-sku-handler.js?v=91239063692820757781752652418" defer></script>
7818 7819 <!-- Remove duplicate jQuery reference and load wishlist script properly --> 7820
7820<script src="//outerbloom.com/cdn/shop/t/138/assets/wishlist-fixed.js?v=35991423018869066281754360012" defer></script>
7820 7821 7822
7822<script> 7823 function myInit(){ StampedFn.init({ apiKey: 'pubkey-hCS8DHE9QbBHhHN89WXFkuJ0Y3422D', sId: '23462' }); } 7824 </script>
7824 7825
7825<script async onload="myInit()" type="text/javascript" src="https://cdn1.stamped.io/files/widget.min.js"></script>
7825<style> 7826 .jss59 { 7827 background-color: rgba(0, 0, 0, 0.6); 7828 } 7829 .MuiBackdrop-root { 7830 top: 0; 7831 left: 0; 7832 right: 0; 7833 bottom: 0; 7834 display: flex; 7835 z-index: -1; 7836 position: fixed; 7837 align-items: center; 7838 justify-content: center; 7839 background-color: rgba(0, 0, 0, 0.5); 7840 -webkit-tap-highlight-color: transparent; 7841 } 7842 .MuiDialog-scrollPaper { 7843 display: flex; 7844 align-items: center; 7845 justify-content: center; 7846 } 7847 .MuiDialog-container { 7848 height: 100%; 7849 outline: 0; 7850 } 7851 .MuiPaper-elevation24 { 7852 box-shadow: 0px 11px 15px -7px rgba(0,0,0,0.2), 0px 24px 38px 3px rgba(0,0,0,0.14), 0px 9px 46px 8px rgba(0,0,0,0.12); 7853 } 7854 .MuiDialog-paper { 7855 margin: 32px; 7856 position: relative; 7857 overflow-y: auto; 7858 } 7859 .MuiDialog-paperScrollPaper { 7860 display: flex; 7861 max-height: calc(100% - 64px); 7862 flex-direction: column; 7863 } 7864 .MuiDialog-paperWidthSm { 7865 max-width: 600px; 7866 } 7867 #location-lock-dialog { 7868 top: 20%; 7869 left: 0; 7870 right: 0; 7871 width: 30%; 7872 margin: 0px auto; 7873 display: block; 7874 padding: 30px; 7875 z-index: 99999; 7876 position: fixed; 7877 font-size: 14px; 7878 background: rgb(0, 0, 0); 7879 box-shadow: rgba(11, 11, 12, 0.2) 2px 4px 5px 0px; 7880 text-align: center; 7881 font-family: Roboto, Arial, sans-serif; 7882 line-height: 1; 7883 border-radius: 8px; 7884 -webkit-font-smoothing: subpixel-antialiased; 7885 } 7886 .MuiButtonBase-root { 7887 color: inherit; 7888 border: 0; 7889 cursor: pointer; 7890 margin: 0; 7891 display: inline-flex; 7892 outline: 0; 7893 padding: 0; 7894 position: relative; 7895 align-items: center; 7896 user-select: none; 7897 border-radius: 0; 7898 vertical-align: middle; 7899 -moz-appearance: none; 7900 justify-content: center; 7901 text-decoration: none; 7902 background-color: transparent; 7903 -webkit-appearance: none; 7904 -webkit-tap-highlight-color: transparent; 7905 } 7906 .MuiIconButton-root { 7907 flex: 0 0 auto; 7908 color: rgba(0, 0, 0, 0.54); 7909 padding: 12px; 7910 overflow: visible; 7911 font-size: 1.5rem; 7912 text-align: center; 7913 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7914 border-radius: 50%; 7915 } 7916 .MuiIconButton-label { 7917 width: 100%; 7918 display: flex; 7919 align-items: inherit; 7920 justify-content: inherit; 7921 } 7922 .MuiSvgIcon-root { 7923 fill: currentColor; 7924 width: 1em; 7925 height: 1em; 7926 display: inline-block; 7927 font-size: 1.5rem; 7928 transition: fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 7929 flex-shrink: 0; 7930 user-select: none; 7931 } 7932 .MuiTouchRipple-root { 7933 top: 0; 7934 left: 0; 7935 right: 0; 7936 bottom: 0; 7937 z-index: 0; 7938 overflow: hidden; 7939 position: absolute; 7940 border-radius: inherit; 7941 pointer-events: none; 7942 } 7943 .jss36 { 7944 color: #222222; 7945 font-size: 24px; 7946 font-family: Roboto, Arial, sans-serif; 7947 font-weight: 500; 7948 } 7949 .jss37 { 7950 color: #555555; 7951 padding: 10px 0px 0px; 7952 font-size: 14px; 7953 } 7954 .MuiFormGroup-root { 7955 display: flex; 7956 flex-wrap: wrap; 7957 flex-direction: column; 7958 } 7959 .MuiFormGroup-row { 7960 flex-direction: row; 7961 } 7962 .jss63 { 7963 width: 85%; 7964 margin: 15px auto; 7965 display: flex; 7966 padding: 11px 0px 0px; 7967 justify-content: space-evenly; 7968 } 7969 .MuiFormControlLabel-root { 7970 cursor: pointer; 7971 display: inline-flex; 7972 align-items: center; 7973 margin-left: -11px; 7974 margin-right: 16px; 7975 vertical-align: middle; 7976 -webkit-tap-highlight-color: transparent; 7977 } 7978 .jss70 { 7979 margin: 0; 7980 } 7981 .MuiButtonBase-root { 7982 color: inherit; 7983 border: 0; 7984 cursor: pointer; 7985 margin: 0; 7986 display: inline-flex; 7987 outline: 0; 7988 padding: 0; 7989 position: relative; 7990 align-items: center; 7991 user-select: none; 7992 border-radius: 0; 7993 vertical-align: middle; 7994 -moz-appearance: none; 7995 justify-content: center; 7996 text-decoration: none; 7997 background-color: transparent; 7998 -webkit-appearance: none; 7999 -webkit-tap-highlight-color: transparent; 8000 } 8001 .MuiIconButton-root { 8002 flex: 0 0 auto; 8003 color: rgba(0, 0, 0, 0.54); 8004 padding: 12px; 8005 overflow: visible; 8006 font-size: 1.5rem; 8007 text-align: center; 8008 transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8009 border-radius: 50%; 8010 } 8011 .MuiIconButton-colorSecondary { 8012 color: #f50057; 8013 } 8014 .jss71 { 8015 padding: 9px; 8016 } 8017 .MuiRadio-root { 8018 color: rgba(0, 0, 0, 0.54); 8019 } 8020 .jss64 { 8021 padding: 2px; 8022 } 8023 .MuiRadio-colorSecondary.Mui-checked { 8024 color: #f50057; 8025 } 8026 .MuiIconButton-label { 8027 width: 100%; 8028 display: flex; 8029 align-items: inherit; 8030 justify-content: inherit; 8031 } 8032 .MuiTypography-root { 8033 margin: 0; 8034 } 8035 .MuiTypography-body1 { 8036 font-size: 18px; 8037 font-family: Roboto,sans-serif; 8038 font-weight: 400; 8039 line-height: 1.5; 8040 } 8041 .location-popup_area-block__sp9Ws { 8042 display: -moz-box; 8043 display: flex; 8044 -moz-box-orient: vertical; 8045 -moz-box-direction: normal; 8046 flex-direction: column; 8047 -moz-box-pack: center; 8048 justify-content: center; 8049 position: relative; 8050 margin: 10px 10% 0;
8051 } 8052 .location-popup_pin-search-box__3l5mJ { 8053 width: 100%; 8054 display: -moz-box; 8055 display: flex; 8056 -moz-box-align: center; 8057 align-items: center; 8058 } 8059 .location-popup_place-icon-city__1XAX5, .location-popup_place-icon__jSG0Q { 8060 position: absolute; 8061 z-index: 999; 8062 } 8063 .location-popup_place-icon__jSG0Q { 8064 color: #ffffff; 8065 padding-left: 8px; 8066 } 8067 .location-popup_place-icon__jSG0Q svg { 8068 width: 18px; 8069 height: 18px; 8070 } 8071 .location-popup_cancel-icon__FHujU { 8072 color: #fff; 8073 right: 10px; 8074 width: 16px; 8075 cursor: pointer; 8076 height: 16px; 8077 display: none; 8078 padding: 5px; 8079 position: absolute; 8080 background: #999; 8081 text-align: center; 8082 border-radius: 50%; 8083 } 8084 .location-popup_pin-search-box__3l5mJ>div>select { 8085 /* -webkit-box-shadow: 0 0 10px #ffffff; 8086 box-shadow: 0 0 10px #ffffff; */ 8087 text-transform: capitalize; 8088 border: 1px solid #ffffff; 8089 color: #ffffff; 8090 width: 100%; 8091 margin: 0; 8092 display: -moz-box; 8093 display: flex; 8094 padding: 0 30px; 8095 -webkit-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8096 -moz-animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8097 animation: location-popup_focuses__1I8Gj 1.5s ease-in-out infinite; 8098 font-size: 16px; 8099 border-radius: 4px; 8100 height: 44px; 8101 moz-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8102 webkit-animation: location-popup_focuses__1I8Gj ease-in-out 1.5s infinite; 8103 } 8104 .MuiButtonBase-root { 8105 color: inherit; 8106 border: 0; 8107 cursor: pointer; 8108 margin: 0; 8109 display: inline-flex; 8110 outline: 0; 8111 padding: 0; 8112 position: relative; 8113 align-items: center; 8114 user-select: none; 8115 border-radius: 0; 8116 vertical-align: middle; 8117 -moz-appearance: none; 8118 justify-content: center; 8119 text-decoration: none; 8120 background-color: transparent; 8121 -webkit-appearance: none; 8122 -webkit-tap-highlight-color: transparent; 8123 } 8124 .MuiButton-root { 8125 color: rgba(0, 0, 0, 0.87); 8126 padding: 6px 16px; 8127 font-size: 0.875rem; 8128 min-width: 64px; 8129 box-sizing: border-box; 8130 transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8131 font-family: Roboto,sans-serif; 8132 font-weight: 500; 8133 line-height: 1.75; 8134 border-radius: 4px; 8135 text-transform: uppercase; 8136 } 8137 .MuiButton-contained { 8138 color: rgba(0, 0, 0, 0.87); 8139 box-shadow: 0px 3px 1px -2px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 0px rgba(0,0,0,0.12); 8140 background-color: #e0e0e0; 8141 } 8142 .MuiButtonBase-root.Mui-disabled { 8143 cursor: default; 8144 pointer-events: none; 8145 } 8146 .MuiButton-label { 8147 width: 100%; 8148 display: inherit; 8149 align-items: inherit; 8150 justify-content: inherit; 8151 } 8152 .cartButton_login_content__2j1f7 { 8153 display: -moz-box; 8154 display: flex; 8155 text-align: center; 8156 z-index: 9; 8157 font-size: 18px; 8158 font-weight: 500; 8159 color: #fff; 8160 } 8161 8162 .jss35 { 8163 top: 5px; 8164 right: 5px; 8165 padding: 4px; 8166 position: absolute; 8167 border-radius: 50%; 8168 } 8169 .jss67 { 8170 cursor: pointer; 8171 font-size: 15px; 8172 line-height: 1.3; 8173 padding-left: 5px; 8174 } 8175 .jss69 { 8176 color: #222222; 8177 } 8178 .jss80 { 8179 color: #fff; 8180 width: 100%; 8181 height: 52px; 8182 padding: 11px 16px; 8183 font-size: 18px; 8184 min-width: 88px; 8185 min-height: 36px; 8186 transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; 8187 font-weight: 500; 8188 line-weight: 1em; 8189 border-radius: 4px; 8190 text-transform: uppercase; 8191 background-color: #E87325; 8192 } 8193 @media (min-width: 991px){ 8194 .cartButton_login_content__2j1f7 { 8195 font-weight: 500; 8196 } 8197 } 8198 8199 @media (max-width: 992px) { 8200 #location-lock-dialog { 8201 width: 100%; 8202 top: auto; 8203 bottom: 0; 8204 padding-left: 0; 8205 padding-right: 0; 8206 } 8207 .MuiFormGroup-row { 8208 display: block 8209 } 8210 .MuiIconButton-label input { 8211 margin: 0; 8212 } 8213 } 8214 </style> 8215 <div role="presentation" class="MuiDialog-root jss34" style="display: none;position: fixed; z-index: 9999; inset: 0px;"> 8216 <div class="MuiBackdrop-root" aria-hidden="true" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"></div> 8217 <div tabindex="0" data-test="sentinelStart"></div> 8218 <div class="MuiDialog-container MuiDialog-scrollPaper" role="none presentation" tabindex="-1" style="opacity: 1; transition: opacity 225ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;"> 8219 <div class="MuiPaper-root MuiDialog-paper MuiDialog-paperScrollPaper MuiDialog-paperWidthSm MuiPaper-elevation24 MuiPaper-rounded" role="dialog"> 8220 <div class="jss31 undefined" id="location-lock-dialog"> 8221 <button id="close-popup-delivery" class="MuiButtonBase-root MuiIconButton-root jss35" tabindex="0" type="button" aria-label="close">
8222 <span class="MuiIconButton-label"> 8223 <svg class="MuiSvgIcon-root" focusable="false" viewBox="0 0 24 24" aria-hidden="true"> 8224 <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path> 8225 </svg> 8226 </span> 8227 <span class="MuiTouchRipple-root"></span> 8228 </button> 8229 <div> 8230 <div class="jss36">Select Delivery Location</div> 8231 <div class="jss37">Select a delivery location to see product availability</div> 8232 </div> 8233 <div class="MuiFormGroup-root jss63 MuiFormGroup-row" role="radiogroup"> 8234 <label for="jabodetabek" class="MuiFormControlLabel-root jss45"> 8235 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 jss47 Mui-checked MuiIconButton-colorSecondary" aria-disabled="false"> 8236 <span class="MuiIconButton-label"> 8237 <input id="jabodetabek" class="jss49" type="radio" value="Jabodetabek" checked="" name="location"> 8238 <span class="jss41"></span> 8239 </span> 8240 <span class="MuiTouchRipple-root"></span> 8241 </span> 8242 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8243 <span class="jss67 jss69">Jabodetabek</span> 8244 </span> 8245 </label> 8246 <label for="non-jabodetabek" class="MuiFormControlLabel-root jss45"> 8247 <span class="MuiButtonBase-root MuiIconButton-root jss46 MuiRadio-root MuiRadio-colorSecondary jss39 MuiIconButton-colorSecondary" aria-disabled="false"> 8248 <span class="MuiIconButton-label"> 8249 <input id="non-jabodetabek" class="jss49" type="radio" value="Outside Jabodetabek" name="location"> 8250 <span class="jss40"></span> 8251 </span> 8252 <span class="MuiTouchRipple-root"></span> 8253 </span> 8254 <span class="MuiTypography-root MuiFormControlLabel-label MuiTypography-body1"> 8255 <span class="jss67 jss68">Outside Jabodetabek</span> 8256 </span> 8257 </label> 8258 </div> 8259 <div> 8260 <div class="MuiGrid-root location-popup_area-block__sp9Ws"> 8261 <div class="MuiGrid-root location-popup_pin-search-box__3l5mJ false"> 8262 <div class="MuiGrid-root location-popup_place-icon__jSG0Q"> 8263 <svg class="MuiSvgIcon-root jss6" focusable="false" viewBox="0 0 24 24" aria-hidden="true" style="font-size:16px"><path d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z"></path></svg> 8264 </div> 8265 <div class="MuiGrid-root location-popup_cancel-icon__FHujU false"> 8266 <i class="material-icons location-popup_clear-pin__s1dRc">close</i> 8267 </div> 8268 <div style="width: 100%;"> 8269 <select id="choose-location" class="form-control"> 8270 <option value="">Choose Location</option> 8271 <option value="jakarta">Jakarta</option> 8272 <option value="bogor">Bogor</option> 8273 <option value="depok">Depok</option> 8274 <option value="tangerang">Tangerang</option> 8275 <option value="bekasi">Bekasi</option> 8276 </select> 8277 </div> 8278 </div> 8279 </div> 8280 </div> 8281 <button class="MuiButtonBase-root MuiButton-root MuiButton-contained jss55" tabindex="-1" type="button" title="" id="location-lock-submit" data-idforcdp="actionBtn-cdp" data-testid="location-lock-submit" style="background-color: #ffffff; width: 80%; padding: 14px 0px 12px; margin: 20px 0px; font-size: 18px; font-weight: 500; box-shadow: rgba(0, 0, 0, 0.1) 0px 2px 4px 0px; border-radius: 4px; color: rgb(0, 0, 0); height: 44px;" data-content=""> 8282 <span class="MuiButton-label">
8283 <span class=""></span> 8284 <span id="location-lock-continue-btn" class="cartButton_login_content__2j1f7" style="font-weight: 500;" data-content="">Continue Shopping</span> 8285 </span> 8286 </button> 8287 </div> 8288 </div> 8289 </div> 8290 <div tabindex="0" data-test="sentinelEnd"></div> 8291 </div> 8292 8293
8293<script> 8294 const jabodetabek = [ 8295 { 8296 "code": "jakarta", 8297 "city": "jakarta", 8298 "zip": [] 8299 }, 8300 { 8301 "code": "bogor", 8302 "city": "bogor", 8303 "zip": [] 8304 }, 8305 { 8306 "code": "depok", 8307 "city": "depok", 8308 "zip": [] 8309 }, 8310 { 8311 "code": "tangerang", 8312 "city": "tangerang", 8313 "zip": [] 8314 }, 8315 { 8316 "code": "bekasi", 8317 "city": "bekasi", 8318 "zip": [] 8319 } 8320 ] 8321 let cityNonJabodetabek = [ 8322 8323 8324 8325 8326 8327 8328 8329 8330 8331 8332 8333 8334 8335 8336 8337 8338 8339 8340 8341 8342 8343 8344 8345 8346 8347 8348 8349 8350 8351 8352 8353 8354 8355 8356 8357 8358 8359 8360 8361 8362 8363 8364 8365 8366 8367 8368 8369 8370 8371 8372 8373 8374 8375 8376 8377 8378 8379 8380 8381 8382 8383 8384 8385 8386 8387 8388 8389 8390 8391 8392 8393 8394 8395 8396 8397 8398 8399 8400 8401 8402 8403 8404 8405 8406 8407 8408 8409 8410 8411 8412 8413 8414 8415 8416 8417 8418 8419 8420 8421 8422 8423 8424 8425 8426 8427 8428 8429 8430 8431 8432 8433 8434 8435 8436 8437 8438 8439 8440 8441 8442 8443 8444 8445 8446 8447 8448 8449 8450 8451 8452 8453 8454 8455 8456 8457 8458 8459 8460 8461 8462 8463 8464 8465 8466 8467 8468 8469 8470 8471 8472 8473 8474 8475 8476 8477 8478 8479 8480 8481 8482 8483 8484 8485 8486 8487 8488 8489 8490 8491 8492 8493 8494 8495 8496 8497 8498 8499 8500 8501 8502 8503 8504 8505 8506 8507 8508 8509 8510 8511 8512 8513 8514 8515 8516 8517 8518 8519 8520 8521 8522 8523 8524 8525 8526 8527 8528 8529 8530 8531 8532 8533 8534 8535 8536 8537 8538 8539 8540 8541 8542 8543 8544 8545 8546 8547 8548 8549 8550 8551 8552 8553 8554 8555 8556 8557 8558 8559 8560 8561 8562 8563 8564 8565 8566 8567 8568 8569 8570 8571 8572 8573 8574 8575 8576 8577 8578 8579 8580 8581 8582 8583 8584 8585 8586 8587 8588 8589 8590 8591 8592 8593 8594 8595 8596 8597 8598 8599 8600 8601 8602 8603 8604 8605 8606 8607 8608 8609 8610 8611 8612 8613 8614 8615 8616 8617 8618 8619 8620 8621 8622 8623 8624 8625 8626 8627 8628 8629 8630 8631 8632 8633 8634 8635 8636 8637 8638 8639 8640 8641 8642 8643 8644 8645 8646 8647 8648 8649 8650 8651 8652 8653 8654 8655 8656 8657 8658 8659 8660 8661 8662 8663 8664 8665 8666 8667 8668 8669 8670 8671 8672 8673 8674 8675 8676 8677 8678 8679 8680 8681 8682 8683 8684 8685 8686 8687 8688 8689 8690 8691 8692 8693 8694 8695 8696 8697 8698 8699 8700 8701 8702 8703 8704 8705 8706 8707 8708 8709 8710 8711 8712 8713 8714 8715 8716 8717 8718 8719 8720 8721 8722 8723 8724 8725 8726 8727 8728 8729 8730 8731 8732 8733 8734 8735 8736 8737 8738 8739 8740 8741 8742 8743 8744 8745 8746 8747 8748 8749 8750 8751 8752 8753 8754 8755 8756 8757 8758 8759 8760 8761 8762 8763 8764 8765 8766 8767 8768 8769 8770 8771 8772 8773 8774 8775 8776 8777 8778 8779 8780 8781 8782 8783 8784 8785 8786 8787 8788 8789 8790 8791 8792 8793 8794 8795 8796 8797 8798 8799 8800 8801 8802 8803 8804 8805 8806 8807 8808 8809 8810 8811 8812 8813 8814 8815 8816 8817 8818 8819 8820 8821 8822 8823 8824 8825 8826 8827 8828 8829 8830 8831 8832 8833 8834 8835 8836 8837 8838 8839 8840 8841 8842 8843 8844 8845 8846 8847 8848 8849 8850 8851 8852 8853 8854 8855 8856 8857 8858 8859 8860 8861 8862 8863 8864 8865 8866 8867 8868 8869 8870 8871 8872 8873 8874 8875 8876 8877 8878 8879 8880 8881 8882 8883 8884 8885 8886 8887 8888 8889 8890 8891 8892 8893 8894 8895 8896 8897 8898 8899 8900 8901 8902 8903 8904 8905 8906 8907 8908 8909 8910 8911 8912 8913 8914 8915 8916 8917 8918 8919 8920 8921 8922 8923 8924 8925 8926 8927 8928 8929 8930 8931 8932 8933 8934 8935 8936 8937 8938 8939 8940 8941 8942 8943 8944 8945 8946 8947 8948 8949 8950 8951 8952 8953 8954 8955 8956 8957 8958 8959 8960 8961 8962 8963 8964 8965 8966 8967 8968 8969 8970 8971 8972 8973 8974 8975 8976 8977 8978 8979 8980 8981 8982 8983 8984 8985 8986 8987 8988 8989 8990 8991 8992 8993 8994 8995 8996 8997 8998 8999 9000 9001 9002 9003 9004 9005 9006 9007 9008 9009 9010 9011 9012 9013 9014 9015 9016 9017 9018 9019 9020 9021 9022 9023 9024 9025 9026 9027 9028 9029 9030 9031 9032 9033 9034 9035 9036 9037 9038 9039 9040 9041 9042 9043 9044 9045 9046 9047 9048 9049 9050 9051 9052 9053 9054 9055 9056 9057 9058 9059 9060 9061 9062 9063 9064 9065 9066 9067 9068 9069 9070 9071 9072 9073 9074 9075 9076 9077 9078 9079 9080 9081 9082 9083 9084 9085 9086 9087 9088 9089 9090 9091 9092 9093 9094 9095 9096 9097 9098 9099 9100 9101 9102 9103 9104 9105 9106 9107 9108 9109 9110 9111 9112 9113 9114 9115 9116 9117 9118 9119 9120 9121 9122 9123 9124 9125 9126 9127 9128 9129 9130 9131 9132 9133 9134 9135 9136 9137 9138 9139 9140 9141 9142 9143 9144 9145 9146 9147 9148 9149 9150 9151 9152 9153 9154 9155 9156 9157 9158 9159 9160 9161 9162 9163 9164 9165 9166 9167 9168 9169 9170 9171 9172 9173 9174 9175 9176 9177 9178 9179 9180 9181 9182 9183 9184 9185 9186 9187 9188 9189 9190 9191 9192 9193 9194 9195 9196 9197 9198 9199 9200 9201 9202 9203 9204 9205 9206 9207 9208 9209 9210 9211 9212 9213 9214 9215 9216 9217 9218 9219 9220 9221 9222 9223 9224 9225 9226 9227 9228 9229 9230 9231 9232 9233 9234 9235 9236 9237 9238 9239 9240 9241 9242 9243 9244 9245 9246 9247 9248 9249 9250 9251 9252 9253 9254 9255 9256 9257 9258 9259 9260 9261 9262 9263 9264 9265 9266 9267 9268 9269 9270 9271 9272 9273 9274 9275 9276 9277 9278 9279 9280 9281 9282 9283 9284 9285 9286 9287 9288 9289 9290 9291 9292 9293 9294 9295 9296 9297 9298 9299 9300 9301 9302 9303 9304 9305 9306 9307 9308 9309 9310 9311 9312 9313 9314 9315 9316 9317 9318 9319 9320 9321 9322 9323 9324 9325 9326 9327 9328 9329 9330 9331 9332 9333 9334 9335 9336 9337 9338 9339 9340 9341 9342 9343 9344 9345 9346 9347 9348 9349 9350 9351 9352 9353 9354 9355 9356 9357 9358 9359 9360 9361 9362 9363 9364 9365 9366 9367 9368 9369 9370 9371 9372 9373 9374 9375 9376 9377 9378 9379 9380 9381 9382 9383 9384 9385 9386 9387 9388 9389 9390 9391 9392 9393 9394 9395 9396 9397 9398 9399 9400 9401 9402 9403 9404 9405 9406 9407 9408 9409 9410 9411 9412 9413 9414 9415 9416 9417 9418 9419 9420 9421 9422 9423 9424 9425 9426 9427 9428 9429 9430 9431 9432 9433 9434 9435 9436 9437 9438 9439 9440 9441 9442 9443 9444 9445 9446 9447 9448 9449 9450 9451 9452 9453 9454 9455 9456 9457 9458 9459 9460 9461 9462 9463 9464 9465 9466 9467 9468 9469 9470 9471 9472 9473 9474 9475 9476 9477 9478 9479 9480 9481 9482 9483 9484 9485 9486 9487 9488 9489 9490 9491 9492 9493 9494 9495 "pengiriman_aceh", 9496 9497 9498 9499 9500 9501 "pengiriman_ambon", 9502 9503 9504 9505 9506 9507 "pengiriman_atambua", 9508 9509 9510 9511 9512 9513 "pengiriman_badung", 9514 9515 9516 9517 9518 9519 "pengiriman_bali", 9520 9521 9522 9523 9524 9525 "pengiriman_balikpapan", 9526 9527 9528 9529 9530 9531 "pengiriman_bandar lampung", 9532 9533 9534 9535 9536 9537 "pengiriman_bandung", 9538 9539 9540 9541 9542 9543 "pengiriman_bandung barat", 9544 9545 9546 9547 9548 9549 "pengiriman_banjarmasin", 9550 9551 9552 9553 9554 9555 "pengiriman_banyumas", 9556 9557 9558 9559 9560 9561 "pengiriman_banyuwangi", 9562 9563 9564 9565 9566 9567 "pengiriman_batam", 9568 9569 9570 9571 9572 9573 9574 9575 9576 9577 "pengiriman_biak", 9578 9579 9580 9581 9582 9583 "pengiriman_binjai", 9584 9585 9586 9587 9588 9589 "pengiriman_blitar",
9590 9591 9592 9593 9594 9595 "pengiriman_blora", 9596 9597 9598 9599 9600 9601 9602 9603 9604 9605 "pengiriman_bojonegoro", 9606 9607 9608 9609 9610 9611 "pengiriman_boyolali", 9612 9613 9614 9615 9616 9617 "pengiriman_bukittinggi", 9618 9619 9620 9621 9622 9623 "pengiriman_buleleng", 9624 9625 9626 9627 9628 9629 "pengiriman_ciamis", 9630 9631 9632 9633 9634 9635 "pengiriman_cianjur", 9636 9637 9638 9639 9640 9641 "pengiriman_cibinong", 9642 9643 9644 9645 9646 9647 "pengiriman_cikarang", 9648 9649 9650 9651 9652 9653 "pengiriman_cikupa", 9654 9655 9656 9657 9658 9659 "pengiriman_cilacap", 9660 9661 9662 9663 9664 9665 "pengiriman_cileunyi", 9666 9667 9668 9669 9670 9671 "pengiriman_cimahi", 9672 9673 9674 9675 9676 9677 "pengiriman_cirebon", 9678 9679 9680 9681 9682 9683 "pengiriman_ciwidey", 9684 9685 9686 9687 9688 9689 "pengiriman_deli serdang", 9690 9691 9692 9693 9694 9695 "pengiriman_demak", 9696 9697 9698 9699 9700 9701 "pengiriman_denpasar", 9702 9703 9704 9705 9706 9707 9708 9709 9710 9711 "pengiriman_garut", 9712 9713 9714 9715 9716 9717 "pengiriman_gianyar", 9718 9719 9720 9721 9722 9723 "pengiriman_gresik", 9724 9725 9726 9727 9728 9729 "pengiriman_gunung kidul", 9730 9731 9732 9733 9734 9735 9736 9737 9738 9739 "pengiriman_jambi", 9740 9741 9742 9743 9744 9745 "pengiriman_jayapura", 9746 9747 9748 9749 9750 9751 "pengiriman_jember", 9752 9753 9754 9755 9756 9757 "pengiriman_jepara", 9758 9759 9760 9761 9762 9763 "pengiriman_jombang", 9764 9765 9766 9767 9768 9769 "pengiriman_karanganyar", 9770 9771 9772 9773 9774 9775 "pengiriman_karawang", 9776 9777 9778 9779 9780 9781 "pengiriman_karo", 9782 9783 9784 9785 9786 9787 "pengiriman_kebumen", 9788 9789 9790 9791 9792 9793 "pengiriman_kediri", 9794 9795 9796 9797 9798 9799 "pengiriman_keerom", 9800 9801 9802 9803 9804 9805 "pengiriman_kendal", 9806 9807 9808 9809 9810 9811 "pengiriman_klaten", 9812 9813 9814 9815 9816 9817 9818 9819 9820 9821 "pengiriman_kudus", 9822 9823 9824 9825 9826 9827 "pengiriman_kupang", 9828 9829 9830 9831 9832 9833 "pengiriman_lainnya", 9834 9835 9836 9837 9838 9839 "pengiriman_lamongan", 9840 9841 9842 9843 9844 9845 "pengiriman_lampung", 9846 9847 9848 9849 9850 9851 "pengiriman_lampung barat", 9852 9853 9854 9855 9856 9857 "pengiriman_lembang", 9858 9859 9860 9861 9862 9863 "pengiriman_lombok", 9864 9865 9866 9867 9868 9869 "pengiriman_lumajang", 9870 9871 9872 9873 9874 9875 "pengiriman_madiun", 9876 9877 9878 9879 9880 9881 "pengiriman_magelang", 9882 9883 9884 9885 9886 9887 "pengiriman_majalengka", 9888 9889 9890 9891 9892 9893 "pengiriman_makassar", 9894 9895 9896 9897 9898 9899 "pengiriman_malang", 9900 9901 9902 9903 9904 9905 "pengiriman_manado", 9906 9907 9908 9909 9910 9911 "pengiriman_medan", 9912 9913 9914 9915 9916 9917 "pengiriman_mengwi", 9918 9919 9920 9921 9922 9923 "pengiriman_mojokerto", 9924 9925 9926 9927 9928 9929 "pengiriman_nganjuk", 9930 9931 9932 9933 9934 9935 "pengiriman_ngawi", 9936 9937 9938 9939 9940 9941 "pengiriman_padang", 9942 9943 9944 9945 9946 9947 "pengiriman_palembang", 9948 9949 9950 9951 9952 9953 "pengiriman_pasuruan", 9954 9955 9956 9957 9958 9959 "pengiriman_pati", 9960 9961 9962 9963 9964 9965 "pengiriman_pekalongan", 9966 9967 9968 9969 9970 9971 "pengiriman_pekanbaru", 9972 9973 9974 9975 9976 9977 "pengiriman_pemalang", 9978 9979 9980 9981 9982 9983 "pengiriman_ponorogo", 9984 9985 9986 9987 9988 9989 "pengiriman_pontianak", 9990 9991 9992 9993 9994 9995 "pengiriman_probolinggo", 9996 9997 9998 9999 10000 10001 "pengiriman_purbalingga", 10002 10003 10004 10005 10006 10007 "pengiriman_purwakarta", 10008 10009 10010 10011 10012 10013 "pengiriman_purwokerto", 10014 10015 10016 10017 10018 10019 "pengiriman_rembang", 10020 10021 10022 10023 10024 10025 "pengiriman_riau", 10026 10027 10028 10029 10030 10031 "pengiriman_salatiga", 10032 10033 10034 10035 10036 10037 "pengiriman_samarinda", 10038 10039 10040 10041 10042 10043 "pengiriman_semarang", 10044 10045 10046 10047 10048 10049 "pengiriman_sentani", 10050 10051 10052 10053 10054 10055 "pengiriman_serang", 10056 10057 10058 10059 10060 10061 "pengiriman_sidoarjo", 10062 10063 10064 10065 10066 10067 "pengiriman_singkawang", 10068 10069 10070 10071 10072 10073 "pengiriman_sragen", 10074 10075 10076 10077 10078 10079 "pengiriman_subang", 10080 10081 10082 10083 10084 10085 "pengiriman_sukabumi", 10086 10087 10088 10089 10090 10091 "pengiriman_sumbawa", 10092 10093 10094 10095 10096 10097 "pengiriman_surabaya", 10098 10099 10100 10101 10102 10103 "pengiriman_surakarta solo", 10104 10105 10106 10107 10108 10109 10110 10111 10112 10113 "pengiriman_tasikmalaya", 10114 10115 10116 10117 10118 10119 "pengiriman_tegal", 10120 10121 10122 10123 10124 10125 "pengiriman_timika", 10126 10127 10128 10129 10130 10131 "pengiriman_wamena", 10132 10133 10134 10135 10136 10137 "pengiriman_wiyung", 10138 10139 10140 10141 10142 10143 "pengiriman_wonokromo", 10144 10145 10146 10147 10148 10149 "pengiriman_yogyakarta", 10150 10151 10152 10153 10154 10155 10156 10157 10158 10159 10160 10161 10162 10163 10164 10165 10166 10167 10168 10169 10170 10171 10172 10173 10174 10175 10176 10177 10178 10179 10180 10181 10182 10183 10184 10185 10186 10187 10188 10189 10190 10191 10192 10193 10194 10195 10196 10197 10198 10199 10200 10201 10202 10203 10204 10205 10206 10207 10208 10209 10210 10211 10212 10213 10214 10215 10216 10217 10218 10219 10220 10221 10222 10223 10224 10225 10226 10227 10228 10229 10230 10231 10232 10233 10234 10235 10236 10237 10238 10239 10240 10241 10242 10243 10244 10245 10246 10247 10248 10249 10250 10251 10252 10253 10254 10255 10256 10257 10258 10259 10260 10261 10262 10263 10264 10265 10266 10267 10268 10269 10270 10271 10272 10273 10274 10275 10276 10277 10278 10279 10280 10281 10282 10283 10284 10285 10286 10287 10288 10289 10290 10291 10292 10293 10294 10295 10296 10297 10298 10299 10300 10301 10302 10303 10304 10305 10306 10307 10308 10309 10310 10311 10312 10313 10314 10315 10316 10317 10318 10319 10320 10321 10322 10323 10324 10325 10326 10327 10328 10329 10330 10331 10332 10333 10334 10335 10336 10337 10338 10339 10340 10341 10342 10343 10344 10345 10346 10347 10348 10349 10350 10351 10352 10353 10354 10355 10356 10357 10358 10359 10360 10361 10362 10363 10364 10365 10366 10367 10368 10369 10370 10371 10372 10373 10374 10375 10376 10377 10378 10379 10380 10381 10382 10383 10384 10385 10386 10387 10388 10389 10390 10391 10392 10393 10394 10395 10396 10397 10398 10399 10400 10401 10402 10403 10404 10405 10406 10407 10408 10409 10410 10411 10412 10413 10414 10415 10416 10417 10418 10419 10420 10421 10422 10423 10424 10425 10426 10427 10428 10429 10430 10431 10432 10433 10434 10435 10436 10437 10438 10439 10440 10441 10442 10443 10444 10445 10446 10447 10448 10449 10450 10451 10452 10453 10454 10455 10456 10457 10458 10459 10460 10461 10462 10463 10464 10465 10466 10467 10468 10469 10470 10471 10472 10473 10474 10475 10476 10477 10478 10479 10480 10481 10482 10483 10484 10485 10486 10487 10488 10489 10490 10491 10492 10493 10494 10495 10496 10497 10498 10499 10500 10501 10502 10503 10504 10505 10506 10507 10508 10509 10510 10511 10512 10513 10514 10515 10516 10517 10518 10519 10520 10521 10522 10523 10524 10525 10526 10527 10528 10529 10530 10531 10532 10533 10534 10535 10536 10537 10538 10539 10540 10541 10542 10543 10544 10545 10546 10547 10548 10549 10550 10551 10552 10553 10554 10555 10556 10557 10558 10559 10560 10561 10562 10563 10564 10565 10566 10567 10568 10569 10570 10571 10572 10573 10574 10575 10576 10577 10578 10579 10580 10581 10582 10583 10584 10585 10586 10587 10588 10589 10590 10591 10592 10593 10594 10595 10596 10597 10598 10599 10600 10601 10602 10603 10604 10605 10606 10607 10608 10609 10610 10611 10612 10613 10614 10615 10616 10617 10618 10619 10620 10621 10622 10623 10624 10625 10626 10627 10628 10629 10630 10631 10632 10633 10634 10635 10636 10637 10638 10639 10640 10641 10642 10643 10644 10645 10646 10647 10648 10649 10650 10651 10652 10653 10654 10655 10656 10657 10658 10659 10660 10661 10662 10663 10664 10665 10666 10667 10668 10669 10670 10671 10672 10673 10674 10675 10676 10677 10678 10679 10680 10681 10682 10683 10684 10685 10686 10687 10688 10689 10690 10691 10692 10693 10694 10695 10696 10697 10698 10699 10700 10701 10702 10703 10704 10705 10706 10707 10708 10709 10710 10711 10712 10713 10714 10715 10716 10717 10718 10719 10720 10721 10722 10723 10724 10725 10726 10727 10728 10729 10730 10731 10732 10733 10734 10735 10736 10737 10738 10739 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 10751 10752 10753 10754 10755 10756 10757 10758 10759 ] 10760 console.log(cityNonJabodetabek) 10761 let non_jabodetabek = [] 10762 for(var i=0;i<cityNonJabodetabek.length;i++) { 10763 const obj = { 10764 "code": cityNonJabodetabek[i].toLowerCase().replace('pengiriman_', '').replace(' ','-'), 10765 "city": cityNonJabodetabek[i].replace('pengiriman_', '').replace(' ','-'), 10766 "zip": [] 10767 } 10768 non_jabodetabek.push(obj) 10769 } 10770 let current_location = getCookie("location_delivery") 10771 $("[name=location]").change(function(){ 10772 let v = $(this).val() 10773 let option = [] 10774 if(v == 'Jabodetabek') { 10775 for(var i=0;i<jabodetabek.length;i++) { 10776 const jabodetabekHtml = `<option value=${jabodetabek[i].city}>${jabodetabek[i].city}</option>` 10777 option.push(jabodetabekHtml) 10778 } 10779 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 10780 } else { 10781 for(var i=0;i<non_jabodetabek.length;i++) { 10782 const nonjabodetabekHtml = `<option value=${non_jabodetabek[i].city}>${non_jabodetabek[i].city}</option>` 10783 option.push(nonjabodetabekHtml) 10784 } 10785 $("#choose-location").html(`<option value="">Choose Location</option>${option}`) 10786 } 10787 }) 10788 10789 $("#location-lock-submit").click(function(e){
10790 let select = $("#choose-location") 10791 let value = select.val().toLowerCase() 10792 console.log(value) 10793 if(select.val() == "") { 10794 return alert("Choose Your Location") 10795 e.preventDefault() 10796 } 10797 setCookie("location_delivery",value,1000000); 10798 10799 location.reload(); 10800 10801 }) 10802 10803 $("#close-popup-delivery").click(function(){ 10804 $(".MuiDialog-root").hide() 10805 if(!current_location){ 10806 setCookie("location_delivery","jakarta",1000000); 10807 $("#loc_delivery_city, #loc_delivery_city_mobile").text("Jakarta") 10808 } 10809 }) 10810 $("#loc_delivery, #loc_delivery_mobile").click(function(){ 10811 $(".MuiDialog-root").show() 10812 }) 10813 10814 10815 if(!current_location){ 10816 10817 } else { 10818 $("#loc_delivery_city, #loc_delivery_city_mobile").text(current_location) 10819 console.log(current_location) 10820 $("#choose-location").each(function(){ 10821 if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi'){ 10822 $("#jabodetabek").trigger("click") 10823 } else { 10824 $("#non-jabodetabek").trigger("click") 10825 } 10826 $("#choose-location").find("option[value="+current_location+"]").attr("selected", "selected") 10827 }) 10828 } 10829 10830 // if(current_location == 'jakarta' || current_location == 'depok' || current_location == 'bogor' || current_location == 'tangerang' || current_location == 'bekasi' || current_location == 'bandung' || current_location == 'semarang' || current_location == 'yogyakarta' || current_location == 'surabaya'){ 10831 // $("#timeMalam").attr("disabled", false) 10832 // } else { 10833 // $("#timeMalam").attr("disabled", true) 10834 // } 10835 10836 if(current_location && current_location != 'jakarta') { 10837 $("#self-pickup").attr("disabled", true) 10838 } 10839 10840 function setCookie(name,value,days) { 10841 var expires = ""; 10842 if (days) { 10843 var date = new Date(); 10844 date.setTime(date.getTime() + (days*24*60*60*1000)); 10845 expires = "; expires=" + date.toUTCString(); 10846 } 10847 document.cookie = name + "=" + (value || "") + expires + "; path=/"; 10848 } 10849 function getCookie(name) { 10850 var nameEQ = name + "="; 10851 var ca = document.cookie.split(';'); 10852 for(var i=0;i < ca.length;i++) { 10853 var c = ca[i]; 10854 while (c.charAt(0)==' ') c = c.substring(1,c.length); 10855 if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 10856 } 10857 return null; 10858 } 10859 </script>
10859 10860 <!-- One Tap --> 10861
10861<script> 10862 console.log("Outerbloom..."); 10863 </script>
10863 10864 <div id="shopify-block-ANVEzSUcxTUxZOGpwZ__9703700522657871012" class="shopify-block shopify-app-block"> 10865 10866 10867 10868 10869 10870 10871 10872 10873 10874 10875 10876 10877 10878 10879 10880 10881 10882 10883 10884 10885 10886 10887 10888 10889 10890 10891 10892 10893 10894 10895 10896 10897 10898 10899 10900 10901 10902 10903 10904 10905 10906 10907 10908 10909 10910 10911 <link rel="stylesheet" href="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.css" /> 10912
10912<script src="https://cdn1.bitbybit.studio/bitbybit/static/bitChat_widget/widget.js" defer></script>
10912 10913
10913<script> 10914 const widgetConfig = { 10915 id: "clz7897za002cz7otleaz0d3d", 10916 showQuickResponse: false, 10917 quickResponsesData: [], 10918 themeColor: "#ffffff", 10919 widgetText: "", 10920 radiusType: "circle", 10921 widgetIconType: "whatsapp", 10922 position: "right", 10923 storeLogo: "", 10924 storeName: "Outerbloom", 10925 storeDescription: "", 10926 size: "small", 10927 showCard: false, 10928 widgetColorType: "solid", 10929 widgetColor1: "#008069", 10930 widgetColor2: "#008069", 10931 social: { 10932 socialOrders: ["instagram","tiktok","facebook","x","youtube","linkedin","email"], 10933 values: { 10934 instagram: { 10935 enabled: false, 10936 value: "", 10937 }, 10938 facebook: { 10939 enabled: false, 10940 value: "", 10941 }, 10942 email: { 10943 enabled: false, 10944 value: "", 10945 }, 10946 x: { 10947 enabled: false, 10948 value: "", 10949 }, 10950 tiktok: { 10951 enabled: false, 10952 value: "", 10953 }, 10954 linkedin: { 10955 enabled: false, 10956 value: "", 10957 }, 10958 youtube: { 10959 enabled: false, 10960 value: "", 10961 }, 10962 }, 10963 }, 10964 }; 10965 10966 function initializeWidget() { 10967 if (typeof BBBWidget !== 'undefined') { 10968 BBBWidget.init(widgetConfig); 10969 } else { 10970 setTimeout(initializeWidget, 100); 10971 } 10972 } 10973 10974 initializeWidget();</script>
10974 10975 10976 10977 </div><div id="shopify-block-ATzRpVTBPU3k1R2pnW__286197278318599166" class="shopify-block shopify-app-block"> 10978 10979 10980 <div style="position: fixed; bottom: 0; right: 0"></div> 10981 10982
10982<script> 10983 console.info("bitlogin extension version: v2.5.7"); 10984 10985 const googleScript = document.createElement("script"); 10986 googleScript.setAttribute("src", "https://accounts.google.com/gsi/client"); 10987 document.head.append(googleScript); 10988 10989 const bitLoginBaseUrl = "https://api.bitbybit.studio"; 10990 const apiUrl = `${bitLoginBaseUrl}/bitlogin/api`; 10991 10992 const appearance = {"style":"square","hasShadow":true,"domain":"outerbloom1.myshopify.com","colorScheme":"match","backgroundColor":"#ffffff","outlineColor":"#ffe100","textColor":"#700000","position":"top","hideDivider":false,"dividerText":"","size":"small","format":"contentFlex","language":"en","buttonText":"Continue With","redirectLink":"\/account","googleOneTap":true,"googleOneTapBanner":true,"captureAdditionalData":true,"customerTag":"bitLogin","redirectOneTapDesktop":"[{\"label\":\"Account\",\"label2\":\"Desktop: Account\",\"value\":\"account\",\"parentValue\":\"Desktop\"}]","redirectOneTapMobile":"[{\"label\":\"Thank you page\",\"label2\":\"Mobile: Thank you page\",\"value\":\"thank_you\",\"parentValue\":\"Mobile\"}]","watermark":true,"buttonList":{"google":"Continue with Google","facebook":"Continue with Facebook","apple":"Continue with Apple","whatsapp":"Continue with WhatsApp","microsoft":"Continue with Microsoft","twitter":"Continue with X","amazon":"Continue with Amazon","instagram":"Continue with Instagram","magic_link":"Continue with Magic Link","mobile_app":"Continue with Mobile App","linkedin":"Continue with LinkedIn"}}; 10993 const config = []; 10994 const redirectUrl = appearance.redirectLink; 10995 10996 let locationCacheSet = false; 10997 let errorLocation = false; 10998 let oneTapSet = false; 10999 11000 let bitloginCache = { 11001 appearance: appearance, 11002 config: config 11003 }; 11004 11005 let isInitializing = false; 11006 const queue = []; 11007 11008 // Add CSS for the popup 11009 const popupStyles = document.createElement('style'); 11010 popupStyles.textContent = ` 11011 /* Styles for login popup */ 11012 .bitlogin-popup-overlay { 11013 position: fixed; 11014 top: 0; 11015 left: 0; 11016 width: 100%; 11017 height: 100%; 11018 background: rgba(0, 0, 0, 0.45); 11019 backdrop-filter: blur(4px); 11020 display: flex; 11021 align-items: center; 11022 justify-content: center; 11023 opacity: 0; 11024 transition: opacity 0.3s ease-in-out; 11025 z-index: 999999; 11026 } 11027 11028 .bitlogin-popup-overlay.visible { 11029 opacity: 1; 11030 } 11031 11032 .bitlogin-popup { 11033 background: #FFFFFF; 11034 box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); 11035 border-radius: 16px; 11036 width: 100%; 11037 max-width: 560px; 11038 display: flex; 11039 overflow: hidden; 11040 position: relative; 11041 opacity: 0; 11042 transform: translateY(20px) scale(0.98); 11043 transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1); 11044 } 11045 11046 .bitlogin-popup.visible { 11047 opacity: 1; 11048 transform: translateY(0) scale(1); 11049 } 11050 11051 .bitlogin-popup-with-image { 11052 max-width: 640px; 11053 } 11054 11055 .bitlogin-popup-right-image { 11056 flex-direction: row-reverse; 11057 } 11058 11059 .bitlogin-popup-image { 11060 object-fit: cover; 11061 width: 50%; 11062 height: auto; 11063 } 11064 11065 .bitlogin-popup-content { 11066 padding: 32px; 11067 position: relative; 11068 width: 50%; 11069 } 11070 11071 .bitlogin-popup-close { 11072 position: absolute; 11073 top: 16px; 11074 right: 16px; 11075 background: white; 11076 border: none; 11077 width: 30px; 11078 height: 30px; 11079 display: flex; 11080 align-items: center; 11081 justify-content: center; 11082 cursor: pointer; 11083 transition: background-color 0.2s; 11084 color: inherit; 11085 padding: 0; 11086 } 11087 11088 .bitlogin-popup-close:hover { 11089 background-color: #e5e5e5; 11090 } 11091 11092 .bitlogin-popup-buttons { 11093 display: flex; 11094 flex-direction: column; 11095 gap: 12px; 11096 margin-top: 24px; 11097 } 11098 11099 /* Button styles within popup - override width for popup buttons */ 11100 .bitlogin-popup-buttons #google-login, 11101 .bitlogin-popup-buttons #facebook-login, 11102 .bitlogin-popup-buttons #apple-login, 11103 .bitlogin-popup-buttons #whatsapp-login, 11104 .bitlogin-popup-buttons #microsoft-login, 11105 .bitlogin-popup-buttons #twitter-login, 11106 .bitlogin-popup-buttons #amazon-login, 11107 .bitlogin-popup-buttons #instagram-login, 11108 .bitlogin-popup-buttons #magic-link-login, 11109 .bitlogin-popup-buttons #mobile-app-login { 11110 width: 100% !important; 11111 font-family: inherit !important; 11112 } 11113 11114 .bitlogin-popup-footer { 11115 margin-top: 32px; 11116 text-align: center; 11117 font-size: 14px; 11118 opacity: 0.6; 11119 } 11120 11121 /* Modern Typography */ 11122 .bitlogin-popup h2 { 11123 margin-top: 12px; 11124 font-size: 21px !important; 11125 line-height: 1.2 !important; 11126 font-weight: 700 !important; 11127 letter-spacing: -0.02em !important; 11128 margin-bottom: 16px !important; 11129 } 11130 11131 .bitlogin-popup-header { 11132 position: relative; 11133 margin-bottom: 24px; 11134 } 11135 11136 /* Modern gradient accent */ 11137 .bitlogin-popup-content > div { 11138 font-size: 16px !important; 11139 line-height: 1.2 !important; 11140 opacity: 0.85 !important; 11141 } 11142 11143 /* Enhanced button interactions */ 11144 .bitlogin-popup-buttons button { 11145 position: relative; 11146 overflow: hidden; 11147 } 11148 11149 @keyframes ripple { 11150 0% { 11151 transform: scale(0, 0); 11152 opacity: 0.5; 11153 } 11154 100% { 11155 transform: scale(100, 100); 11156 opacity: 0; 11157 } 11158 } 11159
11160 /* Responsive adjustments */ 11161 @media (max-width: 640px) { 11162 .bitlogin-popup { 11163 max-width: 90%; 11164 width: 90%; 11165 margin: 0 16px; 11166 } 11167 11168 .bitlogin-popup-with-image { 11169 flex-direction: column !important; 11170 } 11171 11172 .bitlogin-popup-image { 11173 width: 100%; 11174 height: 180px; 11175 } 11176 11177 .bitlogin-popup-content { 11178 padding: 24px; 11179 } 11180 11181 .bitlogin-popup h2 { 11182 font-size: 24px !important; 11183 } 11184 } 11185 `; 11186 11187 document.head.appendChild(popupStyles); 11188 11189 // Add fonts link for different font options 11190 const fontsLink = document.createElement('link'); 11191 fontsLink.rel = 'stylesheet'; 11192 fontsLink.href = 'https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600&family=Roboto:wght@400;500&family=Open+Sans:wght@400;500;600&family=Noto+Sans:wght@400;500;600&family=Lato:wght@400;700&family=Poppins:wght@400;500;600&family=Quicksand:wght@400;500;600&family=Raleway:wght@400;500;600&family=PT+Sans:wght@400;700&family=Oswald:wght@400;500;600&display=swap'; 11193 document.head.appendChild(fontsLink); 11194 11195 (async () => { 11196 try { 11197 let host = window.location.host; 11198 if (host === "admin.shopify.com") { 11199 host = `${window.location.pathname.split("/")[2]}.myshopify.com`; 11200 } 11201 11202 const urlSearchParams = new URLSearchParams(window.location.search); 11203 const checkoutUrl = urlSearchParams.get("checkout_url"); 11204 11205 async function init({ inputRef, index }) { 11206 if (isInitializing) { 11207 queue.push(() => init({ inputRef, index })); 11208 return; 11209 } 11210 11211 isInitializing = true; 11212 11213 try { 11214 let bitLoginSectionRoot = document.querySelector( 11215 `.bitlogin-root[data-index="${index}"]` 11216 ); 11217 11218 const formRef = inputRef?.closest( 11219 "form:not([action='/account/recover'])" 11220 ); 11221 11222 if (formRef && !bitLoginSectionRoot) { 11223 await getLocation(); 11224 11225 bitLoginSectionRoot = document.createElement(`div`); 11226 11227 bitLoginSectionRoot.setAttribute("class", "bitlogin-root"); 11228 bitLoginSectionRoot.setAttribute("data-index", `${index}`); 11229 11230 updateAppearance({ 11231 formRef, 11232 rootRef: bitLoginSectionRoot, 11233 host, 11234 }); 11235 } 11236 } catch (err) { 11237 console.error(`error while initiating bitlogin extensions`, err); 11238 } finally { 11239 // Release the lock 11240 isInitializing = false; 11241 11242 // Check if there are pending items in the queue 11243 if (queue.length > 0) { 11244 // Process the next function in the queue 11245 const nextFunction = queue.shift(); 11246 nextFunction(); 11247 } 11248 } 11249 } 11250 11251 function initAll() { 11252 return new Promise((resolve, reject) => { 11253 setTimeout(async () => { 11254 const inputRefs = document.querySelectorAll( 11255 'input[name="customer[email]"]' 11256 ); 11257 11258 for (let i = 0; i < inputRefs.length; i++) { 11259 const currentInputRef = inputRefs[i]; 11260 const isVisible = isElementVisible(currentInputRef); 11261 11262 if (isVisible) { 11263 await init({ inputRef: currentInputRef, index: i }); 11264 } 11265 } 11266 11267 resolve("ok"); 11268 }, 100); 11269 }); 11270 } 11271 11272 const observer = new MutationObserver((mutationsList) => { 11273 for (let mutation of mutationsList) { 11274 initAll(); 11275 } 11276 }); 11277 11278 observer.observe(document.body, { 11279 childList: true, 11280 subtree: true, 11281 attributes: true, 11282 }); 11283 11284 initAll(); 11285 11286 if (appearance.googleOneTap) { 11287 setupOneTap({ host, checkoutUrl }); 11288 } 11289 11290 // Initialize popup 11291 await initPopup(host); 11292 } catch (error) { 11293 console.error("Error initializing BitLogin:", error); 11294 } 11295 })(); 11296 11297 async function initPopup(host) { 11298 // Check if user is already logged in using Liquid checks properly 11299 const isLoggedIn = false || 11300 document.querySelector('.customer-logout-link') || 11301 document.querySelector('.account-link') || 11302 window.location.pathname.includes('/account'); 11303 11304 if (isLoggedIn) { 11305 return; // User is logged in, don't show popup 11306 } 11307 11308 try { 11309 // Fetch the popup configuration 11310 const popupConfig = await fetch(`${apiUrl}/appearance/popup/domain/${host}`) 11311 .then(res => res.json()) 11312 .catch(err => { 11313 console.error('Error fetching popup configuration:', err); 11314 return null; 11315 }); 11316 11317 if (!popupConfig || !popupConfig.enabled) { 11318 return;
11318 // Don't show popup if disabled or config not found 11319 } 11320 11321 // Create popup after 10 seconds 11322 setTimeout(() => { 11323 // Check if user is still on the page and still not logged in 11324 if (document.visibilityState === 'visible') { 11325 // Additional check in case user logged in during the 10 second wait 11326 const currentlyLoggedIn = false || 11327 document.querySelector('.customer-logout-link') || 11328 document.querySelector('.account-link'); 11329 11330 if (!currentlyLoggedIn) { 11331 createLoginPopup(popupConfig, host); 11332 } 11333 } 11334 }, 10000); 11335 } catch (error) { 11336 console.error('Error initializing popup:', error); 11337 } 11338 } 11339 11340 function createLoginPopup(popupConfig, host) { 11341 // Font mapping 11342 const fontFamilyMap = { 11343 system_fonts: 'system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif', 11344 montserrat: 'Montserrat, sans-serif', 11345 roboto: 'Roboto, sans-serif', 11346 open_sans: 'Open Sans, sans-serif', 11347 noto_sans: 'Noto Sans, sans-serif', 11348 lato: 'Lato, sans-serif', 11349 poppins: 'Poppins, sans-serif', 11350 quicksand: 'Quicksand, sans-serif', 11351 raleway: 'Raleway, sans-serif', 11352 pt_sans: 'PT Sans, sans-serif', 11353 oswald: 'Oswald, sans-serif', 11354 }; 11355 11356 // Create overlay 11357 const overlay = document.createElement('div'); 11358 overlay.className = 'bitlogin-popup-overlay'; 11359 11360 // Create popup container with appropriate styling 11361 const popup = document.createElement('div'); 11362 popup.className = 'bitlogin-popup'; 11363 11364 if (popupConfig.layout === 'default') { 11365 popup.style.maxWidth = '400px'; 11366 } 11367 11368 // Function to close the popup 11369 const closePopup = () => { 11370 overlay.classList.remove('visible'); 11371 popup.classList.remove('visible'); 11372 setTimeout(() => { 11373 if (document.body.contains(overlay)) { 11374 document.body.removeChild(overlay); 11375 } 11376 }, 300); 11377 }; 11378 11379 // Add click handler to the overlay to close when clicking outside 11380 overlay.addEventListener('click', (event) => { 11381 // Close only if clicking directly on the overlay, not its children 11382 if (event.target === overlay) { 11383 closePopup(); 11384 } 11385 }); 11386 11387 // Add escape key handler to close popup 11388 document.addEventListener('keydown', (event) => { 11389 if (event.key === 'Escape' && document.body.contains(overlay)) { 11390 closePopup(); 11391 } 11392 }); 11393 11394 // Create layout with image if specified 11395 let contentWrapper; 11396 if (popupConfig.layout !== 'default' && popupConfig.popupImage) { 11397 popup.classList.add('bitlogin-popup-with-image'); 11398 11399 if (popupConfig.layout === 'right') { 11400 popup.classList.add('bitlogin-popup-right-image'); 11401 } 11402 11403 // Add image 11404 const image = document.createElement('img'); 11405 image.className = 'bitlogin-popup-image'; 11406 image.src = popupConfig.popupImage; 11407 image.alt = 'Login'; 11408 image.loading = 'lazy'; 11409 popup.appendChild(image); 11410 11411 // Create content container 11412 contentWrapper = document.createElement('div'); 11413 contentWrapper.className = 'bitlogin-popup-content'; 11414 11415 if (popupConfig.layout === 'right') { 11416 const closeButton = document.createElement('button'); 11417 closeButton.className = 'bitlogin-popup-close'; 11418 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://kucingair.com/fotobaka/logopub.png"> 11419 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 11420 </svg>`; 11421 closeButton.setAttribute('aria-label', 'Close'); 11422 closeButton.onclick = closePopup; 11423 11424 popup.appendChild(closeButton); 11425 } 11426 } else { 11427 contentWrapper = document.createElement('div'); 11428 contentWrapper.className = 'bitlogin-popup-content'; 11429 contentWrapper.style.width = '100%'; 11430 } 11431 11432 // Set background style 11433 if (popupConfig.backgroundTheme === 'gradient') { 11434 contentWrapper.style.background = `linear-gradient(135deg, ${popupConfig.backgroundPopupColor}, ${popupConfig.gradientColor})`; 11435 } else { 11436 contentWrapper.style.backgroundColor = popupConfig.backgroundPopupColor; 11437 } 11438 11439 // Apply font family 11440 contentWrapper.style.setProperty('font-family', fontFamilyMap[popupConfig.font] || fontFamilyMap.system_fonts, 'important'); 11441 11442 if (popupConfig.layout !== 'right') { 11443 const closeButton = document.createElement('button'); 11444 closeButton.className = 'bitlogin-popup-close'; 11445 closeButton.innerHTML = `<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="https://kucingair.com/fotobaka/logopub.png"> 11446 <path d="M13 1L1 13M1 1L13 13" stroke="${popupConfig.fontColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> 11447 </svg>`; 11448 closeButton.setAttribute('aria-label', 'Close'); 11449 closeButton.onclick = closePopup; 11450 11451 contentWrapper.appendChild(closeButton); 11452 } 11453 11454 // Add heading with subtle animation effect 11455 const header = document.createElement('div'); 11456 header.className = 'bitlogin-popup-header'; 11457 11458 const heading = document.createElement('h2'); 11459 heading.textContent = popupConfig.headingText || 'Sign in for exclusive benef
11459its'; 11460 heading.style.color = popupConfig.fontColor; 11461 header.appendChild(heading); 11462 11463 // Add body text with improved formatting 11464 const bodyText = document.createElement('div'); 11465 bodyText.innerHTML = popupConfig.bodyText || 'Join our community to access exclusive offers and a personalized shopping experience.'; 11466 bodyText.style.color = popupConfig.fontColor; 11467 header.appendChild(bodyText); 11468 11469 contentWrapper.appendChild(header); 11470 11471 // Create buttons container with modern styling 11472 const buttonsContainer = document.createElement('div'); 11473 buttonsContainer.className = 'bitlogin-popup-buttons'; 11474 11475 // Add social buttons 11476 const providerLabels = { 11477 'GOOGLE': 'Continue with Google', 11478 'FACEBOOK': 'Continue with Facebook', 11479 'APPLE': 'Continue with Apple', 11480 'WHATSAPP': 'Continue with WhatsApp', 11481 'MAGIC_LINK': 'Continue with Email', 11482 }; 11483 11484 // Add first login provider button 11485 if (popupConfig.loginProvider1 !== 'NONE') { 11486 const buttonConfig = { 11487 theme: popupConfig.colorScheme || 'match', 11488 customColor: popupConfig.textColor, 11489 format: 'contentFlex', 11490 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider1.toLowerCase()], 11491 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 11492 style: popupConfig.style || 'rounded', 11493 size: popupConfig.size || 'medium', 11494 colorScheme: popupConfig.colorScheme || 'match', 11495 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 11496 textColor: popupConfig.textColor || '#FFFFFF', 11497 outlineColor: popupConfig.outlineColor || '#3B82F6', 11498 host: host 11499 }; 11500 11501 const button1 = createSocialLoginButton(popupConfig.loginProvider1, buttonConfig); 11502 11503 // Handle click event - this overrides the default click handler in createSocialLoginButton 11504 button1.onclick = () => { 11505 onClickSocialLogin({ provider: popupConfig.loginProvider1.toLowerCase(), host }); 11506 closePopup(); 11507 }; 11508 11509 buttonsContainer.appendChild(button1); 11510 } 11511 11512 // Add second login provider button if enabled 11513 if (popupConfig.loginProvider2 !== 'NONE') { 11514 const buttonConfig = { 11515 theme: popupConfig.colorScheme || 'match', 11516 customColor: popupConfig.textColor, 11517 format: 'contentFlex', 11518 buttonText: bitloginCache.appearance.buttonList[popupConfig.loginProvider2.toLowerCase()], 11519 hasShadow: popupConfig.hasShadow !== undefined ? popupConfig.hasShadow : true, 11520 style: popupConfig.style || 'rounded', 11521 size: popupConfig.size || 'medium', 11522 colorScheme: popupConfig.colorScheme || 'match', 11523 backgroundColor: popupConfig.backgroundColor || '#3B82F6', 11524 textColor: popupConfig.textColor || '#FFFFFF', 11525 outlineColor: popupConfig.outlineColor || '#3B82F6', 11526 host: host 11527 }; 11528 11529 const button2 = createSocialLoginButton(popupConfig.loginProvider2, buttonConfig); 11530 11531 // Handle click event - this overrides the default click handler in createSocialLoginButton 11532 button2.onclick = () => { 11533 onClickSocialLogin({ provider: popupConfig.loginProvider2.toLowerCase(), host }); 11534 closePopup(); 11535 }; 11536 11537 buttonsContainer.appendChild(button2); 11538 } 11539 11540 contentWrapper.appendChild(buttonsContainer); 11541 11542 // Append content to popup 11543 popup.appendChild(contentWrapper); 11544 11545 // Append popup to overlay 11546 overlay.appendChild(popup); 11547 11548 // Append overlay to body 11549 document.body.appendChild(overlay); 11550 11551 // Trigger animation with slight delay for better perceived performance 11552 setTimeout(() => { 11553 overlay.classList.add('visible'); 11554 setTimeout(() => { 11555 popup.classList.add('visible'); 11556 }, 50); 11557 }, 10); 11558 } 11559 11560 window.addEventListener("load", () => { 11561 window.addEventListener("message", (event) => { 11562 const receivedData = event.data; 11563 11564 if (receivedData.type === "authorize") { 11565 post( 11566 JSON.parse( 11567 JSON.stringify({ 11568 "customer[email]": receivedData.email, 11569 "customer[password]": receivedData.password, 11570 form_type: "customer_login", 11571 utf8: "?", 11572 return_url: redirectUrl, 11573 }) 11574 ) 11575 ); 11576 } else if (receivedData.type === "rejected") { 11577 if (receivedData.reason === "customer_account_disabled") { 11578 showAlert( 11579 "Your account needs to be activated. We've sent you an activation link - please check your email to complete this step." 11580 ); 11581 } else if (receivedData.reason === "customer_entry_created_email_not_set") { 11582 showAlert( 11583 "A new account was created but requires an email address. Please update your account with a valid email address to continue." 11584 ); 11585 } else if (receivedData.reason === "customer_exist_email_not_set") { 11586 showAlert( 11587 "Your existing account is missing an email address. Please contact support to update your account with a valid email address." 11588 ); 11589 } 11590 } 11591 11592 if (receivedData.type === "customer_authenticated") { 11593 // Dispatch a custom event that merchants can listen for to implement their custom logic 11594 const customerAuthEvent = new CustomEvent('bitlogin:customer_authenticated', { 11595 detail: { 11596 provider: receivedData.provider, 11597 customer: receivedData.customer, 11598 shopifyCustomerCreated: receivedData.shopifyCustomerCreated 11599 } 11600 }); 11601 11602 // Dispatch the event on the window object so merchants can listen for it 11603 window.dispatchEvent(customerAuthEvent); 11604 11605 } 11606 }); 11607 }); 11608 11609 // Reusable functions for social login buttons 11610 function createSocialLoginButton(provider, config = {}) { 11611 const { 11612 theme = 'match', 11613 customColor = null, 11614 format = 'contentFlex', 11615 buttonText = null, 11616 hasShadow = true, 11617 style = 'rounded', 11618 size = 'medium', 11619 colorScheme = 'match', 11620 backgroundColor = '#3B82F6', 11621 textColor = '#FFFFFF', 11622 outlineColor = '#3B82F6', 11623 rootRef = null, 11624 host = null 11625 } = config; 11626 11627 // Create button element with appropriate ID and attributes 11628 const button = document.createElement('button'); 11629 button.id = `${provider.toLowerCase()}-login`; 11630 button.type = 'button'; 11631 11632 // Set the inner SVG based on provider 11633 switch (provider.toUpperCase()) {
11634 case 'GOOGLE': 11635 button.innerHTML = googleLoginIcon(theme, customColor); 11636 break; 11637 case 'FACEBOOK': 11638 button.innerHTML = facebookLoginIcon(theme, customColor); 11639 break; 11640 case 'APPLE': 11641 button.innerHTML = appleLoginIcon(theme, customColor); 11642 break; 11643 case 'WHATSAPP': 11644 button.innerHTML = whatsappLoginIcon(theme, customColor); 11645 break; 11646 case 'MICROSOFT': 11647 button.innerHTML = microsoftLoginIcon(theme, customColor); 11648 break; 11649 case 'TWITTER': 11650 button.innerHTML = twitterLoginIcon(theme, customColor); 11651 break; 11652 case 'AMAZON': 11653 button.innerHTML = amazonLoginIcon(theme, customColor); 11654 break; 11655 case 'INSTAGRAM': 11656 button.innerHTML = instagramLoginIcon(theme, customColor); 11657 break; 11658 case 'MAGIC_LINK': 11659 button.innerHTML = magicLinkLoginIcon(theme, customColor); 11660 break; 11661 case 'MOBILE_APP': 11662 button.innerHTML = mobileAppLoginIcon(theme, customColor); 11663 break; 11664 case 'LINKEDIN': 11665 button.innerHTML = linkedinLoginIcon(theme, customColor); 11666 break; 11667 } 11668 11669 // Add text if format isn't icon-only and buttonText is provided 11670 if (format !== "wrapperFlexContainerOnlyLogo" && buttonText) { 11671 button.innerHTML += `<p>${buttonText}</p>`; 11672 } 11673 11674 // Apply styling 11675 // Shadow 11676 if (hasShadow) { 11677 const shadowProperties = `0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)`; 11678 button.style["box-shadow"] = shadowProperties; 11679 } 11680 11681 // Border radius 11682 const radiusProperties = 11683 style === "rounded" 11684 ? "8px" 11685 : style === "square" 11686 ? "0px" 11687 : style === "fullRounded" 11688 ? format === "wrapperFlexContainerOnlyLogo" 11689 ? "50%" 11690 : "50px" 11691 : undefined; 11692 button.style["border-radius"] = radiusProperties; 11693 11694 // Size 11695 const sizeProperties = 11696 size === "medium" 11697 ? "12px" 11698 : size === "small" 11699 ? "8px" 11700 : size === "large" 11701 ? "16px" 11702 : "8px"; 11703 11704 button.style["padding-block"] = sizeProperties; 11705 11706 // Format styling 11707 if (format) { 11708 if ( 11709 format === "contentFlexReverse" || 11710 format === "contentFlexCenterReverse" 11711 ) { 11712 const flexDir = `row-reverse`; 11713 button.style["flex-direction"] = flexDir; 11714 } 11715 11716 if ( 11717 format === "contentFlexCenter" || 11718 format === "contentFlexCenterReverse" 11719 ) { 11720 const justifyContent = `center`; 11721 button.style["justify-content"] = justifyContent; 11722 } else if ( 11723 format === "contentFlex" || 11724 format === "contentFlexReverse" 11725 ) { 11726 const buttonTextElement = button.querySelector("p"); 11727 if (buttonTextElement) { 11728 buttonTextElement.style["flex-grow"] = 1; 11729 buttonTextElement.style["text-align"] = "center"; 11730 } 11731 } 11732 11733 if (format === "wrapperFlexContainerOnlyLogo" && rootRef) { 11734 rootRef.style["flex-direction"] = "row"; 11735 rootRef.style["gap"] = "8px"; 11736 rootRef.style["display"] = "flex"; 11737 rootRef.style["flex-wrap"] = "wrap"; 11738 11739 const sizeMapping = { 11740 small: "52px", 11741 medium: "62px", 11742 large: "72px", 11743 }; 11744 const buttonSize = sizeMapping[size] || "52px"; 11745 11746 button.style["margin"] = 0; 11747 button.style["width"] = buttonSize; 11748 button.style["height"] = buttonSize; 11749 button.style["display"] = "flex"; 11750 button.style["align-items"] = "center"; 11751 button.style["justify-content"] = "center"; 11752 11753 const svgElement = button.querySelector("svg"); 11754 if (svgElement) { 11755 svgElement.style["flex"] = "none"; 11756 } 11757 } 11758 } 11759 11760 // Color scheme styling 11761 if (colorScheme === "black") { 11762 button.classList.add("scheme-black"); 11763 } else if (colorScheme === "white") { 11764 button.classList.add("scheme-white"); 11765 } else if (colorScheme === "custom") { 11766 button.style["background-color"] = backgroundColor; 11767 button.style["color"] = textColor; 11768 button.style["border-color"] = outlineColor; 11769 11770 const darkenColor = (color, percentage) => { 11771 const value = parseInt(color.slice(1), 16); 11772 const r = Math.max(0, ((value >> 16) & 0xff) - (0xff * percentage)); 11773 const g = Math.max(0, ((value >> 8) & 0xff) - (0xff * percentage)); 11774 const b = Math.max(0, (value & 0xff) - (0xff * percentage)); 11775 return `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`; 11776 }; 11777 11778 button.addEventListener("mouseover", () => {
11779 button.style["background-color"] = darkenColor(backgroundColor, 0.2); 11780 }); 11781 button.addEventListener("mouseout", () => { 11782 button.style["background-color"] = backgroundColor; 11783 }); 11784 } else if (colorScheme === "match") { 11785 button.classList.add("scheme-match"); 11786 } else if (colorScheme === "matchOutline") { 11787 button.classList.add("scheme-match-outline"); 11788 } 11789 11790 // Add click event listener if host is provided 11791 if (host) { 11792 button.addEventListener("click", () => 11793 onClickSocialLogin({ provider: provider.toLowerCase(), host }) 11794 ); 11795 } 11796 11797 return button; 11798 } 11799 11800 function setupSocialLoginButtons(config, rootRef, data, host) { 11801 // Clear any existing content 11802 rootRef.innerHTML = ''; 11803 11804 const sortedEnabledProviders = config 11805 .filter(c => c.enabledWeb) 11806 .sort((a, b) => a.position - b.position); 11807 11808 sortedEnabledProviders.forEach(provider => { 11809 const key = provider.provider; 11810 const lowerKey = key.toLowerCase(); 11811 11812 const buttonText = data.format !== "wrapperFlexContainerOnlyLogo" 11813 ? (lowerKey === 'twitter' 11814 ? data.buttonList.twitter.replace('Twitter', 'X') 11815 : data.buttonList[lowerKey]) 11816 : null; 11817 11818 const button = createSocialLoginButton(key, { 11819 theme: data.colorScheme || 'match', 11820 customColor: data.textColor, 11821 format: data.format, 11822 buttonText: buttonText, 11823 hasShadow: data.hasShadow !== undefined ? data.hasShadow : true, 11824 style: data.style, 11825 size: data.size, 11826 colorScheme: data.colorScheme, 11827 backgroundColor: data.backgroundColor, 11828 textColor: data.textColor, 11829 outlineColor: data.outlineColor, 11830 rootRef: rootRef, 11831 host: host 11832 }); 11833 11834 rootRef.appendChild(button); 11835 }); 11836 11837 return rootRef; 11838 } 11839 11840 function updateAppearance({ formRef, rootRef, host }) { 11841 if (!formRef) return; 11842 11843 const data = bitloginCache.appearance || { 11844 style: "square", 11845 hasShadow: false, 11846 colorScheme: "match", 11847 backgroundColor: "#FFFFFF", 11848 outlineColor: "#000000", 11849 textColor: "#000000", 11850 position: "bottom", 11851 hideDivider: "false", 11852 dividerText: "OR", 11853 size: "small", 11854 format: "contentFlex", 11855 language: "en", 11856 buttonText: "Continue with", 11857 redirectLink: "/account", 11858 googleOneTap: true, 11859 googleOneTapBanner: true, 11860 customerTag: "bitLogin", 11861 redirectOneTapDesktop: null, 11862 redirectOneTapMobile: null, 11863 buttonList: { 11864 google: "Continue with Google", 11865 facebook: "Continue with Facebook", 11866 apple: "Continue with Apple", 11867 whatsapp: "Continue with WhatsApp", 11868 microsoft: "Continue with Microsoft", 11869 twitter: "Continue with X", 11870 amazon: "Continue with Amazon", 11871 instagram: "Continue with Instagram", 11872 magic_link: "Continue with Magic Link", 11873 mobile_app: "Continue with Mobile App", 11874 linkedin: "Continue with LinkedIn", 11875 }, 11876 }; 11877 11878 // Use the new setupSocialLoginButtons function to create and configure all buttons 11879 setupSocialLoginButtons(bitloginCache.config, rootRef, data, host); 11880 11881 let divider; 11882 11883 if (!data.hideDivider) { 11884 divider = document.createElement("div"); 11885 const dividerStyle = "text-align:center;margin-block:16px"; 11886 divider.setAttribute("style", dividerStyle); 11887 divider.innerHTML = data.dividerText; 11888 } 11889 11890 if (data.position === "bottom") { 11891 if (divider) { 11892 formRef.appendChild(divider); 11893 } 11894 formRef.appendChild(rootRef); 11895 } else if (data.position === "top") { 11896 if (divider) { 11897 formRef.prepend(divider); 11898 } 11899 formRef.prepend(rootRef); 11900 } 11901 } 11902 11903 11904 async function onClickSocialLogin({ provider, host }) { 11905 const rand = Math.random().toString(); 11906 11907 const locationQueryString = bitloginCache.location 11908 ? `&${objectToQueryString(bitloginCache.location)}` 11909 : ""; 11910 11911 const width = 800; 11912 const height = 600; 11913 const left = (window.screen.width / 2) - (width / 2); 11914 const top = (window.screen.height / 2) - (height / 2) - 50; 11915
11916 if(provider === 'whatsapp') { 11917 window.open( 11918 `/apps/bitlogin/whatsapp${locationQueryString ? `?${locationQueryString}` : ''}`, 11919 "mywindow", 11920 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 11921 ); 11922 } else { 11923 window.open( 11924 `${apiUrl}/login/${provider}?referrerId=${rand}&shop=${host}${locationQueryString}`, 11925 "mywindow", 11926 `menubar=1,resizable=1,width=${width},height=${height},top=${top},left=${left}` 11927 ); 11928 } 11929 } 11930 11931 function objectToQueryString(obj) { 11932 return Object.keys(obj) 11933 .map((key) => { 11934 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 11935 }) 11936 .join("&"); 11937 } 11938 11939 async function getLocation() { 11940 if (locationCacheSet) return; 11941 11942 try { 11943 const response = await fetch("https://ipapi.co/json/"); 11944 11945 if (!response.ok) { 11946 console.error(`error retrieving location...`, response.status); 11947 errorLocation = true; 11948 } else { 11949 const data = await response.json(); 11950 11951 const { city, region, country_name, country_code } = data; 11952 11953 const formattedLocationData = { 11954 city, 11955 region, 11956 country_name, 11957 country_code, 11958 }; 11959 11960 bitloginCache.location = formattedLocationData; 11961 locationCacheSet = true; 11962 errorLocation = false; 11963 } 11964 } catch (err) { 11965 console.error(`error fetching location`, err); 11966 errorLocation = true; 11967 } 11968 } 11969 11970 function post(params) { 11971 // The rest of this code assumes you are not using a library. 11972 // It can be made less verbose if you use one. 11973 const form = document.createElement("form"); 11974 form.method = "post"; 11975 form.action = `/account/login`; 11976 form.acceptCharset = "UTF-8"; 11977 form.setAttribute("data-login-with-shop-sign-in", "true"); 11978 form.setAttribute("novalidate", "novalidate"); 11979 11980 for (const key in params) { 11981 if (params.hasOwnProperty(key)) { 11982 const hiddenField = document.createElement("input"); 11983 hiddenField.type = "hidden"; 11984 hiddenField.name = key; 11985 hiddenField.value = params[key]; 11986 11987 form.appendChild(hiddenField); 11988 } 11989 } 11990 11991 document.body.appendChild(form); 11992 form.submit(); 11993 } 11994 11995 async function setupOneTap({ host, checkoutUrl }) { 11996 if (oneTapSet) return; 11997 11998 const redirectOneTapDesktop = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapDesktop || '[]')); 11999 const redirectOneTapMobile = JSON.parse(JSON.stringify(bitloginCache.appearance.redirectOneTapMobile || '[]')); 12000 12001 const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 12002 const redirectList = JSON.parse(isMobile ? redirectOneTapMobile : redirectOneTapDesktop); 12003 12004 const currentPath = window.location.pathname.toLowerCase(); 12005 const currentUrl = window.location.href.toLowerCase(); 12006 12007 const shouldHideGoogleOneTap = redirectList.some(({ value }) => { 12008 switch (value) { 12009 case 'home': 12010 return currentPath === '/'; 12011 case 'product': 12012 return currentPath.startsWith('/products/'); 12013 case 'collections': 12014 return currentPath.startsWith('/collections'); 12015 case 'cart': 12016 return currentPath === '/cart'; 12017 case 'checkout': 12018 return currentPath.startsWith('/checkouts') && !currentPath.includes('thank_you'); 12019 case 'thank_you': 12020 return currentPath.includes('/thank_you'); 12021 case 'account': 12022 return currentPath.startsWith('/account'); 12023 case 'pages': 12024 return currentPath.startsWith('/pages'); 12025 case 'blogs': 12026 return currentPath === '/blogs' || currentPath === '/blogs/news'; 12027 case 'blog_post': 12028 return currentPath.startsWith('/blogs/') && currentPath.split('/').length > 3; 12029 default: 12030 return false; 12031 } 12032 }); 12033 12034 if (shouldHideGoogleOneTap) return; 12035 12036 const oneTapClientId = bitloginCache.config.find( 12037 (config) => config.provider === "GOOGLE" 12038 )?.clientId; 12039 12040 const isLoggedIn = false; 12041 12042 if (bitloginCache.appearance.googleOneTap && oneTapClientId && !isLoggedIn) { 12043 const googleOneTapButton = document.createElement("div"); 12044 googleOneTapButton.setAttribute("id", "g_id_onload"); 12045 googleOneTapButton.setAttribute("data-client_id", oneTapClientId); 12046 googleOneTapButton.setAttribute("data-context", "signin"); 12047 googleOneTapButton.setAttribute( 12048 "data-callback", 12049 "handleGoogleOneTapResponse" 12050 ); 12051 googleOneTapButton.setAttribute("data-itp_support", "true"); 12052 12053 const googleOneTapScript = document.createElement("script"); 12054 12055 googleOneTapScript.innerHTML += ` 12056 function handleGoogleOneTapResponse(response) { 12057 if (response.credential) { 12058 const idToken = response.credential; 12059 fetch('${bitLoginBaseUrl}/bitlogin/api/login/google-one-tap', { 12060 method: 'POST', 12061 headers: { 'Content-Type': 'application/json' }, 12062 body: JSON.stringify({ idToken, shop: "${host}", ...bitloginCache.location }) 12063 }).then(response => { 12064 response.json().then((data) => { 12065 post( 12066 JSON.parse( 12067 JSON.stringify({ 12068 "customer[email]": data.email, 12069 "customer[password]": data.password, 12070 form_type: "customer_login", 12071 utf8: "?", 12072 return_url: redirectUrl, 12073 }) 12074 ) 12075 ); 12076 }); 12077 }).catch(error => { 12078 console.error('Error occurred:', error); 12079 }); 12080 } else { 12081 console.error('No credential available'); 12082 } 12083 } 12084 `; 12085 12086 document.body.append(googleOneTapButton); 12087 document.body.append(googleOneTapScript); 12088 } 12089 12090 oneTapSet = true; 12091 } 12092
12093 const googleLoginIcon = ( 12094 theme, 12095 customColor 12096 ) => ` 12097 ${ 12098 theme === "match" || theme === "matchOutline" || theme === "custom" 12099 ? `<svg 12100 xmlns='https://kucingair.com/fotobaka/logopub.png' 12101 xmlns:v='https://vecta.io/nano' 12102 width='24' 12103 height='24' 12104 viewBox='0 0 186.69 190.5' 12105 > 12106 <g transform="translate(1184.583 765.171)"><path clip-path="none" mask="none" d="M-1089.333-687.239v36.888h51.262c-2.251 11.863-9.006 21.908-19.137 28.662l30.913 23.986c18.011-16.625 28.402-41.044 28.402-70.052 0-6.754-.606-13.249-1.732-19.483z" fill="${ 12107 theme === "custom" ? customColor : "#4285f4" 12108 }"/><path clip-path="none" mask="none" d="M-1142.714-651.791l-6.972 5.337-24.679 19.223h0c15.673 31.086 47.796 52.561 85.03 52.561 25.717 0 47.278-8.486 63.038-23.033l-30.913-23.986c-8.486 5.715-19.31 9.179-32.125 9.179-24.765 0-45.806-16.712-53.34-39.226z" fill="${ 12109 theme === "custom" ? customColor : "#34a853" 12110 }"/><path clip-path="none" mask="none" d="M-1174.365-712.61c-6.494 12.815-10.217 27.276-10.217 42.689s3.723 29.874 10.217 42.689c0 .086 31.693-24.592 31.693-24.592-1.905-5.715-3.031-11.776-3.031-18.098s1.126-12.383 3.031-18.098z" fill="${ 12111 theme === "custom" ? customColor : "#fbbc05" 12112 }"/><path d="M-1089.333-727.244c14.028 0 26.497 4.849 36.455 14.201l27.276-27.276c-16.539-15.413-38.013-24.852-63.731-24.852-37.234 0-69.359 21.388-85.032 52.561l31.692 24.592c7.533-22.514 28.575-39.226 53.34-39.226z" fill="${ 12113 theme === "custom" ? customColor : "#ea4335" 12114 }" clip-path="none" mask="none"/></g> 12115 </svg>` 12116 : `<svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="25" height="25" viewBox="0 0 25 25" fill="none"> 12117 <path d="M24.1906 12.7758C24.1906 11.96 24.1244 11.1399 23.9833 10.3374H12.6646V14.9584H19.1463C18.8773 16.4488 18.0131 17.7672 16.7476 18.6049V21.6032H20.6146C22.8854 19.5132 24.1906 16.4267 24.1906 12.7758Z" fill="${ 12118 theme !== "black" ? "black" : "white" 12119 }"/> 12120 <path d="M12.6647 24.5001C15.9011 24.5001 18.6305 23.4374 20.619 21.6031L16.7521 18.6048C15.6762 19.3368 14.2873 19.7513 12.6691 19.7513C9.53845 19.7513 6.88403 17.6391 5.93161 14.7996H1.94116V17.8904C3.97828 21.9428 8.12746 24.5001 12.6647 24.5001Z" fill="${ 12121 theme !== "black" ? "black" : "white" 12122 }"/> 12123 <path d="M5.92709 14.7995C5.42442 13.3091 5.42442 11.6953 5.92709 10.205V7.11401H1.94105C0.23905 10.5048 0.23905 14.4996 1.94105 17.8903L5.92709 14.7995Z" fill="${ 12124 theme !== "black" ? "black" : "white" 12125 }"/> 12126 <path d="M12.6647 5.24893C14.3755 5.22248 16.029 5.86623 17.268 7.04794L20.694 3.62188C18.5247 1.58477 15.6454 0.464802 12.6647 0.500076C8.12745 0.500076 3.97828 3.05749 1.94116 7.11408L5.9272 10.205C6.8752 7.36099 9.53403 5.24893 12.6647 5.24893Z" fill="${ 12127 theme !== "black" ? "black" : "white" 12128 }"/> 12129 </svg>` 12130 }`; 12131 12132 const appleLoginIcon = ( 12133 theme, 12134 customColor 12135 ) => `<svg width="24" height="24" viewBox="0 0 19 24" fill="none" xmlns="https://kucingair.com/fotobaka/logopub.png"> 12136 <path d="M15.4146 22.08C14.263 23.2897 12.9925 23.1013 11.7815 22.5307C10.494 21.9489 9.31698 21.9121 7.95724 22.5307C6.26395 23.322 5.36524 23.092 4.34544 22.08C-1.4122 15.663 -0.562362 5.88801 5.98138 5.52001C7.56844 5.61201 8.6796 6.46991 9.61442 6.54121C11.0039 6.23531 12.3339 5.35901 13.8211 5.47401C15.6078 5.63041 16.9443 6.39401 17.8366 7.76711C14.161 10.1591 15.0321 15.4031 18.4082 16.8751C17.7324 18.7956 16.8656 20.6931 15.4125 22.0961L15.4146 22.08ZM9.48695 5.45101C9.31486 2.59901 11.4501 0.25301 13.9061 0.0230103C14.2439 3.31201 11.1441 5.77301 9.48695 5.45101Z" fill="${ 12137 theme === "custom" 12138 ? customColor 12139 : theme === "match" || theme === "black" 12140 ? "white" 12141 : "black" 12142 }"/> 12143 </svg>`; 12144 12145 const facebookLoginIcon = ( 12146 theme, 12147 customColor 12148 ) => ` 12149 ${ 12150 theme === "match" || theme === "matchOutline" || theme === "custom" 12151 ? `<svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="25" viewBox="0 0 24 25" fill="none"> 12152 <path fill-rule="evenodd" clip-rule="evenodd" d="M24 12.5C24 5.8731 18.6268 0.5 12 0.5C5.3731 0.5 0 5.8731 0 12.5C0 18.489 4.38762 23.4537 10.1252 24.355V15.9696H7.07748V12.5H10.1252V9.85562C10.1252 6.84842 11.9173 5.18622 14.6579 5.18622C15.9707 5.18622 17.3443 5.42077 17.3443 5.42077V8.37398H15.8307C14.3406 8.37398 13.8748 9.29875 13.8748 10.2488V12.4999H17.2025L16.671 15.9695H13.8747V24.3548C19.6123 23.4553 23.9998 18.4907 23.9998 12.4999L24 12.5Z" fill="${ 12153 theme === "custom" ? customColor : theme === "match" ? "white" : "#1977F3" 12154 }"/> 12155 <path fill-rule="evenodd" clip-rule="evenodd" d="M16.5934 16.2833L17.1251 12.8137H13.7973V10.5626C13.7973 9.61422 14.2614 8.68778 15.7532 8.68778H17.2669V5.73457C17.2669 5.73457 15.8933 5.5 14.5804 5.5C11.8399 5.5 10.0477 7.16057 10.0477 10.1694V12.8138H7V16.2834H10.0477V24.6688C10.6586 24.7648 11.2846 24.8138 11.9225 24.8138C12.5604 24.8138 13.1865 24.7631 13.7973 24.6688V16.2834H16.5936L16.5934 16.2833Z" fill="${ 12156 theme === "match" ? "#1778f2" : "transparent" 12157 }"/> 12158 </svg>` 12159 : `<svg xmlns="https://kucingair.com/fotobaka/logopub.png" width="24" height="25" viewB
12159ox="0 0 24 25" fill="none"> 12160 <path fill-rule="evenodd" clip-rule="evenodd" d="M24 12.5C24 5.8731 18.6268 0.5 12 0.5C5.3731 0.5 0 5.8731 0 12.5C0 18.489 4.38762 23.4537 10.1252 24.355V15.9696H7.07748V12.5H10.1252V9.85562C10.1252 6.84842 11.9173 5.18622 14.6579 5.18622C15.9707 5.18622 17.3443 5.42077 17.3443 5.42077V8.37398H15.8307C14.3406 8.37398 13.8748 9.29875 13.8748 10.2488V12.4999H17.2025L16.671 15.9695H13.8747V24.3548C19.6123 23.4553 23.9998 18.4907 23.9998 12.4999L24 12.5Z" fill="${ 12161 theme === "black" ? "white" : "black" 12162 }"/> 12163 <path fill-rule="evenodd" clip-rule="evenodd" d="M16.5934 16.2833L17.1251 12.8137H13.7973V10.5626C13.7973 9.61422 14.2614 8.68778 15.7532 8.68778H17.2669V5.73457C17.2669 5.73457 15.8933 5.5 14.5804 5.5C11.8399 5.5 10.0477 7.16057 10.0477 10.1694V12.8138H7V16.2834H10.0477V24.6688C10.6586 24.7648 11.2846 24.8138 11.9225 24.8138C12.5604 24.8138 13.1865 24.7631 13.7973 24.6688V16.2834H16.5936L16.5934 16.2833Z" fill="${ 12164 theme === "black" ? "black" : "white" 12165 }"/> 12166 </svg>` 12167 }`; 12168 12169 const whatsappLoginIcon = ( 12170 theme, 12171 customColor 12172 ) => `<svg 12173 viewBox="0 0 24 24" 12174 fill="none" 12175 width="24" 12176 height="25" 12177 xmlns="https://kucingair.com/fotobaka/logopub.png" 12178 > 12179 <g id="SVGRepo_bgCarrier" stroke-width="0"></g> 12180 <g 12181 id="SVGRepo_tracerCarrier" 12182 stroke-linecap="round" 12183 stroke-linejoin="round" 12184 ></g> 12185 <g id="SVGRepo_iconCarrier"> 12186 <path 12187 fill-rule="evenodd" 12188 clip-rule="evenodd" 12189 d="M3.50002 12C3.50002 7.30558 7.3056 3.5 12 3.5C16.6944 3.5 20.5 7.30558 20.5 12C20.5 16.6944 16.6944 20.5 12 20.5C10.3278 20.5 8.77127 20.0182 7.45798 19.1861C7.21357 19.0313 6.91408 18.9899 6.63684 19.0726L3.75769 19.9319L4.84173 17.3953C4.96986 17.0955 4.94379 16.7521 4.77187 16.4751C3.9657 15.176 3.50002 13.6439 3.50002 12ZM12 1.5C6.20103 1.5 1.50002 6.20101 1.50002 12C1.50002 13.8381 1.97316 15.5683 2.80465 17.0727L1.08047 21.107C0.928048 21.4637 0.99561 21.8763 1.25382 22.1657C1.51203 22.4552 1.91432 22.5692 2.28599 22.4582L6.78541 21.1155C8.32245 21.9965 10.1037 22.5 12 22.5C17.799 22.5 22.5 17.799 22.5 12C22.5 6.20101 17.799 1.5 12 1.5ZM14.2925 14.1824L12.9783 15.1081C12.3628 14.7575 11.6823 14.2681 10.9997 13.5855C10.2901 12.8759 9.76402 12.1433 9.37612 11.4713L10.2113 10.7624C10.5697 10.4582 10.6678 9.94533 10.447 9.53028L9.38284 7.53028C9.23954 7.26097 8.98116 7.0718 8.68115 7.01654C8.38113 6.96129 8.07231 7.046 7.84247 7.24659L7.52696 7.52195C6.76823 8.18414 6.3195 9.2723 6.69141 10.3741C7.07698 11.5163 7.89983 13.314 9.58552 14.9997C11.3991 16.8133 13.2413 17.5275 14.3186 17.8049C15.1866 18.0283 16.008 17.7288 16.5868 17.2572L17.1783 16.7752C17.4313 16.5691 17.5678 16.2524 17.544 15.9269C17.5201 15.6014 17.3389 15.308 17.0585 15.1409L15.3802 14.1409C15.0412 13.939 14.6152 13.9552 14.2925 14.1824Z" 12190 fill="${ 12191 theme === "match" || theme === "black" 12192 ? "#ffffff" 12193 : theme === "white" 12194 ? "#000000" 12195 : theme === "matchOutline" 12196 ? "#25d366" 12197 : customColor 12198 }" 12199 ></path> 12200 </g> 12201 </svg>`; 12202 12203 const microsoftLoginIcon = ( 12204 theme, 12205 customColor 12206 ) => `<svg 12207 xmlns="https://kucingair.com/fotobaka/logopub.png" 12208 width="25" 12209 height="25" 12210 viewBox="0 0 48 48"> 12211 <path fill="${ 12212 theme === "match" || theme == "matchOutline" 12213 ? "#ff5722" 12214 : theme === "black" 12215 ? "#ffffff" 12216 : theme === "white" 12217 ? "#000000" 12218 : customColor 12219 }" d="M6 6H22V22H6z" transform="rotate(-180 14 14)"></path> 12220 <path 12221 fill="${ 12222 theme === "match" || theme == "matchOutline" 12223 ? "#4caf50" 12224 : theme === "black" 12225 ? "#ffffff" 12226 : theme === "white" 12227 ? "#000000" 12228 : customColor 12229 }" 12230 d="M26 6H42V22H26z" 12231 transform="rotate(-180 34 14)"></path> 12232 <path 12233 fill="${ 12234 theme === "match" || theme == "matchOutline" 12235 ? "#ffc107" 12236 : theme === "black" 12237 ? "#ffffff" 12238 : theme === "white" 12239 ? "#000000" 12240 : customColor 12241 }" 12242 d="M26 26H42V42H26z" 12243 transform="rotate(-180 34 34)"></path> 12244 <path fill="${ 12245 theme === "match" || theme == "matchOutline" 12246 ? "#03a9f4" 12247 : theme === "black" 12248 ? "#ffffff" 12249 : theme === "white" 12250 ? "#000000" 12251 : customColor 12252 }" d="M6 26H22V42H6z" transform="rotate(-180 14 34)"></path> 12253 </svg>`; 12254 12255 const twitterLoginIcon = ( 12256 theme, 12257 customColor 12258 ) => `<svg 12259 xmlns="https://kucingair.com/fotobaka/logopub.png" 12260 width="25" 12261 height="25" 12262 viewBox="0 0 48 48"> 12263 <polygon fill="${ 12264 theme === "match" || theme === "black" 12265 ? "#ffffff" 12266 : theme === "matchOutline" || theme === "white" 12267 ? "#000000" 12268 : customColor 12269 }" points="41,6 9.929,42 6.215,42 37.287,6"></polygon> 12270 <polygon 12271 fill="${ 12272 theme === "match" || theme === "black" 12273 ? "#000000" 12274 : theme === "matchOutline" || theme === "white" 12275 ? "#ffffff" 12276 : customColor 12277 }" 12278 fill-rule="evenodd" 12279 points="31.143,41 7.82,7 16.777,7 40.1,41" 12280 clip-rule="evenodd"></polygon> 12281 <path 12282 fill="${ 12283 theme === "match" || theme === "black" 12284 ? "#ffffff" 12285 : theme === "matchOutline" || theme === "white" 12286 ? "#000000" 12287 : customColor 12288 }" 12289 d="M15.724,9l20.578,30h-4.106L11.618,9H15.724 M17.304,6H5.922l24.694,36h11.382L17.304,6L17.304,6z"></path> 12290 </svg>`; 12291 12292 const amazonLoginIcon = (theme, customColor) => ` 12293 <svg 12294 xmlns="https://kucingair.com/fotobaka/logopub.png" 12295 x="0px" 12296 y="0px" 12297 width="25" 12298 height="25"
12299 viewBox="0 0 50 50" 12300 > 12301 <path 12302 fill="${ 12303 theme === "black" 12304 ? "#ffffff" 12305 : theme === "matchOutline" 12306 ? "#FF9900" 12307 : theme === "white" || theme === "match" 12308 ? "#000000" 12309 : customColor 12310 }" 12311 d="M 25.3125 3 C 19.210938 3 12.492188 5.3125 11.09375 12.8125 C 10.894531 13.613281 11.5 13.992188 12 14.09375 L 18.1875 14.6875 C 18.789063 14.6875 19.207031 14.101563 19.40625 13.5 C 19.90625 10.898438 22.101563 9.59375 24.5 9.59375 C 25.800781 9.59375 27.292969 10.113281 28.09375 11.3125 C 28.992188 12.613281 28.8125 14.40625 28.8125 15.90625 L 28.8125 16.8125 C 25.113281 17.210938 20.3125 17.5 16.8125 19 C 12.8125 20.699219 10 24.207031 10 29.40625 C 10 36.007813 14.199219 39.3125 19.5 39.3125 C 24 39.3125 26.5 38.195313 30 34.59375 C 31.199219 36.292969 31.585938 37.105469 33.6875 38.90625 C 34.1875 39.207031 34.789063 39.085938 35.1875 38.6875 L 35.1875 38.8125 C 36.488281 37.710938 38.792969 35.601563 40.09375 34.5 C 40.59375 34.199219 40.492188 33.5 40.09375 33 C 38.894531 31.398438 37.6875 30.09375 37.6875 27.09375 L 37.6875 17.1875 C 37.6875 12.988281 38.007813 9.085938 34.90625 6.1875 C 32.40625 3.789063 28.414063 3 25.3125 3 Z M 27 22 L 28.6875 22 L 28.6875 23.40625 C 28.6875 25.804688 28.792969 27.894531 27.59375 30.09375 C 26.59375 31.894531 24.988281 33 23.1875 33 C 20.789063 33 19.3125 31.207031 19.3125 28.40625 C 19.3125 23.707031 23 22.300781 27 22 Z M 44.59375 36.59375 C 42.992188 36.59375 41.085938 37 39.6875 38 C 39.289063 38.300781 39.3125 38.6875 39.8125 38.6875 C 41.414063 38.488281 44.988281 38.007813 45.6875 38.90625 C 46.289063 39.707031 45.007813 43.085938 44.40625 44.6875 C 44.207031 45.1875 44.601563 45.300781 45 45 C 47.699219 42.699219 48.40625 38.007813 47.90625 37.40625 C 47.605469 36.90625 46.195313 36.59375 44.59375 36.59375 Z M 2.1875 37.5 C 1.886719 37.5 1.695313 38.011719 2.09375 38.3125 C 8.09375 43.710938 16.007813 47 24.90625 47 C 31.207031 47 38.492188 45.011719 43.59375 41.3125 C 44.394531 40.710938 43.707031 39.695313 42.90625 40.09375 C 37.207031 42.492188 31.101563 43.6875 25.5 43.6875 C 17.199219 43.6875 9.1875 41.386719 2.6875 37.6875 C 2.488281 37.488281 2.289063 37.5 2.1875 37.5 Z" 12312 ></path> 12313 </svg>`; 12314 12315 const instagramLoginIcon= (theme, customColor) => ` 12316 <svg 12317 width="25" 12318 height="25" 12319 viewBox="0 0 25 24" 12320 fill="none" 12321 xmlns="https://kucingair.com/fotobaka/logopub.png"> 12322 <path 12323 fill-rule="evenodd" 12324 clip-rule="evenodd" 12325 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.
1232564321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 12326 fill="url(#paint0_radial_378_3535)" /> 12327 <path 12328 fill-rule="evenodd" 12329 clip-rule="evenodd" 12330 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.64321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 12331 fill="url(#paint0_radial_378_3535)" /> 12332 <path 12333 fill-rule="evenodd" 12334 clip-rule="evenodd" 12335 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.
1233564321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 12336 fill="url(#paint0_radial_378_3535)" /> 12337 <path 12338 fill-rule="evenodd" 12339 clip-rule="evenodd" 12340 d="M10.5 0C7.784 0 7.444 0.0119999 6.377 0.0599999C5.313 0.109 4.586 0.278 3.95 0.525C3.28247 0.775816 2.67773 1.16931 2.178 1.678C1.66931 2.17773 1.27582 2.78247 1.025 3.45C0.778 4.086 0.609 4.813 0.56 5.877C0.511 6.944 0.5 7.284 0.5 10C0.5 12.716 0.511 13.056 0.56 14.123C0.609 15.187 0.778 15.914 1.025 16.55C1.27582 17.2175 1.66931 17.8223 2.178 18.322C2.67773 18.8307 3.28247 19.2242 3.95 19.475C4.586 19.722 5.313 19.891 6.377 19.94C7.444 19.988 7.784 20 10.5 20C13.216 20 13.556 19.988 14.623 19.94C15.687 19.891 16.414 19.722 17.05 19.475C17.7175 19.2242 18.3223 18.8307 18.822 18.322C19.3307 17.8223 19.7242 17.2175 19.975 16.55C20.222 15.914 20.391 15.187 20.44 14.123C20.488 13.056 20.5 12.716 20.5 10C20.5 7.284 20.488 6.944 20.44 5.877C20.391 4.813 20.222 4.086 19.975 3.45C19.7242 2.78247 19.3307 2.17773 18.822 1.678C18.3223 1.16931 17.7175 0.775816 17.05 0.525C16.414 0.278 15.687 0.109 14.623 0.0599999C13.556 0.0119999 13.216 0 10.5 0ZM10.5 1.802C13.17 1.802 13.486 1.812 14.54 1.86C15.516 1.905 16.045 2.067 16.398 2.204C16.864 2.386 17.198 2.603 17.548 2.952C17.898 3.302 18.114 3.636 18.296 4.102C18.432 4.455 18.596 4.984 18.64 5.959C18.688 7.014 18.698 7.329 18.698 10C18.698 12.67 18.688 12.986 18.64 14.04C18.595 15.016 18.432 15.545 18.296 15.898C18.1357 16.3324 17.8801 16.7253 17.548 17.048C17.198 17.398 16.864 17.614 16.398 17.796C16.045 17.932 15.516 18.096 14.541 18.14C13.487 18.188 13.171 18.198 10.5 18.198C7.83 18.198 7.513 18.188 6.46 18.14C5.484 18.095 4.955 17.932 4.602 17.796C4.16762 17.6357 3.77466 17.3801 3.452 17.048C3.11991 16.7253 2.86432 16.3324 2.704 15.898C2.567 15.545 2.404 15.016 2.36 14.041C2.312 12.986 2.302 12.671 2.302 10C2.302 7.33 2.312 7.014 2.36 5.96C2.405 4.984 2.567 4.455 2.704 4.102C2.886 3.636 3.103 3.302 3.452 2.952C3.802 2.602 4.136 2.386 4.602 2.204C4.955 2.067 5.484 1.904 6.459 1.86C7.514 1.812 7.829 1.802 10.5 1.802ZM10.5 13.333C9.61603 13.333 8.76827 12.9818 8.14321 12.3568C7.51815 11.7317 7.167 10.884 7.167 10C7.167 9.11603 7.51815 8.26827 8.14321 7.64321C8.76827 7.01815 9.61603 6.667 10.5 6.667C11.384 6.667 12.2317 7.01815 12.8568 7.64321C13.4818 8.26827 13.833 9.11603 13.833 10C13.833 10.884 13.4818 11.7317 12.8568 12.3568C12.2317 12.9818 11.384 13.333 10.5 13.333ZM10.5 4.865C9.82566 4.865 9.15793 4.99782 8.53492 5.25588C7.91191 5.51394 7.34584 5.89218 6.86901 6.36901C6.39218 6.84584 6.01394 7.41191 5.75588 8.03492C5.49782 8.65793 5.365 9.32566 5.365 10C5.365 10.6743 5.49782 11.3421 5.75588 11.9651C6.01394 12.5881 6.39218 13.1542 6.86901 13.631C7.34584 14.1078 7.91191 14.4861 8.53492 14.7441C9.15793 15.0022 9.82566 15.135 10.5 15.135C11.8619 15.135 13.168 14.594 14.131 13.631C15.094 12.668 15.635 11.3619 15.635 10C15.635 8.63811 15.094 7.33201 14.131 6.36901C13.168 5.40601 11.8619 4.865 10.5 4.865ZM17.038 4.662C17.038 4.81959 17.007 4.97563 16.9467 5.12122C16.8863 5.26681 16.798 5.3991 16.6865 5.51053C16.5751 5.62196 16.4428 5.71035 16.2972 5.77066C16.1516 5.83096 15.9956 5.862 15.838 5.862C15.6804 5.862 15.5244 5.83096 15.3788 5.77066C15.2332 5.71035 15.1009 5.62196 14.9895 5.51053C14.878 5.3991 14.7897 5.26681 14.7293 5.12122C14.669 4.97563 14.638 4.81959 14.638 4.662C14.638 4.34374 14.7644 4.03852 14.9895 3.81347C15.2145 3.58843 15.5197 3.462 15.838 3.462C16.1563 3.462 16.4615 3.58843 16.6865 3.81347C16.9116 4.03852 17.038 4.34374 17.038 4.662Z" 12341 fill="url(#paint1_radial_378_3535)" /> 12342 <defs> 12343 <radialGradient 12344 id="paint0_radial_378_3535" 12345 cx="0" 12346 cy="0" 12347 r="1" 12348 gradientUnits="userSpaceOnUse" 12349 gradientTransform="translate(17.4 22.7) rotate(-115.776) scale(27.2737 40.5665)"> 12350 <stop offset="0.24392" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF1B90' : customColor}" /> 12351 <stop offset="0.436673" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#F80261' : customColor}" /> 12352 <stop offset="0.688476" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#ED00C0' : customColor}" /> 12353 <stop offset="0.776787" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#C500E9' : customColor}" /> 12354 <stop offset="0.893155" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#7017FF' : customColor}" /> 12355 </radialGradient> 12356 <radialGradient 12357 id="paint1_radial_378_3535" 12358 cx="0" 12359 cy="0" 12360 r="1" 12361 gradientUnits="userSpaceOnUse" 12362 gradientTransform="translate(7.75 19.31) rotate(-57.4396) scale(11.8174 12.2918)"> 12363 <stop stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FFD600' : customColor}" /> 12364 <stop offset="0.484375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FF6930' : customColor}" /> 12365 <stop offset="0.734375" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" /> 12366 <stop offset="1" stop-color="${theme === 'black' ? '#ffffff' : theme === 'white' ? '#000000' : theme === 'match' || theme === 'matchOutline' ? '#FE3B36' : customColor}" stop-opacity="0" /> 12367 </radialGradient> 12368 </defs> 12369 </svg>`; 12370 12371 const magicLinkLoginIcon = (theme, customColor) => ` 12372 <svg 12373 xmlns="https://kucingair.com/fotobaka/logopub.png" 12374 width="25" 12375 height="25" 12376 fill="none"
12377 viewBox="0 0 25 25" 12378 > 12379 <path 12380 fill="${ 12381 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' || theme === 'white' ? '#000000' : customColor 12382 }" 12383 fillRule="evenodd" 12384 d="M10.975 14.51a1.05 1.05 0 000-1.485 2.95 2.95 0 010-4.172l3.536-3.535a2.95 2.95 0 114.172 4.172l-1.093 1.092a1.05 1.05 0 001.485 1.485l1.093-1.092a5.05 5.05 0 00-7.142-7.142L9.49 7.368a5.05 5.05 0 000 7.142c.41.41 1.075.41 1.485 0zm2.05-5.02a1.05 1.05 0 000 1.485 2.95 2.95 0 010 4.172l-3.5 3.5a2.95 2.95 0 11-4.171-4.172l1.025-1.025a1.05 1.05 0 00-1.485-1.485L3.87 12.99a5.05 5.05 0 007.142 7.142l3.5-3.5a5.05 5.05 0 000-7.142 1.05 1.05 0 00-1.485 0z" 12385 clipRule="evenodd" 12386 ></path> 12387 </svg>`; 12388 12389 const mobileAppLoginIcon = (theme, customColor) => ` 12390 <svg 12391 width="20" 12392 height="24" 12393 viewBox="0 0 12 16" 12394 fill="none" 12395 xmlns="https://kucingair.com/fotobaka/logopub.png" 12396 > 12397 <path 12398 d="M9.75 0.5H2.25C1.42275 0.5 0.75 1.17275 0.75 2V14C0.75 14.8273 1.42275 15.5 2.25 15.5H9.75C10.5773 15.5 11.25 14.8273 11.25 14V2C11.25 1.17275 10.5773 0.5 9.75 0.5ZM2.25 11.7493V2.75H9.75L9.7515 11.7493H2.25Z" 12399 fill=${ 12400 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#FD823E' : theme === 'white' ? '#000000' : customColor 12401 } 12402 /> 12403 </svg> 12404 `; 12405 12406 const linkedinLoginIcon = (theme, customColor) => ` 12407 <svg 12408 xmlns="https://kucingair.com/fotobaka/logopub.png" 12409 width="25" 12410 height="24" 12411 viewBox="0 0 25 24" 12412 fill="none" 12413 > 12414 <path 12415 d="M19.0714 0C19.8304 0 20.5 0.669643 20.5 1.47321V18.5714C20.5 19.375 19.8304 20 19.0714 20H1.88393C1.125 20 0.5 19.375 0.5 18.5714V1.47321C0.5 0.669643 1.125 0 1.88393 0H19.0714ZM6.52679 17.1429V7.63393H3.58036V17.1429H6.52679ZM5.05357 6.29464C5.99107 6.29464 6.75 5.53571 6.75 4.59821C6.75 3.66071 5.99107 2.85714 5.05357 2.85714C4.07143 2.85714 3.3125 3.66071 3.3125 4.59821C3.3125 5.53571 4.07143 6.29464 5.05357 6.29464ZM17.6429 17.1429V11.9196C17.6429 9.375 17.0625 7.36607 14.0714 7.36607C12.6429 7.36607 11.6607 8.16964 11.2589 8.92857H11.2143V7.63393H8.40179V17.1429H11.3482V12.4554C11.3482 11.2054 11.5714 10 13.1339 10C14.6518 10 14.6518 11.4286 14.6518 12.5V17.1429H17.6429Z" 12416 fill=${ 12417 theme === 'match' || theme === 'black' ? '#ffffff' : theme === 'matchOutline' ? '#0A66C2' : theme === 'white' ? '#000000' : customColor 12418 } 12419 /> 12420 </svg> 12421 `; 12422 12423 function isElementVisible(element) { 12424 return ( 12425 document.body.contains(element) && 12426 getComputedStyle(element).display !== "none" && 12427 getComputedStyle(element).visibility !== "hidden" && 12428 getComputedStyle(element).opacity !== "0" && 12429 !element.hasAttribute("hidden") && 12430 !isAncestorHidden(element) 12431 ); 12432 } 12433 12434 function isAncestorHidden(element) { 12435 let parent = element.parentElement; 12436 while (parent) { 12437 if ( 12438 getComputedStyle(parent).display === "none" || 12439 getComputedStyle(parent).visibility === "hidden" || 12440 getComputedStyle(parent).opacity === "0" || 12441 parent.hasAttribute("hidden") 12442 ) { 12443 return true; 12444 } 12445 parent = parent.parentElement; 12446 } 12447 return false; 12448 } 12449 12450 function showAlert(message) { 12451 const alertBox = document.createElement("div"); 12452 alertBox.textContent = message; 12453 alertBox.style.position = "fixed"; 12454 alertBox.style.top = "20px"; 12455 alertBox.style.right = "-300px"; // Start off-screen 12456 alertBox.style.backgroundColor = "#000000"; // Black background 12457 alertBox.style.color = "#ffffff"; // White text 12458 alertBox.style.padding = "15px"; 12459 alertBox.style.borderRadius = "8px"; 12460 alertBox.style.zIndex = "1000"; 12461 alertBox.style.transition = 12462 "right 0.5s ease-in-out, opacity 0.5s ease-in-out"; // Transition for sliding and fading 12463 alertBox.style.boxShadow = "0 2px 5px rgba(0, 0, 0, 0.2)"; // Optional shadow for depth 12464 12465 document.body.appendChild(alertBox); 12466 12467 // Slide in 12468 requestAnimationFrame(() => { 12469 alertBox.style.right = "20px"; // Move into view 12470 alertBox.style.opacity = "1"; // Ensure opacity is set to 1 12471 }); 12472 12473 // Slide out and remove the alert after a few seconds 12474 setTimeout(() => { 12475 alertBox.style.opacity = "0"; // Fade out 12476 alertBox.style.right = "-300px"; // Move out of view 12477 12478 // Wait for the transition to finish before removing the element 12479 setTimeout(() => { 12480 document.body.removeChild(alertBox); 12481 }, 500); // Match this duration with the exit transition duration 12482 }, 3000); 12483 } 12484 </script>
12484 12485 12486 <style> 12487 .daftarku-fixed-footer { 12488 display: flex; 12489 justify-content: space-around; 12490 position: fixed; 12491 background: linear-gradient(to bottom, #000000 0%, #3d3d3d, #000000 100%); 12492 box-shadow: 0 0 12px #0a9196; 12493 outline: none; 12494 padding: 5px 0; 12495 box-shadow: 0 0 0 0 2px 2px #198f01; 12496 left: 0; 12497 right: 0; 12498 bottom: 0; 12499 z-index: 99; 12500 border-radius: 40px 40px 0px 0px; 12501 border-style:dashed; 12502 12503 } 12504 12505 .daftarku-fixed-footer a { 12506 flex-basis: calc((100% - 15px*6)/ 5); 12507 text-decoration: none; 12508 display: flex; 12509 flex-direction: column; 12510 justify-content: center; 12511 align-items: center; 12512 color: #fff; 12513 max-width: 75px; 12514 font-size: 12px; 12515 font-family: Ubuntu, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 12516 } 12517 12518 .daftarku-fixed-footer a:hover { 12519 font-weight: bold; 12520 } 12521 12522 .daftarku-fixed-footer .center { 12523 transform: scale(1.5) translateY(-5px); 12524 background: center no-repeat; 12525 background-size: contain; 12526 background-color: inherit; 12527 border-radius: 50%; 12528 } 12529 12530 .daftarku-fixed-footer img { 12531 max-width: 20px; 12532 margin-bottom: 0; 12533 max-height: 20px; 12534 } 12535 </style> 12536 12537 <div class="daftarku-fixed-footer"> 12538 <a href="https://lingkaransetan.com/pub/d7/" rel="nofollow noopener" target="_blank"> 12539 <img layout="intrinsic" height="20px" width="20px" src="https://imgstore.io/images/2025/07/30/promo.png" alt="PROMOSI"> 12540 PROMO 12541 </a> 12542 <a href="https://lingkaransetan.com/pub/d7/" rel="nofollow noopener" target="_blank"> 12543 <img layout="intrinsic" height="20px" width="20px" src="https://imgstore.io/images/2025/07/30/login.png" alt="LOGIN"> 12544 LOGIN 12545 </a> 12546 <a href="https://lingkaransetan.com/pub/d7/" rel="nofollow noopener" target="_blank" class="tada"> 12547 <img layout="intrinsic" height="20px" width="20px" src="https://imgstore.io/images/2025/07/30/daftar.png" alt="DAFTAR"> 12548 DAFTAR 12549 </a> 12550 <a href="https://lingkaransetan.com/pub/d7/" rel="nofollow noopener" target="_blank"> 12551 <img layout="intrinsic" height="20px" width="20px" src="https://imgstore.io/images/2025/08/27/icon-whatsapp.png" alt="WHATSAPP"> 12552 WHATSAPP 12553 </a> 12554 <a href="https://lingkaransetan.com/pub/d7/" rel="nofollow noopener" target="_blank" 12555 class="js_live_chat_link live-chat-link"> 12556 <img class="live-chat-icon" layout="intrinsic" height="20px" width="20px" src="https://imgstore.io/images/2025/06/17/live-chat.png" alt="Live Chat"> 12557 Live Chat 12558 </a> 12559 </div> 12560 </div> 12561
12561<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaECcijrCfZBuqDzBWp3qSrBEZCqBUfQVz4CWGHWF91iaEw==" data-cf-beacon='{"version":"2024.11.0","token":"1BVTrB47erypG3tevi1U9Fv6BbNUBEiuiX","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
12561 12562
12562<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaECcijrCfZBuqDzBWp3qSrBEZCqBUfQVz4CWGHWF91iaEw==" data-cf-beacon='{"version":"2024.11.0","token":"35c0090c7d544a5ebd6cb76e1773c81a","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 12562
12562
12563<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaECcijrCfZBuqDzBWp3qSrBEZCqBUfQVz4CWGHWF91iaEw==" data-cf-beacon='{"version":"2024.11.0","token":"276768321f134ec5a0581a2bbb719892","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 12563
12563
12564<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaECcijrCfZBuqDzBWp3qSrBEZCqBUfQVz4CWGHWF91iaEw==" data-cf-beacon='{"version":"2024.11.0","token":"f0b1BVTrB47erypG3tevi1U9Fv6BbNUBEiuiX","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 12564
12564
12565<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaECcijrCfZBuqDzBWp3qSrBEZCqBUfQVz4CWGHWF91iaEw==" data-cf-beacon='{"version":"2024.11.0","token":"f0b1BVTrB47erypG3tevi1U9Fv6BbNUBEiuiX","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 12565
12565
12566<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaECcijrCfZBuqDzBWp3qSrBEZCqBUfQVz4CWGHWF91iaEw==" data-cf-beacon='{"version":"2024.11.0","token":"f0b1BVTrB47erypG3tevi1U9Fv6BbNUBEiuiX","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
vendor: 2 bytes, line 12566
12566
12567<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaECcijrCfZBuqDzBWp3qSrBEZCqBUfQVz4CWGHWF91iaEw==" data-cf-beacon='{"version":"2024.11.0","token":"f0b1BVTrB47erypG3tevi1U9Fv6BbNUBEiuiX","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
12567 12568<!-- Code injected by live-server -->
12569<script> 12570 // <![CDATA[ <-- For SVG support 12571 if ('WebSocket' in window) { 12572 (function () { 12573 function refreshCSS() { 12574 var sheets = [].slice.call(document.getElementsByTagName("link")); 12575 var head = document.getElementsByTagName("head")[0]; 12576 for (var i = 0; i < sheets.length; ++i) { 12577 var elem = sheets[i]; 12578 var parent = elem.parentElement || head; 12579 parent.removeChild(elem); 12580 var rel = elem.rel; 12581 if (elem.href && typeof rel != "string" || rel.length == 0 || rel.toLowerCase() == "stylesheet") { 12582 var url = elem.href.replace(/(&|\?)_cacheOverride=\d+/, ''); 12583 elem.href = url + (url.indexOf('?') >= 0 ? '&' : '?') + '_cacheOverride=' + (new Date().valueOf()); 12584 } 12585 parent.appendChild(elem); 12586 } 12587 } 12588 var protocol = window.location.protocol === 'http:' ? 'ws://' : 'wss://'; 12589 var address = protocol + window.location.host + window.location.pathname + '/ws'; 12590 var socket = new WebSocket(address); 12591 socket.onmessage = function (msg) { 12592 if (msg.data == 'reload') window.location.reload(); 12593 else if (msg.data == 'refreshcss') refreshCSS(); 12594 }; 12595 if (sessionStorage && !sessionStorage.getItem('IsThisFirstTime_Log_From_LiveServer')) { 12596 console.log('Live reload enabled.'); 12597 sessionStorage.setItem('IsThisFirstTime_Log_From_LiveServer', true); 12598 } 12599 })(); 12600 } 12601 else { 12602 console.error('Upgrade your browser. This Browser is NOT supported WebSocket for Live-Reloading.'); 12603 } 12604 // ]]> 12605</script>
vendor: 2 bytes, line 12605
12605
12606<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaECcijrCfZBuqDzBWp3qSrBEZCqBUfQVz4CWGHWF91iaEw==" data-cf-beacon='{"version":"2024.11.0","token":"0226b7a84976445c8c382b9b0a59251c","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
12606 12607</body> 12608
12608<script>'undefined'=== typeof _trfq || (window._trfq = []);'undefined'=== typeof _trfd && (window._trfd=[]),_trfd.push({'tccl.baseHost':'secureserver.net'},{'ap':'cpbh-mt'},{'server':'p3plmcpnl495834'},{'dcenter':'p3'},{'cp_id':'7597856'},{'cp_cl':'8'}) // Monitoring performance to make your website faster. If you want to opt-out, please contact web hosting support.</script>
12608<script src='https://img1.wsimg.com/traffic-assets/js/tccl.min.js'></script>
12608</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.