Skip to content
Left
Continue shopping
Your Order
You have no items in your cart
You might like
Product
$10.00
Add to cart
Facebook
Youtube
Instagram
Pinterest
Twitter
Our Beautiful Store is open at 180 East Route 59 #2 Spring Valley, New York 10977
Offers
Deal of the Week ( USE Coupon Code TAKE25)
Clearance Sale (USE Coupon Code TAKE20)
Gifts
Gift Baskets
Gift Set
Baby Girl Gifts
Diaper Cakes
Baby Boy Gifts
Body & Bath
Christmas Gift Basket
Corporate Baskets
Gift Basket for Kids
Gift Certificate
Sympathy Baskets
Candles
Diffusers
Soaps
Shop by Brand
Shop by Category
Home
/
DUBOIS FRERE
DUBOIS FRERE
Dubois Frere Candle - Aromatherapy, Long Lasting Luxury Glass Candle (Feu de Bois)
$49.99
Dubois Frere Candle - Aromatherapy, Long Lasting Luxury Glass Candle Gifts (Soleil)
$49.99
Dubois Frere Candle - Aromatherapy, Long Lasting Luxury Glass Candle Gifts (Desire)
$49.99
static debounce(func, timeout = 300) { let timer; return (...args) => { clearTimeout(timer); timer = setTimeout(() => { func.apply(this, args); }, timeout); }; } loadLazyImage(img) { const imgLazySrc = img.getAttribute('data-lazy-src'), imgLazyBg = img.getAttribute('data-lazy-bg'); if(!imgLazySrc && !imgLazyBg) { console.warn('CC', 'Unable to load lazy image, no URL specified', img); return; } const imageLoadHandler = (newSrc) => { if(imgLazySrc) { img.setAttribute('src', newSrc); } else { img.style.backgroundImage = `url('${newSrc}')`; } // When images are lazy loaded, add a class to any text shadow containers const closestTextShadow = img.closest('.has-tint--shadow'); if (closestTextShadow) { closestTextShadow.classList.add('has-tint--shadow-in'); } // Remove lazy placeholder if (img.parentElement.classList.contains('lazyload--placeholder')) { img.parentElement.classList.remove('lazyload--placeholder'); } img.setAttribute('data-lazy-loaded', true); } // Find the closest parent with a width let imgWidth = img.clientWidth; if (imgWidth === 0) { let getWidth = function (imgParent) { return imgParent.clientWidth > 0 ? imgParent.clientWidth : getWidth(imgParent.parentElement); } imgWidth = getWidth(img.parentElement); } // Get the nearest width which is higher than this images width let closestWidth = 2048; for (let num of [80, 120, 180, 220, 300, 360, 460, 540, 720, 900, 1080, 1296, 1512, 1728, 2048]) { if (num > imgWidth) { closestWidth = num; break; } } // Load the image if(imgLazySrc || imgLazyBg){ const imgUrl = imgLazySrc ? imgLazySrc : imgLazyBg, oldSrc = img.getAttribute('src') || img.style.backgroundImage, newSrc = imgUrl.replace('{width}x', closestWidth + (window.devicePixelRatio > 1 || window.innerWidth <= 1024 ? 'x@2x' : 'x')); if (!oldSrc || oldSrc !== newSrc) { const tempImage = new Image(); tempImage.addEventListener('load', () => imageLoadHandler(newSrc)); tempImage.src = newSrc; } } } loadLazyImages(recheckImages) { let selectorSuffix = recheckImages ? '' : ':not([data-lazy-loaded="true"])'; // If image lazy loading is supported if ('loading' in HTMLImageElement.prototype) { document.querySelectorAll(`[data-lazy-src]${selectorSuffix}`).forEach(this.loadLazyImage); if(this.intersectionObserver) { document.querySelectorAll(`[data-lazy-bg]${selectorSuffix}`).forEach(imgBg => { this.intersectionObserver.observe(imgBg); }); } } else if (this.intersectionObserver) { document.querySelectorAll(`[data-lazy-src]${selectorSuffix},[data-lazy-bg]${selectorSuffix}`).forEach(img => { this.intersectionObserver.observe(img); }); } else { // Lazy loading and intersection observer not supported, fallback!! document.querySelectorAll(`[data-lazy-src]${selectorSuffix},[data-lazy-bg]${selectorSuffix}`).forEach(this.loadLazyImage); } } bindObservers() { // Observe scrolling where needed if ('IntersectionObserver' in window) { this.intersectionObserver = new IntersectionObserver( // Observe window resize events window.addEventListener('resize', ImageLazyLoaderInstance.debounce(() => this.loadLazyImages(true))); window.addEventListener("load", () => { // Observe DOM changes const observer = new MutationObserver(ImageLazyLoaderInstance.debounce(() => { this.loadLazyImages(); // Broadcast an event for future usage document.documentElement.dispatchEvent( new CustomEvent('theme:body-dom-change', {bubbles: true, cancelable: false}) ); }, 10)); observer.observe(document.body, { childList: true, subtree: true }); }); } } window.theme = window.theme || {}; theme.imageLazyLoader = new ImageLazyLoaderInstance(); /* Check for full width sections */ theme.assessFullWidthSections = function() { document.querySelectorAll('.has-alt-bg').forEach(elem => elem.classList.remove('last-alt-bg')); document.querySelectorAll('.has-full-width-section').forEach(elem => elem.classList.remove('last-full-width-section')); document.querySelectorAll('#content .shopify-section > .use-alt-bg').forEach(elem => elem.parentElement.classList.add('has-alt-bg')); document.querySelectorAll('#content .shopify-section > .full-width-section').forEach(elem => { const section = elem.parentElement; section.classList.add('has-full-width-section'); if (section.parentElement.lastElementChild === section) { section.classList.add('last-full-width-section'); } }); }; theme.assessFullWidthSections();