Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
1/20
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
Crystal Lantern
1/20

Crystal Lantern

$66.95
$199.99
Save $133.04
ColorGold
Please select a color
Quantity
/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);
SKU:
Weight: 0kg
Barcode:

Where longevity and craftsmanship meet. the Lantern Lamp is composed of a cylinder crystal lamp and a metal cage. Pure in form and reassuringly firm in texture. Embedded with a touch sensor to complement a variety of occasions.

photo

Using unique technology. Lantern is a cordless lamp embedded with a touch sensor. that one can adjust its light color output in 3 settings to compliment a variety of occasions.

Dimmable

Inspired by the gentle light of a lantern. it change the light color from the rich warm orange color to the warm light bulb color in four stages. expressing exquisite light color and brightness.

photo

Soft Light

The combination of the transparent crystal acrylic shade and the soft light that changes subtly according to the dimming level brings an ambient and high-quality gorgeousness on the spot.

photo

Water-resistant

With a high level of water-resistant structure. it can be used outdoors and in the bathroom. The table lamp can be lit for up to 50 hours after charging for 6 hours.