Wil je je laptop goed beschermen? Dan raden we je aan om deze te voorzien van een laptop case. Een laptopcase is te omschrijven als een soort tweede huid om de buitenkant van je laptop die in staat is om de ergste klappen van een val of stoot goed te incasseren, zodat eventuele schade aan de laptop kan worden voorkomen. Laptop cases zijn verkrijgbaar in verschillende mooie kleuren en met uiteenlopende mooie prints erop.
Meer tonen
1 - 60 van 807
Filteren en sorteren
sort-ascending
1 - 60 van 807
U lees momenteel pagina 1 Pagina 2 Pagina 3 ... Pagina 14 '; productList.after(div); this.replaceWithUpdate( data.bottomCmsBlock, this.qs('.amshopby-filters-bottom-cms'), 'amshopby-filters-bottom-cms' ); } //top nav already exist into categoryProducts if (!data.categoryProducts || data.categoryProducts.indexOf('block-filter-top') === -1) { if (!this.qs(this.selectors.top_navigation)) { const navNode = document.createElement('div'), topNavNode = document.createElement('div'), maincontent = this.qs('.column.main'); let childNode; navNode.className = 'catalog-topnav amasty-catalog-topnav'; topNavNode.className = 'block-filter-top'; navNode.appendChild(topNavNode); if (this.qs('.search.results')) { childNode = this.qs('.search.results'); } else { childNode = this.qs('#amasty-shopby-product-list'); } if (childNode.parentElement !== maincontent) { return; } maincontent.insertBefore(navNode, childNode); } this.replaceWithUpdate( data.navigationTop, this.qs(this.selectors.top_navigation), 'top_navigation' ); } }, replaceWithUpdate(content, $element, className) { if (content && $element) { const parent = $element.parentNode, regex = /
'+ ''; if (this.qs('.amwidget-children-categories')) { childNode = this.qs('.amwidget-children-categories').parentNode; } maincontent.insertBefore(catNode, childNode); } } const imageElement = this.qs('.category-image'), descrElement = this.qs('.category-description'); if (data.image) { this.replaceWithUpdate( data.image, imageElement, 'category-image' ); } else { if (imageElement) { imageElement.innerHTML = ''; } } if (data.description) { this.replaceWithUpdate( data.description, descrElement, 'category-description' ); } else { if (descrElement) { descrElement.innerHTML = ''; } } this.qs('title').innerHTML = data.title; if (data.categoryData) { let categoryViewSelector = '.category-view'; const nodeT = document.createElement('div'); nodeT.innerHTML = data.categoryData; this.qs(categoryViewSelector).innerHTML = ''; this.replaceWithUpdate( nodeT.querySelector(categoryViewSelector).innerHTML, this.qs(categoryViewSelector + ' div'), 'category-view-data' ); } }, /** * @public * @return {Object} */ getProductBlock() { let $productsWrappers = this.qsa(this.selectors.products_wrapper), $productsWrapper = $productsWrappers[$productsWrappers.length - 1]; if ($productsWrapper.closest('.search.results')) { $productsWrapper = $productsWrapper.closest('.search.results'); } return $productsWrapper; }, scrollUpEvent() { const productList = this.qs(this.selectors.products_wrapper), topNavBlock = this.qs(this.selectors.top_nav); if (this.scrollUp && productList) { const top = this.scrollUp === 1 ? (topNavBlock ? topNavBlock.offsetTop : productList.offsetTop) : 0; window.scrollTo({ top: top, behavior: 'smooth' }) } }, moveTopFiltersToSidebar() { if (!this.qs(this.selectors_top_filters.sidebarList)) { const blockClass = this.qs(this.selectors_top_filters.layeredFilter) ? this.selectors_top_filters.layeredFilter : this.selectors_top_filters.blockFilter, $element = document.querySelector(this.selectors.topNav + ' ' + blockClass); if ($element) { const $sidebar = this.qs(this.selectors_top_filters.sidebar), filterOptions = $element.querySelectorAll('.filter-option'); filterOptions.forEach(filter => { const el = filter.cloneNode(true), input = el.querySelector('[type="radio"], [type="checkbox"]'); if (input) { const name = input.getAttribute('name'); el.classList.add('from-top'); if (!$sidebar.querySelectorAll('[name="'+ name +'"]').length) { $sidebar.querySelector('#layered-filter-block-content').append(el); } } }); } return; } }, /** * @public * @returns {void} */ removeTopFiltersFromSidebar() { const $sidebar = this.qs(this.selectors_top_filters.sidebar); if ($sidebar) { $sidebar.querySelectorAll('.from-top').forEach(filter => { filter.remove(); }); } }, qs(selector) { return document.querySelector(selector); }, qsa(selector) { return document.querySelectorAll(selector); }, stopEvents(e) { e.stopPropagation(); e.preventDefault(); }, serializeForm(form) { const data = new FormData(form) let array = []; for (let [key, value] of data) { array.push({ name: key, value: value }); } return array; }, excludingElement(elements, excluded) { let clearing = [], excludedSelector = this.qs(excluded); elements.forEach(element => { if (element !== excludedSelector) { clearing.push(element); } }); return clearing; }, /** * @public * @param {String} text * @return {String} */ escapeHtml(text) { var map = { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }; return text.replace(/[&<>"']/g, (m) => { return map[m]; }); }, /** * @public * @param {String} link * @param {Boolean} [clearFilter] * @return {void} */ apply(link, clearFilter) { let linkParam; try { this.response = null; this.options.isAjax = true; linkParam = clearFilter ? link : null; link = this.element?.closest('.price-ranges') && link.includes('?') ? link + '&price-ranges=1' : link; if (!this.options.collectFilters && this.options.isAjax === true) { this.prepareTriggerAjax(this.element, linkParam, clearFilter); } else { // eslint-disable-next-line no-lonely-if if (this.options.collectFilters === 1) { this.prepareTriggerAjax(this.element, linkParam); } else { window.location = link; } } } catch (e) { console.error(e); window.location = link; } }, fixDubbleValue(link) { let input = link.closest('div').querySelector('input'); if (this.qsa('*[value="'+input.value+'"][name="'+input.getAttribute('name')+'"]').length > 1) { this.qsa('*[value="'+input.value+'"][name="'+input.getAttribute('name')+'"]').forEach(filter => { if (filter !== input) { if (filter.getAttribute('type') === 'radio') { filter.closest('.am-filter').querySelectorAll('input').forEach(option => { option.checked = false; }); } else { filter.checked = false; } } }); } if (input.getAttribute('type') !== 'radio' && !input.checked && !this.submitByClick) { let value = input.getAttribute('value'), name = input.getAttribute('name').replace('amshopby[',''); name = name.replace('][]', ''); let removeItem = this.qs('.amshopby-remove-item[data-container="'+ name +'"][data-value="'+ value +'"]'); if (removeItem) { removeItem.remove(); } } }, setSwatchToProducts(swatchId, attributeID) { setTimeout(() => { const productList = document.getElementById('amasty-shopby-product-list'); if (productList) { const swatches = productList.querySelectorAll('[name="super_attribute['+ attributeID +']"][value="' + swatchId + '"]'), event = new Event('change'); swatches.forEach(swatch => { if (!swatch.checked) { swatch.dispatchEvent(event); } }); } }, 1500); }, setSwatchMassToProducts(swatchIds, attributeID) { const swatches = swatchIds.split(','); this.massSwatchSet(swatches, attributeID); window.onload = () => { setTimeout(() => { this.massSwatchSet(swatches, attributeID); }, 1000); } }, massSwatchSet(swatches, attributeID) { swatches.map(swatch => { this.setSwatchToProducts(swatch, attributeID); }); }, insertAfter(newNode, existingNode) { existingNode.parentNode.insertBefore(newNode, existingNode.nextSibling); }, removeInputByName(input) { let name = input.getAttribute('name').replace('amshopby[',''); name = name.replace('][]', ''); this.qs('.amshopby-remove-item[data-container="'+ name +'"]').remove(); }, eventListeners: { ['@amshopby-submit-filters.window'](event) { let self = this, data = event.detail.data, clearUrl = self.options.clearUrl, isSorting = event.detail.isSorting, pushState = !self.submitByClick; if (typeof data.clearUrl !== 'undefined') { clearUrl = data.clearUrl; delete data.clearUrl; } if (self.prevCall) { this.controller.abort(); this.signal = null; this.controller = new AbortController(); this.signal = this.controller.signal; } let dataAndUrl = data.slice(0); dataAndUrl.push(clearUrl ? clearUrl : self.clearUrl); const cacheKey = JSON.stringify(dataAndUrl); self.cacheKey = cacheKey; if (self.cached[cacheKey]) { let response = self.cached[cacheKey]; if (pushState || isSorting) { if (response.newClearUrl && response.newClearUrl.indexOf('?p=') == -1 && response.newClearUrl.indexOf('&p=') == -1 ) { self.options.clearUrl = response.newClearUrl; } window.history.pushState({url: response.url}, '', response.url); self.reloadHtml(response); } else { window.dispatchEvent(new CustomEvent('amApplyButtonData', { detail: { count: response.productsCount, disabled: false } })); } return; } self.prevCall = self.callAjax(clearUrl, data, pushState, cacheKey, isSorting); }, ['@amSliderValuesUpdated.window'](event) { this.apply(event.detail.searchParams); }, ['@amApplyButton.window'](event) { let valid = true, element = event.detail.element, navigationSelector = event.detail.navigationSelector, navigation = element.closest(navigationSelector), cachedValues = this.cached[this.cacheKey], cachedKey = this.response, response = cachedValues ? cachedValues : cachedKey; if (!response) { return } if (response.isDisplayModePage || (!this.isAjaxSettingEnabled && this.submitByClick)) { window.location.href = response.url; return; } if (!response && this.startAjax) { this.showButtonClick = true; window.dispatchEvent(new CustomEvent('amApplyButtonData', { detail: { count: '', disabled: false } })); } if (valid && response) { window.dispatchEvent(new CustomEvent('amApplyButtonData', { detail: { count: '', disabled: false } })); window.history.pushState({url: response.url}, '', response.url); this.reloadHtml(response); this.response = false; this.showButtonClick = false; } window.onpopstate = function () { location.reload(); }; }, ['@amRemoveElement.window'](event) { const link = event.detail.element; if (this.isAjax) { const currentFilterItem = link.closest('.amshopby-remove-item'), filter = { attribute: currentFilterItem.getAttribute('data-container'), value: this.escapeHtml(currentFilterItem.getAttribute('data-value')) }; this.currentFilters.push(filter); this.element = undefined; try { window.dispatchEvent( new CustomEvent( 'amSetButtonPosition', { detail: { element: link } } ) ); this.setDefault(filter.attribute, filter.value); if (!this.submitByClick) { link.closest('.amshopby-remove-item').remove(); } this.prepareTriggerAjax(null, null, true); } catch (e) { console.error(e) window.location = link.getAttribute('href'); } } else { window.location.href = link.getAttribute('href'); } }, ['@amSwatchClick.window'](event) { const link = event.detail.element; if (this.isAjax) { const href = link.getAttribute('href'), input = link.closest('div').querySelector('input'); this.element = link; input.checked = !input.checked; if (input.getAttribute('type') === 'radio') { let ring = link.closest('.am-shopby-form').querySelector('.ring'); if (ring) { this.setSwatchBorder(ring); if (!this.submitByClick) { this.removeInputByName(input); } if (input.checked) { this.setSwatchBorder(link); } } else { this.setSwatchBorder(link); } } else { this.setSwatchBorder(link); } if (this.isFinderAndCategory(link)) { location.href = href; return; } setTimeout(() => { this.fixDubbleValue(link); window.dispatchEvent( new CustomEvent( 'amSetButtonPosition', { detail: { element: link } } ) ); this.apply(href); }, 10); } else { window.location.href = link.getAttribute('href'); } }, ['@amFilterElementClick.window'](event) { let filterElement = event.detail.element; if (!filterElement.classList.contains('item')) { filterElement = filterElement.closest('div'); } const checkbox = filterElement.querySelector('input'), checkboxLink = filterElement.querySelector('a'), href = checkboxLink.getAttribute('href'); if (!this.submitByClick && checkbox.checked && checkbox.getAttribute('type') === 'radio') { this.removeInputByName(checkbox); } this.element = checkboxLink; setTimeout(() => { this.fixDubbleValue(checkboxLink); window.dispatchEvent( new CustomEvent( 'amSetButtonPosition', { detail: { element: checkboxLink } } ) ); if (this.isFinderAndCategory(checkbox)) { location.href = href; return; } this.apply(href); }, 10); }, ['@googleTag.window'](e) { } } } }