Duffel 32l

$28.98
people are viewing this right now
Color:  DARK SAGE/MISTY SAGE
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);

Description

DETAILS

Roomy fit: This bag offers plenty of room for essentials and everyday belongings.

This suitcase is very convenient and light weight. There are many pockets that can store your items, focusing on travel rather than round -trip adventures.You can carry it as a backpack or a duffel. It's got a laptop sleeve, an adjustable and removable divider in the main section, which definitely makes separating clean from dirty easier, and - to avoid frustrated rummaging - there's an external zipped pocket for your passport and phone. It's made from recycled fabric, too.
Style : 52RR
Fabric - Body : 300D Recycled Polyester Tarpaulin With TPU Laminate
Boot : 840D Recycled Ballistic Nylon With Non-PFC DWR (Non-PFC DWR) Finish
Fabric : 300D Recycled Polyester Tarpaulinwith Non-PFC Durable Water-Repellent (Non-PFC DWR) Finish
Dimensions : 57.6 Cm X 35cm X 22cm
Sizes : OS

FEATURES

  • Adjustable divider in the main compartment lets you position your gear, or you can remove the divider completely
  • Comfortable,padded shoulder straps unclip and conceal behind the back panel
  • External, secure-zip, padded laptop sleeve
  • Internal, secure-zip pocket
  • Adjustable, removable divider in the main compartment
  • Small, external, secure-zip pocket
  • External webbing offers many lash points
  • The 32L size is suitable for multi -day travel, providing internal tissue and lightweight and durable main fabrics made of regenerative polyester fibers
  • Lightweight and durable
  • Recycled webbing, buckles and mesh
  • Side handles cause the duffel to sit away from your body so it doesn’t swing into your side when you’re walking
  • External, secure-zip, padded 15" laptop pocket
  • Internal, secure-zip pocket holds small essentials
  • Small, external, secure-zip pocket holds quick-access items such as a passport
  • External water bottle pocket
  • External webbing offers many lash points
  • Comfortable padded shoulder straps unclip and conceal behind the back panel so you can carry it as a backpack or duffel