Scandinavian Viking Compass Wooden Wall Decoration

$69.99
Size:  12"
Quantity

Description

🛡️ Feel the Power of Nordic Legends and Protect Your Journey!
Inspired by the Vegvísir compass, this wooden carving masterpiece embodies the essence of Nordic culture and ancient runes, symbolizing guidance and protection. It’s not just a unique home decoration—it’s a guardian from Viking mythology! ✨


Detailed Information 

  • Design Features:

    • Vegvísir compass pattern, symbolizing finding your way home, no matter the storm.
    • Surrounded by intricate runes, reflecting the depth and mystery of Nordic culture.
  • Premium Quality Materials:

    • Crafted from natural wood with clear, elegant grain patterns for long-lasting durability.
    • Finely hand-carved, each piece is unique and brimming with craftsmanship.
  • Available in Multiple Sizes:

    • 12-inch: Bold and impressive, a focal point in any living space.

  • Versatile Use:

    • Suitable for living rooms, studies, offices, hallways, and more, showcasing your unique artistic taste.
    • An exceptional gift for friends and family who love Nordic culture, history, or the spirit of adventure.
  • Cultural Significance:

    • The Vegvísir compass represents direction and protection, adding cultural depth and spiritual energy to your home.

Infuse your home with the soul of art and faith through the power of Nordic Viking heritage! 🌌

class SpzCustomDiscountFlashsale extends SPZ.BaseElement { constructor(element) { super(element); this.xhr_ = SPZServices.xhrFor(this.win); this.getFlashSaleApi = "\/api\/storefront\/promotion\/flashsale\/display_setting\/product_setting"; this.timer = null; this.variantId = "faa1a589-d43e-4ca0-abca-51158622710f"; // 促销活动数据 this.flashsaleData = {} } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.templates_ = SPZServices.templatesForDoc(); this.viewport_ = this.getViewport(); // 挂载bind函数 解决this指向问题 this.render = this.render.bind(this); this.resize = this.resize.bind(this); this.switchVariant = this.switchVariant.bind(this); } mountCallback() { // 获取数据 this.getData(); this.element.onclick = (e) => { const cur = this.win.document.querySelector(".app_discount_flashsale_desc"); if (this.flashsaleData.product_setting.is_redirection && appDiscountUtils.inProductBody(this.element) && e.target !== cur) { this.win.open(`/promotions/discount-default/${this.flashsaleData.discount_info.id}`); } } // 绑定 this.viewport_.onResize(this.resize); // 监听子款式切换,重新渲染 this.win.document.addEventListener('dj.variantChange', this.switchVariant); } unmountCallback() { // 解绑 this.viewport_.removeResize(this.resize); this.win.document.removeEventListener('dj.variantChange', this.switchVariant); // 清除定时器 if (this.timer) { clearTimeout(this.timer); this.timer = null; } } resize() { if (this.timer) { clearTimeout(this.timer) this.timer = null; } this.timer = setTimeout(() => { this.render(); }, 200) } switchVariant(event) { const variant = event.detail.selected; if (variant.product_id == 'bfd7f3e3-cf42-4f9e-8d23-d9c6d294ecb4' && variant.id != this.variantId) { this.variantId = variant.id; this.getData(); } } getData() { const reqBody = { product_id: "bfd7f3e3-cf42-4f9e-8d23-d9c6d294ecb4", product_type: "default", variant_id: this.variantId } this.flashsaleData = {}; this.win.fetch(this.getFlashSaleApi, { method: "POST", body: JSON.stringify(reqBody), headers: { "Content-Type": "application/json" } }).then(async (response) => { if (response.ok) { this.flashsaleData = await response.json(); this.render(); } else { this.clearDom(); } }).catch(err => { this.clearDom(); }); } clearDom() { const children = this.element.querySelector('*:not(template)'); children && SPZCore.Dom.removeElement(children); } render() { this.templates_ .findAndRenderTemplate(this.element, { isMobile: appDiscountUtils.judgeMobile(), isRTL: appDiscountUtils.judgeRTL(), inProductDetail: appDiscountUtils.inProductBody(this.element), flashsaleData: this.flashsaleData, image_domain: this.win.SHOPLAZZA.image_domain, }) .then((el) => { this.clearDom(); this.element.appendChild(el); }) } } SPZ.defineElement('spz-custom-discount-flashsale', SpzCustomDiscountFlashsale);