Our Beautiful Store is open at 180 East Route 59 #2 Spring Valley, New York 10977
SKU: ASA-ILLUME-45253433000
ILLUME SEASONAL WINTER WHITE DEMI TIN CANDLE 3OZ
$13.99
ILLUME SEASONAL WINTER WHITE DEMI TIN CANDLE 3OZ
is backordered and will ship as soon as it is back in stock.
Our playful mini tin offers just as much fragrance in a compact and portable package. Crafted from our exclusive vegetable, soy and paraffin wax blend with a cotton wick.
Details
Size : 3oz
Fragrance Note : WINTER WHITE
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();