Gains in Bulk

Negative Space

Notify me when available

variant.id) ?? [], titles: back_in_stock?.product?.variants?.map(variant => variant.title) ?? [], swatches: [], option_labels: [], disabledItems: back_in_stock?.product?.variants?.map(variant => variant.available) ?? [], value: back_in_stock?.product?.selected_or_first_available_variant?.id || '' , localState: back_in_stock?.product?.selected_or_first_available_variant?.id || '' , title: back_in_stock?.product?.selected_or_first_available_variant?.title || '' , pos: { top: 0, left:0, width: 0, height:0 }, select: $refs.select, scrollElements: utils.findCurrentlyAllScrollableParents($refs.select), handleScroll: () => { $data.pos = $refs.select.getBoundingClientRect(); $nextTick(() => { if (!utils.isElementFullyVisible($refs.select)) { document.activeElement = null; $data.show = false; } }) }, escapeHtml: (value = '') => { const element = document.createElement('span'); element.textContent = String(value); return element.innerHTML; } } " x-effect=" ()=> { values = back_in_stock?.product?.variants?.map(variant => variant.id) ?? []; swatches = []; option_labels = []; $el.classList.toggle('!hidden', !values.length); focusIndex = values.findIndex(val=> val === back_in_stock?.selected_variant?.id); titles = back_in_stock?.product?.variants?.map(variant => variant.title) ?? []; disabledItems = back_in_stock?.product?.variants?.map(variant => variant.available) ?? []; if ($data.show) { $nextTick(() => { scrollElements = utils.findCurrentlyAllScrollableParents(select) scrollElements?.forEach(el => el.addEventListener('scroll', handleScroll)) }) } else { scrollElements?.forEach(el => el.removeEventListener('scroll', handleScroll)) } } " x-init="pos = select.getBoundingClientRect()" class="!hidden">

{ show_popover = true }); pos = select.getBoundingClientRect();" x-effect="value = values[focusIndex]; title = titles[focusIndex]; $nextTick(() => { if ($el.getBoundingClientRect().bottom > (document.scrollingElement?.scrollHeight - document.scrollingElement?.scrollTop)) { alignTop = true } if ($el.getBoundingClientRect().right > window.innerWidth) { alignRight = true } });" x-trap.noreturn="show_popover" :style="clsx(`top: ${pos.top + pos.height + 2}px; width: ${pos.width}px;`, alignTop && `transform: translateY(calc(-100% - ${pos.height + 12}px));`, alignRight ? `right: ${document.body.clientWidth - pos.right}px;` : `left: ${pos.left}px;`)" @click.outside.capture="() => { ;if (!select?.contains($event.target) && select !== $event.target) { show_popover = false; show = false; } }" @scroll.window="handleScroll()" @resize.window="handleScroll()" @keydown.esc="show_popover = false; show = false;" @keydown.left.prevent.stop="focusIndex = focusIndex > 0 ? focusIndex -1 : values.length - 1" @keydown.up.prevent.stop="focusIndex = focusIndex > 0 ? focusIndex -1 : values.length - 1" @keydown.down.prevent.stop="focusIndex = focusIndex + 1 < values.length ? focusIndex + 1 : 0" @keydown.right.prevent.stop="focusIndex = focusIndex + 1 < values.length ? focusIndex + 1 : 0" @keydown.space.prevent.stop="back_in_stock.selected_variant = back_in_stock?.product?.variants?.find((v) => v.id === value);" @keydown.enter.prevent.stop="back_in_stock.selected_variant = back_in_stock?.product?.variants?.find((v) => v.id === value);; show_popover = false; show = false;" class="fixed z-max min-w-max mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg outline-none ring-1 ring-black/5 transition-opacity duration-75 focus:outline-none sm:text-sm dropdown--input-select" aria-label="" aria-orientation="vertical" role="listbox" tabindex="0" x-show="show_popover" x-cloak="" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0">

  • v.id === value);; focusIndex = i; show_popover = false; show = false; } " :disabled="!!disabledItems[i]" :class="i === focusIndex ? 'active' : disabledItems[i] ? 'opacity-40' :''" x-effect="i === focusIndex && $el.parentElement ? $el.parentElement.scrollTop = $el.offsetTop - 120 : null" role="option" tabindex="-1" :aria-selected="i === focusIndex">

utils.isExternalURL(url) ? window.open(url) : barba.go(url) }" style="mask: var(--icon-check-mark); -webkit-mask: var(--icon-check-mark); aspect-ratio: var(--icon-check-mark-aspect-ratio, 1); ">

Email

Subscribe to Newsletter

We'll notify you when this product arrives.

How to apply

To apply for this job you need to authorize on our website. If you don't have an account yet, please register.