Woyuosn Ocean Breeze Splashland
Woyuosn Ocean Breeze Splashland
Woyuosn Ocean Breeze Splashland
Woyuosn Ocean Breeze Splashland
Woyuosn Ocean Breeze Splashland
Woyuosn Ocean Breeze Splashland
Woyuosn Ocean Breeze Splashland
Woyuosn Ocean Breeze Splashland
Woyuosn Ocean Breeze Splashland
7/9
Woyuosn Ocean Breeze Splashland
Woyuosn Ocean Breeze Splashland
Woyuosn Ocean Breeze Splashland
Woyuosn Ocean Breeze Splashland
Woyuosn Ocean Breeze Splashland
Woyuosn Ocean Breeze Splashland
Woyuosn Ocean Breeze Splashland
Woyuosn Ocean Breeze Splashland
Woyuosn Ocean Breeze Splashland
7/9

Woyuosn Ocean Breeze Splashland

$13.99
$25.99
Save $12.00
1 sold
Size
Please select a size
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:

Ultimate Interactive Experience

This sensory water mat stimulates your cat's hunting instincts with fish-shaped toys, making playtime an exciting ocean chase.

Summer Coolness Solution

Acts as a private pool, providing cool relief and tranquility during hot days.

Safe and Easy to Use

Simple to install with one inflation and water filling port. Easy to empty, fold, and store.

Material:

Durable, non-toxic, and wear-resistant PVC material.

Size & Weight:

Available in 60*60cm (23.6*23.6 inches) and 100*100cm (39.4*39.4 inches).