diff --git a/_dev/custom.css b/_dev/custom.css new file mode 100644 index 0000000..48cfc9d --- /dev/null +++ b/_dev/custom.css @@ -0,0 +1 @@ +@import "./node_modules/jquery-offcanvas/dist/jquery-offcanvas.min.css" diff --git a/_dev/elegance.css b/_dev/elegance.css index d9bdcca..6f95e36 100644 --- a/_dev/elegance.css +++ b/_dev/elegance.css @@ -5,11 +5,17 @@ body { @apply bg-white; @apply text-gray-600; - @apply font-normal; + @apply font-light; } a { - apply text-gray-600; + @apply text-gray-600; +} + +a:hover { + @apply text-blue-900; + @apply underline; + @apply underline-offset-2; } .icon-tabler { diff --git a/_dev/js/cart.js b/_dev/js/cart.js new file mode 100644 index 0000000..7271878 --- /dev/null +++ b/_dev/js/cart.js @@ -0,0 +1,374 @@ +import $ from 'jquery'; +import prestashop from 'prestashop'; +import debounce from './components/debounce'; + +prestashop.cart = prestashop.cart || {}; + +prestashop.cart.active_inputs = null; + +const spinnerSelector = 'input[name="product-quantity-spin"]'; +let hasError = false; +let isUpdateOperation = false; +let errorMsg = ''; + +const CheckUpdateQuantityOperations = { + switchErrorStat: () => { + /** + * if errorMsg is not empty or if notifications are shown, we have error to display + * if hasError is true, quantity was not updated : we don't disable checkout button + */ + const $checkoutBtn = $(prestashop.themeSelectors.checkout.btn); + + if ($(prestashop.themeSelectors.notifications.dangerAlert).length || (errorMsg !== '' && !hasError)) { + $checkoutBtn.addClass('disabled'); + } + + if (errorMsg !== '') { + const strError = ` + <article class="alert alert-danger" role="alert" data-alert="danger"> + <ul> + <li>${errorMsg}</li> + </ul> + </article> + `; + $(prestashop.themeSelectors.notifications.container).html(strError); + errorMsg = ''; + isUpdateOperation = false; + if (hasError) { + // if hasError is true, quantity was not updated : allow checkout + $checkoutBtn.removeClass('disabled'); + } + } else if (!hasError && isUpdateOperation) { + hasError = false; + isUpdateOperation = false; + $(prestashop.themeSelectors.notifications.container).html(''); + $checkoutBtn.removeClass('disabled'); + } + }, + checkUpdateOperation: (resp) => { + /** + * resp.hasError can be not defined but resp.errors not empty: quantity is updated but order cannot be placed + * when resp.hasError=true, quantity is not updated + */ + const {hasError: hasErrorOccurred, errors: errorData} = resp; + hasError = hasErrorOccurred ?? false; + const errors = errorData ?? ''; + + // 1.7.2.x returns errors as string, 1.7.3.x returns array + if (errors instanceof Array) { + errorMsg = errors.join(' '); + } else { + errorMsg = errors; + } + + isUpdateOperation = true; + }, +}; + +/** + * Attach Bootstrap TouchSpin event handlers + */ +function createSpin() { + $.each($(spinnerSelector), (index, spinner) => { + $(spinner).TouchSpin({ + verticalbuttons: true, + verticalupclass: 'material-icons touchspin-up', + verticaldownclass: 'material-icons touchspin-down', + buttondown_class: 'btn btn-touchspin js-touchspin js-increase-product-quantity', + buttonup_class: 'btn btn-touchspin js-touchspin js-decrease-product-quantity', + min: parseInt($(spinner).attr('min'), 10), + max: 1000000, + }); + }); + + $(prestashop.themeSelectors.touchspin).off('touchstart.touchspin'); + + CheckUpdateQuantityOperations.switchErrorStat(); +} + +const preventCustomModalOpen = (event) => { + if (window.shouldPreventModal) { + event.preventDefault(); + + return false; + } + + return true; +}; + +$(document).ready(() => { + const productLineInCartSelector = prestashop.themeSelectors.cart.productLineQty; + const promises = []; + + prestashop.on('updateCart', () => { + $(prestashop.themeSelectors.cart.quickview).modal('hide'); + }); + + prestashop.on('updatedCart', () => { + window.shouldPreventModal = false; + + $(prestashop.themeSelectors.product.customizationModal).on('show.bs.modal', (modalEvent) => { + preventCustomModalOpen(modalEvent); + }); + + createSpin(); + }); + + createSpin(); + + const $body = $('body'); + + function isTouchSpin(namespace) { + return namespace === 'on.startupspin' || namespace === 'on.startdownspin'; + } + + function shouldIncreaseProductQuantity(namespace) { + return namespace === 'on.startupspin'; + } + + function findCartLineProductQuantityInput($target) { + const $input = $target.parents(prestashop.themeSelectors.cart.touchspin).find(productLineInCartSelector); + + if ($input.is(':focus')) { + return null; + } + + return $input; + } + + function camelize(subject) { + const actionTypeParts = subject.split('-'); + let i; + let part; + let camelizedSubject = ''; + + for (i = 0; i < actionTypeParts.length; i += 1) { + part = actionTypeParts[i]; + + if (i !== 0) { + part = part.substring(0, 1).toUpperCase() + part.substring(1); + } + + camelizedSubject += part; + } + + return camelizedSubject; + } + + function parseCartAction($target, namespace) { + if (!isTouchSpin(namespace)) { + return { + url: $target.attr('href'), + type: camelize($target.data('link-action')), + }; + } + + const $input = findCartLineProductQuantityInput($target); + + if (!$input) { + return false; + } + + let cartAction = {}; + + if (shouldIncreaseProductQuantity(namespace)) { + cartAction = { + url: $input.data('up-url'), + type: 'increaseProductQuantity', + }; + } else { + cartAction = { + url: $input.data('down-url'), + type: 'decreaseProductQuantity', + }; + } + + return cartAction; + } + + const abortPreviousRequests = () => { + let promise; + while (promises.length > 0) { + promise = promises.pop(); + promise.abort(); + } + }; + + const getTouchSpinInput = ($button) => $($button.parents(prestashop.themeSelectors.cart.touchspin).find('input')); + + $(prestashop.themeSelectors.product.customizationModal).on('show.bs.modal', (modalEvent) => { + preventCustomModalOpen(modalEvent); + }); + + const handleCartAction = (event) => { + abortPreviousRequests(); + window.shouldPreventModal = true; + event.preventDefault(); + + const $target = $(event.currentTarget); + const {dataset} = event.currentTarget; + const cartAction = parseCartAction($target, event.namespace); + const requestData = { + ajax: '1', + action: 'update', + }; + + if (!cartAction) { + return; + } + + $.ajax({ + url: cartAction.url, + method: 'POST', + data: requestData, + dataType: 'json', + beforeSend(jqXHR) { + promises.push(jqXHR); + }, + }) + .then((resp) => { + const $quantityInput = getTouchSpinInput($target); + CheckUpdateQuantityOperations.checkUpdateOperation(resp); + $quantityInput.val(resp.quantity); + + // Refresh cart preview + prestashop.emit('updateCart', { + reason: dataset, + resp, + }); + }) + .fail((resp) => { + prestashop.emit('handleError', { + eventType: 'updateProductInCart', + resp, + cartAction: cartAction.type, + }); + }); + }; + + $body.on('click', prestashop.themeSelectors.cart.actions, handleCartAction); + + function sendUpdateQuantityInCartRequest(updateQuantityInCartUrl, requestData, $target) { + abortPreviousRequests(); + window.shouldPreventModal = true; + + return $.ajax({ + url: updateQuantityInCartUrl, + method: 'POST', + data: requestData, + dataType: 'json', + beforeSend(jqXHR) { + promises.push(jqXHR); + }, + }) + .then((resp) => { + CheckUpdateQuantityOperations.checkUpdateOperation(resp); + + $target.val(resp.quantity); + const dataset = ($target && $target.dataset) ? $target.dataset : resp; + + // Refresh cart preview + prestashop.emit('updateCart', { + reason: dataset, + resp, + }); + }) + .fail((resp) => { + prestashop.emit('handleError', { + eventType: 'updateProductQuantityInCart', + resp, + }); + }); + } + + function getQuantityChangeType($quantity) { + return $quantity > 0 ? 'up' : 'down'; + } + + function getRequestData(quantity) { + return { + ajax: '1', + qty: Math.abs(quantity), + action: 'update', + op: getQuantityChangeType(quantity), + }; + } + + function updateProductQuantityInCart(event) { + const $target = $(event.currentTarget); + const updateQuantityInCartUrl = $target.data('update-url'); + const baseValue = $target.attr('value'); + + // There should be a valid product quantity in cart + const targetValue = $target.val(); + /* eslint-disable */ + if (targetValue != parseInt(targetValue, 10) || targetValue < 0 || isNaN(targetValue)) { + window.shouldPreventModal = false; + $target.val(baseValue); + return; + } + /* eslint-enable */ + // There should be a new product quantity in cart + const qty = targetValue - baseValue; + + if (qty === 0) { + return; + } + + if (targetValue === '0') { + $target.closest('.product-line-actions').find('[data-link-action="delete-from-cart"]').click(); + } else { + $target.attr('value', targetValue); + sendUpdateQuantityInCartRequest(updateQuantityInCartUrl, getRequestData(qty), $target); + } + } + + $body.on('touchspin.on.stopspin', spinnerSelector, debounce(updateProductQuantityInCart)); + + $body.on('focusout keyup', productLineInCartSelector, (event) => { + if (event.type === 'keyup') { + if (event.keyCode === 13) { + isUpdateOperation = true; + updateProductQuantityInCart(event); + } + + return false; + } + + if (!isUpdateOperation) { + updateProductQuantityInCart(event); + } + + return false; + }); + + const $timeoutEffect = 400; + + $body.on('hidden.bs.collapse', prestashop.themeSelectors.cart.promoCode, () => { + $(prestashop.themeSelectors.cart.displayPromo).show($timeoutEffect); + }); + + $body.on('click', prestashop.themeSelectors.cart.promoCodeButton, (event) => { + event.preventDefault(); + + $(prestashop.themeSelectors.cart.promoCode).collapse('toggle'); + }); + + $body.on('click', prestashop.themeSelectors.cart.displayPromo, (event) => { + $(event.currentTarget).hide($timeoutEffect); + }); + + $body.on('click', prestashop.themeSelectors.cart.discountCode, (event) => { + event.stopPropagation(); + + const $code = $(event.currentTarget); + const $discountInput = $(prestashop.themeSelectors.cart.discountName); + + $discountInput.val($code.text()); + // Show promo code field + $(prestashop.themeSelectors.cart.promoCode).collapse('show'); + $(prestashop.themeSelectors.cart.displayPromo).hide($timeoutEffect); + + return false; + }); +}); diff --git a/_dev/js/checkout.js b/_dev/js/checkout.js new file mode 100644 index 0000000..2803290 --- /dev/null +++ b/_dev/js/checkout.js @@ -0,0 +1,81 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ +import $ from 'jquery'; +import prestashop from 'prestashop'; + +function setUpCheckout() { + $(prestashop.themeSelectors.checkout.termsLink).on('click', (event) => { + event.preventDefault(); + let url = $(event.target).attr('href'); + + if (url) { + // TODO: Handle request if no pretty URL + url += '?content_only=1'; + $.get(url, (content) => { + $(prestashop.themeSelectors.modal) + .find(prestashop.themeSelectors.modalContent) + .html($(content).find('.page-cms').contents()); + }).fail((resp) => { + prestashop.emit('handleError', {eventType: 'clickTerms', resp}); + }); + } + + $(prestashop.themeSelectors.modal).modal('show'); + }); + + $(prestashop.themeSelectors.checkout.giftCheckbox).on('click', () => { + $('#gift').slideToggle(); + }); +} + +function toggleImage() { + // Arrow show/hide details Checkout page + $(prestashop.themeSelectors.checkout.imagesLink).on('click', function () { + const icon = $(this).find('i.material-icons'); + + if (icon.text() === 'expand_more') { + icon.text('expand_less'); + } else { + icon.text('expand_more'); + } + }); +} + +$(document).ready(() => { + if ($('body#checkout').length === 1) { + setUpCheckout(); + toggleImage(); + } + + prestashop.on('updatedDeliveryForm', (params) => { + if (typeof params.deliveryOption === 'undefined' || params.deliveryOption.length === 0) { + return; + } + // Hide all carrier extra content ... + $(prestashop.themeSelectors.checkout.carrierExtraContent).hide(); + // and show the one related to the selected carrier + params.deliveryOption.next(prestashop.themeSelectors.checkout.carrierExtraContent).slideDown(); + }); +}); diff --git a/_dev/js/components/block-cart.js b/_dev/js/components/block-cart.js new file mode 100644 index 0000000..2405374 --- /dev/null +++ b/_dev/js/components/block-cart.js @@ -0,0 +1,50 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ +import prestashop from 'prestashop'; +import $ from 'jquery'; + +prestashop.blockcart = prestashop.blockcart || {}; + +prestashop.blockcart.showModal = (html) => { + function getBlockCartModal() { + return $('#blockcart-modal'); + } + + let $blockCartModal = getBlockCartModal(); + + if ($blockCartModal.length) { + $blockCartModal.remove(); + } + + $('body').append(html); + + $blockCartModal = getBlockCartModal(); + $blockCartModal.modal('show').on('hidden.bs.modal', (event) => { + prestashop.emit('updateProduct', { + reason: event.currentTarget.dataset, + event, + }); + }); +}; diff --git a/modules/ps_advertising/ps_advertising.tpl b/_dev/js/components/debounce.js similarity index 52% rename from modules/ps_advertising/ps_advertising.tpl rename to _dev/js/components/debounce.js index 8853778..5d07ae8 100644 --- a/modules/ps_advertising/ps_advertising.tpl +++ b/_dev/js/components/debounce.js @@ -1,10 +1,11 @@ -{** - * 2007-2019 PrestaShop and Contributors +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA * * NOTICE OF LICENSE * * This source file is subject to the Academic Free License 3.0 (AFL-3.0) - * that is bundled with this package in the file LICENSE.txt. + * that is bundled with this package in the file LICENSE.md. * It is also available through the world-wide-web at this URL: * https://opensource.org/licenses/AFL-3.0 * If you did not receive a copy of the license and are unable to @@ -15,14 +16,18 @@ * * Do not edit or add to this file if you wish to upgrade PrestaShop to newer * versions in the future. If you wish to customize PrestaShop for your - * needs please refer to https://www.prestashop.com for more information. + * needs please refer to https://devdocs.prestashop.com/ for more information. * - * @author PrestaShop SA <contact@prestashop.com> - * @copyright 2007-2019 PrestaShop SA and Contributors + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) - * International Registered Trademark & Property of PrestaShop SA - *} + */ -<div class="advertising-block"> - <a href="{$adv_link}" title="{$adv_title}"><img src="{$image}" alt="{$adv_title}" title="{$adv_title}"/></a> -</div> +export default function debounce(func, timeout = 300) { + let timer; + + return (...args) => { + clearTimeout(timer); + timer = setTimeout(() => { func.apply(this, args); }, timeout); + }; +} diff --git a/_dev/js/components/drop-down.js b/_dev/js/components/drop-down.js new file mode 100644 index 0000000..8bd9de9 --- /dev/null +++ b/_dev/js/components/drop-down.js @@ -0,0 +1,59 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ +import $ from 'jquery'; + +export default class DropDown { + constructor(el) { + this.el = el; + } + + init() { + this.el.on('show.bs.dropdown', (e, el) => { + if (el) { + $(`#${el}`).find('.dropdown-menu').first().stop(true, true) + .slideDown(); + } else { + $(e.target).find('.dropdown-menu').first().stop(true, true) + .slideDown(); + } + }); + + this.el.on('hide.bs.dropdown', (e, el) => { + if (el) { + $(`#${el}`).find('.dropdown-menu').first().stop(true, true) + .slideUp(); + } else { + $(e.target).find('.dropdown-menu').first().stop(true, true) + .slideUp(); + } + }); + + this.el.find('select.link').each((idx, el) => { + $(el).on('change', function () { + window.location = $(this).val(); + }); + }); + } +} diff --git a/_dev/js/components/form.js b/_dev/js/components/form.js new file mode 100644 index 0000000..01383c6 --- /dev/null +++ b/_dev/js/components/form.js @@ -0,0 +1,55 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ +import $ from 'jquery'; + +export default class Form { + init() { + this.parentFocus(); + this.togglePasswordVisibility(); + } + + parentFocus() { + $('.js-child-focus').on('focus', function () { + $(this).closest('.js-parent-focus').addClass('focus'); + }); + $('.js-child-focus').on('focusout', function () { + $(this).closest('.js-parent-focus').removeClass('focus'); + }); + } + + togglePasswordVisibility() { + $('button[data-action="show-password"]').on('click', function () { + const elm = $(this).closest('.input-group').children('input.js-visible-password'); + + if (elm.attr('type') === 'password') { + elm.attr('type', 'text'); + $(this).text($(this).data('textHide')); + } else { + elm.attr('type', 'password'); + $(this).text($(this).data('textShow')); + } + }); + } +} diff --git a/_dev/js/components/product-miniature.js b/_dev/js/components/product-miniature.js new file mode 100644 index 0000000..0a11a57 --- /dev/null +++ b/_dev/js/components/product-miniature.js @@ -0,0 +1,47 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ +import $ from 'jquery'; + +export default class ProductMinitature { + init() { + $('.js-product-miniature').each((index, element) => { + // Limit number of shown colors + if ($(element).find('.color').length > 5) { + let count = 0; + + $(element) + .find('.color') + .each((colorIndex, colorElement) => { + if (colorIndex > 4) { + $(colorElement).hide(); + count += 1; + } + }); + + $(element).find('.js-count').append(`+${count}`); + } + }); + } +} diff --git a/_dev/js/components/product-select.js b/_dev/js/components/product-select.js new file mode 100644 index 0000000..4d7d561 --- /dev/null +++ b/_dev/js/components/product-select.js @@ -0,0 +1,97 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ +import $ from 'jquery'; +// eslint-disable-next-line +import 'velocity-animate'; +// import updateSources from 'update-sources'; + +export default class ProductSelect { + init() { + const MAX_THUMBS = 5; + const $arrows = $('.js-modal-arrows'); + const $thumbnails = $('.js-modal-product-images'); + + $('body') + .on('click', '.js-modal-thumb', (event) => { + // Swap active classes on thumbnail + if ($('.js-modal-thumb').hasClass('selected')) { + $('.js-modal-thumb').removeClass('selected'); + } + $(event.currentTarget).addClass('selected'); + + // Get data from thumbnail and update cover src, alt and title + $(prestashop.themeSelectors.product.modalProductCover).attr('src', $(event.target).data('image-large-src')); + $(prestashop.themeSelectors.product.modalProductCover).attr('title', $(event.target).attr('title')); + $(prestashop.themeSelectors.product.modalProductCover).attr('alt', $(event.target).attr('alt')); + + // Get data from thumbnail and update cover sources + // updateSources( + // $(prestashop.themeSelectors.product.modalProductCover), + // $(event.target).data('image-large-sources'), + // ); + }) + .on('click', 'aside#thumbnails', (event) => { + if (event.target.id === 'thumbnails') { + $('#product-modal').modal('hide'); + } + }); + + if ($('.js-modal-product-images li').length <= MAX_THUMBS) { + $arrows.css('opacity', '.2'); + } else { + $arrows.on('click', (event) => { + if ($(event.target).hasClass('arrow-up') && $thumbnails.position().top < 0) { + this.move('up'); + $('.js-modal-arrow-down').css('opacity', '1'); + } else if ( + $(event.target).hasClass('arrow-down') + && $thumbnails.position().top + $thumbnails.height() > $('.js-modal-mask').height() + ) { + this.move('down'); + $('.js-modal-arrow-up').css('opacity', '1'); + } + }); + } + } + + move(direction) { + const THUMB_MARGIN = 10; + const $thumbnails = $('.js-modal-product-images'); + const thumbHeight = $('.js-modal-product-images li img').height() + THUMB_MARGIN; + const currentPosition = $thumbnails.position().top; + $thumbnails.velocity( + { + translateY: direction === 'up' ? currentPosition + thumbHeight : currentPosition - thumbHeight, + }, + () => { + if ($thumbnails.position().top >= 0) { + $('.js-modal-arrow-up').css('opacity', '.2'); + } else if ($thumbnails.position().top + $thumbnails.height() <= $('.js-modal-mask').height()) { + $('.js-modal-arrow-down').css('opacity', '.2'); + } + }, + ); + } +} diff --git a/_dev/js/components/top-menu.js b/_dev/js/components/top-menu.js new file mode 100644 index 0000000..d9aeec4 --- /dev/null +++ b/_dev/js/components/top-menu.js @@ -0,0 +1,80 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ +import $ from 'jquery'; +import prestashop from 'prestashop'; +import DropDown from './drop-down'; + +export default class TopMenu extends DropDown { + init() { + let elmtClass; + const self = this; + this.el.find('li').on('mouseenter mouseleave', (e) => { + if (this.el.parent().hasClass('mobile')) { + return; + } + const currentTargetClass = $(e.currentTarget).attr('class'); + + if (elmtClass !== currentTargetClass) { + const classesSelected = Array.prototype.slice + .call(e.currentTarget.classList) + .map((elem) => (typeof elem === 'string' ? `.${elem}` : false)); + + elmtClass = classesSelected.join(''); + + if (elmtClass && $(e.target).data('depth') === 0) { + $(`${elmtClass} .js-sub-menu`).css({ + top: $(`${elmtClass}`).height() + $(`${elmtClass}`).position().top, + }); + } + } + }); + $('#menu-icon').on('click', () => { + $('#mobile_top_menu_wrapper').toggle(); + self.toggleMobileMenu(); + }); + + this.el.on('click', (e) => { + if (this.el.parent().hasClass('mobile')) { + return; + } + e.stopPropagation(); + }); + + prestashop.on('responsive update', () => { + $('.js-sub-menu').removeAttr('style'); + self.toggleMobileMenu(); + }); + super.init(); + } + + toggleMobileMenu() { + $('#header').toggleClass('is-open'); + if ($('#mobile_top_menu_wrapper').is(':visible')) { + $('#notifications, #wrapper, #footer').hide(); + } else { + $('#notifications, #wrapper, #footer').show(); + } + } +} diff --git a/_dev/js/components/update-sources.js b/_dev/js/components/update-sources.js new file mode 100644 index 0000000..cdb6b98 --- /dev/null +++ b/_dev/js/components/update-sources.js @@ -0,0 +1,43 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ +import $ from 'jquery'; + +export default function updateSources(img, sources) { + if (sources === undefined) { + return; + } + + // Get source siblings of the img tag + const imgSiblingWebp = $(img).siblings('source[type="image/webp"]'); + const imgSiblingAvif = $(img).siblings('source[type="image/avif"]'); + + // Update them if they exist and we have a source for them + if (sources.webp !== undefined && imgSiblingWebp.length) { + imgSiblingWebp.attr('srcset', sources.webp); + } + if (sources.avif !== undefined && imgSiblingAvif.length) { + imgSiblingAvif.attr('srcset', sources.avif); + } +} diff --git a/_dev/js/components/usePasswordPolicy.js b/_dev/js/components/usePasswordPolicy.js new file mode 100644 index 0000000..799db52 --- /dev/null +++ b/_dev/js/components/usePasswordPolicy.js @@ -0,0 +1,198 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ + +import {sprintf} from 'sprintf-js'; + +const {passwordPolicy: PasswordPolicyMap} = prestashop.themeSelectors; + +const PASSWORD_POLICY_ERROR = 'The password policy elements are undefined.'; + +const getPasswordStrengthFeedback = ( + strength, +) => { + switch (strength) { + case 0: + return { + color: 'bg-danger', + }; + + case 1: + return { + color: 'bg-danger', + }; + + case 2: + return { + color: 'bg-warning', + }; + + case 3: + return { + color: 'bg-success', + }; + + case 4: + return { + color: 'bg-success', + }; + + default: + throw new Error('Invalid password strength indicator.'); + } +}; + +const watchPassword = async ( + elementInput, + feedbackContainer, + hints, +) => { + const {prestashop} = window; + const passwordValue = elementInput.value; + const elementIcon = feedbackContainer.querySelector(PasswordPolicyMap.requirementScoreIcon); + const result = await prestashop.checkPasswordScore(passwordValue); + const feedback = getPasswordStrengthFeedback(result.score); + const passwordLength = passwordValue.length; + const popoverContent = []; + + $(elementInput).popover('dispose'); + + feedbackContainer.style.display = passwordValue === '' ? 'none' : 'block'; + + if (result.feedback.warning !== '') { + if (result.feedback.warning in hints) { + popoverContent.push(hints[result.feedback.warning]); + } + } + + result.feedback.suggestions.forEach((suggestion) => { + if (suggestion in hints) { + popoverContent.push(hints[suggestion]); + } + }); + + $(elementInput).popover({ + html: true, + placement: 'top', + content: popoverContent.join('<br/>'), + }).popover('show'); + + const passwordLengthValid = passwordLength >= parseInt(elementInput.dataset.minlength, 10) + && passwordLength <= parseInt(elementInput.dataset.maxlength, 10); + const passwordScoreValid = parseInt(elementInput.dataset.minscore, 10) <= result.score; + + feedbackContainer.querySelector(PasswordPolicyMap.requirementLengthIcon).classList.toggle( + 'text-success', + passwordLengthValid, + ); + + elementIcon.classList.toggle( + 'text-success', + passwordScoreValid, + ); + + // Change input border color depending on the validity + elementInput + .classList.remove('border-success', 'border-danger'); + elementInput + .classList.add(passwordScoreValid && passwordLengthValid ? 'border-success' : 'border-danger'); + elementInput + .classList.add('form-control', 'border'); + + const percentage = (result.score * 20) + 20; + const progressBar = feedbackContainer.querySelector(PasswordPolicyMap.progressBar); + + // increase and decrease progress bar + if (progressBar) { + progressBar.style.width = `${percentage}%`; + progressBar.classList.remove('bg-success', 'bg-danger', 'bg-warning'); + progressBar.classList.add(feedback.color); + } +}; + +// Not testable because it manipulates SVG elements, unsupported by JSDom +const usePasswordPolicy = (selector) => { + const elements = document.querySelectorAll(selector); + elements.forEach((element) => { + const inputColumn = element?.querySelector(PasswordPolicyMap.inputColumn); + const elementInput = element?.querySelector('input'); + const templateElement = document.createElement('div'); + const feedbackTemplate = document.querySelector(PasswordPolicyMap.template); + let feedbackContainer; + + if (feedbackTemplate && element && inputColumn && elementInput) { + templateElement.innerHTML = feedbackTemplate.innerHTML; + inputColumn.append(templateElement); + feedbackContainer = element.querySelector(PasswordPolicyMap.container); + + if (feedbackContainer) { + const hintElement = document.querySelector(PasswordPolicyMap.hint); + + if (hintElement) { + const hints = JSON.parse(hintElement.innerHTML); + + // eslint-disable-next-line max-len + const passwordRequirementsLength = feedbackContainer.querySelector(PasswordPolicyMap.requirementLength); + // eslint-disable-next-line max-len + const passwordRequirementsScore = feedbackContainer.querySelector(PasswordPolicyMap.requirementScore); + const passwordLengthText = passwordRequirementsLength?.querySelector('span'); + const passwordRequirementsText = passwordRequirementsScore?.querySelector('span'); + + if (passwordLengthText && passwordRequirementsLength && passwordRequirementsLength.dataset.translation) { + passwordLengthText.innerText = sprintf( + passwordRequirementsLength.dataset.translation, + elementInput.dataset.minlength, + elementInput.dataset.maxlength, + ); + } + + if (passwordRequirementsText && passwordRequirementsScore && passwordRequirementsScore.dataset.translation) { + passwordRequirementsText.innerText = sprintf( + passwordRequirementsScore.dataset.translation, + hints[elementInput.dataset.minscore], + ); + } + + // eslint-disable-next-line max-len + elementInput.addEventListener('keyup', () => watchPassword(elementInput, feedbackContainer, hints)); + elementInput.addEventListener('blur', () => { + $(elementInput).popover('dispose'); + }); + } + } + } + + if (element) { + return { + element, + }; + } + + return { + error: new Error(PASSWORD_POLICY_ERROR), + }; + }); +}; + +export default usePasswordPolicy; diff --git a/_dev/js/customer.js b/_dev/js/customer.js new file mode 100644 index 0000000..65e38d2 --- /dev/null +++ b/_dev/js/customer.js @@ -0,0 +1,43 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ +import $ from 'jquery'; +import prestashop from 'prestashop'; + +function initRmaItemSelector() { + $(`${prestashop.themeSelectors.order.returnForm} table thead input[type=checkbox]`).on('click', function () { + const checked = $(this).prop('checked'); + $(`${prestashop.themeSelectors.order.returnForm} table tbody input[type=checkbox]`).each((_, checkbox) => { + $(checkbox).prop('checked', checked); + }); + }); +} + +function setupCustomerScripts() { + if ($('body#order-detail')) { + initRmaItemSelector(); + } +} + +$(document).ready(setupCustomerScripts); diff --git a/_dev/js/facets.js b/_dev/js/facets.js new file mode 100644 index 0000000..4913f92 --- /dev/null +++ b/_dev/js/facets.js @@ -0,0 +1 @@ +import $ from "jquery"; diff --git a/_dev/js/lib/bootstrap-filestyle.min.js b/_dev/js/lib/bootstrap-filestyle.min.js new file mode 100644 index 0000000..9d91ff4 --- /dev/null +++ b/_dev/js/lib/bootstrap-filestyle.min.js @@ -0,0 +1,25 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ +(function($){var nextId=0;var Filestyle=function(element,options){this.options=options;this.$elementFilestyle=[];this.$element=$(element)};Filestyle.prototype={clear:function(){this.$element.val("");this.$elementFilestyle.find(":text").val("");this.$elementFilestyle.find(".badge").remove()},destroy:function(){this.$element.removeAttr("style").removeData("filestyle");this.$elementFilestyle.remove()},disabled:function(value){if(value===true){if(!this.options.disabled){this.$element.attr("disabled","true");this.$elementFilestyle.find("label").attr("disabled","true");this.options.disabled=true}}else{if(value===false){if(this.options.disabled){this.$element.removeAttr("disabled");this.$elementFilestyle.find("label").removeAttr("disabled");this.options.disabled=false}}else{return this.options.disabled}}},buttonBefore:function(value){if(value===true){if(!this.options.buttonBefore){this.options.buttonBefore=true;if(this.options.input){this.$elementFilestyle.remove();this.constructor();this.pushNameFiles()}}}else{if(value===false){if(this.options.buttonBefore){this.options.buttonBefore=false;if(this.options.input){this.$elementFilestyle.remove();this.constructor();this.pushNameFiles()}}}else{return this.options.buttonBefore}}},icon:function(value){if(value===true){if(!this.options.icon){this.options.icon=true;this.$elementFilestyle.find("label").prepend(this.htmlIcon())}}else{if(value===false){if(this.options.icon){this.options.icon=false;this.$elementFilestyle.find(".icon-span-filestyle").remove()}}else{return this.options.icon}}},input:function(value){if(value===true){if(!this.options.input){this.options.input=true;if(this.options.buttonBefore){this.$elementFilestyle.append(this.htmlInput())}else{this.$elementFilestyle.prepend(this.htmlInput())}this.$elementFilestyle.find(".badge").remove();this.pushNameFiles();this.$elementFilestyle.find(".group-span-filestyle").addClass("input-group-btn")}}else{if(value===false){if(this.options.input){this.options.input=false;this.$elementFilestyle.find(":text").remove();var files=this.pushNameFiles();if(files.length>0&&this.options.badge){this.$elementFilestyle.find("label").append(' <span class="badge">'+files.length+"</span>")}this.$elementFilestyle.find(".group-span-filestyle").removeClass("input-group-btn")}}else{return this.options.input}}},size:function(value){if(value!==undefined){var btn=this.$elementFilestyle.find("label"),input=this.$elementFilestyle.find("input");btn.removeClass("btn-lg btn-sm");input.removeClass("input-lg input-sm");if(value!="nr"){btn.addClass("btn-"+value);input.addClass("input-"+value)}}else{return this.options.size}},placeholder:function(value){if(value!==undefined){this.options.placeholder=value;this.$elementFilestyle.find("input").attr("placeholder",value)}else{return this.options.placeholder}},buttonText:function(value){if(value!==undefined){this.options.buttonText=value;this.$elementFilestyle.find("label .buttonText").html(this.options.buttonText)}else{return this.options.buttonText}},buttonName:function(value){if(value!==undefined){this.options.buttonName=value;this.$elementFilestyle.find("label").attr({"class":"btn "+this.options.buttonName})}else{return this.options.buttonName}},iconName:function(value){if(value!==undefined){this.$elementFilestyle.find(".icon-span-filestyle").attr({"class":"icon-span-filestyle "+this.options.iconName})}else{return this.options.iconName}},htmlIcon:function(){if(this.options.icon){return'<span class="icon-span-filestyle '+this.options.iconName+'"></span> '}else{return""}},htmlInput:function(){if(this.options.input){return'<input type="text" class="form-control '+(this.options.size=="nr"?"":"input-"+this.options.size)+'" placeholder="'+this.options.placeholder+'" disabled> '}else{return""}},pushNameFiles:function(){var content="",files=[];if(this.$element[0].files===undefined){files[0]={name:this.$element[0]&&this.$element[0].value}}else{files=this.$element[0].files}for(var i=0;i<files.length;i++){content+=files[i].name.split("\\").pop()+", "}if(content!==""){this.$elementFilestyle.find(":text").val(content.replace(/\, $/g,""))}else{this.$elementFilestyle.find(":text").val("")}return files},constructor:function(){var _self=this,html="",id=_self.$element.attr("id"),files=[],btn="",$label;if(id===""||!id){id="filestyle-"+nextId;_self.$element.attr({id:id});nextId++}btn='<span class="group-span-filestyle '+(_self.options.input?"input-group-btn":"")+'"><label for="'+id+'" class="btn '+_self.options.buttonName+" "+(_self.options.size=="nr"?"":"btn-"+_self.options.size)+'" '+(_self.options.disabled?'disabled="true"':"")+">"+_self.htmlIcon()+'<span class="buttonText">'+_self.options.buttonText+"</span></label></span>";html=_self.options.buttonBefore?btn+_self.htmlInput():_self.htmlInput()+btn;_self.$elementFilestyle=$('<div class="bootstrap-filestyle input-group">'+html+"</div>");_self.$elementFilestyle.find(".group-span-filestyle").attr("tabindex","0").keypress(function(e){if(e.keyCode===13||e.charCode===32){_self.$elementFilestyle.find("label").click();return false}});_self.$element.css({position:"absolute",clip:"rect(0px 0px 0px 0px)"}).attr("tabindex","-1").after(_self.$elementFilestyle);if(_self.options.disabled){_self.$element.attr("disabled","true")}_self.$element.change(function(){var files=_self.pushNameFiles();if(_self.options.input==false&&_self.options.badge){if(_self.$elementFilestyle.find(".badge").length==0){_self.$elementFilestyle.find("label").append(' <span class="badge">'+files.length+"</span>")}else{if(files.length==0){_self.$elementFilestyle.find(".badge").remove()}else{_self.$elementFilestyle.find(".badge").html(files.length)}}}else{_self.$elementFilestyle.find(".badge").remove()}});if(window.navigator.userAgent.search(/firefox/i)>-1){_self.$elementFilestyle.find("label").click(function(){_self.$element.click();return false})}}};var old=$.fn.filestyle;$.fn.filestyle=function(option,value){var get="",element=this.each(function(){if($(this).attr("type")==="file"){var $this=$(this),data=$this.data("filestyle"),options=$.extend({},$.fn.filestyle.defaults,option,typeof option==="object"&&option);if(!data){$this.data("filestyle",(data=new Filestyle(this,options)));data.constructor()}if(typeof option==="string"){get=data[option](value)}}});if(typeof get!==undefined){return get}else{return element}};$.fn.filestyle.defaults={buttonText:"Choose file",iconName:"glyphicon glyphicon-folder-open",buttonName:"btn-default",size:"nr",input:true,badge:true,icon:true,buttonBefore:false,disabled:false,placeholder:""};$.fn.filestyle.noConflict=function(){$.fn.filestyle=old;return this};$(function(){$(".filestyle").each(function(){var $this=$(this),options={input:$this.attr("data-input")==="false"?false:true,icon:$this.attr("data-icon")==="false"?false:true,buttonBefore:$this.attr("data-buttonBefore")==="true"?true:false,disabled:$this.attr("data-disabled")==="true"?true:false,size:$this.attr("data-size"),buttonText:$this.attr("data-buttonText"),buttonName:$this.attr("data-buttonName"),iconName:$this.attr("data-iconName"),badge:$this.attr("data-badge")==="false"?false:true,placeholder:$this.attr("data-placeholder")};$this.filestyle(options)})})})(window.jQuery); diff --git a/_dev/js/lib/jquery.scrollbox.min.js b/_dev/js/lib/jquery.scrollbox.min.js new file mode 100644 index 0000000..6c791e7 --- /dev/null +++ b/_dev/js/lib/jquery.scrollbox.min.js @@ -0,0 +1,25 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ +(function($){$.fn.scrollbox=function(config){var defConfig={linear:false,startDelay:2,delay:3,step:5,speed:32,switchItems:1,direction:"vertical",distance:"auto",autoPlay:true,onMouseOverPause:true,paused:false,queue:null,listElement:"ul",listItemElement:"li",infiniteLoop:true,switchAmount:0,afterForward:null,afterBackward:null,triggerStackable:false};config=$.extend(defConfig,config);config.scrollOffset=config.direction==="vertical"?"scrollTop":"scrollLeft";if(config.queue){config.queue=$("#"+config.queue)}return this.each(function(){var container=$(this),containerUL,scrollingId=null,nextScrollId=null,paused=false,releaseStack,backward,forward,resetClock,scrollForward,scrollBackward,forwardHover,pauseHover,switchCount=0,stackedTriggerIndex=0;if(config.onMouseOverPause){container.bind("mouseover",function(){paused=true});container.bind("mouseout",function(){paused=false})}containerUL=container.children(config.listElement+":first-child");if(config.infiniteLoop===false&&config.switchAmount===0){config.switchAmount=containerUL.children().length}scrollForward=function(){if(paused){return}var curLi,i,newScrollOffset,scrollDistance,theStep;curLi=containerUL.children(config.listItemElement+":first-child");scrollDistance=config.distance!=="auto"?config.distance:config.direction==="vertical"?curLi.outerHeight(true):curLi.outerWidth(true);if(!config.linear){theStep=Math.max(3,parseInt((scrollDistance-container[0][config.scrollOffset])*.3,10));newScrollOffset=Math.min(container[0][config.scrollOffset]+theStep,scrollDistance)}else{newScrollOffset=Math.min(container[0][config.scrollOffset]+config.step,scrollDistance)}container[0][config.scrollOffset]=newScrollOffset;if(newScrollOffset>=scrollDistance){for(i=0;i<config.switchItems;i++){if(config.queue&&config.queue.find(config.listItemElement).length>0){containerUL.append(config.queue.find(config.listItemElement)[0]);containerUL.children(config.listItemElement+":first-child").remove()}else{containerUL.append(containerUL.children(config.listItemElement+":first-child"))}++switchCount}container[0][config.scrollOffset]=0;clearInterval(scrollingId);scrollingId=null;if($.isFunction(config.afterForward)){config.afterForward.call(container,{switchCount:switchCount,currentFirstChild:containerUL.children(config.listItemElement+":first-child")})}if(config.triggerStackable&&stackedTriggerIndex!==0){releaseStack();return}if(config.infiniteLoop===false&&switchCount>=config.switchAmount){return}if(config.autoPlay){nextScrollId=setTimeout(forward,config.delay*1e3)}}};scrollBackward=function(){if(paused){return}var curLi,i,newScrollOffset,scrollDistance,theStep;if(container[0][config.scrollOffset]===0){for(i=0;i<config.switchItems;i++){containerUL.children(config.listItemElement+":last-child").insertBefore(containerUL.children(config.listItemElement+":first-child"))}curLi=containerUL.children(config.listItemElement+":first-child");scrollDistance=config.distance!=="auto"?config.distance:config.direction==="vertical"?curLi.height():curLi.width();container[0][config.scrollOffset]=scrollDistance}if(!config.linear){theStep=Math.max(3,parseInt(container[0][config.scrollOffset]*.3,10));newScrollOffset=Math.max(container[0][config.scrollOffset]-theStep,0)}else{newScrollOffset=Math.max(container[0][config.scrollOffset]-config.step,0)}container[0][config.scrollOffset]=newScrollOffset;if(newScrollOffset===0){--switchCount;clearInterval(scrollingId);scrollingId=null;if($.isFunction(config.afterBackward)){config.afterBackward.call(container,{switchCount:switchCount,currentFirstChild:containerUL.children(config.listItemElement+":first-child")})}if(config.triggerStackable&&stackedTriggerIndex!==0){releaseStack();return}if(config.autoPlay){nextScrollId=setTimeout(forward,config.delay*1e3)}}};releaseStack=function(){if(stackedTriggerIndex===0){return}if(stackedTriggerIndex>0){stackedTriggerIndex--;nextScrollId=setTimeout(forward,0)}else{stackedTriggerIndex++;nextScrollId=setTimeout(backward,0)}};forward=function(){clearInterval(scrollingId);scrollingId=setInterval(scrollForward,config.speed)};backward=function(){clearInterval(scrollingId);scrollingId=setInterval(scrollBackward,config.speed)};forwardHover=function(){config.autoPlay=true;paused=false;clearInterval(scrollingId);scrollingId=setInterval(scrollForward,config.speed)};pauseHover=function(){paused=true};resetClock=function(delay){config.delay=delay||config.delay;clearTimeout(nextScrollId);if(config.autoPlay){nextScrollId=setTimeout(forward,config.delay*1e3)}};if(config.autoPlay){nextScrollId=setTimeout(forward,config.startDelay*1e3)}container.bind("resetClock",function(delay){resetClock(delay)});container.bind("forward",function(){if(config.triggerStackable){if(scrollingId!==null){stackedTriggerIndex++}else{forward()}}else{clearTimeout(nextScrollId);forward()}});container.bind("backward",function(){if(config.triggerStackable){if(scrollingId!==null){stackedTriggerIndex--}else{backward()}}else{clearTimeout(nextScrollId);backward()}});container.bind("pauseHover",function(){pauseHover()});container.bind("forwardHover",function(){forwardHover()});container.bind("speedUp",function(event,speed){if(speed==="undefined"){speed=Math.max(1,parseInt(config.speed/2,10))}config.speed=speed});container.bind("speedDown",function(event,speed){if(speed==="undefined"){speed=config.speed*2}config.speed=speed});container.bind("updateConfig",function(event,options){config=$.extend(config,options)})})}})(jQuery); diff --git a/_dev/js/listing.js b/_dev/js/listing.js new file mode 100644 index 0000000..e3fe44d --- /dev/null +++ b/_dev/js/listing.js @@ -0,0 +1,262 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ +import $ from 'jquery'; +import prestashop from 'prestashop'; +// eslint-disable-next-line +import "velocity-animate"; +import updateSources from './components/update-sources'; +import ProductMinitature from './components/product-miniature'; + +$(document).ready(() => { + const move = (direction) => { + const THUMB_MARGIN = 20; + const $thumbnails = $('.js-qv-product-images'); + const thumbHeight = $('.js-qv-product-images li img').height() + THUMB_MARGIN; + const currentPosition = $thumbnails.position().top; + $thumbnails.velocity( + { + translateY: + direction === 'up' + ? currentPosition + thumbHeight + : currentPosition - thumbHeight, + }, + () => { + if ($thumbnails.position().top >= 0) { + $('.arrow-up').css('opacity', '.2'); + } else if ( + $thumbnails.position().top + $thumbnails.height() + <= $('.js-qv-mask').height() + ) { + $('.arrow-down').css('opacity', '.2'); + } + }, + ); + }; + + const productConfig = (qv) => { + const MAX_THUMBS = 4; + const $arrows = $(prestashop.themeSelectors.product.arrows); + const $thumbnails = qv.find('.js-qv-product-images'); + $(prestashop.themeSelectors.product.thumb).on('click', (event) => { + // Swap active classes on thumbnail + if ($(prestashop.themeSelectors.product.thumb).hasClass('selected')) { + $(prestashop.themeSelectors.product.thumb).removeClass('selected'); + } + $(event.currentTarget).addClass('selected'); + + // Get data from thumbnail and update cover src, alt and title + $(prestashop.themeSelectors.product.cover).attr('src', $(event.target).data('image-large-src')); + $(prestashop.themeSelectors.product.cover).attr('alt', $(event.target).attr('alt')); + $(prestashop.themeSelectors.product.cover).attr('title', $(event.target).attr('title')); + + // Get data from thumbnail and update cover sources + updateSources( + $(prestashop.themeSelectors.product.cover), + $(event.target).data('image-large-sources'), + ); + }); + if ($thumbnails.find('li').length <= MAX_THUMBS) { + $arrows.hide(); + } else { + $arrows.on('click', (event) => { + if ( + $(event.target).hasClass('arrow-up') + && $('.js-qv-product-images').position().top < 0 + ) { + move('up'); + $(prestashop.themeSelectors.arrowDown).css('opacity', '1'); + } else if ( + $(event.target).hasClass('arrow-down') + && $thumbnails.position().top + $thumbnails.height() + > $('.js-qv-mask').height() + ) { + move('down'); + $(prestashop.themeSelectors.arrowUp).css('opacity', '1'); + } + }); + } + qv.find(prestashop.selectors.quantityWanted).TouchSpin({ + verticalbuttons: true, + verticalupclass: 'material-icons touchspin-up', + verticaldownclass: 'material-icons touchspin-down', + buttondown_class: 'btn btn-touchspin js-touchspin', + buttonup_class: 'btn btn-touchspin js-touchspin', + min: 1, + max: 1000000, + }); + + $(prestashop.themeSelectors.touchspin).off('touchstart.touchspin'); + }; + + prestashop.on('clickQuickView', (elm) => { + const data = { + action: 'quickview', + id_product: elm.dataset.idProduct, + id_product_attribute: elm.dataset.idProductAttribute, + }; + $.post(prestashop.urls.pages.product, data, null, 'json') + .then((resp) => { + $('body').append(resp.quickview_html); + const productModal = $( + `#quickview-modal-${resp.product.id}-${resp.product.id_product_attribute}`, + ); + productModal.modal('show'); + productConfig(productModal); + productModal.on('hidden.bs.modal', () => { + productModal.remove(); + }); + }) + .fail((resp) => { + prestashop.emit('handleError', { + eventType: 'clickQuickView', + resp, + }); + }); + }); + + $('body').on( + 'click', + prestashop.themeSelectors.listing.searchFilterToggler, + () => { + $(prestashop.themeSelectors.listing.searchFiltersWrapper).removeClass( + 'hidden-sm-down', + ); + $(prestashop.themeSelectors.contentWrapper).addClass('hidden-sm-down'); + $(prestashop.themeSelectors.footer).addClass('hidden-sm-down'); + }, + ); + $( + `${prestashop.themeSelectors.listing.searchFilterControls} ${prestashop.themeSelectors.clear}`, + ).on('click', () => { + $(prestashop.themeSelectors.listing.searchFiltersWrapper).addClass( + 'hidden-sm-down', + ); + $(prestashop.themeSelectors.contentWrapper).removeClass('hidden-sm-down'); + $(prestashop.themeSelectors.footer).removeClass('hidden-sm-down'); + }); + $(`${prestashop.themeSelectors.listing.searchFilterControls} .ok`).on( + 'click', + () => { + $(prestashop.themeSelectors.listing.searchFiltersWrapper).addClass( + 'hidden-sm-down', + ); + $(prestashop.themeSelectors.contentWrapper).removeClass('hidden-sm-down'); + $(prestashop.themeSelectors.footer).removeClass('hidden-sm-down'); + }, + ); + + const parseSearchUrl = function (event) { + if (event.target.dataset.searchUrl !== undefined) { + return event.target.dataset.searchUrl; + } + + if ($(event.target).parent()[0].dataset.searchUrl === undefined) { + throw new Error('Can not parse search URL'); + } + + return $(event.target).parent()[0].dataset.searchUrl; + }; + + function updateProductListDOM(data) { + $(prestashop.themeSelectors.listing.searchFilters).replaceWith( + data.rendered_facets, + ); + $(prestashop.themeSelectors.listing.activeSearchFilters).replaceWith( + data.rendered_active_filters, + ); + $(prestashop.themeSelectors.listing.listTop).replaceWith( + data.rendered_products_top, + ); + + const renderedProducts = $(data.rendered_products); + const productSelectors = $(prestashop.themeSelectors.listing.product); + + if (productSelectors.length > 0) { + productSelectors.removeClass().addClass(productSelectors.first().attr('class')); + } else { + productSelectors.removeClass().addClass(renderedProducts.first().attr('class')); + } + + $(prestashop.themeSelectors.listing.list).replaceWith(renderedProducts); + + $(prestashop.themeSelectors.listing.listBottom).replaceWith( + data.rendered_products_bottom, + ); + if (data.rendered_products_header) { + $(prestashop.themeSelectors.listing.listHeader).replaceWith( + data.rendered_products_header, + ); + } + + const productMinitature = new ProductMinitature(); + productMinitature.init(); + } + + $('body').on( + 'change', + `${prestashop.themeSelectors.listing.searchFilters} input[data-search-url]`, + (event) => { + prestashop.emit('updateFacets', parseSearchUrl(event)); + }, + ); + + $('body').on( + 'click', + prestashop.themeSelectors.listing.searchFiltersClearAll, + (event) => { + prestashop.emit('updateFacets', parseSearchUrl(event)); + }, + ); + + $('body').on('click', prestashop.themeSelectors.listing.searchLink, (event) => { + event.preventDefault(); + prestashop.emit( + 'updateFacets', + $(event.target) + .closest('a') + .get(0).href, + ); + }); + + window.addEventListener('popstate', (e) => { + if (e.state && e.state.current_url) { + window.location.href = e.state.current_url; + } + }); + + $('body').on( + 'change', + `${prestashop.themeSelectors.listing.searchFilters} select`, + (event) => { + const form = $(event.target).closest('form'); + prestashop.emit('updateFacets', `?${form.serialize()}`); + }, + ); + + prestashop.on('updateProductList', (data) => { + updateProductListDOM(data); + window.scrollTo(0, 0); + }); +}); diff --git a/_dev/js/product.js b/_dev/js/product.js new file mode 100644 index 0000000..67decd8 --- /dev/null +++ b/_dev/js/product.js @@ -0,0 +1,191 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ +import $ from 'jquery'; +import prestashop from 'prestashop'; +import ProductSelect from './components/product-select'; +import updateSources from './components/update-sources'; + +$(document).ready(() => { + function coverImage() { + const productCover = $(prestashop.themeSelectors.product.cover); + const modalProductCover = $(prestashop.themeSelectors.product.modalProductCover); + let thumbSelected = $(prestashop.themeSelectors.product.selected); + + const swipe = (selectedThumb, thumbParent) => { + const newSelectedThumb = thumbParent.find(prestashop.themeSelectors.product.thumb); + + // Swap active classes on thumbnail + selectedThumb.removeClass('selected'); + newSelectedThumb.addClass('selected'); + + // Update sources of both cover and modal cover + modalProductCover.prop('src', newSelectedThumb.data('image-large-src')); + productCover.prop('src', newSelectedThumb.data('image-medium-src')); + + // Get data from thumbnail and update cover src, alt and title + productCover.attr('title', newSelectedThumb.attr('title')); + modalProductCover.attr('title', newSelectedThumb.attr('title')); + productCover.attr('alt', newSelectedThumb.attr('alt')); + modalProductCover.attr('alt', newSelectedThumb.attr('alt')); + + // Get data from thumbnail and update cover sources + updateSources(productCover, newSelectedThumb.data('image-medium-sources')); + updateSources(modalProductCover, newSelectedThumb.data('image-large-sources')); + }; + + $(prestashop.themeSelectors.product.thumb).on('click', (event) => { + thumbSelected = $(prestashop.themeSelectors.product.selected); + swipe(thumbSelected, $(event.target).closest(prestashop.themeSelectors.product.thumbContainer)); + }); + + productCover.swipe({ + swipe: (event, direction) => { + thumbSelected = $(prestashop.themeSelectors.product.selected); + const parentThumb = thumbSelected.closest(prestashop.themeSelectors.product.thumbContainer); + + if (direction === 'right') { + if (parentThumb.prev().length > 0) { + swipe(thumbSelected, parentThumb.prev()); + } else if (parentThumb.next().length > 0) { + swipe(thumbSelected, parentThumb.next()); + } + } else if (direction === 'left') { + if (parentThumb.next().length > 0) { + swipe(thumbSelected, parentThumb.next()); + } else if (parentThumb.prev().length > 0) { + swipe(thumbSelected, parentThumb.prev()); + } + } + }, + allowPageScroll: 'vertical', + }); + } + + function imageScrollBox() { + if ($('#main .js-qv-product-images li').length > 2) { + $('#main .js-qv-mask').addClass('scroll'); + $('.scroll-box-arrows').addClass('scroll'); + $('#main .js-qv-mask').scrollbox({ + direction: 'h', + distance: 113, + autoPlay: false, + }); + $('.scroll-box-arrows .left').click(() => { + $('#main .js-qv-mask').trigger('backward'); + }); + $('.scroll-box-arrows .right').click(() => { + $('#main .js-qv-mask').trigger('forward'); + }); + } else { + $('#main .js-qv-mask').removeClass('scroll'); + $('.scroll-box-arrows').removeClass('scroll'); + } + } + + function createInputFile() { + $(prestashop.themeSelectors.fileInput).on('change', (event) => { + const target = $(event.currentTarget)[0]; + const file = (target) ? target.files[0] : null; + + if (target && file) { + $(target).prev().text(file.name); + } + }); + } + + function createProductSpin() { + const $quantityInput = $(prestashop.selectors.quantityWanted); + + $quantityInput.TouchSpin({ + verticalbuttons: true, + verticalupclass: 'material-icons touchspin-up', + verticaldownclass: 'material-icons touchspin-down', + buttondown_class: 'btn btn-touchspin js-touchspin', + buttonup_class: 'btn btn-touchspin js-touchspin', + min: parseInt($quantityInput.attr('min'), 10), + max: 1000000, + }); + + $(prestashop.themeSelectors.touchspin).off('touchstart.touchspin'); + + $quantityInput.on('focusout', () => { + if ($quantityInput.val() === '' || $quantityInput.val() < $quantityInput.attr('min')) { + $quantityInput.val($quantityInput.attr('min')); + $quantityInput.trigger('change'); + } + }); + + $('body').on('change keyup', prestashop.selectors.quantityWanted, (e) => { + if ($quantityInput.val() !== '') { + $(e.currentTarget).trigger('touchspin.stopspin'); + prestashop.emit('updateProduct', { + eventType: 'updatedProductQuantity', + event: e, + }); + } + }); + } + + function addJsProductTabActiveSelector() { + const nav = $(prestashop.themeSelectors.product.tabs); + nav.on('show.bs.tab', (e) => { + const target = $(e.target); + target.addClass(prestashop.themeSelectors.product.activeNavClass); + $(target.attr('href')).addClass(prestashop.themeSelectors.product.activeTabClass); + }); + nav.on('hide.bs.tab', (e) => { + const target = $(e.target); + target.removeClass(prestashop.themeSelectors.product.activeNavClass); + $(target.attr('href')).removeClass(prestashop.themeSelectors.product.activeTabClass); + }); + } + + createProductSpin(); + createInputFile(); + coverImage(); + imageScrollBox(); + addJsProductTabActiveSelector(); + + prestashop.on('updatedProduct', (event) => { + createInputFile(); + coverImage(); + if (event && event.product_minimal_quantity) { + const minimalProductQuantity = parseInt(event.product_minimal_quantity, 10); + const quantityInputSelector = prestashop.selectors.quantityWanted; + const quantityInput = $(quantityInputSelector); + + // @see http://www.virtuosoft.eu/code/bootstrap-touchspin/ about Bootstrap TouchSpin + quantityInput.trigger('touchspin.updatesettings', { + min: minimalProductQuantity, + }); + } + imageScrollBox(); + $($(prestashop.themeSelectors.product.activeTabs).attr('href')).addClass('active').removeClass('fade'); + $(prestashop.themeSelectors.product.imagesModal).replaceWith(event.product_images_modal); + + const productSelect = new ProductSelect(); + productSelect.init(); + }); +}); diff --git a/_dev/js/responsive.js b/_dev/js/responsive.js new file mode 100644 index 0000000..f925d09 --- /dev/null +++ b/_dev/js/responsive.js @@ -0,0 +1,80 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ +import $ from 'jquery'; +import prestashop from 'prestashop'; + +prestashop.responsive = prestashop.responsive || {}; + +prestashop.responsive.current_width = window.innerWidth; +prestashop.responsive.min_width = 768; +prestashop.responsive.mobile = prestashop.responsive.current_width < prestashop.responsive.min_width; + +function swapChildren(obj1, obj2) { + const temp = obj2.children().detach(); + obj2.empty().append(obj1.children().detach()); + obj1.append(temp); +} + +function toggleMobileStyles() { + if (prestashop.responsive.mobile) { + $("*[id^='_desktop_']").each((idx, el) => { + const target = $(`#${el.id.replace('_desktop_', '_mobile_')}`); + + if (target.length) { + swapChildren($(el), target); + } + }); + } else { + $("*[id^='_mobile_']").each((idx, el) => { + const target = $(`#${el.id.replace('_mobile_', '_desktop_')}`); + + if (target.length) { + swapChildren($(el), target); + } + }); + } + prestashop.emit('responsive update', { + mobile: prestashop.responsive.mobile, + }); +} + +$(window).on('resize', () => { + const cw = prestashop.responsive.current_width; + const mw = prestashop.responsive.min_width; + const w = window.innerWidth; + const toggle = (cw >= mw && w < mw) || (cw < mw && w >= mw); + + prestashop.responsive.current_width = w; + prestashop.responsive.mobile = prestashop.responsive.current_width < prestashop.responsive.min_width; + if (toggle) { + toggleMobileStyles(); + } +}); + +$(document).ready(() => { + if (prestashop.responsive.mobile) { + toggleMobileStyles(); + } +}); diff --git a/_dev/js/selectors.js b/_dev/js/selectors.js new file mode 100644 index 0000000..d0a7e8c --- /dev/null +++ b/_dev/js/selectors.js @@ -0,0 +1,109 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ +import prestashop from 'prestashop'; +import $ from 'jquery'; + +const passwordPolicy = { + template: '#password-feedback', + hint: '.js-hint-password', + container: '.password-strength-feedback', + strengthText: '.password-strength-text', + requirementScore: '.password-requirements-score', + requirementLength: '.password-requirements-length', + requirementScoreIcon: '.password-requirements-score i', + requirementLengthIcon: '.password-requirements-length i', + progressBar: '.progress-bar', + inputColumn: '.js-input-column', +}; + +prestashop.themeSelectors = { + product: { + tabs: '.tabs .nav-link', + activeNavClass: 'js-product-nav-active', + activeTabClass: 'js-product-tab-active', + activeTabs: '.tabs .nav-link.active, .js-product-nav-active', + imagesModal: '.js-product-images-modal', + thumb: '.js-thumb', + thumbContainer: '.thumb-container, .js-thumb-container', + arrows: '.js-arrows', + selected: '.selected, .js-thumb-selected', + modalProductCover: '.js-modal-product-cover', + cover: '.js-qv-product-cover', + customizationModal: '.js-customization-modal', + }, + listing: { + searchFilterToggler: '#search_filter_toggler, .js-search-toggler', + searchFiltersWrapper: '#search_filters_wrapper', + searchFilterControls: '#search_filter_controls', + searchFilters: '#search_filters', + activeSearchFilters: '#js-active-search-filters', + listTop: '#js-product-list-top', + product: '.js-product', + list: '#js-product-list', + listBottom: '#js-product-list-bottom', + listHeader: '#js-product-list-header', + searchFiltersClearAll: '.js-search-filters-clear-all', + searchLink: '.js-search-link', + }, + order: { + returnForm: '#order-return-form, .js-order-return-form', + }, + arrowDown: '.arrow-down, .js-arrow-down', + arrowUp: '.arrow-up, .js-arrow-up', + clear: '.clear', + fileInput: '.js-file-input', + contentWrapper: '#content-wrapper, .js-content-wrapper', + footer: '#footer, .js-footer', + modalContent: '.js-modal-content', + modal: '#modal, .js-checkout-modal', + touchspin: '.js-touchspin', + checkout: { + termsLink: '.js-terms a', + giftCheckbox: '.js-gift-checkbox', + imagesLink: '.card-block .cart-summary-products p a, .js-show-details', + carrierExtraContent: '.carrier-extra-content, .js-carrier-extra-content', + btn: '.checkout a', + }, + cart: { + productLineQty: '.js-cart-line-product-quantity', + quickview: '.quickview', + touchspin: '.bootstrap-touchspin', + promoCode: '#promo-code', + displayPromo: '.display-promo', + promoCodeButton: '.promo-code-button', + discountCode: '.js-discount .code', + discountName: '[name=discount_name]', + actions: '[data-link-action="delete-from-cart"], [data-link-action="remove-voucher"]', + }, + notifications: { + dangerAlert: '#notifications article.alert-danger', + container: '#notifications .notifications-container', + }, + passwordPolicy, +}; + +$(document).ready(() => { + prestashop.emit('themeSelectorsInit'); +}); diff --git a/_dev/js/theme.js b/_dev/js/theme.js new file mode 100644 index 0000000..e64d3c8 --- /dev/null +++ b/_dev/js/theme.js @@ -0,0 +1,151 @@ +/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */ +/* eslint-disable */ +import "jquery-offcanvas/dist/jquery.offcanvas.min.css"; +import touchspin from "bootstrap-touchspin"; +import "jquery-touchswipe"; +import "./selectors"; + +import "./responsive"; +import "./checkout"; +import "./customer"; +import "./listing"; +import "./product"; +import "./cart"; +import "./facets"; + +import prestashop from "prestashop"; +import EventEmitter from "events"; +import DropDown from "./components/drop-down"; +import Form from "./components/form"; +import usePasswordPolicy from "./components/usePasswordPolicy"; +import ProductMinitature from "./components/product-miniature"; +import ProductSelect from "./components/product-select"; +import TopMenu from "./components/top-menu"; + +import "./components/block-cart"; +import $ from "jquery"; +import jo from "jquery-offcanvas"; +jo(window, $); +touchspin(window, $); +/* eslint-enable */ + +// "inherit" EventEmitter +// eslint-disable-next-line +for (const i in EventEmitter.prototype) { + prestashop[i] = EventEmitter.prototype[i]; +} + +$(function () { + const dropDownEl = $(".js-dropdown"); + const form = new Form(); + const topMenuEl = $('.js-top-menu ul[data-depth="0"]'); + const dropDown = new DropDown(dropDownEl); + const topMenu = new TopMenu(topMenuEl); + const productMinitature = new ProductMinitature(); + const productSelect = new ProductSelect(); + dropDown.init(); + form.init(); + topMenu.init(); + productMinitature.init(); + productSelect.init(); + usePasswordPolicy(".field-password-policy"); + + $('.carousel[data-touch="true"]').swipe({ + swipe(event, direction) { + if (direction === "left") { + $(this).carousel("next"); + } + if (direction === "right") { + $(this).carousel("prev"); + } + }, + allowPageScroll: "vertical", + }); + + // $("#products_top_sidebar").offcanvas({ + // effect: "slide-in-over", + // overlay: true, + // classes: { + // element: "absolute top-0 z-50", + // }, + // }); + // + // $("#show_filters").on("click", function () { + // $("#products_top_sidebar").offcanvas("toggle"); + // }); + + function ThAccordion() {} + + $.extend(ThAccordion.prototype, { + init() {}, + }); + + $.fn["thaccordion"] = function () { + var selectors = { + root: ".th-accordion", + item: ".th-accordion-item", + trigger: ".th-accordion-item-trigger", + content: ".th-accordion-item-content", + }; + let selection = null; + let items = this.find(selectors.item); + + function collapseAll() { + items.each(function () { + $(this).find(selectors.content).hide(500); + }); + } + + function open() { + collapseAll(); + $(selection).find(selectors.content).show(500); + } + + function isOpen(item) { + return $(item).find(selectors.content).is(":visible"); + } + + collapseAll(); + + items.each(function () { + var self = this; + $(this) + .find(selectors.trigger) + .on("click", function () { + if (selection === self) { + selection = null; + } else { + selection = self; + if (!isOpen(selection)) { + open(); + } + } + }); + }); + }; + + $(".th-accordion").thaccordion(); +}); diff --git a/_dev/package.json b/_dev/package.json index 7012fa7..59efccd 100644 --- a/_dev/package.json +++ b/_dev/package.json @@ -5,11 +5,24 @@ "license": "MIT", "devDependencies": { "livereload": "^0.9.3", - "tailwindcss": "^3.3.5" + "tailwindcss": "^3.3.5", + "vite": "^4.5.0" }, "scripts": { "dev:tailwind": "tailwindcss -i ./elegance.css -o ../assets/css/theme.css --watch", "dev:livereload": "livereload \"../templates/, ../modules/, ../assets/\"", - "dev": "yarn run dev:livereload & yarn run dev:tailwind" + "dev:js": "vite build --watch", + "dev": "yarn run dev:livereload & yarn run dev:tailwind & yarn run dev:js" + }, + "dependencies": { + "@tailwindcss/forms": "^0.5.6", + "bootstrap-touchspin": "^4.7.3", + "events": "^3.3.0", + "jquery": "3.5.1", + "jquery-offcanvas": "^3.4.7", + "jquery-touchswipe": "^1.6.19", + "postcss-import": "^15.1.0", + "sprintf-js": "^1.1.3", + "velocity-animate": "^1.5.2" } } diff --git a/_dev/postcss.config.js b/_dev/postcss.config.js new file mode 100644 index 0000000..8f7c3f5 --- /dev/null +++ b/_dev/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + "postcss-import": {}, + tailwindcss: {}, + }, +}; diff --git a/_dev/tailwind.config.js b/_dev/tailwind.config.js index c2ef0e9..455fa67 100644 --- a/_dev/tailwind.config.js +++ b/_dev/tailwind.config.js @@ -1,12 +1,11 @@ /** @type {import('tailwindcss').Config} */ module.exports = { - content: ["../templates/**/*.tpl", "../modules/**/*.tpl"], - theme: { - fontFamily: { - sans: ["Cairo"], - serif: ["Cairo"] - } + content: ["../templates/**/*.tpl", "../modules/**/*.tpl"], + theme: { + fontFamily: { + sans: ["Cairo"], + serif: ["Cairo"], }, - plugins: [], -} - + }, + plugins: [require("@tailwindcss/forms")], +}; diff --git a/_dev/vite.config.js b/_dev/vite.config.js new file mode 100644 index 0000000..a7ae609 --- /dev/null +++ b/_dev/vite.config.js @@ -0,0 +1,28 @@ +import { defineConfig } from "vite"; + +export default defineConfig({ + build: { + sourcemap: "inline", + minify: false, + lib: { + entry: "./js/theme.js", + name: "theme", + formats: ["iife"], + fileName: function () { + return "theme.js"; + }, + }, + outDir: "../assets/js/", + rollupOptions: { + external: ["$", "jquery", "prestashop"], + output: { + globals: { + $: "$", + jquery: "jQuery", + prestashop: "prestashop", + }, + }, + }, + write: true, + }, +}); diff --git a/_dev/yarn-error.log b/_dev/yarn-error.log new file mode 100644 index 0000000..fc5e38b --- /dev/null +++ b/_dev/yarn-error.log @@ -0,0 +1,822 @@ +Arguments: + /Users/dineshsalunke/.local/share/nvm/v16.20.0/bin/node /Users/dineshsalunke/.local/share/nvm/v16.20.0/bin/yarn add update-sources + +PATH: + /Users/dineshsalunke/.bun/bin:/Users/dineshsalunke/.local/bin:/Users/dineshsalunke/.local/share/nvm/v16.20.0/bin:/Users/dineshsalunke/.cargo/bin:/opt/homebrew/bin:/bin:/Users/dineshsalunke/go/bin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/Library/Apple/usr/bin:/usr/local/go/bin + +Yarn version: + 1.22.19 + +Node version: + 16.20.0 + +Platform: + darwin arm64 + +Trace: + Error: https://registry.yarnpkg.com/update-sources: Not found + at Request.params.callback [as _callback] (/Users/dineshsalunke/.local/share/nvm/v16.20.0/lib/node_modules/yarn/lib/cli.js:66145:18) + at Request.self.callback (/Users/dineshsalunke/.local/share/nvm/v16.20.0/lib/node_modules/yarn/lib/cli.js:140890:22) + at Request.emit (node:events:513:28) + at Request.<anonymous> (/Users/dineshsalunke/.local/share/nvm/v16.20.0/lib/node_modules/yarn/lib/cli.js:141862:10) + at Request.emit (node:events:513:28) + at IncomingMessage.<anonymous> (/Users/dineshsalunke/.local/share/nvm/v16.20.0/lib/node_modules/yarn/lib/cli.js:141784:12) + at Object.onceWrapper (node:events:627:28) + at IncomingMessage.emit (node:events:525:35) + at endReadableNT (node:internal/streams/readable:1358:12) + at processTicksAndRejections (node:internal/process/task_queues:83:21) + +npm manifest: + { + "name": "elegance", + "version": "1.0.0", + "main": "index.js", + "license": "MIT", + "devDependencies": { + "livereload": "^0.9.3", + "tailwindcss": "^3.3.5", + "vite": "^4.5.0" + }, + "scripts": { + "dev:tailwind": "tailwindcss -i ./elegance.css -o ../assets/css/theme.css --watch", + "dev:livereload": "livereload \"../templates/, ../modules/, ../assets/\"", + "dev:js": "vite dev", + "dev": "yarn run dev:livereload & yarn run dev:tailwind & yarn run dev:js" + }, + "dependencies": { + "bootstrap-touchspin": "^4.7.3", + "events": "^3.3.0", + "jquery": "^3.7.1", + "jquery-touchswipe": "^1.6.19", + "sprintf-js": "^1.1.3", + "velocity-animate": "^1.5.2" + } + } + +yarn manifest: + No manifest + +Lockfile: + # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + # yarn lockfile v1 + + + "@alloc/quick-lru@^5.2.0": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" + integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== + + "@esbuild/android-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" + integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== + + "@esbuild/android-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" + integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== + + "@esbuild/android-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" + integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== + + "@esbuild/darwin-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" + integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== + + "@esbuild/darwin-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" + integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== + + "@esbuild/freebsd-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" + integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== + + "@esbuild/freebsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" + integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== + + "@esbuild/linux-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" + integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== + + "@esbuild/linux-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" + integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== + + "@esbuild/linux-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" + integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== + + "@esbuild/linux-loong64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" + integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== + + "@esbuild/linux-mips64el@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" + integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== + + "@esbuild/linux-ppc64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" + integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== + + "@esbuild/linux-riscv64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" + integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== + + "@esbuild/linux-s390x@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" + integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== + + "@esbuild/linux-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" + integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== + + "@esbuild/netbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" + integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== + + "@esbuild/openbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" + integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== + + "@esbuild/sunos-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" + integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== + + "@esbuild/win32-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" + integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== + + "@esbuild/win32-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" + integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== + + "@esbuild/win32-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" + integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== + + "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + + "@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + + "@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + + "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + + "@jridgewell/trace-mapping@^0.3.9": + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + + "@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + + "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + + "@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + + any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + + anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + + arg@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + + balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + + binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + + bootstrap-touchspin@^4.7.3: + version "4.7.3" + resolved "https://registry.yarnpkg.com/bootstrap-touchspin/-/bootstrap-touchspin-4.7.3.tgz#0316a3e7a390eb8811996cc14ab13ff0efb647de" + integrity sha512-VVyPKI05ybS4ciB0OJ8g4Jx4SU3rlrWa/ItSxIi7BWNVa0jUYt3eujeOiBWpkuEGukECwiAbwuzh3a+xLtxueQ== + + brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + + braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + + camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + + chokidar@^3.5.0, chokidar@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + + commander@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + + concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + + cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + + didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + + dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + + esbuild@^0.18.10: + version "0.18.20" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== + optionalDependencies: + "@esbuild/android-arm" "0.18.20" + "@esbuild/android-arm64" "0.18.20" + "@esbuild/android-x64" "0.18.20" + "@esbuild/darwin-arm64" "0.18.20" + "@esbuild/darwin-x64" "0.18.20" + "@esbuild/freebsd-arm64" "0.18.20" + "@esbuild/freebsd-x64" "0.18.20" + "@esbuild/linux-arm" "0.18.20" + "@esbuild/linux-arm64" "0.18.20" + "@esbuild/linux-ia32" "0.18.20" + "@esbuild/linux-loong64" "0.18.20" + "@esbuild/linux-mips64el" "0.18.20" + "@esbuild/linux-ppc64" "0.18.20" + "@esbuild/linux-riscv64" "0.18.20" + "@esbuild/linux-s390x" "0.18.20" + "@esbuild/linux-x64" "0.18.20" + "@esbuild/netbsd-x64" "0.18.20" + "@esbuild/openbsd-x64" "0.18.20" + "@esbuild/sunos-x64" "0.18.20" + "@esbuild/win32-arm64" "0.18.20" + "@esbuild/win32-ia32" "0.18.20" + "@esbuild/win32-x64" "0.18.20" + + events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + + fast-glob@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + + fastq@^1.6.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== + dependencies: + reusify "^1.0.4" + + fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + + fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + + fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + + function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + + glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + + glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + + glob@7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + + hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + + inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + + inherits@2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + + is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + + is-core-module@^2.13.0: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + + is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + + is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + + is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + + jiti@^1.19.1: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== + + jquery-touchswipe@^1.6.19: + version "1.6.19" + resolved "https://registry.yarnpkg.com/jquery-touchswipe/-/jquery-touchswipe-1.6.19.tgz#dfd5ddaec0b78212dd500d29707129b9c7fd6cd4" + integrity sha512-b0BGje9reNRU3u6ksAK9QqnX7yBRgLNe/wYG7DOfyDlhBlYjayIT8bSOHmcuvptIDW/ubM9CTW/mnZf9Rohuow== + + jquery@^3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de" + integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg== + + lilconfig@^2.0.5, lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + + lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + + livereload-js@^3.3.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-3.4.1.tgz#ba90fbc708ed1b9a024bb89c4ee12c96ea03d66f" + integrity sha512-5MP0uUeVCec89ZbNOT/i97Mc+q3SxXmiUGhRFOTmhrGPn//uWVQdCvcLJDy64MSBR5MidFdOR7B9viumoavy6g== + + livereload@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/livereload/-/livereload-0.9.3.tgz#a714816375ed52471408bede8b49b2ee6a0c55b1" + integrity sha512-q7Z71n3i4X0R9xthAryBdNGVGAO2R5X+/xXpmKeuPMrteg+W2U8VusTKV3YiJbXZwKsOlFlHe+go6uSNjfxrZw== + dependencies: + chokidar "^3.5.0" + livereload-js "^3.3.1" + opts ">= 1.2.0" + ws "^7.4.3" + + merge2@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + + micromatch@^4.0.4, micromatch@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + + minimatch@^3.0.4: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + + mz@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + + nanoid@^3.3.6: + version "3.3.6" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" + integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== + + normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + + object-assign@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + + object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + + once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + + "opts@>= 1.2.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/opts/-/opts-2.0.2.tgz#a17e189fbbfee171da559edd8a42423bc5993ce1" + integrity sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg== + + path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + + path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + + picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + + picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + + pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + + pirates@^4.0.1: + version "4.0.6" + resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + + postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + + postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== + dependencies: + camelcase-css "^2.0.1" + + postcss-load-config@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd" + integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA== + dependencies: + lilconfig "^2.0.5" + yaml "^2.1.1" + + postcss-nested@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== + dependencies: + postcss-selector-parser "^6.0.11" + + postcss-selector-parser@^6.0.11: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + + postcss-value-parser@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + + postcss@^8.4.23, postcss@^8.4.27: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + + queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + + read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + + readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + + resolve@^1.1.7, resolve@^1.22.2: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + + reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + + rollup@^3.27.1: + version "3.29.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" + integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== + optionalDependencies: + fsevents "~2.3.2" + + run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + + source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + + sprintf-js@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== + + sucrase@^3.32.0: + version "3.34.0" + resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.34.0.tgz#1e0e2d8fcf07f8b9c3569067d92fbd8690fb576f" + integrity sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "7.1.6" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + + supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + + tailwindcss@^3.3.5: + version "3.3.5" + resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.5.tgz#22a59e2fbe0ecb6660809d9cc5f3976b077be3b8" + integrity sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA== + dependencies: + "@alloc/quick-lru" "^5.2.0" + arg "^5.0.2" + chokidar "^3.5.3" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.3.0" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.19.1" + lilconfig "^2.1.0" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" + postcss-selector-parser "^6.0.11" + resolve "^1.22.2" + sucrase "^3.32.0" + + thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + + "thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + + to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + + ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + + util-deprecate@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + + velocity-animate@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/velocity-animate/-/velocity-animate-1.5.2.tgz#5a351d75fca2a92756f5c3867548b873f6c32105" + integrity sha512-m6EXlCAMetKztO1ppBhGU1/1MR3IiEevO6ESq6rcrSQ3Q77xYSW13jkfXW88o4xMrkXJhy/U7j4wFR/twMB0Eg== + + vite@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.0.tgz#ec406295b4167ac3bc23e26f9c8ff559287cff26" + integrity sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw== + dependencies: + esbuild "^0.18.10" + postcss "^8.4.27" + rollup "^3.27.1" + optionalDependencies: + fsevents "~2.3.2" + + wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + + ws@^7.4.3: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + + yaml@^2.1.1: + version "2.3.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.3.tgz#01f6d18ef036446340007db8e016810e5d64aad9" + integrity sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ== diff --git a/_dev/yarn.lock b/_dev/yarn.lock index 0dc65d7..f461601 100644 --- a/_dev/yarn.lock +++ b/_dev/yarn.lock @@ -7,6 +7,116 @@ resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30" integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== +"@esbuild/android-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" + integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== + +"@esbuild/android-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" + integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== + +"@esbuild/android-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" + integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== + +"@esbuild/darwin-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" + integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== + +"@esbuild/darwin-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" + integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== + +"@esbuild/freebsd-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" + integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== + +"@esbuild/freebsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" + integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== + +"@esbuild/linux-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" + integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== + +"@esbuild/linux-arm@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" + integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== + +"@esbuild/linux-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" + integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== + +"@esbuild/linux-loong64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" + integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== + +"@esbuild/linux-mips64el@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" + integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== + +"@esbuild/linux-ppc64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" + integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== + +"@esbuild/linux-riscv64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" + integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== + +"@esbuild/linux-s390x@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" + integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== + +"@esbuild/linux-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" + integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== + +"@esbuild/netbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" + integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== + +"@esbuild/openbsd-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" + integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== + +"@esbuild/sunos-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" + integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== + +"@esbuild/win32-arm64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" + integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== + +"@esbuild/win32-ia32@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" + integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== + +"@esbuild/win32-x64@0.18.20": + version "0.18.20" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" + integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== + "@jridgewell/gen-mapping@^0.3.2": version "0.3.3" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" @@ -60,6 +170,13 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" +"@tailwindcss/forms@^0.5.6": + version "0.5.6" + resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.6.tgz#29c6c2b032b363e0c5110efed1499867f6d7e868" + integrity sha512-Fw+2BJ0tmAwK/w01tEFL5TiaJBX1NLT1/YbWgvm7ws3Qcn11kiXxzNTEQDMs5V3mQemhB56l3u0i9dwdzSQldA== + dependencies: + mini-svg-data-uri "^1.2.3" + any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" @@ -88,6 +205,11 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== +bootstrap-touchspin@^4.7.3: + version "4.7.3" + resolved "https://registry.yarnpkg.com/bootstrap-touchspin/-/bootstrap-touchspin-4.7.3.tgz#0316a3e7a390eb8811996cc14ab13ff0efb647de" + integrity sha512-VVyPKI05ybS4ciB0OJ8g4Jx4SU3rlrWa/ItSxIi7BWNVa0jUYt3eujeOiBWpkuEGukECwiAbwuzh3a+xLtxueQ== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -148,6 +270,39 @@ dlv@^1.1.3: resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== +esbuild@^0.18.10: + version "0.18.20" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" + integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== + optionalDependencies: + "@esbuild/android-arm" "0.18.20" + "@esbuild/android-arm64" "0.18.20" + "@esbuild/android-x64" "0.18.20" + "@esbuild/darwin-arm64" "0.18.20" + "@esbuild/darwin-x64" "0.18.20" + "@esbuild/freebsd-arm64" "0.18.20" + "@esbuild/freebsd-x64" "0.18.20" + "@esbuild/linux-arm" "0.18.20" + "@esbuild/linux-arm64" "0.18.20" + "@esbuild/linux-ia32" "0.18.20" + "@esbuild/linux-loong64" "0.18.20" + "@esbuild/linux-mips64el" "0.18.20" + "@esbuild/linux-ppc64" "0.18.20" + "@esbuild/linux-riscv64" "0.18.20" + "@esbuild/linux-s390x" "0.18.20" + "@esbuild/linux-x64" "0.18.20" + "@esbuild/netbsd-x64" "0.18.20" + "@esbuild/openbsd-x64" "0.18.20" + "@esbuild/sunos-x64" "0.18.20" + "@esbuild/win32-arm64" "0.18.20" + "@esbuild/win32-ia32" "0.18.20" + "@esbuild/win32-x64" "0.18.20" + +events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== + fast-glob@^3.3.0: version "3.3.1" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" @@ -270,6 +425,21 @@ jiti@^1.19.1: resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== +jquery-offcanvas@^3.4.7: + version "3.4.7" + resolved "https://registry.yarnpkg.com/jquery-offcanvas/-/jquery-offcanvas-3.4.7.tgz#dde1f492f5904ff76bdd98ba42f1e514fa52ed70" + integrity sha512-5E3ITQNKgyzJfXqa80Nm9QBCVng4IpbrlGqAuCMSll7yPjoqJgTBl4akZE5rZXJrIpPrp1wPIjPF8tAyuhTD6g== + +jquery-touchswipe@^1.6.19: + version "1.6.19" + resolved "https://registry.yarnpkg.com/jquery-touchswipe/-/jquery-touchswipe-1.6.19.tgz#dfd5ddaec0b78212dd500d29707129b9c7fd6cd4" + integrity sha512-b0BGje9reNRU3u6ksAK9QqnX7yBRgLNe/wYG7DOfyDlhBlYjayIT8bSOHmcuvptIDW/ubM9CTW/mnZf9Rohuow== + +jquery@3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz#d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5" + integrity sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg== + lilconfig@^2.0.5, lilconfig@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" @@ -308,6 +478,11 @@ micromatch@^4.0.4, micromatch@^4.0.5: braces "^3.0.2" picomatch "^2.3.1" +mini-svg-data-uri@^1.2.3: + version "1.4.4" + resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" + integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== + minimatch@^3.0.4: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -430,7 +605,7 @@ postcss-value-parser@^4.0.0: resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.4.23: +postcss@^8.4.23, postcss@^8.4.27: version "8.4.31" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== @@ -472,6 +647,13 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rollup@^3.27.1: + version "3.29.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" + integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== + optionalDependencies: + fsevents "~2.3.2" + run-parallel@^1.1.9: version "1.2.0" resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" @@ -484,6 +666,11 @@ source-map-js@^1.0.2: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +sprintf-js@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== + sucrase@^3.32.0: version "3.34.0" resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.34.0.tgz#1e0e2d8fcf07f8b9c3569067d92fbd8690fb576f" @@ -561,6 +748,22 @@ util-deprecate@^1.0.2: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +velocity-animate@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/velocity-animate/-/velocity-animate-1.5.2.tgz#5a351d75fca2a92756f5c3867548b873f6c32105" + integrity sha512-m6EXlCAMetKztO1ppBhGU1/1MR3IiEevO6ESq6rcrSQ3Q77xYSW13jkfXW88o4xMrkXJhy/U7j4wFR/twMB0Eg== + +vite@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.0.tgz#ec406295b4167ac3bc23e26f9c8ff559287cff26" + integrity sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw== + dependencies: + esbuild "^0.18.10" + postcss "^8.4.27" + rollup "^3.27.1" + optionalDependencies: + fsevents "~2.3.2" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" diff --git a/assets/css/theme.css b/assets/css/theme.css index f949145..5c53134 100644 --- a/assets/css/theme.css +++ b/assets/css/theme.css @@ -584,6 +584,10 @@ video { visibility: collapse; } +.fixed { + position: fixed; +} + .absolute { position: absolute; } @@ -604,6 +608,10 @@ video { left: 0px; } +.left-\[-300px\] { + left: -300px; +} + .left-\[100\%\] { left: 100%; } @@ -632,10 +640,18 @@ video { top: 50%; } +.top-4 { + top: 1rem; +} + .top-full { top: 100%; } +.z-10 { + z-index: 10; +} + .z-30 { z-index: 30; } @@ -655,11 +671,6 @@ video { margin-right: auto; } -.my-12 { - margin-top: 3rem; - margin-bottom: 3rem; -} - .my-2 { margin-top: 0.5rem; margin-bottom: 0.5rem; @@ -695,6 +706,10 @@ video { margin-top: 0.25rem; } +.mt-12 { + margin-top: 3rem; +} + .mt-16 { margin-top: 4rem; } @@ -755,8 +770,12 @@ video { height: 6rem; } -.h-48 { - height: 12rem; +.h-5 { + height: 1.25rem; +} + +.h-5 { + height: 1.25rem; } .h-6 { @@ -775,8 +794,8 @@ video { height: 100%; } -.w-1\/3 { - width: 33.333333%; +.h-screen { + height: 100vh; } .w-1\/4 { @@ -795,10 +814,18 @@ video { width: 6rem; } +.w-40 { + width: 10rem; +} + .w-48 { width: 12rem; } +.w-5 { + width: 1.25rem; +} + .w-6 { width: 1.5rem; } @@ -878,6 +905,10 @@ video { align-items: center; } +.items-baseline { + align-items: baseline; +} + .justify-end { justify-content: flex-end; } @@ -914,6 +945,10 @@ video { gap: 2rem; } +.overflow-y-auto { + overflow-y: auto; +} + .truncate { overflow: hidden; text-overflow: ellipsis; @@ -968,10 +1003,18 @@ video { object-fit: cover; } +.p-2 { + padding: 0.5rem; +} + .p-3 { padding: 0.75rem; } +.p-4 { + padding: 1rem; +} + .px-2 { padding-left: 0.5rem; padding-right: 0.5rem; @@ -1068,6 +1111,11 @@ video { line-height: 1.75rem; } +.text-xs { + font-size: 0.75rem; + line-height: 1rem; +} + .font-bold { font-weight: 700; } @@ -1147,12 +1195,28 @@ video { filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); } +.duration-1000 { + transition-duration: 1000ms; +} + body { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity)); --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity)); - font-weight: 400; + font-weight: 300; +} + +a { + --tw-text-opacity: 1; + color: rgb(75 85 99 / var(--tw-text-opacity)); +} + +a:hover { + --tw-text-opacity: 1; + color: rgb(29 78 216 / var(--tw-text-opacity)); + text-decoration-line: underline; + text-underline-offset: 2px; } .icon-tabler { @@ -1196,19 +1260,28 @@ a:hover .icon-tabler { box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } +.disabled\:bg-gray-700:disabled { + --tw-bg-opacity: 1; + background-color: rgb(55 65 81 / var(--tw-bg-opacity)); +} + .group:hover .group-hover\:flex { display: flex; } -.group:hover .group-hover\:text-gray-950 { +.group:hover .group-hover\:text-blue-900 { --tw-text-opacity: 1; - color: rgb(3 7 18 / var(--tw-text-opacity)); + color: rgb(30 58 138 / var(--tw-text-opacity)); } @media (min-width: 640px) { .sm\:flex { display: flex; } + + .sm\:flex-row { + flex-direction: row; + } } @media (min-width: 768px) { @@ -1224,10 +1297,18 @@ a:hover .icon-tabler { width: 50%; } + .md\:w-1\/3 { + width: 33.333333%; + } + .md\:w-24 { width: 6rem; } + .md\:w-1\/3 { + width: 33.333333%; + } + .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } @@ -1235,6 +1316,18 @@ a:hover .icon-tabler { .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } + + .md\:flex-row { + flex-direction: row; + } + + .md\:flex-nowrap { + flex-wrap: nowrap; + } + + .md\:items-start { + align-items: flex-start; + } } @media (min-width: 1024px) { @@ -1242,12 +1335,12 @@ a:hover .icon-tabler { position: static; } - .lg\:right-0 { - right: 0px; + .lg\:left-0 { + left: 0px; } - .lg\:mt-36 { - margin-top: 9rem; + .lg\:right-0 { + right: 0px; } .lg\:flex { diff --git a/assets/js/style.css b/assets/js/style.css new file mode 100644 index 0000000..fbef532 --- /dev/null +++ b/assets/js/style.css @@ -0,0 +1,10 @@ +/** + * jQuery.offcanvas v3.4.7 - Easy to use jQuery offcanvas plugin. + * Copyright 2016 Lars Graubner - http://lgraubner.github.io/jquery-offcanvas/ + * License: MIT + */ +.offcanvas{position:relative} +.offcanvas-outer{left:0;overflow-x:hidden;position:absolute;top:0;width:100%} +.offcanvas-inner{position:relative} +.offcanvas-element{margin:0;overflow:hidden;position:absolute;top:0;z-index:2} +.offcanvas-overlay{display:none;position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;z-index:1} \ No newline at end of file diff --git a/assets/js/theme.js b/assets/js/theme.js index d1b0e87..8c36fe8 100644 --- a/assets/js/theme.js +++ b/assets/js/theme.js @@ -1 +1,438 @@ -!function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=26)}([function(t,e){t.exports=jQuery},function(t,e){t.exports=prestashop},function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=n(0),a=function(t){return t&&t.__esModule?t:{default:t}}(o),s=function(){function t(e){i(this,t),this.el=e}return r(t,[{key:"init",value:function(){this.el.on("show.bs.dropdown",function(t,e){e?(0,a.default)("#"+e).find(".dropdown-menu").first().stop(!0,!0).slideDown():(0,a.default)(t.target).find(".dropdown-menu").first().stop(!0,!0).slideDown()}),this.el.on("hide.bs.dropdown",function(t,e){e?(0,a.default)("#"+e).find(".dropdown-menu").first().stop(!0,!0).slideUp():(0,a.default)(t.target).find(".dropdown-menu").first().stop(!0,!0).slideUp()}),this.el.find("select.link").each(function(t,e){(0,a.default)(e).on("change",function(t){window.location=(0,a.default)(this).val()})})}}]),t}();e.default=s,t.exports=e.default},function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=n(0),a=function(t){return t&&t.__esModule?t:{default:t}}(o),s=function(){function t(){i(this,t)}return r(t,[{key:"init",value:function(){(0,a.default)(".js-product-miniature").each(function(t,e){(0,a.default)(e).find(".color").length>5&&function(){var t=0;(0,a.default)(e).find(".color").each(function(e,n){e>4&&((0,a.default)(n).hide(),t++)}),(0,a.default)(e).find(".js-count").append("+"+t)}()})}}]),t}();e.default=s,t.exports=e.default},function(t,e,n){"use strict";var i,r;!function(t){function e(t){var e=t.length,i=n.type(t);return"function"!==i&&!n.isWindow(t)&&(!(1!==t.nodeType||!e)||("array"===i||0===e||"number"==typeof e&&e>0&&e-1 in t))}if(!t.jQuery){var n=function t(e,n){return new t.fn.init(e,n)};n.isWindow=function(t){return t&&t===t.window},n.type=function(t){return t?"object"==typeof t||"function"==typeof t?r[a.call(t)]||"object":typeof t:t+""},n.isArray=Array.isArray||function(t){return"array"===n.type(t)},n.isPlainObject=function(t){var e;if(!t||"object"!==n.type(t)||t.nodeType||n.isWindow(t))return!1;try{if(t.constructor&&!o.call(t,"constructor")&&!o.call(t.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}for(e in t);return void 0===e||o.call(t,e)},n.each=function(t,n,i){var r=0,o=t.length,a=e(t);if(i){if(a)for(;r<o&&!1!==n.apply(t[r],i);r++);else for(r in t)if(t.hasOwnProperty(r)&&!1===n.apply(t[r],i))break}else if(a)for(;r<o&&!1!==n.call(t[r],r,t[r]);r++);else for(r in t)if(t.hasOwnProperty(r)&&!1===n.call(t[r],r,t[r]))break;return t},n.data=function(t,e,r){if(void 0===r){var o=t[n.expando],a=o&&i[o];if(void 0===e)return a;if(a&&e in a)return a[e]}else if(void 0!==e){var s=t[n.expando]||(t[n.expando]=++n.uuid);return i[s]=i[s]||{},i[s][e]=r,r}},n.removeData=function(t,e){var r=t[n.expando],o=r&&i[r];o&&(e?n.each(e,function(t,e){delete o[e]}):delete i[r])},n.extend=function(){var t,e,i,r,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[l]||{},l++),"object"!=typeof s&&"function"!==n.type(s)&&(s={}),l===u&&(s=this,l--);l<u;l++)if(o=arguments[l])for(r in o)o.hasOwnProperty(r)&&(t=s[r],i=o[r],s!==i&&(c&&i&&(n.isPlainObject(i)||(e=n.isArray(i)))?(e?(e=!1,a=t&&n.isArray(t)?t:[]):a=t&&n.isPlainObject(t)?t:{},s[r]=n.extend(c,a,i)):void 0!==i&&(s[r]=i)));return s},n.queue=function(t,i,r){if(t){i=(i||"fx")+"queue";var o=n.data(t,i);return r?(!o||n.isArray(r)?o=n.data(t,i,function(t,n){var i=n||[];return t&&(e(Object(t))?function(t,e){for(var n=+e.length,i=0,r=t.length;i<n;)t[r++]=e[i++];if(n!==n)for(;void 0!==e[i];)t[r++]=e[i++];t.length=r}(i,"string"==typeof t?[t]:t):[].push.call(i,t)),i}(r)):o.push(r),o):o||[]}},n.dequeue=function(t,e){n.each(t.nodeType?[t]:t,function(t,i){e=e||"fx";var r=n.queue(i,e),o=r.shift();"inprogress"===o&&(o=r.shift()),o&&("fx"===e&&r.unshift("inprogress"),o.call(i,function(){n.dequeue(i,e)}))})},n.fn=n.prototype={init:function(t){if(t.nodeType)return this[0]=t,this;throw new Error("Not a DOM node.")},offset:function(){var e=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:e.top+(t.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:e.left+(t.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){var t=this[0],e=function(t){for(var e=t.offsetParent;e&&"html"!==e.nodeName.toLowerCase()&&e.style&&"static"===e.style.position;)e=e.offsetParent;return e||document}(t),i=this.offset(),r=/^(?:body|html)$/i.test(e.nodeName)?{top:0,left:0}:n(e).offset();return i.top-=parseFloat(t.style.marginTop)||0,i.left-=parseFloat(t.style.marginLeft)||0,e.style&&(r.top+=parseFloat(e.style.borderTopWidth)||0,r.left+=parseFloat(e.style.borderLeftWidth)||0),{top:i.top-r.top,left:i.left-r.left}}};var i={};n.expando="velocity"+(new Date).getTime(),n.uuid=0;for(var r={},o=r.hasOwnProperty,a=r.toString,s="Boolean Number String Function Array Date RegExp Object Error".split(" "),l=0;l<s.length;l++)r["[object "+s[l]+"]"]=s[l].toLowerCase();n.fn.init.prototype=n.fn,t.Velocity={Utilities:n}}}(window),function(o){"object"==typeof t&&"object"==typeof t.exports?t.exports=o():(i=o,void 0!==(r="function"==typeof i?i.call(e,n,e,t):i)&&(t.exports=r))}(function(){return function(t,e,n,i){function r(t){for(var e=-1,n=t?t.length:0,i=[];++e<n;){var r=t[e];r&&i.push(r)}return i}function o(t){return _.isWrapped(t)?t=y.call(t):_.isNode(t)&&(t=[t]),t}function a(t){var e=h.data(t,"velocity");return null===e?i:e}function s(t,e){var n=a(t);n&&n.delayTimer&&!n.delayPaused&&(n.delayRemaining=n.delay-e+n.delayBegin,n.delayPaused=!0,clearTimeout(n.delayTimer.setTimeout))}function l(t,e){var n=a(t);n&&n.delayTimer&&n.delayPaused&&(n.delayPaused=!1,n.delayTimer.setTimeout=setTimeout(n.delayTimer.next,n.delayRemaining))}function u(t){return function(e){return Math.round(e*t)*(1/t)}}function c(t,n,i,r){function o(t,e){return 1-3*e+3*t}function a(t,e){return 3*e-6*t}function s(t){return 3*t}function l(t,e,n){return((o(e,n)*t+a(e,n))*t+s(e))*t}function u(t,e,n){return 3*o(e,n)*t*t+2*a(e,n)*t+s(e)}function c(e,n){for(var r=0;r<m;++r){var o=u(n,t,i);if(0===o)return n;n-=(l(n,t,i)-e)/o}return n}function f(){for(var e=0;e<b;++e)S[e]=l(e*_,t,i)}function d(e,n,r){var o,a,s=0;do{a=n+(r-n)/2,o=l(a,t,i)-e,o>0?r=a:n=a}while(Math.abs(o)>v&&++s<y);return a}function p(e){for(var n=0,r=1,o=b-1;r!==o&&S[r]<=e;++r)n+=_;--r;var a=(e-S[r])/(S[r+1]-S[r]),s=n+a*_,l=u(s,t,i);return l>=g?c(e,s):0===l?s:d(e,n,n+_)}function h(){E=!0,t===n&&i===r||f()}var m=4,g=.001,v=1e-7,y=10,b=11,_=1/(b-1),x="Float32Array"in e;if(4!==arguments.length)return!1;for(var w=0;w<4;++w)if("number"!=typeof arguments[w]||isNaN(arguments[w])||!isFinite(arguments[w]))return!1;t=Math.min(t,1),i=Math.min(i,1),t=Math.max(t,0),i=Math.max(i,0);var S=x?new Float32Array(b):new Array(b),E=!1,C=function(e){return E||h(),t===n&&i===r?e:0===e?0:1===e?1:l(p(e),n,r)};C.getControlPoints=function(){return[{x:t,y:n},{x:i,y:r}]};var T="generateBezier("+[t,n,i,r]+")";return C.toString=function(){return T},C}function f(t,e){var n=t;return _.isString(t)?E.Easings[t]||(n=!1):n=_.isArray(t)&&1===t.length?u.apply(null,t):_.isArray(t)&&2===t.length?C.apply(null,t.concat([e])):!(!_.isArray(t)||4!==t.length)&&c.apply(null,t),!1===n&&(n=E.Easings[E.defaults.easing]?E.defaults.easing:S),n}function d(t){if(t){var e=E.timestamp&&!0!==t?t:v.now(),n=E.State.calls.length;n>1e4&&(E.State.calls=r(E.State.calls),n=E.State.calls.length);for(var o=0;o<n;o++)if(E.State.calls[o]){var s=E.State.calls[o],l=s[0],u=s[2],c=s[3],f=!!c,g=null,y=s[5],b=s[6];if(c||(c=E.State.calls[o][3]=e-16),y){if(!0!==y.resume)continue;c=s[3]=Math.round(e-b-16),s[5]=null}b=s[6]=e-c;for(var x=Math.min(b/u.duration,1),w=0,S=l.length;w<S;w++){var C=l[w],A=C.element;if(a(A)){var O=!1;if(u.display!==i&&null!==u.display&&"none"!==u.display){if("flex"===u.display){var k=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];h.each(k,function(t,e){T.setPropertyValue(A,"display",e)})}T.setPropertyValue(A,"display",u.display)}u.visibility!==i&&"hidden"!==u.visibility&&T.setPropertyValue(A,"visibility",u.visibility);for(var D in C)if(C.hasOwnProperty(D)&&"element"!==D){var N,P=C[D],L=_.isString(P.easing)?E.Easings[P.easing]:P.easing;if(_.isString(P.pattern)){var j=1===x?function(t,e,n){var i=P.endValue[e];return n?Math.round(i):i}:function(t,e,n){var i=P.startValue[e],r=P.endValue[e]-i,o=i+r*L(x,u,r);return n?Math.round(o):o};N=P.pattern.replace(/{(\d+)(!)?}/g,j)}else if(1===x)N=P.endValue;else{var B=P.endValue-P.startValue;N=P.startValue+B*L(x,u,B)}if(!f&&N===P.currentValue)continue;if(P.currentValue=N,"tween"===D)g=N;else{var V;if(T.Hooks.registered[D]){V=T.Hooks.getRoot(D);var F=a(A).rootPropertyValueCache[V];F&&(P.rootPropertyValue=F)}var R=T.setPropertyValue(A,D,P.currentValue+(m<9&&0===parseFloat(N)?"":P.unitType),P.rootPropertyValue,P.scrollData);T.Hooks.registered[D]&&(T.Normalizations.registered[V]?a(A).rootPropertyValueCache[V]=T.Normalizations.registered[V]("extract",null,R[1]):a(A).rootPropertyValueCache[V]=R[1]),"transform"===R[0]&&(O=!0)}}u.mobileHA&&a(A).transformCache.translate3d===i&&(a(A).transformCache.translate3d="(0px, 0px, 0px)",O=!0),O&&T.flushTransformCache(A)}}u.display!==i&&"none"!==u.display&&(E.State.calls[o][2].display=!1),u.visibility!==i&&"hidden"!==u.visibility&&(E.State.calls[o][2].visibility=!1),u.progress&&u.progress.call(s[1],s[1],x,Math.max(0,c+u.duration-e),c,g),1===x&&p(o)}}E.State.isTicking&&I(d)}function p(t,e){if(!E.State.calls[t])return!1;for(var n=E.State.calls[t][0],r=E.State.calls[t][1],o=E.State.calls[t][2],s=E.State.calls[t][4],l=!1,u=0,c=n.length;u<c;u++){var f=n[u].element;e||o.loop||("none"===o.display&&T.setPropertyValue(f,"display",o.display),"hidden"===o.visibility&&T.setPropertyValue(f,"visibility",o.visibility));var d=a(f);if(!0!==o.loop&&(h.queue(f)[1]===i||!/\.velocityQueueEntryFlag/i.test(h.queue(f)[1]))&&d){d.isAnimating=!1,d.rootPropertyValueCache={};var p=!1;h.each(T.Lists.transforms3D,function(t,e){var n=/^scale/.test(e)?1:0,r=d.transformCache[e];d.transformCache[e]!==i&&new RegExp("^\\("+n+"[^.]").test(r)&&(p=!0,delete d.transformCache[e])}),o.mobileHA&&(p=!0,delete d.transformCache.translate3d),p&&T.flushTransformCache(f),T.Values.removeClass(f,"velocity-animating")}if(!e&&o.complete&&!o.loop&&u===c-1)try{o.complete.call(r,r)}catch(t){setTimeout(function(){throw t},1)}s&&!0!==o.loop&&s(r),d&&!0===o.loop&&!e&&(h.each(d.tweensContainer,function(t,e){if(/^rotate/.test(t)&&(parseFloat(e.startValue)-parseFloat(e.endValue))%360==0){var n=e.startValue;e.startValue=e.endValue,e.endValue=n}/^backgroundPosition/.test(t)&&100===parseFloat(e.endValue)&&"%"===e.unitType&&(e.endValue=0,e.startValue=100)}),E(f,"reverse",{loop:!0,delay:o.delay})),!1!==o.queue&&h.dequeue(f,o.queue)}E.State.calls[t]=!1;for(var m=0,g=E.State.calls.length;m<g;m++)if(!1!==E.State.calls[m]){l=!0;break}!1===l&&(E.State.isTicking=!1,delete E.State.calls,E.State.calls=[])}var h,m=function(){if(n.documentMode)return n.documentMode;for(var t=7;t>4;t--){var e=n.createElement("div");if(e.innerHTML="\x3c!--[if IE "+t+"]><span></span><![endif]--\x3e",e.getElementsByTagName("span").length)return e=null,t}return i}(),g=function(){var t=0;return e.webkitRequestAnimationFrame||e.mozRequestAnimationFrame||function(e){var n,i=(new Date).getTime();return n=Math.max(0,16-(i-t)),t=i+n,setTimeout(function(){e(i+n)},n)}}(),v=function(){var t=e.performance||{};if("function"!=typeof t.now){var n=t.timing&&t.timing.navigationStart?t.timing.navigationStart:(new Date).getTime();t.now=function(){return(new Date).getTime()-n}}return t}(),y=function(){var t=Array.prototype.slice;try{return t.call(n.documentElement),t}catch(e){return function(e,n){var i=this.length;if("number"!=typeof e&&(e=0),"number"!=typeof n&&(n=i),this.slice)return t.call(this,e,n);var r,o=[],a=e>=0?e:Math.max(0,i+e),s=n<0?i+n:Math.min(n,i),l=s-a;if(l>0)if(o=new Array(l),this.charAt)for(r=0;r<l;r++)o[r]=this.charAt(a+r);else for(r=0;r<l;r++)o[r]=this[a+r];return o}}}(),b=function(){return Array.prototype.includes?function(t,e){return t.includes(e)}:Array.prototype.indexOf?function(t,e){return t.indexOf(e)>=0}:function(t,e){for(var n=0;n<t.length;n++)if(t[n]===e)return!0;return!1}},_={isNumber:function(t){return"number"==typeof t},isString:function(t){return"string"==typeof t},isArray:Array.isArray||function(t){return"[object Array]"===Object.prototype.toString.call(t)},isFunction:function(t){return"[object Function]"===Object.prototype.toString.call(t)},isNode:function(t){return t&&t.nodeType},isWrapped:function(t){return t&&t!==e&&_.isNumber(t.length)&&!_.isString(t)&&!_.isFunction(t)&&!_.isNode(t)&&(0===t.length||_.isNode(t[0]))},isSVG:function(t){return e.SVGElement&&t instanceof e.SVGElement},isEmptyObject:function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0}},x=!1;if(t.fn&&t.fn.jquery?(h=t,x=!0):h=e.Velocity.Utilities,m<=8&&!x)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(m<=7)return void(jQuery.fn.velocity=jQuery.fn.animate);var w=400,S="swing",E={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:e.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:n.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[],delayedElements:{count:0}},CSS:{},Utilities:h,Redirects:{},Easings:{},Promise:e.Promise,defaults:{queue:"",duration:w,easing:S,begin:i,complete:i,progress:i,display:i,visibility:i,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0,promiseRejectEmpty:!0},init:function(t){h.data(t,"velocity",{isSVG:_.isSVG(t),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:5,patch:0},debug:!1,timestamp:!0,pauseAll:function(t){var e=(new Date).getTime();h.each(E.State.calls,function(e,n){if(n){if(t!==i&&(n[2].queue!==t||!1===n[2].queue))return!0;n[5]={resume:!1}}}),h.each(E.State.delayedElements,function(t,n){n&&s(n,e)})},resumeAll:function(t){var e=(new Date).getTime();h.each(E.State.calls,function(e,n){if(n){if(t!==i&&(n[2].queue!==t||!1===n[2].queue))return!0;n[5]&&(n[5].resume=!0)}}),h.each(E.State.delayedElements,function(t,n){n&&l(n,e)})}};e.pageYOffset!==i?(E.State.scrollAnchor=e,E.State.scrollPropertyLeft="pageXOffset",E.State.scrollPropertyTop="pageYOffset"):(E.State.scrollAnchor=n.documentElement||n.body.parentNode||n.body,E.State.scrollPropertyLeft="scrollLeft",E.State.scrollPropertyTop="scrollTop");var C=function(){function t(t){return-t.tension*t.x-t.friction*t.v}function e(e,n,i){var r={x:e.x+i.dx*n,v:e.v+i.dv*n,tension:e.tension,friction:e.friction};return{dx:r.v,dv:t(r)}}function n(n,i){var r={dx:n.v,dv:t(n)},o=e(n,.5*i,r),a=e(n,.5*i,o),s=e(n,i,a),l=1/6*(r.dx+2*(o.dx+a.dx)+s.dx),u=1/6*(r.dv+2*(o.dv+a.dv)+s.dv);return n.x=n.x+l*i,n.v=n.v+u*i,n}return function t(e,i,r){var o,a,s,l={x:-1,v:0,tension:null,friction:null},u=[0],c=0;for(e=parseFloat(e)||500,i=parseFloat(i)||20,r=r||null,l.tension=e,l.friction=i,o=null!==r,o?(c=t(e,i),a=c/r*.016):a=.016;;)if(s=n(s||l,a),u.push(1+s.x),c+=16,!(Math.abs(s.x)>1e-4&&Math.abs(s.v)>1e-4))break;return o?function(t){return u[t*(u.length-1)|0]}:c}}();E.Easings={linear:function(t){return t},swing:function(t){return.5-Math.cos(t*Math.PI)/2},spring:function(t){return 1-Math.cos(4.5*t*Math.PI)*Math.exp(6*-t)}},h.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(t,e){E.Easings[e[0]]=c.apply(null,e[1])});var T=E.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"],units:["%","em","ex","ch","rem","vw","vh","vmin","vmax","cm","mm","Q","in","pc","pt","px","deg","grad","rad","turn","s","ms"],colorNames:{aliceblue:"240,248,255",antiquewhite:"250,235,215",aquamarine:"127,255,212",aqua:"0,255,255",azure:"240,255,255",beige:"245,245,220",bisque:"255,228,196",black:"0,0,0",blanchedalmond:"255,235,205",blueviolet:"138,43,226",blue:"0,0,255",brown:"165,42,42",burlywood:"222,184,135",cadetblue:"95,158,160",chartreuse:"127,255,0",chocolate:"210,105,30",coral:"255,127,80",cornflowerblue:"100,149,237",cornsilk:"255,248,220",crimson:"220,20,60",cyan:"0,255,255",darkblue:"0,0,139",darkcyan:"0,139,139",darkgoldenrod:"184,134,11",darkgray:"169,169,169",darkgrey:"169,169,169",darkgreen:"0,100,0",darkkhaki:"189,183,107",darkmagenta:"139,0,139",darkolivegreen:"85,107,47",darkorange:"255,140,0",darkorchid:"153,50,204",darkred:"139,0,0",darksalmon:"233,150,122",darkseagreen:"143,188,143",darkslateblue:"72,61,139",darkslategray:"47,79,79",darkturquoise:"0,206,209",darkviolet:"148,0,211",deeppink:"255,20,147",deepskyblue:"0,191,255",dimgray:"105,105,105",dimgrey:"105,105,105",dodgerblue:"30,144,255",firebrick:"178,34,34",floralwhite:"255,250,240",forestgreen:"34,139,34",fuchsia:"255,0,255",gainsboro:"220,220,220",ghostwhite:"248,248,255",gold:"255,215,0",goldenrod:"218,165,32",gray:"128,128,128",grey:"128,128,128",greenyellow:"173,255,47",green:"0,128,0",honeydew:"240,255,240",hotpink:"255,105,180",indianred:"205,92,92",indigo:"75,0,130",ivory:"255,255,240",khaki:"240,230,140",lavenderblush:"255,240,245",lavender:"230,230,250",lawngreen:"124,252,0",lemonchiffon:"255,250,205",lightblue:"173,216,230",lightcoral:"240,128,128",lightcyan:"224,255,255",lightgoldenrodyellow:"250,250,210",lightgray:"211,211,211",lightgrey:"211,211,211",lightgreen:"144,238,144",lightpink:"255,182,193",lightsalmon:"255,160,122",lightseagreen:"32,178,170",lightskyblue:"135,206,250",lightslategray:"119,136,153",lightsteelblue:"176,196,222",lightyellow:"255,255,224",limegreen:"50,205,50",lime:"0,255,0",linen:"250,240,230",magenta:"255,0,255",maroon:"128,0,0",mediumaquamarine:"102,205,170",mediumblue:"0,0,205",mediumorchid:"186,85,211",mediumpurple:"147,112,219",mediumseagreen:"60,179,113",mediumslateblue:"123,104,238",mediumspringgreen:"0,250,154",mediumturquoise:"72,209,204",mediumvioletred:"199,21,133",midnightblue:"25,25,112",mintcream:"245,255,250",mistyrose:"255,228,225",moccasin:"255,228,181",navajowhite:"255,222,173",navy:"0,0,128",oldlace:"253,245,230",olivedrab:"107,142,35",olive:"128,128,0",orangered:"255,69,0",orange:"255,165,0",orchid:"218,112,214",palegoldenrod:"238,232,170",palegreen:"152,251,152",paleturquoise:"175,238,238",palevioletred:"219,112,147",papayawhip:"255,239,213",peachpuff:"255,218,185",peru:"205,133,63",pink:"255,192,203",plum:"221,160,221",powderblue:"176,224,230",purple:"128,0,128",red:"255,0,0",rosybrown:"188,143,143",royalblue:"65,105,225",saddlebrown:"139,69,19",salmon:"250,128,114",sandybrown:"244,164,96",seagreen:"46,139,87",seashell:"255,245,238",sienna:"160,82,45",silver:"192,192,192",skyblue:"135,206,235",slateblue:"106,90,205",slategray:"112,128,144",snow:"255,250,250",springgreen:"0,255,127",steelblue:"70,130,180",tan:"210,180,140",teal:"0,128,128",thistle:"216,191,216",tomato:"255,99,71",turquoise:"64,224,208",violet:"238,130,238",wheat:"245,222,179",whitesmoke:"245,245,245",white:"255,255,255",yellowgreen:"154,205,50",yellow:"255,255,0"}},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var t=0;t<T.Lists.colors.length;t++){var e="color"===T.Lists.colors[t]?"0 0 0 1":"255 255 255 1";T.Hooks.templates[T.Lists.colors[t]]=["Red Green Blue Alpha",e]}var n,i,r;if(m)for(n in T.Hooks.templates)if(T.Hooks.templates.hasOwnProperty(n)){i=T.Hooks.templates[n],r=i[0].split(" ");var o=i[1].match(T.RegEx.valueSplit);"Color"===r[0]&&(r.push(r.shift()),o.push(o.shift()),T.Hooks.templates[n]=[r.join(" "),o.join(" ")])}for(n in T.Hooks.templates)if(T.Hooks.templates.hasOwnProperty(n)){i=T.Hooks.templates[n],r=i[0].split(" ");for(var a in r)if(r.hasOwnProperty(a)){var s=n+r[a],l=a;T.Hooks.registered[s]=[n,l]}}},getRoot:function(t){var e=T.Hooks.registered[t];return e?e[0]:t},getUnit:function(t,e){var n=(t.substr(e||0,5).match(/^[a-z%]+/)||[])[0]||"";return n&&b(T.Lists.units,n)?n:""},fixColors:function(t){return t.replace(/(rgba?\(\s*)?(\b[a-z]+\b)/g,function(t,e,n){return T.Lists.colorNames.hasOwnProperty(n)?(e||"rgba(")+T.Lists.colorNames[n]+(e?"":",1)"):e+n})},cleanRootPropertyValue:function(t,e){return T.RegEx.valueUnwrap.test(e)&&(e=e.match(T.RegEx.valueUnwrap)[1]),T.Values.isCSSNullValue(e)&&(e=T.Hooks.templates[t][1]),e},extractValue:function(t,e){var n=T.Hooks.registered[t];if(n){var i=n[0],r=n[1];return e=T.Hooks.cleanRootPropertyValue(i,e),e.toString().match(T.RegEx.valueSplit)[r]}return e},injectValue:function(t,e,n){var i=T.Hooks.registered[t];if(i){var r,o=i[0],a=i[1];return n=T.Hooks.cleanRootPropertyValue(o,n),r=n.toString().match(T.RegEx.valueSplit),r[a]=e,r.join(" ")}return n}},Normalizations:{registered:{clip:function(t,e,n){switch(t){case"name":return"clip";case"extract":var i;return T.RegEx.wrappedValueAlreadyExtracted.test(n)?i=n:(i=n.toString().match(T.RegEx.valueUnwrap),i=i?i[1].replace(/,(\s+)?/g," "):n),i;case"inject":return"rect("+n+")"}},blur:function(t,e,n){switch(t){case"name":return E.State.isFirefox?"filter":"-webkit-filter";case"extract":var i=parseFloat(n);if(!i&&0!==i){var r=n.toString().match(/blur\(([0-9]+[A-z]+)\)/i);i=r?r[1]:0}return i;case"inject":return parseFloat(n)?"blur("+n+")":"none"}},opacity:function(t,e,n){if(m<=8)switch(t){case"name":return"filter";case"extract":var i=n.toString().match(/alpha\(opacity=(.*)\)/i);return n=i?i[1]/100:1;case"inject":return e.style.zoom=1,parseFloat(n)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(n),10)+")"}else switch(t){case"name":return"opacity";case"extract":case"inject":return n}}},register:function(){function t(t,e,n){if("border-box"===T.getPropertyValue(e,"boxSizing").toString().toLowerCase()===(n||!1)){var i,r,o=0,a="width"===t?["Left","Right"]:["Top","Bottom"],s=["padding"+a[0],"padding"+a[1],"border"+a[0]+"Width","border"+a[1]+"Width"];for(i=0;i<s.length;i++)r=parseFloat(T.getPropertyValue(e,s[i])),isNaN(r)||(o+=r);return n?-o:o}return 0}function e(e,n){return function(i,r,o){switch(i){case"name":return e;case"extract":return parseFloat(o)+t(e,r,n);case"inject":return parseFloat(o)-t(e,r,n)+"px"}}}m&&!(m>9)||E.State.isGingerbread||(T.Lists.transformsBase=T.Lists.transformsBase.concat(T.Lists.transforms3D));for(var n=0;n<T.Lists.transformsBase.length;n++)!function(){var t=T.Lists.transformsBase[n];T.Normalizations.registered[t]=function(e,n,r){switch(e){case"name":return"transform";case"extract":return a(n)===i||a(n).transformCache[t]===i?/^scale/i.test(t)?1:0:a(n).transformCache[t].replace(/[()]/g,"");case"inject":var o=!1;switch(t.substr(0,t.length-1)){case"translate":o=!/(%|px|em|rem|vw|vh|\d)$/i.test(r);break;case"scal":case"scale":E.State.isAndroid&&a(n).transformCache[t]===i&&r<1&&(r=1),o=!/(\d)$/i.test(r);break;case"skew":case"rotate":o=!/(deg|\d)$/i.test(r)}return o||(a(n).transformCache[t]="("+r+")"),a(n).transformCache[t]}}}();for(var r=0;r<T.Lists.colors.length;r++)!function(){var t=T.Lists.colors[r];T.Normalizations.registered[t]=function(e,n,r){switch(e){case"name":return t;case"extract":var o;if(T.RegEx.wrappedValueAlreadyExtracted.test(r))o=r;else{var a,s={black:"rgb(0, 0, 0)",blue:"rgb(0, 0, 255)",gray:"rgb(128, 128, 128)",green:"rgb(0, 128, 0)",red:"rgb(255, 0, 0)",white:"rgb(255, 255, 255)"};/^[A-z]+$/i.test(r)?a=s[r]!==i?s[r]:s.black:T.RegEx.isHex.test(r)?a="rgb("+T.Values.hexToRgb(r).join(" ")+")":/^rgba?\(/i.test(r)||(a=s.black),o=(a||r).toString().match(T.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g," ")}return(!m||m>8)&&3===o.split(" ").length&&(o+=" 1"),o;case"inject":return/^rgb/.test(r)?r:(m<=8?4===r.split(" ").length&&(r=r.split(/\s+/).slice(0,3).join(" ")):3===r.split(" ").length&&(r+=" 1"),(m<=8?"rgb":"rgba")+"("+r.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")")}}}();T.Normalizations.registered.innerWidth=e("width",!0),T.Normalizations.registered.innerHeight=e("height",!0),T.Normalizations.registered.outerWidth=e("width"),T.Normalizations.registered.outerHeight=e("height")}},Names:{camelCase:function(t){return t.replace(/-(\w)/g,function(t,e){return e.toUpperCase()})},SVGAttribute:function(t){var e="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(m||E.State.isAndroid&&!E.State.isChrome)&&(e+="|transform"),new RegExp("^("+e+")$","i").test(t)},prefixCheck:function(t){if(E.State.prefixMatches[t])return[E.State.prefixMatches[t],!0];for(var e=["","Webkit","Moz","ms","O"],n=0,i=e.length;n<i;n++){var r;if(r=0===n?t:e[n]+t.replace(/^\w/,function(t){return t.toUpperCase()}),_.isString(E.State.prefixElement.style[r]))return E.State.prefixMatches[t]=r,[r,!0]}return[t,!1]}},Values:{hexToRgb:function(t){var e,n=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i;return t=t.replace(n,function(t,e,n,i){return e+e+n+n+i+i}),e=i.exec(t),e?[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]:[0,0,0]},isCSSNullValue:function(t){return!t||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(t)},getUnitType:function(t){return/^(rotate|skew)/i.test(t)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(t)?"":"px"},getDisplayType:function(t){var e=t&&t.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(e)?"inline":/^(li)$/i.test(e)?"list-item":/^(tr)$/i.test(e)?"table-row":/^(table)$/i.test(e)?"table":/^(tbody)$/i.test(e)?"table-row-group":"block"},addClass:function(t,e){if(t)if(t.classList)t.classList.add(e);else if(_.isString(t.className))t.className+=(t.className.length?" ":"")+e;else{var n=t.getAttribute(m<=7?"className":"class")||"";t.setAttribute("class",n+(n?" ":"")+e)}},removeClass:function(t,e){if(t)if(t.classList)t.classList.remove(e);else if(_.isString(t.className))t.className=t.className.toString().replace(new RegExp("(^|\\s)"+e.split(" ").join("|")+"(\\s|$)","gi")," ");else{var n=t.getAttribute(m<=7?"className":"class")||"";t.setAttribute("class",n.replace(new RegExp("(^|s)"+e.split(" ").join("|")+"(s|$)","gi")," "))}}},getPropertyValue:function(t,n,r,o){function s(t,n){var r=0;if(m<=8)r=h.css(t,n);else{var l=!1;/^(width|height)$/.test(n)&&0===T.getPropertyValue(t,"display")&&(l=!0,T.setPropertyValue(t,"display",T.Values.getDisplayType(t)));var u=function(){l&&T.setPropertyValue(t,"display","none")};if(!o){if("height"===n&&"border-box"!==T.getPropertyValue(t,"boxSizing").toString().toLowerCase()){var c=t.offsetHeight-(parseFloat(T.getPropertyValue(t,"borderTopWidth"))||0)-(parseFloat(T.getPropertyValue(t,"borderBottomWidth"))||0)-(parseFloat(T.getPropertyValue(t,"paddingTop"))||0)-(parseFloat(T.getPropertyValue(t,"paddingBottom"))||0);return u(),c}if("width"===n&&"border-box"!==T.getPropertyValue(t,"boxSizing").toString().toLowerCase()){var f=t.offsetWidth-(parseFloat(T.getPropertyValue(t,"borderLeftWidth"))||0)-(parseFloat(T.getPropertyValue(t,"borderRightWidth"))||0)-(parseFloat(T.getPropertyValue(t,"paddingLeft"))||0)-(parseFloat(T.getPropertyValue(t,"paddingRight"))||0);return u(),f}}var d;d=a(t)===i?e.getComputedStyle(t,null):a(t).computedStyle?a(t).computedStyle:a(t).computedStyle=e.getComputedStyle(t,null),"borderColor"===n&&(n="borderTopColor"),r=9===m&&"filter"===n?d.getPropertyValue(n):d[n],""!==r&&null!==r||(r=t.style[n]),u()}if("auto"===r&&/^(top|right|bottom|left)$/i.test(n)){var p=s(t,"position");("fixed"===p||"absolute"===p&&/top|left/i.test(n))&&(r=h(t).position()[n]+"px")}return r}var l;if(T.Hooks.registered[n]){var u=n,c=T.Hooks.getRoot(u);r===i&&(r=T.getPropertyValue(t,T.Names.prefixCheck(c)[0])),T.Normalizations.registered[c]&&(r=T.Normalizations.registered[c]("extract",t,r)),l=T.Hooks.extractValue(u,r)}else if(T.Normalizations.registered[n]){var f,d;f=T.Normalizations.registered[n]("name",t),"transform"!==f&&(d=s(t,T.Names.prefixCheck(f)[0]),T.Values.isCSSNullValue(d)&&T.Hooks.templates[n]&&(d=T.Hooks.templates[n][1])),l=T.Normalizations.registered[n]("extract",t,d)}if(!/^[\d-]/.test(l)){var p=a(t);if(p&&p.isSVG&&T.Names.SVGAttribute(n))if(/^(height|width)$/i.test(n))try{l=t.getBBox()[n]}catch(t){l=0}else l=t.getAttribute(n);else l=s(t,T.Names.prefixCheck(n)[0])}return T.Values.isCSSNullValue(l)&&(l=0),E.debug,l},setPropertyValue:function(t,n,i,r,o){var s=n;if("scroll"===n)o.container?o.container["scroll"+o.direction]=i:"Left"===o.direction?e.scrollTo(i,o.alternateValue):e.scrollTo(o.alternateValue,i);else if(T.Normalizations.registered[n]&&"transform"===T.Normalizations.registered[n]("name",t))T.Normalizations.registered[n]("inject",t,i),s="transform",i=a(t).transformCache[n];else{if(T.Hooks.registered[n]){var l=n,u=T.Hooks.getRoot(n);r=r||T.getPropertyValue(t,u),i=T.Hooks.injectValue(l,i,r),n=u}if(T.Normalizations.registered[n]&&(i=T.Normalizations.registered[n]("inject",t,i),n=T.Normalizations.registered[n]("name",t)),s=T.Names.prefixCheck(n)[0],m<=8)try{t.style[s]=i}catch(t){E.debug}else{var c=a(t);c&&c.isSVG&&T.Names.SVGAttribute(n)?t.setAttribute(n,i):t.style[s]=i}E.debug}return[s,i]},flushTransformCache:function(t){var e="",n=a(t);if((m||E.State.isAndroid&&!E.State.isChrome)&&n&&n.isSVG){var i=function(e){return parseFloat(T.getPropertyValue(t,e))},r={translate:[i("translateX"),i("translateY")],skewX:[i("skewX")],skewY:[i("skewY")],scale:1!==i("scale")?[i("scale"),i("scale")]:[i("scaleX"),i("scaleY")],rotate:[i("rotateZ"),0,0]};h.each(a(t).transformCache,function(t){/^translate/i.test(t)?t="translate":/^scale/i.test(t)?t="scale":/^rotate/i.test(t)&&(t="rotate"),r[t]&&(e+=t+"("+r[t].join(" ")+") ",delete r[t])})}else{var o,s;h.each(a(t).transformCache,function(n){if(o=a(t).transformCache[n],"transformPerspective"===n)return s=o,!0;9===m&&"rotateZ"===n&&(n="rotate"),e+=n+o+" "}),s&&(e="perspective"+s+" "+e)}T.setPropertyValue(t,"transform",e)}};T.Hooks.register(),T.Normalizations.register(),E.hook=function(t,e,n){var r;return t=o(t),h.each(t,function(t,o){if(a(o)===i&&E.init(o),n===i)r===i&&(r=T.getPropertyValue(o,e));else{var s=T.setPropertyValue(o,e,n);"transform"===s[0]&&E.CSS.flushTransformCache(o),r=s}}),r};var A=function t(){function r(){return m?A.promise||null:g}function u(t,r){function o(o){var c,p;if(l.begin&&0===O)try{l.begin.call(y,y)}catch(t){setTimeout(function(){throw t},1)}if("scroll"===N){var m,g,v,w=/^x$/i.test(l.axis)?"Left":"Top",C=parseFloat(l.offset)||0;l.container?_.isWrapped(l.container)||_.isNode(l.container)?(l.container=l.container[0]||l.container,m=l.container["scroll"+w],v=m+h(t).position()[w.toLowerCase()]+C):l.container=null:(m=E.State.scrollAnchor[E.State["scrollProperty"+w]],g=E.State.scrollAnchor[E.State["scrollProperty"+("Left"===w?"Top":"Left")]],v=h(t).offset()[w.toLowerCase()]+C),u={scroll:{rootPropertyValue:!1,startValue:m,currentValue:m,endValue:v,unitType:"",easing:l.easing,scrollData:{container:l.container,direction:w,alternateValue:g}},element:t},E.debug}else if("reverse"===N){if(!(c=a(t)))return;if(!c.tweensContainer)return void h.dequeue(t,l.queue);"none"===c.opts.display&&(c.opts.display="auto"),"hidden"===c.opts.visibility&&(c.opts.visibility="visible"),c.opts.loop=!1,c.opts.begin=null,c.opts.complete=null,S.easing||delete l.easing,S.duration||delete l.duration,l=h.extend({},c.opts,l),p=h.extend(!0,{},c?c.tweensContainer:null);for(var k in p)if(p.hasOwnProperty(k)&&"element"!==k){var D=p[k].startValue;p[k].startValue=p[k].currentValue=p[k].endValue,p[k].endValue=D,_.isEmptyObject(S)||(p[k].easing=l.easing),E.debug}u=p}else if("start"===N){c=a(t),c&&c.tweensContainer&&!0===c.isAnimating&&(p=c.tweensContainer);var P=function(r,o){var a,f=T.Hooks.getRoot(r),d=!1,m=o[0],g=o[1],v=o[2];if(!(c&&c.isSVG||"tween"===f||!1!==T.Names.prefixCheck(f)[1]||T.Normalizations.registered[f]!==i))return void E.debug;(l.display!==i&&null!==l.display&&"none"!==l.display||l.visibility!==i&&"hidden"!==l.visibility)&&/opacity|filter/.test(r)&&!v&&0!==m&&(v=0),l._cacheValues&&p&&p[r]?(v===i&&(v=p[r].endValue+p[r].unitType),d=c.rootPropertyValueCache[f]):T.Hooks.registered[r]?v===i?(d=T.getPropertyValue(t,f),v=T.getPropertyValue(t,r,d)):d=T.Hooks.templates[f][1]:v===i&&(v=T.getPropertyValue(t,r));var y,b,x,w=!1,S=function(t,e){var n,i;return i=(e||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(t){return n=t,""}),n||(n=T.Values.getUnitType(t)),[i,n]};if(v!==m&&_.isString(v)&&_.isString(m)){a="";var C=0,A=0,I=[],O=[],k=0,D=0,N=0;for(v=T.Hooks.fixColors(v),m=T.Hooks.fixColors(m);C<v.length&&A<m.length;){var P=v[C],L=m[A];if(/[\d\.-]/.test(P)&&/[\d\.-]/.test(L)){for(var j=P,B=L,V=".",R=".";++C<v.length;){if((P=v[C])===V)V="..";else if(!/\d/.test(P))break;j+=P}for(;++A<m.length;){if((L=m[A])===R)R="..";else if(!/\d/.test(L))break;B+=L}var M=T.Hooks.getUnit(v,C),H=T.Hooks.getUnit(m,A);if(C+=M.length,A+=H.length,M===H)j===B?a+=j+M:(a+="{"+I.length+(D?"!":"")+"}"+M,I.push(parseFloat(j)),O.push(parseFloat(B)));else{var W=parseFloat(j),U=parseFloat(B);a+=(k<5?"calc":"")+"("+(W?"{"+I.length+(D?"!":"")+"}":"0")+M+" + "+(U?"{"+(I.length+(W?1:0))+(D?"!":"")+"}":"0")+H+")",W&&(I.push(W),O.push(0)),U&&(I.push(0),O.push(U))}}else{if(P!==L){k=0;break}a+=P,C++,A++,0===k&&"c"===P||1===k&&"a"===P||2===k&&"l"===P||3===k&&"c"===P||k>=4&&"("===P?k++:(k&&k<5||k>=4&&")"===P&&--k<5)&&(k=0),0===D&&"r"===P||1===D&&"g"===P||2===D&&"b"===P||3===D&&"a"===P||D>=3&&"("===P?(3===D&&"a"===P&&(N=1),D++):N&&","===P?++N>3&&(D=N=0):(N&&D<(N?5:4)||D>=(N?4:3)&&")"===P&&--D<(N?5:4))&&(D=N=0)}}C===v.length&&A===m.length||(E.debug,a=i),a&&(I.length?(E.debug,v=I,m=O,b=x=""):a=i)}a||(y=S(r,v),v=y[0],x=y[1],y=S(r,m),m=y[0].replace(/^([+-\/*])=/,function(t,e){return w=e,""}),b=y[1],v=parseFloat(v)||0,m=parseFloat(m)||0,"%"===b&&(/^(fontSize|lineHeight)$/.test(r)?(m/=100,b="em"):/^scale/.test(r)?(m/=100,b=""):/(Red|Green|Blue)$/i.test(r)&&(m=m/100*255,b="")));if(/[\/*]/.test(w))b=x;else if(x!==b&&0!==v)if(0===m)b=x;else{s=s||function(){var i={myParent:t.parentNode||n.body,position:T.getPropertyValue(t,"position"),fontSize:T.getPropertyValue(t,"fontSize")},r=i.position===F.lastPosition&&i.myParent===F.lastParent,o=i.fontSize===F.lastFontSize;F.lastParent=i.myParent,F.lastPosition=i.position,F.lastFontSize=i.fontSize;var a={};if(o&&r)a.emToPx=F.lastEmToPx,a.percentToPxWidth=F.lastPercentToPxWidth,a.percentToPxHeight=F.lastPercentToPxHeight;else{var s=c&&c.isSVG?n.createElementNS("http://www.w3.org/2000/svg","rect"):n.createElement("div");E.init(s),i.myParent.appendChild(s),h.each(["overflow","overflowX","overflowY"],function(t,e){E.CSS.setPropertyValue(s,e,"hidden")}),E.CSS.setPropertyValue(s,"position",i.position),E.CSS.setPropertyValue(s,"fontSize",i.fontSize),E.CSS.setPropertyValue(s,"boxSizing","content-box"),h.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(t,e){E.CSS.setPropertyValue(s,e,"100%")}),E.CSS.setPropertyValue(s,"paddingLeft","100em"),a.percentToPxWidth=F.lastPercentToPxWidth=(parseFloat(T.getPropertyValue(s,"width",null,!0))||1)/100,a.percentToPxHeight=F.lastPercentToPxHeight=(parseFloat(T.getPropertyValue(s,"height",null,!0))||1)/100,a.emToPx=F.lastEmToPx=(parseFloat(T.getPropertyValue(s,"paddingLeft"))||1)/100,i.myParent.removeChild(s)}return null===F.remToPx&&(F.remToPx=parseFloat(T.getPropertyValue(n.body,"fontSize"))||16),null===F.vwToPx&&(F.vwToPx=parseFloat(e.innerWidth)/100,F.vhToPx=parseFloat(e.innerHeight)/100),a.remToPx=F.remToPx,a.vwToPx=F.vwToPx,a.vhToPx=F.vhToPx,E.debug,a}();var q=/margin|padding|left|right|width|text|word|letter/i.test(r)||/X$/.test(r)||"x"===r?"x":"y";switch(x){case"%":v*="x"===q?s.percentToPxWidth:s.percentToPxHeight;break;case"px":break;default:v*=s[x+"ToPx"]}switch(b){case"%":v*=1/("x"===q?s.percentToPxWidth:s.percentToPxHeight);break;case"px":break;default:v*=1/s[b+"ToPx"]}}switch(w){case"+":m=v+m;break;case"-":m=v-m;break;case"*":m*=v;break;case"/":m=v/m}u[r]={rootPropertyValue:d,startValue:v,currentValue:v,endValue:m,unitType:b,easing:g},a&&(u[r].pattern=a),E.debug};for(var L in x)if(x.hasOwnProperty(L)){var j=T.Names.camelCase(L),B=function(e,n){var i,o,a;return _.isFunction(e)&&(e=e.call(t,r,I)),_.isArray(e)?(i=e[0],!_.isArray(e[1])&&/^[\d-]/.test(e[1])||_.isFunction(e[1])||T.RegEx.isHex.test(e[1])?a=e[1]:_.isString(e[1])&&!T.RegEx.isHex.test(e[1])&&E.Easings[e[1]]||_.isArray(e[1])?(o=n?e[1]:f(e[1],l.duration),a=e[2]):a=e[1]||e[2]):i=e,n||(o=o||l.easing),_.isFunction(i)&&(i=i.call(t,r,I)),_.isFunction(a)&&(a=a.call(t,r,I)),[i||0,o,a]}(x[L]);if(b(T.Lists.colors,j)){var V=B[0],M=B[1],H=B[2];if(T.RegEx.isHex.test(V)){for(var W=["Red","Green","Blue"],U=T.Values.hexToRgb(V),q=H?T.Values.hexToRgb(H):i,z=0;z<W.length;z++){var $=[U[z]];M&&$.push(M),q!==i&&$.push(q[z]),P(j+W[z],$)}continue}}P(j,B)}u.element=t}u.element&&(T.Values.addClass(t,"velocity-animating"),R.push(u),c=a(t),c&&(""===l.queue&&(c.tweensContainer=u,c.opts=l),c.isAnimating=!0),O===I-1?(E.State.calls.push([R,y,l,null,A.resolver,null,0]),!1===E.State.isTicking&&(E.State.isTicking=!0,d())):O++)}var s,l=h.extend({},E.defaults,S),u={};switch(a(t)===i&&E.init(t),parseFloat(l.delay)&&!1!==l.queue&&h.queue(t,l.queue,function(e){E.velocityQueueEntryFlag=!0;var n=E.State.delayedElements.count++;E.State.delayedElements[n]=t;var i=function(t){return function(){E.State.delayedElements[t]=!1,e()}}(n);a(t).delayBegin=(new Date).getTime(),a(t).delay=parseFloat(l.delay),a(t).delayTimer={setTimeout:setTimeout(e,parseFloat(l.delay)),next:i}}),l.duration.toString().toLowerCase()){case"fast":l.duration=200;break;case"normal":l.duration=w;break;case"slow":l.duration=600;break;default:l.duration=parseFloat(l.duration)||1}if(!1!==E.mock&&(!0===E.mock?l.duration=l.delay=1:(l.duration*=parseFloat(E.mock)||1,l.delay*=parseFloat(E.mock)||1)),l.easing=f(l.easing,l.duration),l.begin&&!_.isFunction(l.begin)&&(l.begin=null),l.progress&&!_.isFunction(l.progress)&&(l.progress=null),l.complete&&!_.isFunction(l.complete)&&(l.complete=null),l.display!==i&&null!==l.display&&(l.display=l.display.toString().toLowerCase(),"auto"===l.display&&(l.display=E.CSS.Values.getDisplayType(t))),l.visibility!==i&&null!==l.visibility&&(l.visibility=l.visibility.toString().toLowerCase()),l.mobileHA=l.mobileHA&&E.State.isMobile&&!E.State.isGingerbread,!1===l.queue)if(l.delay){var c=E.State.delayedElements.count++;E.State.delayedElements[c]=t;var p=function(t){return function(){E.State.delayedElements[t]=!1,o()}}(c);a(t).delayBegin=(new Date).getTime(),a(t).delay=parseFloat(l.delay),a(t).delayTimer={setTimeout:setTimeout(o,parseFloat(l.delay)),next:p}}else o();else h.queue(t,l.queue,function(t,e){if(!0===e)return A.promise&&A.resolver(y),!0;E.velocityQueueEntryFlag=!0,o(t)});""!==l.queue&&"fx"!==l.queue||"inprogress"===h.queue(t)[0]||h.dequeue(t)}var c,m,g,v,y,x,S,C=arguments[0]&&(arguments[0].p||h.isPlainObject(arguments[0].properties)&&!arguments[0].properties.names||_.isString(arguments[0].properties));_.isWrapped(this)?(m=!1,v=0,y=this,g=this):(m=!0,v=1,y=C?arguments[0].elements||arguments[0].e:arguments[0]);var A={promise:null,resolver:null,rejecter:null};if(m&&E.Promise&&(A.promise=new E.Promise(function(t,e){A.resolver=t,A.rejecter=e})),C?(x=arguments[0].properties||arguments[0].p,S=arguments[0].options||arguments[0].o):(x=arguments[v],S=arguments[v+1]),!(y=o(y)))return void(A.promise&&(x&&S&&!1===S.promiseRejectEmpty?A.resolver():A.rejecter()));var I=y.length,O=0;if(!/^(stop|finish|finishAll|pause|resume)$/i.test(x)&&!h.isPlainObject(S)){var k=v+1;S={};for(var D=k;D<arguments.length;D++)_.isArray(arguments[D])||!/^(fast|normal|slow)$/i.test(arguments[D])&&!/^\d/.test(arguments[D])?_.isString(arguments[D])||_.isArray(arguments[D])?S.easing=arguments[D]:_.isFunction(arguments[D])&&(S.complete=arguments[D]):S.duration=arguments[D]}var N;switch(x){case"scroll":N="scroll";break;case"reverse":N="reverse";break;case"pause":var P=(new Date).getTime();return h.each(y,function(t,e){s(e,P)}),h.each(E.State.calls,function(t,e){var n=!1;e&&h.each(e[1],function(t,r){var o=S===i?"":S;return!0!==o&&e[2].queue!==o&&(S!==i||!1!==e[2].queue)||(h.each(y,function(t,i){if(i===r)return e[5]={resume:!1},n=!0,!1}),!n&&void 0)})}),r();case"resume":return h.each(y,function(t,e){l(e,P)}),h.each(E.State.calls,function(t,e){var n=!1;e&&h.each(e[1],function(t,r){var o=S===i?"":S;return!0!==o&&e[2].queue!==o&&(S!==i||!1!==e[2].queue)||(!e[5]||(h.each(y,function(t,i){if(i===r)return e[5].resume=!0,n=!0,!1}),!n&&void 0))})}),r();case"finish":case"finishAll":case"stop":h.each(y,function(t,e){a(e)&&a(e).delayTimer&&(clearTimeout(a(e).delayTimer.setTimeout),a(e).delayTimer.next&&a(e).delayTimer.next(),delete a(e).delayTimer),"finishAll"!==x||!0!==S&&!_.isString(S)||(h.each(h.queue(e,_.isString(S)?S:""),function(t,e){_.isFunction(e)&&e()}),h.queue(e,_.isString(S)?S:"",[]))});var L=[];return h.each(E.State.calls,function(t,e){e&&h.each(e[1],function(n,r){var o=S===i?"":S;if(!0!==o&&e[2].queue!==o&&(S!==i||!1!==e[2].queue))return!0;h.each(y,function(n,i){if(i===r)if((!0===S||_.isString(S))&&(h.each(h.queue(i,_.isString(S)?S:""),function(t,e){_.isFunction(e)&&e(null,!0)}),h.queue(i,_.isString(S)?S:"",[])),"stop"===x){var s=a(i);s&&s.tweensContainer&&!1!==o&&h.each(s.tweensContainer,function(t,e){e.endValue=e.currentValue}),L.push(t)}else"finish"!==x&&"finishAll"!==x||(e[2].duration=1)})})}),"stop"===x&&(h.each(L,function(t,e){p(e,!0)}),A.promise&&A.resolver(y)),r();default:if(!h.isPlainObject(x)||_.isEmptyObject(x)){if(_.isString(x)&&E.Redirects[x]){c=h.extend({},S);var j=c.duration,B=c.delay||0;return!0===c.backwards&&(y=h.extend(!0,[],y).reverse()),h.each(y,function(t,e){parseFloat(c.stagger)?c.delay=B+parseFloat(c.stagger)*t:_.isFunction(c.stagger)&&(c.delay=B+c.stagger.call(e,t,I)),c.drag&&(c.duration=parseFloat(j)||(/^(callout|transition)/.test(x)?1e3:w),c.duration=Math.max(c.duration*(c.backwards?1-t/I:(t+1)/I),.75*c.duration,200)),E.Redirects[x].call(e,e,c||{},t,I,y,A.promise?A:i)}),r()}var V="Velocity: First argument ("+x+") was not a property map, a known action, or a registered redirect. Aborting.";return A.promise?A.rejecter(new Error(V)):e.console,r()}N="start"}var F={lastParent:null,lastPosition:null,lastFontSize:null,lastPercentToPxWidth:null,lastPercentToPxHeight:null,lastEmToPx:null,remToPx:null,vwToPx:null,vhToPx:null},R=[];h.each(y,function(t,e){_.isNode(e)&&u(e,t)}),c=h.extend({},E.defaults,S),c.loop=parseInt(c.loop,10);var M=2*c.loop-1;if(c.loop)for(var H=0;H<M;H++){var W={delay:c.delay,progress:c.progress};H===M-1&&(W.display=c.display,W.visibility=c.visibility,W.complete=c.complete),t(y,"reverse",W)}return r()};E=h.extend(A,E),E.animate=A;var I=e.requestAnimationFrame||g;if(!E.State.isMobile&&n.hidden!==i){var O=function(){n.hidden?(I=function(t){return setTimeout(function(){t(!0)},16)},d()):I=e.requestAnimationFrame||g};O(),n.addEventListener("visibilitychange",O)}return t.Velocity=E,t!==e&&(t.fn.velocity=A,t.fn.velocity.defaults=E.defaults),h.each(["Down","Up"],function(t,e){E.Redirects["slide"+e]=function(t,n,r,o,a,s){var l=h.extend({},n),u=l.begin,c=l.complete,f={},d={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""};l.display===i&&(l.display="Down"===e?"inline"===E.CSS.Values.getDisplayType(t)?"inline-block":"block":"none"),l.begin=function(){0===r&&u&&u.call(a,a);for(var n in d)if(d.hasOwnProperty(n)){f[n]=t.style[n];var i=T.getPropertyValue(t,n);d[n]="Down"===e?[i,0]:[0,i]}f.overflow=t.style.overflow,t.style.overflow="hidden"},l.complete=function(){for(var e in f)f.hasOwnProperty(e)&&(t.style[e]=f[e]);r===o-1&&(c&&c.call(a,a),s&&s.resolver(a))},E(t,d,l)}}),h.each(["In","Out"],function(t,e){E.Redirects["fade"+e]=function(t,n,r,o,a,s){var l=h.extend({},n),u=l.complete,c={opacity:"In"===e?1:0};0!==r&&(l.begin=null),l.complete=r!==o-1?null:function(){u&&u.call(a,a),s&&s.resolver(a)},l.display===i&&(l.display="In"===e?"auto":"none"),E(this,c,l)}}),E}(window.jQuery||window.Zepto||window,window,window?window.document:void 0)})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}n(25),n(20),n(22),n(19),n(18),n(8),n(13),n(16),n(17),n(7);var r=n(2),o=i(r),a=n(10),s=i(a),l=n(3),u=i(l),c=n(11),f=i(c),d=n(12),p=i(d),h=n(1),m=i(h),g=n(21),v=i(g);n(14),n(15),n(9);for(var y in v.default.prototype)m.default[y]=v.default.prototype[y];$(document).ready(function(){var t=$(".js-dropdown"),e=new s.default,n=$('.js-top-menu ul[data-depth="0"]'),i=new o.default(t),r=new p.default(n),a=new u.default,l=new f.default;i.init(),e.init(),r.init(),a.init(),l.init()})},function(t,e){},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function r(){a.default.each((0,a.default)(u),function(t,e){(0,a.default)(e).TouchSpin({verticalbuttons:!0,verticalupclass:"material-icons touchspin-up",verticaldownclass:"material-icons touchspin-down",buttondown_class:"btn btn-touchspin js-touchspin js-increase-product-quantity",buttonup_class:"btn btn-touchspin js-touchspin js-decrease-product-quantity",min:parseInt((0,a.default)(e).attr("min"),10),max:1e6})}),p.switchErrorStat()}var o=n(0),a=i(o),s=n(1),l=i(s);l.default.cart=l.default.cart||{},l.default.cart.active_inputs=null;var u='input[name="product-quantity-spin"]',c=!1,f=!1,d="";(0,a.default)(document).ready(function(){function t(t){return"on.startupspin"===t||"on.startdownspin"===t}function e(t){return"on.startupspin"===t}function n(t){var e=t.parents(".bootstrap-touchspin").find(h);return e.is(":focus")?null:e}function i(t){var e=t.split("-"),n=void 0,i=void 0,r="";for(n=0;n<e.length;n++)i=e[n],0!==n&&(i=i.substring(0,1).toUpperCase()+i.substring(1)),r+=i;return r}function o(r,o){if(!t(o))return{url:r.attr("href"),type:i(r.data("link-action"))};var a=n(r);if(a){return e(o)?{url:a.data("up-url"),type:"increaseProductQuantity"}:{url:a.data("down-url"),type:"decreaseProductQuantity"}}}function s(t,e,n){return v(),a.default.ajax({url:t,method:"POST",data:e,dataType:"json",beforeSend:function(t){m.push(t)}}).then(function(t){p.checkUpdateOpertation(t),n.val(t.quantity);var e;e=n&&n.dataset?n.dataset:t,l.default.emit("updateCart",{reason:e})}).fail(function(t){l.default.emit("handleError",{eventType:"updateProductQuantityInCart",resp:t})})}function c(t){return{ajax:"1",qty:Math.abs(t),action:"update",op:f(t)}}function f(t){return t>0?"up":"down"}function d(t){var e=(0,a.default)(t.currentTarget),n=e.data("update-url"),i=e.attr("value"),r=e.val();if(r!=parseInt(r)||r<0||isNaN(r))return void e.val(i);var o=r-i;0!==o&&(e.attr("value",r),s(n,c(o),e))}var h=".js-cart-line-product-quantity",m=[];l.default.on("updateCart",function(){(0,a.default)(".quickview").modal("hide")}),l.default.on("updatedCart",function(){r()}),r();var g=(0,a.default)("body"),v=function(){for(var t;m.length>0;)t=m.pop(),t.abort()},y=function(t){return(0,a.default)(t.parents(".bootstrap-touchspin").find("input"))},b=function(t){t.preventDefault();var e=(0,a.default)(t.currentTarget),n=t.currentTarget.dataset,i=o(e,t.namespace),r={ajax:"1",action:"update"};void 0!==i&&(v(),a.default.ajax({url:i.url,method:"POST",data:r,dataType:"json",beforeSend:function(t){m.push(t)}}).then(function(t){p.checkUpdateOpertation(t),y(e).val(t.quantity),l.default.emit("updateCart",{reason:n})}).fail(function(t){l.default.emit("handleError",{eventType:"updateProductInCart",resp:t,cartAction:i.type})}))};g.on("click",'[data-link-action="delete-from-cart"], [data-link-action="remove-voucher"]',b),g.on("touchspin.on.startdownspin",u,b),g.on("touchspin.on.startupspin",u,b),g.on("focusout keyup",h,function(t){if("keyup"===t.type)return 13===t.keyCode&&d(t),!1;d(t)});g.on("hidden.bs.collapse","#promo-code",function(){(0,a.default)(".display-promo").show(400)}),g.on("click",".promo-code-button",function(t){t.preventDefault(),(0,a.default)("#promo-code").collapse("toggle")}),g.on("click",".display-promo",function(t){(0,a.default)(t.currentTarget).hide(400)}),g.on("click",".js-discount .code",function(t){t.stopPropagation();var e=(0,a.default)(t.currentTarget);return(0,a.default)("[name=discount_name]").val(e.text()),(0,a.default)("#promo-code").collapse("show"),(0,a.default)(".display-promo").hide(400),!1})});var p={switchErrorStat:function(){var t=(0,a.default)(".checkout a");if(((0,a.default)("#notifications article.alert-danger").length||""!==d&&!c)&&t.addClass("disabled"),""!==d){var e=' <article class="alert alert-danger" role="alert" data-alert="danger"><ul><li>'+d+"</li></ul></article>";(0,a.default)("#notifications .container").html(e),d="",f=!1,c&&t.removeClass("disabled")}else!c&&f&&(c=!1,f=!1,(0,a.default)("#notifications .container").html(""),t.removeClass("disabled"))},checkUpdateOpertation:function(t){c=t.hasOwnProperty("hasError");var e=t.errors||"";d=e instanceof Array?e.join(" "):e,f=!0}}},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function r(){(0,s.default)(".js-terms a").on("click",function(t){t.preventDefault();var e=(0,s.default)(t.target).attr("href");e&&(e+="?content_only=1",s.default.get(e,function(t){(0,s.default)("#modal").find(".js-modal-content").html((0,s.default)(t).find(".page-cms").contents())}).fail(function(t){u.default.emit("handleError",{eventType:"clickTerms",resp:t})})),(0,s.default)("#modal").modal("show")}),(0,s.default)(".js-gift-checkbox").on("click",function(t){(0,s.default)("#gift").collapse("toggle")})}function o(){(0,s.default)(".card-block .cart-summary-products p a").on("click",function(t){t=(0,s.default)(this).find("i.material-icons"),"expand_more"==t.text()?t.text("expand_less"):t.text("expand_more")})}var a=n(0),s=i(a),l=n(1),u=i(l);(0,s.default)(document).ready(function(){1===(0,s.default)("body#checkout").length&&(r(),o()),u.default.on("updatedDeliveryForm",function(t){void 0!==t.deliveryOption&&0!==t.deliveryOption.length&&((0,s.default)(".carrier-extra-content").hide(),t.deliveryOption.next(".carrier-extra-content").slideDown())})})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(1),o=i(r),a=n(0),s=i(a);o.default.blockcart=o.default.blockcart||{},o.default.blockcart.showModal=function(t){function e(){return(0,s.default)("#blockcart-modal")}var n=e();n.length&&n.remove(),(0,s.default)("body").append(t),n=e(),n.modal("show").on("hidden.bs.modal",function(t){o.default.emit("updateProduct",{reason:t.currentTarget.dataset,event:t})})}},function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=n(0),a=function(t){return t&&t.__esModule?t:{default:t}}(o),s=function(){function t(){i(this,t)}return r(t,[{key:"init",value:function(){this.parentFocus(),this.togglePasswordVisibility()}},{key:"parentFocus",value:function(){(0,a.default)(".js-child-focus").focus(function(){(0,a.default)(this).closest(".js-parent-focus").addClass("focus")}),(0,a.default)(".js-child-focus").focusout(function(){(0,a.default)(this).closest(".js-parent-focus").removeClass("focus")})}},{key:"togglePasswordVisibility",value:function(){(0,a.default)('button[data-action="show-password"]').on("click",function(){var t=(0,a.default)(this).closest(".input-group").children("input.js-visible-password");"password"===t.attr("type")?(t.attr("type","text"),(0,a.default)(this).text((0,a.default)(this).data("textHide"))):(t.attr("type","password"),(0,a.default)(this).text((0,a.default)(this).data("textShow")))})}}]),t}();e.default=s,t.exports=e.default},function(t,e,n){"use strict";function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=n(0),a=function(t){return t&&t.__esModule?t:{default:t}}(o);n(4);var s=function(){function t(){i(this,t)}return r(t,[{key:"init",value:function(){var t=this,e=(0,a.default)(".js-modal-arrows"),n=(0,a.default)(".js-modal-product-images");(0,a.default)("body").on("click",".js-modal-thumb",function(t){(0,a.default)(".js-modal-thumb").hasClass("selected")&&(0,a.default)(".js-modal-thumb").removeClass("selected"),(0,a.default)(t.currentTarget).addClass("selected"),(0,a.default)(".js-modal-product-cover").attr("src",(0,a.default)(t.target).data("image-large-src")),(0,a.default)(".js-modal-product-cover").attr("title",(0,a.default)(t.target).attr("title")),(0,a.default)(".js-modal-product-cover").attr("alt",(0,a.default)(t.target).attr("alt"))}).on("click","aside#thumbnails",function(t){"thumbnails"==t.target.id&&(0,a.default)("#product-modal").modal("hide")}),(0,a.default)(".js-modal-product-images li").length<=5?e.css("opacity",".2"):e.on("click",function(e){(0,a.default)(e.target).hasClass("arrow-up")&&n.position().top<0?(t.move("up"),(0,a.default)(".js-modal-arrow-down").css("opacity","1")):(0,a.default)(e.target).hasClass("arrow-down")&&n.position().top+n.height()>(0,a.default)(".js-modal-mask").height()&&(t.move("down"),(0,a.default)(".js-modal-arrow-up").css("opacity","1"))})}},{key:"move",value:function(t){var e=(0,a.default)(".js-modal-product-images"),n=(0,a.default)(".js-modal-product-images li img").height()+10,i=e.position().top;e.velocity({translateY:"up"===t?i+n:i-n},function(){e.position().top>=0?(0,a.default)(".js-modal-arrow-up").css("opacity",".2"):e.position().top+e.height()<=(0,a.default)(".js-modal-mask").height()&&(0,a.default)(".js-modal-arrow-down").css("opacity",".2")})}}]),t}();e.default=s,t.exports=e.default},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),s=function(t,e,n){for(var i=!0;i;){var r=t,o=e,a=n;i=!1,null===r&&(r=Function.prototype);var s=Object.getOwnPropertyDescriptor(r,o);if(void 0!==s){if("value"in s)return s.value;var l=s.get;if(void 0===l)return;return l.call(a)}var u=Object.getPrototypeOf(r);if(null===u)return;t=u,e=o,n=a,i=!0,s=u=void 0}},l=n(0),u=i(l),c=n(2),f=i(c),d=function(t){function e(){r(this,e),s(Object.getPrototypeOf(e.prototype),"constructor",this).apply(this,arguments)}return o(e,t),a(e,[{key:"init",value:function(){var t=this,n=void 0,i=this;this.el.find("li").hover(function(e){t.el.parent().hasClass("mobile")||(n!==(0,u.default)(e.currentTarget).attr("id")&&(0===(0,u.default)(e.target).data("depth")&&(0,u.default)("#"+n+" .js-sub-menu").hide(),n=(0,u.default)(e.currentTarget).attr("id")),n&&0===(0,u.default)(e.target).data("depth")&&(0,u.default)("#"+n+" .js-sub-menu").css({top:(0,u.default)("#"+n).height()+(0,u.default)("#"+n).position().top}))}),(0,u.default)("#menu-icon").on("click",function(){(0,u.default)("#mobile_top_menu_wrapper").toggle(),i.toggleMobileMenu()}),(0,u.default)(".js-top-menu .category").mouseleave(function(){t.el.parent().hasClass("mobile")}),this.el.on("click",function(e){t.el.parent().hasClass("mobile")||e.stopPropagation()}),prestashop.on("responsive update",function(t){(0,u.default)(".js-sub-menu").removeAttr("style"),i.toggleMobileMenu()}),s(Object.getPrototypeOf(e.prototype),"init",this).call(this)}},{key:"toggleMobileMenu",value:function(){(0,u.default)("#header").toggleClass("is-open"),(0,u.default)("#mobile_top_menu_wrapper").is(":visible")?(0,u.default)("#notifications, #wrapper, #footer").hide():(0,u.default)("#notifications, #wrapper, #footer").show()}}]),e}(f.default);e.default=d,t.exports=e.default},function(t,e,n){"use strict";function i(){(0,a.default)("#order-return-form table thead input[type=checkbox]").on("click",function(){var t=(0,a.default)(this).prop("checked");(0,a.default)("#order-return-form table tbody input[type=checkbox]").each(function(e,n){(0,a.default)(n).prop("checked",t)})})}function r(){(0,a.default)("body#order-detail")&&i()}var o=n(0),a=function(t){return t&&t.__esModule?t:{default:t}}(o);(0,a.default)(document).ready(r)},function(t,e,n){"use strict";!function(t){var e=0,n=function(e,n){this.options=n,this.$elementFilestyle=[],this.$element=t(e)};n.prototype={clear:function(){this.$element.val(""),this.$elementFilestyle.find(":text").val(""),this.$elementFilestyle.find(".badge").remove()},destroy:function(){this.$element.removeAttr("style").removeData("filestyle"),this.$elementFilestyle.remove()},disabled:function(t){if(!0===t)this.options.disabled||(this.$element.attr("disabled","true"),this.$elementFilestyle.find("label").attr("disabled","true"),this.options.disabled=!0);else{if(!1!==t)return this.options.disabled;this.options.disabled&&(this.$element.removeAttr("disabled"),this.$elementFilestyle.find("label").removeAttr("disabled"),this.options.disabled=!1)}},buttonBefore:function(t){if(!0===t)this.options.buttonBefore||(this.options.buttonBefore=!0,this.options.input&&(this.$elementFilestyle.remove(),this.constructor(),this.pushNameFiles()));else{if(!1!==t)return this.options.buttonBefore;this.options.buttonBefore&&(this.options.buttonBefore=!1,this.options.input&&(this.$elementFilestyle.remove(),this.constructor(),this.pushNameFiles()))}},icon:function(t){if(!0===t)this.options.icon||(this.options.icon=!0,this.$elementFilestyle.find("label").prepend(this.htmlIcon()));else{if(!1!==t)return this.options.icon;this.options.icon&&(this.options.icon=!1,this.$elementFilestyle.find(".icon-span-filestyle").remove())}},input:function(t){if(!0===t)this.options.input||(this.options.input=!0,this.options.buttonBefore?this.$elementFilestyle.append(this.htmlInput()):this.$elementFilestyle.prepend(this.htmlInput()),this.$elementFilestyle.find(".badge").remove(),this.pushNameFiles(),this.$elementFilestyle.find(".group-span-filestyle").addClass("input-group-btn"));else{if(!1!==t)return this.options.input;if(this.options.input){this.options.input=!1,this.$elementFilestyle.find(":text").remove();var e=this.pushNameFiles();e.length>0&&this.options.badge&&this.$elementFilestyle.find("label").append(' <span class="badge">'+e.length+"</span>"),this.$elementFilestyle.find(".group-span-filestyle").removeClass("input-group-btn")}}},size:function(t){if(void 0===t)return this.options.size;var e=this.$elementFilestyle.find("label"),n=this.$elementFilestyle.find("input");e.removeClass("btn-lg btn-sm"),n.removeClass("input-lg input-sm"),"nr"!=t&&(e.addClass("btn-"+t),n.addClass("input-"+t))},placeholder:function(t){if(void 0===t)return this.options.placeholder;this.options.placeholder=t,this.$elementFilestyle.find("input").attr("placeholder",t)},buttonText:function(t){if(void 0===t)return this.options.buttonText;this.options.buttonText=t,this.$elementFilestyle.find("label .buttonText").html(this.options.buttonText)},buttonName:function(t){if(void 0===t)return this.options.buttonName;this.options.buttonName=t,this.$elementFilestyle.find("label").attr({class:"btn "+this.options.buttonName})},iconName:function(t){if(void 0===t)return this.options.iconName;this.$elementFilestyle.find(".icon-span-filestyle").attr({class:"icon-span-filestyle "+this.options.iconName})},htmlIcon:function(){return this.options.icon?'<span class="icon-span-filestyle '+this.options.iconName+'"></span> ':""},htmlInput:function(){return this.options.input?'<input type="text" class="form-control '+("nr"==this.options.size?"":"input-"+this.options.size)+'" placeholder="'+this.options.placeholder+'" disabled> ':""},pushNameFiles:function(){var t="",e=[];void 0===this.$element[0].files?e[0]={name:this.$element[0]&&this.$element[0].value}:e=this.$element[0].files;for(var n=0;n<e.length;n++)t+=e[n].name.split("\\").pop()+", ";return""!==t?this.$elementFilestyle.find(":text").val(t.replace(/\, $/g,"")):this.$elementFilestyle.find(":text").val(""),e},constructor:function(){var n=this,i="",r=n.$element.attr("id"),o="";""!==r&&r||(r="filestyle-"+e,n.$element.attr({id:r}),e++),o='<span class="group-span-filestyle '+(n.options.input?"input-group-btn":"")+'"><label for="'+r+'" class="btn '+n.options.buttonName+" "+("nr"==n.options.size?"":"btn-"+n.options.size)+'" '+(n.options.disabled?'disabled="true"':"")+">"+n.htmlIcon()+'<span class="buttonText">'+n.options.buttonText+"</span></label></span>",i=n.options.buttonBefore?o+n.htmlInput():n.htmlInput()+o,n.$elementFilestyle=t('<div class="bootstrap-filestyle input-group">'+i+"</div>"),n.$elementFilestyle.find(".group-span-filestyle").attr("tabindex","0").keypress(function(t){if(13===t.keyCode||32===t.charCode)return n.$elementFilestyle.find("label").click(),!1}),n.$element.css({position:"absolute",clip:"rect(0px 0px 0px 0px)"}).attr("tabindex","-1").after(n.$elementFilestyle),n.options.disabled&&n.$element.attr("disabled","true"),n.$element.change(function(){var t=n.pushNameFiles();0==n.options.input&&n.options.badge?0==n.$elementFilestyle.find(".badge").length?n.$elementFilestyle.find("label").append(' <span class="badge">'+t.length+"</span>"):0==t.length?n.$elementFilestyle.find(".badge").remove():n.$elementFilestyle.find(".badge").html(t.length):n.$elementFilestyle.find(".badge").remove()}),window.navigator.userAgent.search(/firefox/i)>-1&&n.$elementFilestyle.find("label").click(function(){return n.$element.click(),!1})}};var i=t.fn.filestyle;t.fn.filestyle=function(e,i){var r="",o=this.each(function(){if("file"===t(this).attr("type")){var o=t(this),a=o.data("filestyle"),s=t.extend({},t.fn.filestyle.defaults,e,"object"==typeof e&&e);a||(o.data("filestyle",a=new n(this,s)),a.constructor()),"string"==typeof e&&(r=a[e](i))}});return void 0!==typeof r?r:o},t.fn.filestyle.defaults={buttonText:"Choose file",iconName:"glyphicon glyphicon-folder-open",buttonName:"btn-default",size:"nr",input:!0,badge:!0,icon:!0,buttonBefore:!1,disabled:!1,placeholder:""},t.fn.filestyle.noConflict=function(){return t.fn.filestyle=i,this},t(function(){t(".filestyle").each(function(){var e=t(this),n={input:"false"!==e.attr("data-input"),icon:"false"!==e.attr("data-icon"),buttonBefore:"true"===e.attr("data-buttonBefore"),disabled:"true"===e.attr("data-disabled"),size:e.attr("data-size"),buttonText:e.attr("data-buttonText"),buttonName:e.attr("data-buttonName"),iconName:e.attr("data-iconName"),badge:"false"!==e.attr("data-badge"),placeholder:e.attr("data-placeholder")};e.filestyle(n)})})}(window.jQuery)},function(t,e,n){"use strict";!function(t){t.fn.scrollbox=function(e){var n={linear:!1,startDelay:2,delay:3,step:5,speed:32,switchItems:1,direction:"vertical",distance:"auto",autoPlay:!0,onMouseOverPause:!0,paused:!1,queue:null,listElement:"ul",listItemElement:"li",infiniteLoop:!0,switchAmount:0,afterForward:null,afterBackward:null,triggerStackable:!1};return e=t.extend(n,e),e.scrollOffset="vertical"===e.direction?"scrollTop":"scrollLeft",e.queue&&(e.queue=t("#"+e.queue)),this.each(function(){var n,i,r,o,a,s,l,u,c,f=t(this),d=null,p=null,h=!1,m=0,g=0;e.onMouseOverPause&&(f.bind("mouseover",function(){h=!0}),f.bind("mouseout",function(){h=!1})),n=f.children(e.listElement+":first-child"),!1===e.infiniteLoop&&0===e.switchAmount&&(e.switchAmount=n.children().length),s=function(){if(!h){var r,a,s,l,u;if(r=n.children(e.listItemElement+":first-child"),l="auto"!==e.distance?e.distance:"vertical"===e.direction?r.outerHeight(!0):r.outerWidth(!0),e.linear?s=Math.min(f[0][e.scrollOffset]+e.step,l):(u=Math.max(3,parseInt(.3*(l-f[0][e.scrollOffset]),10)),s=Math.min(f[0][e.scrollOffset]+u,l)),f[0][e.scrollOffset]=s,s>=l){for(a=0;a<e.switchItems;a++)e.queue&&e.queue.find(e.listItemElement).length>0?(n.append(e.queue.find(e.listItemElement)[0]),n.children(e.listItemElement+":first-child").remove()):n.append(n.children(e.listItemElement+":first-child")),++m;if(f[0][e.scrollOffset]=0,clearInterval(d),d=null,t.isFunction(e.afterForward)&&e.afterForward.call(f,{switchCount:m,currentFirstChild:n.children(e.listItemElement+":first-child")}),e.triggerStackable&&0!==g)return void i();if(!1===e.infiniteLoop&&m>=e.switchAmount)return;e.autoPlay&&(p=setTimeout(o,1e3*e.delay))}}},l=function(){if(!h){var r,a,s,l,u;if(0===f[0][e.scrollOffset]){for(a=0;a<e.switchItems;a++)n.children(e.listItemElement+":last-child").insertBefore(n.children(e.listItemElement+":first-child"));r=n.children(e.listItemElement+":first-child"),l="auto"!==e.distance?e.distance:"vertical"===e.direction?r.height():r.width(),f[0][e.scrollOffset]=l}if(e.linear?s=Math.max(f[0][e.scrollOffset]-e.step,0):(u=Math.max(3,parseInt(.3*f[0][e.scrollOffset],10)),s=Math.max(f[0][e.scrollOffset]-u,0)),f[0][e.scrollOffset]=s,0===s){if(--m,clearInterval(d),d=null,t.isFunction(e.afterBackward)&&e.afterBackward.call(f,{switchCount:m,currentFirstChild:n.children(e.listItemElement+":first-child")}),e.triggerStackable&&0!==g)return void i();e.autoPlay&&(p=setTimeout(o,1e3*e.delay))}}},i=function(){0!==g&&(g>0?(g--,p=setTimeout(o,0)):(g++,p=setTimeout(r,0)))},o=function(){clearInterval(d),d=setInterval(s,e.speed)},r=function(){clearInterval(d),d=setInterval(l,e.speed)},u=function(){e.autoPlay=!0,h=!1,clearInterval(d),d=setInterval(s,e.speed)},c=function(){h=!0},a=function(t){e.delay=t||e.delay,clearTimeout(p),e.autoPlay&&(p=setTimeout(o,1e3*e.delay))},e.autoPlay&&(p=setTimeout(o,1e3*e.startDelay)),f.bind("resetClock",function(t){a(t)}),f.bind("forward",function(){e.triggerStackable?null!==d?g++:o():(clearTimeout(p),o())}),f.bind("backward",function(){e.triggerStackable?null!==d?g--:r():(clearTimeout(p),r())}),f.bind("pauseHover",function(){c()}),f.bind("forwardHover",function(){u()}),f.bind("speedUp",function(t,n){"undefined"===n&&(n=Math.max(1,parseInt(e.speed/2,10))),e.speed=n}),f.bind("speedDown",function(t,n){"undefined"===n&&(n=2*e.speed),e.speed=n}),f.bind("updateConfig",function(n,i){e=t.extend(e,i)})})}}(jQuery)},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function r(t){(0,a.default)("#search_filters").replaceWith(t.rendered_facets),(0,a.default)("#js-active-search-filters").replaceWith(t.rendered_active_filters),(0,a.default)("#js-product-list-top").replaceWith(t.rendered_products_top),(0,a.default)("#js-product-list").replaceWith(t.rendered_products),(0,a.default)("#js-product-list-bottom").replaceWith(t.rendered_products_bottom),t.rendered_products_header&&(0,a.default)("#js-product-list-header").replaceWith(t.rendered_products_header),(new c.default).init()}var o=n(0),a=i(o),s=n(1),l=i(s);n(4);var u=n(3),c=i(u);(0,a.default)(document).ready(function(){l.default.on("clickQuickView",function(e){var n={action:"quickview",id_product:e.dataset.idProduct,id_product_attribute:e.dataset.idProductAttribute};a.default.post(l.default.urls.pages.product,n,null,"json").then(function(e){(0,a.default)("body").append(e.quickview_html);var n=(0,a.default)("#quickview-modal-"+e.product.id+"-"+e.product.id_product_attribute);n.modal("show"),t(n),n.on("hidden.bs.modal",function(){n.remove()})}).fail(function(t){l.default.emit("handleError",{eventType:"clickQuickView",resp:t})})});var t=function(t){var n=(0,a.default)(".js-arrows"),i=t.find(".js-qv-product-images");(0,a.default)(".js-thumb").on("click",function(t){(0,a.default)(".js-thumb").hasClass("selected")&&(0,a.default)(".js-thumb").removeClass("selected"),(0,a.default)(t.currentTarget).addClass("selected"),(0,a.default)(".js-qv-product-cover").attr("src",(0,a.default)(t.target).data("image-large-src"))}),i.find("li").length<=4?n.hide():n.on("click",function(t){(0,a.default)(t.target).hasClass("arrow-up")&&(0,a.default)(".js-qv-product-images").position().top<0?(e("up"),(0,a.default)(".arrow-down").css("opacity","1")):(0,a.default)(t.target).hasClass("arrow-down")&&i.position().top+i.height()>(0,a.default)(".js-qv-mask").height()&&(e("down"),(0,a.default)(".arrow-up").css("opacity","1"))}),t.find("#quantity_wanted").TouchSpin({verticalbuttons:!0,verticalupclass:"material-icons touchspin-up",verticaldownclass:"material-icons touchspin-down",buttondown_class:"btn btn-touchspin js-touchspin",buttonup_class:"btn btn-touchspin js-touchspin",min:1,max:1e6})},e=function(t){var e=(0,a.default)(".js-qv-product-images"),n=(0,a.default)(".js-qv-product-images li img").height()+20,i=e.position().top;e.velocity({translateY:"up"===t?i+n:i-n},function(){e.position().top>=0?(0,a.default)(".arrow-up").css("opacity",".2"):e.position().top+e.height()<=(0,a.default)(".js-qv-mask").height()&&(0,a.default)(".arrow-down").css("opacity",".2")})};(0,a.default)("body").on("click","#search_filter_toggler",function(){(0,a.default)("#search_filters_wrapper").removeClass("hidden-sm-down"),(0,a.default)("#content-wrapper").addClass("hidden-sm-down"),(0,a.default)("#footer").addClass("hidden-sm-down")}),(0,a.default)("#search_filter_controls .clear").on("click",function(){(0,a.default)("#search_filters_wrapper").addClass("hidden-sm-down"),(0,a.default)("#content-wrapper").removeClass("hidden-sm-down"),(0,a.default)("#footer").removeClass("hidden-sm-down")}),(0,a.default)("#search_filter_controls .ok").on("click",function(){(0,a.default)("#search_filters_wrapper").addClass("hidden-sm-down"),(0,a.default)("#content-wrapper").removeClass("hidden-sm-down"),(0,a.default)("#footer").removeClass("hidden-sm-down")});var n=function(t){if(void 0!==t.target.dataset.searchUrl)return t.target.dataset.searchUrl;if(void 0===(0,a.default)(t.target).parent()[0].dataset.searchUrl)throw new Error("Can not parse search URL");return(0,a.default)(t.target).parent()[0].dataset.searchUrl};(0,a.default)("body").on("change","#search_filters input[data-search-url]",function(t){l.default.emit("updateFacets",n(t))}),(0,a.default)("body").on("click",".js-search-filters-clear-all",function(t){l.default.emit("updateFacets",n(t))}),(0,a.default)("body").on("click",".js-search-link",function(t){t.preventDefault(),l.default.emit("updateFacets",(0,a.default)(t.target).closest("a").get(0).href)}),(0,a.default)("body").on("change","#search_filters select",function(t){var e=(0,a.default)(t.target).closest("form");l.default.emit("updateFacets","?"+e.serialize())}),l.default.on("updateProductList",function(t){r(t),window.scrollTo(0,0)})})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}var r=n(0),o=i(r),a=n(1),s=i(a);(0,o.default)(document).ready(function(){function t(){(0,o.default)(".js-thumb").on("click",function(t){(0,o.default)(".js-modal-product-cover").attr("src",(0,o.default)(t.target).data("image-large-src")),(0,o.default)(".selected").removeClass("selected"),(0,o.default)(t.target).addClass("selected"),(0,o.default)(".js-qv-product-cover").prop("src",(0,o.default)(t.currentTarget).data("image-large-src"))})}function e(){(0,o.default)("#main .js-qv-product-images li").length>2?((0,o.default)("#main .js-qv-mask").addClass("scroll"),(0,o.default)(".scroll-box-arrows").addClass("scroll"),(0,o.default)("#main .js-qv-mask").scrollbox({direction:"h",distance:113,autoPlay:!1}),(0,o.default)(".scroll-box-arrows .left").click(function(){(0,o.default)("#main .js-qv-mask").trigger("backward")}),(0,o.default)(".scroll-box-arrows .right").click(function(){(0,o.default)("#main .js-qv-mask").trigger("forward")})):((0,o.default)("#main .js-qv-mask").removeClass("scroll"),(0,o.default)(".scroll-box-arrows").removeClass("scroll"))}function n(){(0,o.default)(".js-file-input").on("change",function(t){var e=void 0,n=void 0;(e=(0,o.default)(t.currentTarget)[0])&&(n=e.files[0])&&(0,o.default)(e).prev().text(n.name)})}!function(){var t=(0,o.default)("#quantity_wanted");t.TouchSpin({verticalbuttons:!0,verticalupclass:"material-icons touchspin-up",verticaldownclass:"material-icons touchspin-down",buttondown_class:"btn btn-touchspin js-touchspin",buttonup_class:"btn btn-touchspin js-touchspin",min:parseInt(t.attr("min"),10),max:1e6}),(0,o.default)("body").on("change keyup","#quantity_wanted",function(t){(0,o.default)(t.currentTarget).trigger("touchspin.stopspin"),s.default.emit("updateProduct",{eventType:"updatedProductQuantity",event:t})})}(),n(),t(),e(),s.default.on("updatedProduct",function(i){if(n(),t(),i&&i.product_minimal_quantity){var r=parseInt(i.product_minimal_quantity,10);(0,o.default)("#quantity_wanted").trigger("touchspin.updatesettings",{min:r})}e(),(0,o.default)((0,o.default)(".tabs .nav-link.active").attr("href")).addClass("active").removeClass("fade"),(0,o.default)(".js-product-images-modal").replaceWith(i.product_images_modal)})})},function(t,e,n){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function r(t,e){var n=e.children().detach();e.empty().append(t.children().detach()),t.append(n)}function o(){u.default.responsive.mobile?(0,s.default)("*[id^='_desktop_']").each(function(t,e){var n=(0,s.default)("#"+e.id.replace("_desktop_","_mobile_"));n.length&&r((0,s.default)(e),n)}):(0,s.default)("*[id^='_mobile_']").each(function(t,e){var n=(0,s.default)("#"+e.id.replace("_mobile_","_desktop_"));n.length&&r((0,s.default)(e),n)}),u.default.emit("responsive update",{mobile:u.default.responsive.mobile})}var a=n(0),s=i(a),l=n(1),u=i(l);u.default.responsive=u.default.responsive||{},u.default.responsive.current_width=window.innerWidth,u.default.responsive.min_width=768,u.default.responsive.mobile=u.default.responsive.current_width<u.default.responsive.min_width,(0,s.default)(window).on("resize",function(){var t=u.default.responsive.current_width,e=u.default.responsive.min_width,n=window.innerWidth,i=t>=e&&n<e||t<e&&n>=e;u.default.responsive.current_width=n,u.default.responsive.mobile=u.default.responsive.current_width<u.default.responsive.min_width,i&&o()}),(0,s.default)(document).ready(function(){u.default.responsive.mobile&&o()})},function(t,e,n){"use strict";!function(t){function e(t,e){return t+".touchspin_"+e}function n(n,i){return t.map(n,function(t){return e(t,i)})}var i=0;t.fn.TouchSpin=function(e){if("destroy"===e)return void this.each(function(){var e=t(this),i=e.data();t(document).off(n(["mouseup","touchend","touchcancel","mousemove","touchmove","scroll","scrollstart"],i.spinnerid).join(" "))});var r={min:0,max:100,initval:"",replacementval:"",step:1,decimals:0,stepinterval:100,forcestepdivisibility:"round",stepintervaldelay:500,verticalbuttons:!1,verticalupclass:"glyphicon glyphicon-chevron-up",verticaldownclass:"glyphicon glyphicon-chevron-down",prefix:"",postfix:"",prefix_extraclass:"",postfix_extraclass:"",booster:!0,boostat:10,maxboostedstep:!1,mousewheel:!0,buttondown_class:"btn btn-default",buttonup_class:"btn btn-default",buttondown_txt:"-",buttonup_txt:"+"},o={min:"min",max:"max",initval:"init-val",replacementval:"replacement-val",step:"step",decimals:"decimals",stepinterval:"step-interval",verticalbuttons:"vertical-buttons",verticalupclass:"vertical-up-class",verticaldownclass:"vertical-down-class",forcestepdivisibility:"force-step-divisibility",stepintervaldelay:"step-interval-delay",prefix:"prefix",postfix:"postfix",prefix_extraclass:"prefix-extra-class",postfix_extraclass:"postfix-extra-class",booster:"booster",boostat:"boostat",maxboostedstep:"max-boosted-step",mousewheel:"mouse-wheel",buttondown_class:"button-down-class",buttonup_class:"button-up-class",buttondown_txt:"button-down-txt",buttonup_txt:"button-up-txt"};return this.each(function(){function a(){""!==T.initval&&""===L.val()&&L.val(T.initval)}function s(t){c(t),b();var e=I.input.val();""!==e&&(e=Number(I.input.val()),I.input.val(e.toFixed(T.decimals)))}function l(){T=t.extend({},r,j,u(),e)}function u(){var e={};return t.each(o,function(t,n){var i="bts-"+n;L.is("[data-"+i+"]")&&(e[t]=L.data(i))}),e}function c(e){T=t.extend({},T,e)}function f(){var t=L.val(),e=L.parent();""!==t&&(t=Number(t).toFixed(T.decimals)),L.data("initvalue",t).val(t),L.addClass("form-control"),e.hasClass("input-group")?d(e):p()}function d(e){e.addClass("bootstrap-touchspin");var n,i,r=L.prev(),o=L.next(),a='<span class="input-group-addon bootstrap-touchspin-prefix">'+T.prefix+"</span>",s='<span class="input-group-addon bootstrap-touchspin-postfix">'+T.postfix+"</span>";r.hasClass("input-group-btn")?(n='<button class="'+T.buttondown_class+' bootstrap-touchspin-down" type="button">'+T.buttondown_txt+"</button>",r.append(n)):(n='<span class="input-group-btn"><button class="'+T.buttondown_class+' bootstrap-touchspin-down" type="button">'+T.buttondown_txt+"</button></span>",t(n).insertBefore(L)),o.hasClass("input-group-btn")?(i='<button class="'+T.buttonup_class+' bootstrap-touchspin-up" type="button">'+T.buttonup_txt+"</button>",o.prepend(i)):(i='<span class="input-group-btn"><button class="'+T.buttonup_class+' bootstrap-touchspin-up" type="button">'+T.buttonup_txt+"</button></span>",t(i).insertAfter(L)),t(a).insertBefore(L),t(s).insertAfter(L),A=e}function p(){var e;e=T.verticalbuttons?'<div class="input-group bootstrap-touchspin"><span class="input-group-addon bootstrap-touchspin-prefix">'+T.prefix+'</span><span class="input-group-addon bootstrap-touchspin-postfix">'+T.postfix+'</span><span class="input-group-btn-vertical"><button class="'+T.buttondown_class+' bootstrap-touchspin-up" type="button"><i class="'+T.verticalupclass+'"></i></button><button class="'+T.buttonup_class+' bootstrap-touchspin-down" type="button"><i class="'+T.verticaldownclass+'"></i></button></span></div>':'<div class="input-group bootstrap-touchspin"><span class="input-group-btn"><button class="'+T.buttondown_class+' bootstrap-touchspin-down" type="button">'+T.buttondown_txt+'</button></span><span class="input-group-addon bootstrap-touchspin-prefix">'+T.prefix+'</span><span class="input-group-addon bootstrap-touchspin-postfix">'+T.postfix+'</span><span class="input-group-btn"><button class="'+T.buttonup_class+' bootstrap-touchspin-up" type="button">'+T.buttonup_txt+"</button></span></div>",A=t(e).insertBefore(L),t(".bootstrap-touchspin-prefix",A).after(L),L.hasClass("input-sm")?A.addClass("input-group-sm"):L.hasClass("input-lg")&&A.addClass("input-group-lg")}function h(){I={down:t(".bootstrap-touchspin-down",A),up:t(".bootstrap-touchspin-up",A),input:t("input",A),prefix:t(".bootstrap-touchspin-prefix",A).addClass(T.prefix_extraclass),postfix:t(".bootstrap-touchspin-postfix",A).addClass(T.postfix_extraclass)}}function m(){""===T.prefix&&I.prefix.hide(),""===T.postfix&&I.postfix.hide()}function g(){L.on("keydown",function(t){var e=t.keyCode||t.which;38===e?("up"!==V&&(x(),E()),t.preventDefault()):40===e&&("down"!==V&&(w(),S()),t.preventDefault())}),L.on("keyup",function(t){var e=t.keyCode||t.which;38===e?C():40===e&&C()}),L.on("blur",function(){b()}),I.down.on("keydown",function(t){var e=t.keyCode||t.which;32!==e&&13!==e||("down"!==V&&(w(),S()),t.preventDefault())}),I.down.on("keyup",function(t){var e=t.keyCode||t.which;32!==e&&13!==e||C()}),I.up.on("keydown",function(t){var e=t.keyCode||t.which;32!==e&&13!==e||("up"!==V&&(x(),E()),t.preventDefault())}),I.up.on("keyup",function(t){var e=t.keyCode||t.which;32!==e&&13!==e||C()}),I.down.on("mousedown.touchspin",function(t){I.down.off("touchstart.touchspin"),L.is(":disabled")||(w(),S(),t.preventDefault(),t.stopPropagation())}),I.down.on("touchstart.touchspin",function(t){I.down.off("mousedown.touchspin"),L.is(":disabled")||(w(),S(),t.preventDefault(),t.stopPropagation())}),I.up.on("mousedown.touchspin",function(t){I.up.off("touchstart.touchspin"),L.is(":disabled")||(x(),E(),t.preventDefault(),t.stopPropagation())}),I.up.on("touchstart.touchspin",function(t){I.up.off("mousedown.touchspin"),L.is(":disabled")||(x(),E(),t.preventDefault(),t.stopPropagation())}),I.up.on("mouseout touchleave touchend touchcancel",function(t){V&&(t.stopPropagation(),C())}),I.down.on("mouseout touchleave touchend touchcancel",function(t){V&&(t.stopPropagation(),C())}),I.down.on("mousemove touchmove",function(t){V&&(t.stopPropagation(),t.preventDefault())}),I.up.on("mousemove touchmove",function(t){V&&(t.stopPropagation(),t.preventDefault())}),t(document).on(n(["mouseup","touchend","touchcancel"],i).join(" "),function(t){V&&(t.preventDefault(),C())}),t(document).on(n(["mousemove","touchmove","scroll","scrollstart"],i).join(" "),function(t){V&&(t.preventDefault(),C())}),L.on("mousewheel DOMMouseScroll",function(t){if(T.mousewheel&&L.is(":focus")){var e=t.originalEvent.wheelDelta||-t.originalEvent.deltaY||-t.originalEvent.detail;t.stopPropagation(),t.preventDefault(),e<0?w():x()}})}function v(){L.on("touchspin.uponce",function(){C(),x()}),L.on("touchspin.downonce",function(){C(),w()}),L.on("touchspin.startupspin",function(){E()}),L.on("touchspin.startdownspin",function(){S()}),L.on("touchspin.stopspin",function(){C()}),L.on("touchspin.updatesettings",function(t,e){s(e)})}function y(t){switch(T.forcestepdivisibility){case"round":return(Math.round(t/T.step)*T.step).toFixed(T.decimals);case"floor":return(Math.floor(t/T.step)*T.step).toFixed(T.decimals);case"ceil":return(Math.ceil(t/T.step)*T.step).toFixed(T.decimals);default:return t}}function b(){var t,e,n;if(""===(t=L.val()))return void(""!==T.replacementval&&(L.val(T.replacementval),L.trigger("change")));T.decimals>0&&"."===t||(e=parseFloat(t),isNaN(e)&&(e=""!==T.replacementval?T.replacementval:0),n=e,e.toString()!==t&&(n=e),e<T.min&&(n=T.min),e>T.max&&(n=T.max),n=y(n),Number(t).toString()!==n.toString()&&(L.val(n),L.trigger("change")))}function _(){if(T.booster){var t=Math.pow(2,Math.floor(B/T.boostat))*T.step;return T.maxboostedstep&&t>T.maxboostedstep&&(t=T.maxboostedstep,O=Math.round(O/t)*t),Math.max(T.step,t)}return T.step}function x(){b(),O=parseFloat(I.input.val()),isNaN(O)&&(O=0);var t=O,e=_();O+=e,O>T.max&&(O=T.max,L.trigger("touchspin.on.max"),C()),I.input.val(Number(O).toFixed(T.decimals)),t!==O&&L.trigger("change")}function w(){b(),O=parseFloat(I.input.val()),isNaN(O)&&(O=0);var t=O,e=_();O-=e,O<T.min&&(O=T.min,L.trigger("touchspin.on.min"),C()),I.input.val(O.toFixed(T.decimals)),t!==O&&L.trigger("change")}function S(){C(),B=0,V="down",L.trigger("touchspin.on.startspin"),L.trigger("touchspin.on.startdownspin"),N=setTimeout(function(){k=setInterval(function(){B++,w()},T.stepinterval)},T.stepintervaldelay)}function E(){C(),B=0,V="up",L.trigger("touchspin.on.startspin"),L.trigger("touchspin.on.startupspin"),P=setTimeout(function(){D=setInterval(function(){B++,x()},T.stepinterval)},T.stepintervaldelay)}function C(){switch(clearTimeout(N),clearTimeout(P),clearInterval(k),clearInterval(D),V){case"up":L.trigger("touchspin.on.stopupspin"),L.trigger("touchspin.on.stopspin");break;case"down":L.trigger("touchspin.on.stopdownspin"),L.trigger("touchspin.on.stopspin")}B=0,V=!1}var T,A,I,O,k,D,N,P,L=t(this),j=L.data(),B=0,V=!1;!function(){L.data("alreadyinitialized")||(L.data("alreadyinitialized",!0),i+=1,L.data("spinnerid",i),L.is("input")&&(l(),a(),b(),f(),h(),m(),g(),v(),I.input.css("display","block")))}()})}}(jQuery)},function(t,e,n){"use strict";if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1||e[0]>=4)throw new Error("Bootstrap's JavaScript requires at least jQuery v1.9.1 but less than v4.0.0")}(jQuery),function(){function t(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function e(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),o=function(t){function e(t){return{}.toString.call(t).match(/\s([a-zA-Z]+)/)[1].toLowerCase()}function n(t){return(t[0]||t).nodeType}function i(){return{bindType:a.end,delegateType:a.end,handle:function(e){if(t(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}}}function r(){if(window.QUnit)return!1;var t=document.createElement("bootstrap");for(var e in s)if(void 0!==t.style[e])return{end:s[e]};return!1}function o(e){var n=this,i=!1;return t(this).one(l.TRANSITION_END,function(){i=!0}),setTimeout(function(){i||l.triggerTransitionEnd(n)},e),this}var a=!1,s={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},l={TRANSITION_END:"bsTransitionEnd",getUID:function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},getSelectorFromElement:function(t){var e=t.getAttribute("data-target");return e||(e=t.getAttribute("href")||"",e=/^#[a-z]/i.test(e)?e:null),e},reflow:function(t){new Function("bs","return bs")(t.offsetHeight)},triggerTransitionEnd:function(e){t(e).trigger(a.end)},supportsTransitionEnd:function(){return Boolean(a)},typeCheckConfig:function(t,i,r){for(var o in r)if(r.hasOwnProperty(o)){var a=r[o],s=i[o],l=void 0;if(l=s&&n(s)?"element":e(s),!new RegExp(a).test(l))throw new Error(t.toUpperCase()+': Option "'+o+'" provided type "'+l+'" but expected type "'+a+'".')}}};return function(){a=r(),t.fn.emulateTransitionEnd=o,l.supportsTransitionEnd()&&(t.event.special[l.TRANSITION_END]=i())}(),l}(jQuery),a=(function(t){var e="alert",i="bs.alert",a="."+i,s=t.fn[e],l={DISMISS:'[data-dismiss="alert"]'},u={CLOSE:"close"+a,CLOSED:"closed"+a,CLICK_DATA_API:"click"+a+".data-api"},c={ALERT:"alert",FADE:"fade",IN:"in"},f=function(){function e(t){n(this,e),this._element=t}return e.prototype.close=function(t){t=t||this._element;var e=this._getRootElement(t);this._triggerCloseEvent(e).isDefaultPrevented()||this._removeElement(e)},e.prototype.dispose=function(){t.removeData(this._element,i),this._element=null},e.prototype._getRootElement=function(e){var n=o.getSelectorFromElement(e),i=!1;return n&&(i=t(n)[0]),i||(i=t(e).closest("."+c.ALERT)[0]),i},e.prototype._triggerCloseEvent=function(e){var n=t.Event(u.CLOSE);return t(e).trigger(n),n},e.prototype._removeElement=function(e){return t(e).removeClass(c.IN),o.supportsTransitionEnd()&&t(e).hasClass(c.FADE)?void t(e).one(o.TRANSITION_END,t.proxy(this._destroyElement,this,e)).emulateTransitionEnd(150):void this._destroyElement(e)},e.prototype._destroyElement=function(e){t(e).detach().trigger(u.CLOSED).remove()},e._jQueryInterface=function(n){return this.each(function(){var r=t(this),o=r.data(i);o||(o=new e(this),r.data(i,o)),"close"===n&&o[n](this)})},e._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},r(e,null,[{key:"VERSION",get:function(){return"4.0.0-alpha.5"}}]),e}();t(document).on(u.CLICK_DATA_API,l.DISMISS,f._handleDismiss(new f)),t.fn[e]=f._jQueryInterface,t.fn[e].Constructor=f,t.fn[e].noConflict=function(){return t.fn[e]=s,f._jQueryInterface}}(jQuery),function(t){var e="button",i="bs.button",o="."+i,a=".data-api",s=t.fn[e],l={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},u={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:"input",ACTIVE:".active",BUTTON:".btn"},c={CLICK_DATA_API:"click"+o+a,FOCUS_BLUR_DATA_API:"focus"+o+a+" blur"+o+a},f=function(){function e(t){n(this,e),this._element=t}return e.prototype.toggle=function(){var e=!0,n=t(this._element).closest(u.DATA_TOGGLE)[0];if(n){var i=t(this._element).find(u.INPUT)[0];if(i){if("radio"===i.type)if(i.checked&&t(this._element).hasClass(l.ACTIVE))e=!1;else{var r=t(n).find(u.ACTIVE)[0];r&&t(r).removeClass(l.ACTIVE)}e&&(i.checked=!t(this._element).hasClass(l.ACTIVE),t(this._element).trigger("change")),i.focus()}}else this._element.setAttribute("aria-pressed",!t(this._element).hasClass(l.ACTIVE));e&&t(this._element).toggleClass(l.ACTIVE)},e.prototype.dispose=function(){t.removeData(this._element,i),this._element=null},e._jQueryInterface=function(n){return this.each(function(){var r=t(this).data(i);r||(r=new e(this),t(this).data(i,r)),"toggle"===n&&r[n]()})},r(e,null,[{key:"VERSION",get:function(){return"4.0.0-alpha.5"}}]),e}();t(document).on(c.CLICK_DATA_API,u.DATA_TOGGLE_CARROT,function(e){e.preventDefault();var n=e.target;t(n).hasClass(l.BUTTON)||(n=t(n).closest(u.BUTTON)),f._jQueryInterface.call(t(n),"toggle")}).on(c.FOCUS_BLUR_DATA_API,u.DATA_TOGGLE_CARROT,function(e){var n=t(e.target).closest(u.BUTTON)[0];t(n).toggleClass(l.FOCUS,/^focus(in)?$/.test(e.type))}),t.fn[e]=f._jQueryInterface,t.fn[e].Constructor=f,t.fn[e].noConflict=function(){return t.fn[e]=s,f._jQueryInterface}}(jQuery),function(t){var e="carousel",a="bs.carousel",s="."+a,l=".data-api",u=t.fn[e],c={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0},f={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean"},d={NEXT:"next",PREVIOUS:"prev"},p={SLIDE:"slide"+s,SLID:"slid"+s,KEYDOWN:"keydown"+s,MOUSEENTER:"mouseenter"+s,MOUSELEAVE:"mouseleave"+s,LOAD_DATA_API:"load"+s+l,CLICK_DATA_API:"click"+s+l},h={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"right",LEFT:"left",ITEM:"carousel-item"},m={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",NEXT_PREV:".next, .prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},g=function(){function l(e,i){n(this,l),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this._config=this._getConfig(i),this._element=t(e)[0],this._indicatorsElement=t(this._element).find(m.INDICATORS)[0],this._addEventListeners()}return l.prototype.next=function(){this._isSliding||this._slide(d.NEXT)},l.prototype.nextWhenVisible=function(){document.hidden||this.next()},l.prototype.prev=function(){this._isSliding||this._slide(d.PREVIOUS)},l.prototype.pause=function(e){e||(this._isPaused=!0),t(this._element).find(m.NEXT_PREV)[0]&&o.supportsTransitionEnd()&&(o.triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},l.prototype.cycle=function(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config.interval&&!this._isPaused&&(this._interval=setInterval(t.proxy(document.visibilityState?this.nextWhenVisible:this.next,this),this._config.interval))},l.prototype.to=function(e){var n=this;this._activeElement=t(this._element).find(m.ACTIVE_ITEM)[0];var i=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0)){if(this._isSliding)return void t(this._element).one(p.SLID,function(){return n.to(e)});if(i===e)return this.pause(),void this.cycle();var r=e>i?d.NEXT:d.PREVIOUS;this._slide(r,this._items[e])}},l.prototype.dispose=function(){t(this._element).off(s),t.removeData(this._element,a),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},l.prototype._getConfig=function(n){return n=t.extend({},c,n),o.typeCheckConfig(e,n,f),n},l.prototype._addEventListeners=function(){this._config.keyboard&&t(this._element).on(p.KEYDOWN,t.proxy(this._keydown,this)),"hover"!==this._config.pause||"ontouchstart"in document.documentElement||t(this._element).on(p.MOUSEENTER,t.proxy(this.pause,this)).on(p.MOUSELEAVE,t.proxy(this.cycle,this))},l.prototype._keydown=function(t){if(t.preventDefault(),!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}},l.prototype._getItemIndex=function(e){return this._items=t.makeArray(t(e).parent().find(m.ITEM)),this._items.indexOf(e)},l.prototype._getItemByDirection=function(t,e){var n=t===d.NEXT,i=t===d.PREVIOUS,r=this._getItemIndex(e),o=this._items.length-1;if((i&&0===r||n&&r===o)&&!this._config.wrap)return e;var a=t===d.PREVIOUS?-1:1,s=(r+a)%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},l.prototype._triggerSlideEvent=function(e,n){var i=t.Event(p.SLIDE,{relatedTarget:e,direction:n});return t(this._element).trigger(i),i},l.prototype._setActiveIndicatorElement=function(e){if(this._indicatorsElement){t(this._indicatorsElement).find(m.ACTIVE).removeClass(h.ACTIVE);var n=this._indicatorsElement.children[this._getItemIndex(e)];n&&t(n).addClass(h.ACTIVE)}},l.prototype._slide=function(e,n){var i=this,r=t(this._element).find(m.ACTIVE_ITEM)[0],a=n||r&&this._getItemByDirection(e,r),s=Boolean(this._interval),l=e===d.NEXT?h.LEFT:h.RIGHT;if(a&&t(a).hasClass(h.ACTIVE))return void(this._isSliding=!1);if(!this._triggerSlideEvent(a,l).isDefaultPrevented()&&r&&a){this._isSliding=!0,s&&this.pause(),this._setActiveIndicatorElement(a);var u=t.Event(p.SLID,{relatedTarget:a,direction:l});o.supportsTransitionEnd()&&t(this._element).hasClass(h.SLIDE)?(t(a).addClass(e),o.reflow(a),t(r).addClass(l),t(a).addClass(l),t(r).one(o.TRANSITION_END,function(){t(a).removeClass(l).removeClass(e),t(a).addClass(h.ACTIVE),t(r).removeClass(h.ACTIVE).removeClass(e).removeClass(l),i._isSliding=!1,setTimeout(function(){return t(i._element).trigger(u)},0)}).emulateTransitionEnd(600)):(t(r).removeClass(h.ACTIVE),t(a).addClass(h.ACTIVE),this._isSliding=!1,t(this._element).trigger(u)),s&&this.cycle()}},l._jQueryInterface=function(e){return this.each(function(){var n=t(this).data(a),r=t.extend({},c,t(this).data());"object"===(void 0===e?"undefined":i(e))&&t.extend(r,e);var o="string"==typeof e?e:r.slide;if(n||(n=new l(this,r),t(this).data(a,n)),"number"==typeof e)n.to(e);else if("string"==typeof o){if(void 0===n[o])throw new Error('No method named "'+o+'"');n[o]()}else r.interval&&(n.pause(),n.cycle())})},l._dataApiClickHandler=function(e){var n=o.getSelectorFromElement(this);if(n){var i=t(n)[0];if(i&&t(i).hasClass(h.CAROUSEL)){var r=t.extend({},t(i).data(),t(this).data()),s=this.getAttribute("data-slide-to");s&&(r.interval=!1),l._jQueryInterface.call(t(i),r),s&&t(i).data(a).to(s),e.preventDefault()}}},r(l,null,[{key:"VERSION",get:function(){return"4.0.0-alpha.5"}},{key:"Default",get:function(){return c}}]),l}();t(document).on(p.CLICK_DATA_API,m.DATA_SLIDE,g._dataApiClickHandler),t(window).on(p.LOAD_DATA_API,function(){t(m.DATA_RIDE).each(function(){var e=t(this);g._jQueryInterface.call(e,e.data())})}),t.fn[e]=g._jQueryInterface,t.fn[e].Constructor=g,t.fn[e].noConflict=function(){return t.fn[e]=u,g._jQueryInterface}}(jQuery),function(t){var e="collapse",a="bs.collapse",s="."+a,l=t.fn[e],u={toggle:!0,parent:""},c={toggle:"boolean",parent:"string"},f={SHOW:"show"+s,SHOWN:"shown"+s,HIDE:"hide"+s,HIDDEN:"hidden"+s,CLICK_DATA_API:"click"+s+".data-api"},d={IN:"in",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},p={WIDTH:"width",HEIGHT:"height"},h={ACTIVES:".card > .in, .card > .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},m=function(){function s(e,i){n(this,s),this._isTransitioning=!1,this._element=e,this._config=this._getConfig(i),this._triggerArray=t.makeArray(t('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]')),this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}return s.prototype.toggle=function(){t(this._element).hasClass(d.IN)?this.hide():this.show()},s.prototype.show=function(){var e=this;if(!this._isTransitioning&&!t(this._element).hasClass(d.IN)){var n=void 0,i=void 0;if(this._parent&&(n=t.makeArray(t(h.ACTIVES)),n.length||(n=null)),!(n&&(i=t(n).data(a))&&i._isTransitioning)){var r=t.Event(f.SHOW);if(t(this._element).trigger(r),!r.isDefaultPrevented()){n&&(s._jQueryInterface.call(t(n),"hide"),i||t(n).data(a,null));var l=this._getDimension();t(this._element).removeClass(d.COLLAPSE).addClass(d.COLLAPSING),this._element.style[l]=0,this._element.setAttribute("aria-expanded",!0),this._triggerArray.length&&t(this._triggerArray).removeClass(d.COLLAPSED).attr("aria-expanded",!0),this.setTransitioning(!0);var u=function(){t(e._element).removeClass(d.COLLAPSING).addClass(d.COLLAPSE).addClass(d.IN),e._element.style[l]="",e.setTransitioning(!1),t(e._element).trigger(f.SHOWN)};if(!o.supportsTransitionEnd())return void u();var c=l[0].toUpperCase()+l.slice(1),p="scroll"+c;t(this._element).one(o.TRANSITION_END,u).emulateTransitionEnd(600),this._element.style[l]=this._element[p]+"px"}}}},s.prototype.hide=function(){var e=this;if(!this._isTransitioning&&t(this._element).hasClass(d.IN)){var n=t.Event(f.HIDE);if(t(this._element).trigger(n),!n.isDefaultPrevented()){var i=this._getDimension(),r=i===p.WIDTH?"offsetWidth":"offsetHeight";this._element.style[i]=this._element[r]+"px",o.reflow(this._element),t(this._element).addClass(d.COLLAPSING).removeClass(d.COLLAPSE).removeClass(d.IN),this._element.setAttribute("aria-expanded",!1),this._triggerArray.length&&t(this._triggerArray).addClass(d.COLLAPSED).attr("aria-expanded",!1),this.setTransitioning(!0);var a=function(){e.setTransitioning(!1),t(e._element).removeClass(d.COLLAPSING).addClass(d.COLLAPSE).trigger(f.HIDDEN)};return this._element.style[i]="",o.supportsTransitionEnd()?void t(this._element).one(o.TRANSITION_END,a).emulateTransitionEnd(600):void a()}}},s.prototype.setTransitioning=function(t){this._isTransitioning=t},s.prototype.dispose=function(){t.removeData(this._element,a),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},s.prototype._getConfig=function(n){return n=t.extend({},u,n),n.toggle=Boolean(n.toggle),o.typeCheckConfig(e,n,c),n},s.prototype._getDimension=function(){return t(this._element).hasClass(p.WIDTH)?p.WIDTH:p.HEIGHT},s.prototype._getParent=function(){var e=this,n=t(this._config.parent)[0],i='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return t(n).find(i).each(function(t,n){e._addAriaAndCollapsedClass(s._getTargetFromElement(n),[n])}),n},s.prototype._addAriaAndCollapsedClass=function(e,n){if(e){var i=t(e).hasClass(d.IN);e.setAttribute("aria-expanded",i),n.length&&t(n).toggleClass(d.COLLAPSED,!i).attr("aria-expanded",i)}},s._getTargetFromElement=function(e){var n=o.getSelectorFromElement(e);return n?t(n)[0]:null},s._jQueryInterface=function(e){return this.each(function(){var n=t(this),r=n.data(a),o=t.extend({},u,n.data(),"object"===(void 0===e?"undefined":i(e))&&e);if(!r&&o.toggle&&/show|hide/.test(e)&&(o.toggle=!1),r||(r=new s(this,o),n.data(a,r)),"string"==typeof e){if(void 0===r[e])throw new Error('No method named "'+e+'"');r[e]()}})},r(s,null,[{key:"VERSION",get:function(){return"4.0.0-alpha.5"}},{key:"Default",get:function(){return u}}]),s}();t(document).on(f.CLICK_DATA_API,h.DATA_TOGGLE,function(e){e.preventDefault();var n=m._getTargetFromElement(this),i=t(n).data(a),r=i?"toggle":t(this).data();m._jQueryInterface.call(t(n),r)}),t.fn[e]=m._jQueryInterface,t.fn[e].Constructor=m,t.fn[e].noConflict=function(){return t.fn[e]=l,m._jQueryInterface}}(jQuery),function(t){var e="dropdown",i="bs.dropdown",a="."+i,s=".data-api",l=t.fn[e],u={HIDE:"hide"+a,HIDDEN:"hidden"+a,SHOW:"show"+a,SHOWN:"shown"+a,CLICK:"click"+a,CLICK_DATA_API:"click"+a+s,KEYDOWN_DATA_API:"keydown"+a+s},c={BACKDROP:"dropdown-backdrop",DISABLED:"disabled",OPEN:"open"},f={BACKDROP:".dropdown-backdrop",DATA_TOGGLE:'[data-toggle="dropdown"]',FORM_CHILD:".dropdown form",ROLE_MENU:'[role="menu"]',ROLE_LISTBOX:'[role="listbox"]',NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:'[role="menu"] li:not(.disabled) a, [role="listbox"] li:not(.disabled) a'},d=function(){function e(t){n(this,e),this._element=t,this._addEventListeners()}return e.prototype.toggle=function(){if(this.disabled||t(this).hasClass(c.DISABLED))return!1;var n=e._getParentFromElement(this),i=t(n).hasClass(c.OPEN);if(e._clearMenus(),i)return!1;if("ontouchstart"in document.documentElement&&!t(n).closest(f.NAVBAR_NAV).length){var r=document.createElement("div");r.className=c.BACKDROP,t(r).insertBefore(this),t(r).on("click",e._clearMenus)}var o={relatedTarget:this},a=t.Event(u.SHOW,o);return t(n).trigger(a),!a.isDefaultPrevented()&&(this.focus(),this.setAttribute("aria-expanded","true"),t(n).toggleClass(c.OPEN),t(n).trigger(t.Event(u.SHOWN,o)),!1)},e.prototype.dispose=function(){t.removeData(this._element,i),t(this._element).off(a),this._element=null},e.prototype._addEventListeners=function(){t(this._element).on(u.CLICK,this.toggle)},e._jQueryInterface=function(n){return this.each(function(){var r=t(this).data(i);if(r||t(this).data(i,r=new e(this)),"string"==typeof n){if(void 0===r[n])throw new Error('No method named "'+n+'"');r[n].call(this)}})},e._clearMenus=function(n){if(!n||3!==n.which){var i=t(f.BACKDROP)[0];i&&i.parentNode.removeChild(i);for(var r=t.makeArray(t(f.DATA_TOGGLE)),o=0;o<r.length;o++){var a=e._getParentFromElement(r[o]),s={relatedTarget:r[o]};if(t(a).hasClass(c.OPEN)&&!(n&&"click"===n.type&&/input|textarea/i.test(n.target.tagName)&&t.contains(a,n.target))){var l=t.Event(u.HIDE,s);t(a).trigger(l),l.isDefaultPrevented()||(r[o].setAttribute("aria-expanded","false"),t(a).removeClass(c.OPEN).trigger(t.Event(u.HIDDEN,s)))}}}},e._getParentFromElement=function(e){var n=void 0,i=o.getSelectorFromElement(e);return i&&(n=t(i)[0]),n||e.parentNode},e._dataApiKeydownHandler=function(n){if(/(38|40|27|32)/.test(n.which)&&!/input|textarea/i.test(n.target.tagName)&&(n.preventDefault(),n.stopPropagation(),!this.disabled&&!t(this).hasClass(c.DISABLED))){var i=e._getParentFromElement(this),r=t(i).hasClass(c.OPEN);if(!r&&27!==n.which||r&&27===n.which){if(27===n.which){var o=t(i).find(f.DATA_TOGGLE)[0];t(o).trigger("focus")}return void t(this).trigger("click")}var a=t.makeArray(t(f.VISIBLE_ITEMS));if(a=a.filter(function(t){return t.offsetWidth||t.offsetHeight}),a.length){var s=a.indexOf(n.target);38===n.which&&s>0&&s--,40===n.which&&s<a.length-1&&s++,s<0&&(s=0),a[s].focus()}}},r(e,null,[{key:"VERSION",get:function(){return"4.0.0-alpha.5"}}]),e}();t(document).on(u.KEYDOWN_DATA_API,f.DATA_TOGGLE,d._dataApiKeydownHandler).on(u.KEYDOWN_DATA_API,f.ROLE_MENU,d._dataApiKeydownHandler).on(u.KEYDOWN_DATA_API,f.ROLE_LISTBOX,d._dataApiKeydownHandler).on(u.CLICK_DATA_API,d._clearMenus).on(u.CLICK_DATA_API,f.DATA_TOGGLE,d.prototype.toggle).on(u.CLICK_DATA_API,f.FORM_CHILD,function(t){t.stopPropagation()}),t.fn[e]=d._jQueryInterface,t.fn[e].Constructor=d,t.fn[e].noConflict=function(){return t.fn[e]=l,d._jQueryInterface}}(jQuery),function(t){var e="modal",a="bs.modal",s="."+a,l=t.fn[e],u={backdrop:!0,keyboard:!0,focus:!0,show:!0},c={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},f={HIDE:"hide"+s,HIDDEN:"hidden"+s,SHOW:"show"+s,SHOWN:"shown"+s,FOCUSIN:"focusin"+s,RESIZE:"resize"+s,CLICK_DISMISS:"click.dismiss"+s,KEYDOWN_DISMISS:"keydown.dismiss"+s,MOUSEUP_DISMISS:"mouseup.dismiss"+s,MOUSEDOWN_DISMISS:"mousedown.dismiss"+s,CLICK_DATA_API:"click"+s+".data-api"},d={SCROLLBAR_MEASURER:"modal-scrollbar-measure",BACKDROP:"modal-backdrop",OPEN:"modal-open",FADE:"fade",IN:"in"},p={DIALOG:".modal-dialog",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".navbar-fixed-top, .navbar-fixed-bottom, .is-fixed"},h=function(){function l(e,i){n(this,l),this._config=this._getConfig(i),this._element=e,this._dialog=t(e).find(p.DIALOG)[0],this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._originalBodyPadding=0,this._scrollbarWidth=0}return l.prototype.toggle=function(t){return this._isShown?this.hide():this.show(t)},l.prototype.show=function(e){var n=this,i=t.Event(f.SHOW,{relatedTarget:e});t(this._element).trigger(i),this._isShown||i.isDefaultPrevented()||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),t(document.body).addClass(d.OPEN),this._setEscapeEvent(),this._setResizeEvent(),t(this._element).on(f.CLICK_DISMISS,p.DATA_DISMISS,t.proxy(this.hide,this)),t(this._dialog).on(f.MOUSEDOWN_DISMISS,function(){t(n._element).one(f.MOUSEUP_DISMISS,function(e){t(e.target).is(n._element)&&(n._ignoreBackdropClick=!0)})}),this._showBackdrop(t.proxy(this._showElement,this,e)))},l.prototype.hide=function(e){e&&e.preventDefault();var n=t.Event(f.HIDE);t(this._element).trigger(n),this._isShown&&!n.isDefaultPrevented()&&(this._isShown=!1,this._setEscapeEvent(),this._setResizeEvent(),t(document).off(f.FOCUSIN),t(this._element).removeClass(d.IN),t(this._element).off(f.CLICK_DISMISS),t(this._dialog).off(f.MOUSEDOWN_DISMISS),o.supportsTransitionEnd()&&t(this._element).hasClass(d.FADE)?t(this._element).one(o.TRANSITION_END,t.proxy(this._hideModal,this)).emulateTransitionEnd(300):this._hideModal())},l.prototype.dispose=function(){t.removeData(this._element,a),t(window).off(s),t(document).off(s),t(this._element).off(s),t(this._backdrop).off(s),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._originalBodyPadding=null,this._scrollbarWidth=null},l.prototype._getConfig=function(n){return n=t.extend({},u,n),o.typeCheckConfig(e,n,c),n},l.prototype._showElement=function(e){var n=this,i=o.supportsTransitionEnd()&&t(this._element).hasClass(d.FADE);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.scrollTop=0,i&&o.reflow(this._element),t(this._element).addClass(d.IN),this._config.focus&&this._enforceFocus();var r=t.Event(f.SHOWN,{relatedTarget:e}),a=function(){n._config.focus&&n._element.focus(),t(n._element).trigger(r)};i?t(this._dialog).one(o.TRANSITION_END,a).emulateTransitionEnd(300):a()},l.prototype._enforceFocus=function(){var e=this;t(document).off(f.FOCUSIN).on(f.FOCUSIN,function(n){document===n.target||e._element===n.target||t(e._element).has(n.target).length||e._element.focus()})},l.prototype._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?t(this._element).on(f.KEYDOWN_DISMISS,function(t){27===t.which&&e.hide()}):this._isShown||t(this._element).off(f.KEYDOWN_DISMISS)},l.prototype._setResizeEvent=function(){this._isShown?t(window).on(f.RESIZE,t.proxy(this._handleUpdate,this)):t(window).off(f.RESIZE)},l.prototype._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden","true"),this._showBackdrop(function(){t(document.body).removeClass(d.OPEN),e._resetAdjustments(),e._resetScrollbar(),t(e._element).trigger(f.HIDDEN)})},l.prototype._removeBackdrop=function(){this._backdrop&&(t(this._backdrop).remove(),this._backdrop=null)},l.prototype._showBackdrop=function(e){var n=this,i=t(this._element).hasClass(d.FADE)?d.FADE:"";if(this._isShown&&this._config.backdrop){var r=o.supportsTransitionEnd()&&i;if(this._backdrop=document.createElement("div"),this._backdrop.className=d.BACKDROP,i&&t(this._backdrop).addClass(i),t(this._backdrop).appendTo(document.body),t(this._element).on(f.CLICK_DISMISS,function(t){return n._ignoreBackdropClick?void(n._ignoreBackdropClick=!1):void(t.target===t.currentTarget&&("static"===n._config.backdrop?n._element.focus():n.hide()))}),r&&o.reflow(this._backdrop),t(this._backdrop).addClass(d.IN),!e)return;if(!r)return void e();t(this._backdrop).one(o.TRANSITION_END,e).emulateTransitionEnd(150)}else if(!this._isShown&&this._backdrop){t(this._backdrop).removeClass(d.IN);var a=function(){n._removeBackdrop(),e&&e()};o.supportsTransitionEnd()&&t(this._element).hasClass(d.FADE)?t(this._backdrop).one(o.TRANSITION_END,a).emulateTransitionEnd(150):a()}else e&&e()},l.prototype._handleUpdate=function(){this._adjustDialog()},l.prototype._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},l.prototype._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},l.prototype._checkScrollbar=function(){this._isBodyOverflowing=document.body.clientWidth<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},l.prototype._setScrollbar=function(){var e=parseInt(t(p.FIXED_CONTENT).css("padding-right")||0,10);this._originalBodyPadding=document.body.style.paddingRight||"",this._isBodyOverflowing&&(document.body.style.paddingRight=e+this._scrollbarWidth+"px")},l.prototype._resetScrollbar=function(){document.body.style.paddingRight=this._originalBodyPadding},l.prototype._getScrollbarWidth=function(){var t=document.createElement("div");t.className=d.SCROLLBAR_MEASURER,document.body.appendChild(t);var e=t.offsetWidth-t.clientWidth;return document.body.removeChild(t),e},l._jQueryInterface=function(e,n){return this.each(function(){var r=t(this).data(a),o=t.extend({},l.Default,t(this).data(),"object"===(void 0===e?"undefined":i(e))&&e);if(r||(r=new l(this,o),t(this).data(a,r)),"string"==typeof e){if(void 0===r[e])throw new Error('No method named "'+e+'"');r[e](n)}else o.show&&r.show(n)})},r(l,null,[{key:"VERSION",get:function(){return"4.0.0-alpha.5"}},{key:"Default",get:function(){return u}}]),l}();t(document).on(f.CLICK_DATA_API,p.DATA_TOGGLE,function(e){var n=this,i=void 0,r=o.getSelectorFromElement(this);r&&(i=t(r)[0]);var s=t(i).data(a)?"toggle":t.extend({},t(i).data(),t(this).data());"A"===this.tagName&&e.preventDefault();var l=t(i).one(f.SHOW,function(e){e.isDefaultPrevented()||l.one(f.HIDDEN,function(){t(n).is(":visible")&&n.focus()})});h._jQueryInterface.call(t(i),s,this)}),t.fn[e]=h._jQueryInterface,t.fn[e].Constructor=h,t.fn[e].noConflict=function(){return t.fn[e]=l,h._jQueryInterface}}(jQuery),function(t){var e="scrollspy",a="bs.scrollspy",s="."+a,l=t.fn[e],u={offset:10,method:"auto",target:""},c={offset:"number",method:"string",target:"(string|element)"},f={ACTIVATE:"activate"+s,SCROLL:"scroll"+s,LOAD_DATA_API:"load"+s+".data-api"},d={DROPDOWN_ITEM:"dropdown-item",DROPDOWN_MENU:"dropdown-menu",NAV_LINK:"nav-link",NAV:"nav",ACTIVE:"active"},p={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",LIST_ITEM:".list-item",LI:"li",LI_DROPDOWN:"li.dropdown",NAV_LINKS:".nav-link",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},h={OFFSET:"offset",POSITION:"position"},m=function(){function l(e,i){n(this,l),this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(i),this._selector=this._config.target+" "+p.NAV_LINKS+","+this._config.target+" "+p.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,t(this._scrollElement).on(f.SCROLL,t.proxy(this._process,this)),this.refresh(),this._process()}return l.prototype.refresh=function(){var e=this,n=this._scrollElement!==this._scrollElement.window?h.POSITION:h.OFFSET,i="auto"===this._config.method?n:this._config.method,r=i===h.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),t.makeArray(t(this._selector)).map(function(e){var n=void 0,a=o.getSelectorFromElement(e);return a&&(n=t(a)[0]),n&&(n.offsetWidth||n.offsetHeight)?[t(n)[i]().top+r,a]:null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},l.prototype.dispose=function(){t.removeData(this._element,a),t(this._scrollElement).off(s),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},l.prototype._getConfig=function(n){if(n=t.extend({},u,n),"string"!=typeof n.target){var i=t(n.target).attr("id");i||(i=o.getUID(e),t(n.target).attr("id",i)),n.target="#"+i}return o.typeCheckConfig(e,n,c),n},l.prototype._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.scrollY:this._scrollElement.scrollTop},l.prototype._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},l.prototype._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._scrollElement.offsetHeight;if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}if(this._activeTarget&&t<this._offsets[0])return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;){this._activeTarget!==this._targets[r]&&t>=this._offsets[r]&&(void 0===this._offsets[r+1]||t<this._offsets[r+1])&&this._activate(this._targets[r])}},l.prototype._activate=function(e){this._activeTarget=e,this._clear();var n=this._selector.split(",");n=n.map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'});var i=t(n.join(","));i.hasClass(d.DROPDOWN_ITEM)?(i.closest(p.DROPDOWN).find(p.DROPDOWN_TOGGLE).addClass(d.ACTIVE),i.addClass(d.ACTIVE)):i.parents(p.LI).find(p.NAV_LINKS).addClass(d.ACTIVE),t(this._scrollElement).trigger(f.ACTIVATE,{relatedTarget:e})},l.prototype._clear=function(){t(this._selector).filter(p.ACTIVE).removeClass(d.ACTIVE)},l._jQueryInterface=function(e){return this.each(function(){var n=t(this).data(a),r="object"===(void 0===e?"undefined":i(e))&&e||null;if(n||(n=new l(this,r),t(this).data(a,n)),"string"==typeof e){if(void 0===n[e])throw new Error('No method named "'+e+'"');n[e]()}})},r(l,null,[{key:"VERSION",get:function(){return"4.0.0-alpha.5"}},{key:"Default",get:function(){return u}}]),l}();t(window).on(f.LOAD_DATA_API,function(){for(var e=t.makeArray(t(p.DATA_SPY)),n=e.length;n--;){var i=t(e[n]);m._jQueryInterface.call(i,i.data())}}),t.fn[e]=m._jQueryInterface,t.fn[e].Constructor=m,t.fn[e].noConflict=function(){return t.fn[e]=l,m._jQueryInterface}}(jQuery),function(t){var e="tab",i="bs.tab",a="."+i,s=t.fn[e],l={HIDE:"hide"+a,HIDDEN:"hidden"+a,SHOW:"show"+a,SHOWN:"shown"+a,CLICK_DATA_API:"click"+a+".data-api"},u={DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active",FADE:"fade",IN:"in"},c={A:"a",LI:"li",DROPDOWN:".dropdown",UL:"ul:not(.dropdown-menu)",FADE_CHILD:"> .nav-item .fade, > .fade",ACTIVE:".active",ACTIVE_CHILD:"> .nav-item > .active, > .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"]',DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:"> .dropdown-menu .active"},f=function(){function e(t){n(this,e),this._element=t}return e.prototype.show=function(){var e=this;if(!this._element.parentNode||this._element.parentNode.nodeType!==Node.ELEMENT_NODE||!t(this._element).hasClass(u.ACTIVE)){var n=void 0,i=void 0,r=t(this._element).closest(c.UL)[0],a=o.getSelectorFromElement(this._element);r&&(i=t.makeArray(t(r).find(c.ACTIVE)),i=i[i.length-1]);var s=t.Event(l.HIDE,{relatedTarget:this._element}),f=t.Event(l.SHOW,{relatedTarget:i});if(i&&t(i).trigger(s),t(this._element).trigger(f),!f.isDefaultPrevented()&&!s.isDefaultPrevented()){a&&(n=t(a)[0]),this._activate(this._element,r);var d=function(){var n=t.Event(l.HIDDEN,{relatedTarget:e._element}),r=t.Event(l.SHOWN,{relatedTarget:i});t(i).trigger(n),t(e._element).trigger(r)};n?this._activate(n,n.parentNode,d):d()}}},e.prototype.dispose=function(){t.removeClass(this._element,i),this._element=null},e.prototype._activate=function(e,n,i){var r=t(n).find(c.ACTIVE_CHILD)[0],a=i&&o.supportsTransitionEnd()&&(r&&t(r).hasClass(u.FADE)||Boolean(t(n).find(c.FADE_CHILD)[0])),s=t.proxy(this._transitionComplete,this,e,r,a,i);r&&a?t(r).one(o.TRANSITION_END,s).emulateTransitionEnd(150):s(),r&&t(r).removeClass(u.IN)},e.prototype._transitionComplete=function(e,n,i,r){if(n){t(n).removeClass(u.ACTIVE);var a=t(n).find(c.DROPDOWN_ACTIVE_CHILD)[0];a&&t(a).removeClass(u.ACTIVE),n.setAttribute("aria-expanded",!1)}if(t(e).addClass(u.ACTIVE),e.setAttribute("aria-expanded",!0),i?(o.reflow(e),t(e).addClass(u.IN)):t(e).removeClass(u.FADE),e.parentNode&&t(e.parentNode).hasClass(u.DROPDOWN_MENU)){var s=t(e).closest(c.DROPDOWN)[0];s&&t(s).find(c.DROPDOWN_TOGGLE).addClass(u.ACTIVE),e.setAttribute("aria-expanded",!0)}r&&r()},e._jQueryInterface=function(n){return this.each(function(){var r=t(this),o=r.data(i);if(o||(o=o=new e(this),r.data(i,o)),"string"==typeof n){if(void 0===o[n])throw new Error('No method named "'+n+'"');o[n]()}})},r(e,null,[{key:"VERSION",get:function(){return"4.0.0-alpha.5"}}]),e}();t(document).on(l.CLICK_DATA_API,c.DATA_TOGGLE,function(e){e.preventDefault(),f._jQueryInterface.call(t(this),"show")}),t.fn[e]=f._jQueryInterface,t.fn[e].Constructor=f,t.fn[e].noConflict=function(){return t.fn[e]=s,f._jQueryInterface}}(jQuery),function(t){if(void 0===window.Tether)throw new Error("Bootstrap tooltips require Tether (http://tether.io/)");var e="tooltip",a="bs.tooltip",s="."+a,l=t.fn[e],u={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:"0 0",constraints:[]},c={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"string",constraints:"array"},f={TOP:"bottom center",RIGHT:"middle left",BOTTOM:"top center",LEFT:"middle right"},d={IN:"in",OUT:"out"},p={HIDE:"hide"+s,HIDDEN:"hidden"+s,SHOW:"show"+s,SHOWN:"shown"+s,INSERTED:"inserted"+s,CLICK:"click"+s,FOCUSIN:"focusin"+s,FOCUSOUT:"focusout"+s,MOUSEENTER:"mouseenter"+s,MOUSELEAVE:"mouseleave"+s},h={FADE:"fade",IN:"in"},m={TOOLTIP:".tooltip",TOOLTIP_INNER:".tooltip-inner"},g={element:!1,enabled:!1},v={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},y=function(){function l(t,e){n(this,l),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._tether=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}return l.prototype.enable=function(){this._isEnabled=!0},l.prototype.disable=function(){this._isEnabled=!1},l.prototype.toggleEnabled=function(){this._isEnabled=!this._isEnabled},l.prototype.toggle=function(e){if(e){var n=this.constructor.DATA_KEY,i=t(e.currentTarget).data(n);i||(i=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(t(this.getTipElement()).hasClass(h.IN))return void this._leave(null,this);this._enter(null,this)}},l.prototype.dispose=function(){clearTimeout(this._timeout),this.cleanupTether(),t.removeData(this.element,this.constructor.DATA_KEY),t(this.element).off(this.constructor.EVENT_KEY),this.tip&&t(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._tether=null,this.element=null,this.config=null,this.tip=null},l.prototype.show=function(){var e=this,n=t.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){t(this.element).trigger(n);var i=t.contains(this.element.ownerDocument.documentElement,this.element);if(n.isDefaultPrevented()||!i)return;var r=this.getTipElement(),a=o.getUID(this.constructor.NAME);r.setAttribute("id",a),this.element.setAttribute("aria-describedby",a),this.setContent(),this.config.animation&&t(r).addClass(h.FADE);var s="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,u=this._getAttachment(s);t(r).data(this.constructor.DATA_KEY,this).appendTo(document.body),t(this.element).trigger(this.constructor.Event.INSERTED),this._tether=new Tether({attachment:u,element:r,target:this.element,classes:g,classPrefix:"bs-tether",offset:this.config.offset,constraints:this.config.constraints,addTargetClasses:!1}),o.reflow(r),this._tether.position(),t(r).addClass(h.IN);var c=function(){var n=e._hoverState;e._hoverState=null,t(e.element).trigger(e.constructor.Event.SHOWN),n===d.OUT&&e._leave(null,e)};if(o.supportsTransitionEnd()&&t(this.tip).hasClass(h.FADE))return void t(this.tip).one(o.TRANSITION_END,c).emulateTransitionEnd(l._TRANSITION_DURATION);c()}},l.prototype.hide=function(e){var n=this,i=this.getTipElement(),r=t.Event(this.constructor.Event.HIDE),a=function(){n._hoverState!==d.IN&&i.parentNode&&i.parentNode.removeChild(i),n.element.removeAttribute("aria-describedby"),t(n.element).trigger(n.constructor.Event.HIDDEN),n.cleanupTether(),e&&e()};t(this.element).trigger(r),r.isDefaultPrevented()||(t(i).removeClass(h.IN),o.supportsTransitionEnd()&&t(this.tip).hasClass(h.FADE)?t(i).one(o.TRANSITION_END,a).emulateTransitionEnd(150):a(),this._hoverState="")},l.prototype.isWithContent=function(){return Boolean(this.getTitle())},l.prototype.getTipElement=function(){return this.tip=this.tip||t(this.config.template)[0]},l.prototype.setContent=function(){var e=t(this.getTipElement());this.setElementContent(e.find(m.TOOLTIP_INNER),this.getTitle()),e.removeClass(h.FADE).removeClass(h.IN),this.cleanupTether()},l.prototype.setElementContent=function(e,n){var r=this.config.html;"object"===(void 0===n?"undefined":i(n))&&(n.nodeType||n.jquery)?r?t(n).parent().is(e)||e.empty().append(n):e.text(t(n).text()):e[r?"html":"text"](n)},l.prototype.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},l.prototype.cleanupTether=function(){this._tether&&this._tether.destroy()},l.prototype._getAttachment=function(t){return f[t.toUpperCase()]},l.prototype._setListeners=function(){var e=this;this.config.trigger.split(" ").forEach(function(n){if("click"===n)t(e.element).on(e.constructor.Event.CLICK,e.config.selector,t.proxy(e.toggle,e));else if(n!==v.MANUAL){var i=n===v.HOVER?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,r=n===v.HOVER?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;t(e.element).on(i,e.config.selector,t.proxy(e._enter,e)).on(r,e.config.selector,t.proxy(e._leave,e))}}),this.config.selector?this.config=t.extend({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},l.prototype._fixTitle=function(){var t=i(this.element.getAttribute("data-original-title"));(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},l.prototype._enter=function(e,n){var i=this.constructor.DATA_KEY;return n=n||t(e.currentTarget).data(i),n||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(i,n)),e&&(n._activeTrigger["focusin"===e.type?v.FOCUS:v.HOVER]=!0),t(n.getTipElement()).hasClass(h.IN)||n._hoverState===d.IN?void(n._hoverState=d.IN):(clearTimeout(n._timeout),n._hoverState=d.IN,n.config.delay&&n.config.delay.show?void(n._timeout=setTimeout(function(){n._hoverState===d.IN&&n.show()},n.config.delay.show)):void n.show())},l.prototype._leave=function(e,n){var i=this.constructor.DATA_KEY;if(n=n||t(e.currentTarget).data(i),n||(n=new this.constructor(e.currentTarget,this._getDelegateConfig()),t(e.currentTarget).data(i,n)),e&&(n._activeTrigger["focusout"===e.type?v.FOCUS:v.HOVER]=!1),!n._isWithActiveTrigger())return clearTimeout(n._timeout),n._hoverState=d.OUT,n.config.delay&&n.config.delay.hide?void(n._timeout=setTimeout(function(){n._hoverState===d.OUT&&n.hide()},n.config.delay.hide)):void n.hide()},l.prototype._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},l.prototype._getConfig=function(n){return n=t.extend({},this.constructor.Default,t(this.element).data(),n),n.delay&&"number"==typeof n.delay&&(n.delay={show:n.delay,hide:n.delay}),o.typeCheckConfig(e,n,this.constructor.DefaultType),n},l.prototype._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},l._jQueryInterface=function(e){return this.each(function(){var n=t(this).data(a),r="object"===(void 0===e?"undefined":i(e))?e:null;if((n||!/dispose|hide/.test(e))&&(n||(n=new l(this,r),t(this).data(a,n)),"string"==typeof e)){if(void 0===n[e])throw new Error('No method named "'+e+'"');n[e]()}})},r(l,null,[{key:"VERSION",get:function(){return"4.0.0-alpha.5"}},{key:"Default",get:function(){return u}},{key:"NAME",get:function(){return e}},{key:"DATA_KEY",get:function(){return a}},{key:"Event",get:function(){return p}},{key:"EVENT_KEY",get:function(){return s}},{key:"DefaultType",get:function(){return c}}]),l}();return t.fn[e]=y._jQueryInterface,t.fn[e].Constructor=y,t.fn[e].noConflict=function(){return t.fn[e]=l,y._jQueryInterface},y}(jQuery));!function(o){var s="popover",l="bs.popover",u="."+l,c=o.fn[s],f=o.extend({},a.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),d=o.extend({},a.DefaultType,{content:"(string|element|function)"}),p={FADE:"fade",IN:"in"},h={TITLE:".popover-title",CONTENT:".popover-content"},m={HIDE:"hide"+u,HIDDEN:"hidden"+u,SHOW:"show"+u,SHOWN:"shown"+u,INSERTED:"inserted"+u,CLICK:"click"+u,FOCUSIN:"focusin"+u,FOCUSOUT:"focusout"+u,MOUSEENTER:"mouseenter"+u,MOUSELEAVE:"mouseleave"+u},g=function(a){function c(){return n(this,c),t(this,a.apply(this,arguments))}return e(c,a),c.prototype.isWithContent=function(){return this.getTitle()||this._getContent()},c.prototype.getTipElement=function(){return this.tip=this.tip||o(this.config.template)[0]},c.prototype.setContent=function(){var t=o(this.getTipElement());this.setElementContent(t.find(h.TITLE),this.getTitle()),this.setElementContent(t.find(h.CONTENT),this._getContent()),t.removeClass(p.FADE).removeClass(p.IN),this.cleanupTether()},c.prototype._getContent=function(){return this.element.getAttribute("data-content")||("function"==typeof this.config.content?this.config.content.call(this.element):this.config.content)},c._jQueryInterface=function(t){return this.each(function(){var e=o(this).data(l),n="object"===(void 0===t?"undefined":i(t))?t:null;if((e||!/destroy|hide/.test(t))&&(e||(e=new c(this,n),o(this).data(l,e)),"string"==typeof t)){if(void 0===e[t])throw new Error('No method named "'+t+'"');e[t]()}})},r(c,null,[{key:"VERSION",get:function(){return"4.0.0-alpha.5"}},{key:"Default",get:function(){return f}},{key:"NAME",get:function(){return s}},{key:"DATA_KEY",get:function(){return l}},{key:"Event",get:function(){return m}},{key:"EVENT_KEY",get:function(){return u}},{key:"DefaultType",get:function(){return d}}]),c}(a);o.fn[s]=g._jQueryInterface,o.fn[s].Constructor=g,o.fn[s].noConflict=function(){return o.fn[s]=c,g._jQueryInterface}}(jQuery)}()},function(t,e,n){"use strict";function i(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(t){return"function"==typeof t}function o(t){return"number"==typeof t}function a(t){return"object"==typeof t&&null!==t}function s(t){return void 0===t}t.exports=i,i.EventEmitter=i,i.prototype._events=void 0,i.prototype._maxListeners=void 0,i.defaultMaxListeners=10,i.prototype.setMaxListeners=function(t){if(!o(t)||t<0||isNaN(t))throw TypeError("n must be a positive number");return this._maxListeners=t,this},i.prototype.emit=function(t){var e,n,i,o,l,u;if(this._events||(this._events={}),"error"===t&&(!this._events.error||a(this._events.error)&&!this._events.error.length)){if((e=arguments[1])instanceof Error)throw e;var c=new Error('Uncaught, unspecified "error" event. ('+e+")");throw c.context=e,c}if(n=this._events[t],s(n))return!1;if(r(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:o=Array.prototype.slice.call(arguments,1),n.apply(this,o)}else if(a(n))for(o=Array.prototype.slice.call(arguments,1),u=n.slice(),i=u.length,l=0;l<i;l++)u[l].apply(this,o);return!0},i.prototype.addListener=function(t,e){var n;if(!r(e))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",t,r(e.listener)?e.listener:e),this._events[t]?a(this._events[t])?this._events[t].push(e):this._events[t]=[this._events[t],e]:this._events[t]=e,a(this._events[t])&&!this._events[t].warned&&(n=s(this._maxListeners)?i.defaultMaxListeners:this._maxListeners)&&n>0&&this._events[t].length>n&&(this._events[t].warned=!0,console.trace),this},i.prototype.on=i.prototype.addListener,i.prototype.once=function(t,e){function n(){this.removeListener(t,n),i||(i=!0,e.apply(this,arguments))}if(!r(e))throw TypeError("listener must be a function");var i=!1;return n.listener=e,this.on(t,n),this},i.prototype.removeListener=function(t,e){var n,i,o,s;if(!r(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(n=this._events[t],o=n.length,i=-1,n===e||r(n.listener)&&n.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(a(n)){for(s=o;s-- >0;)if(n[s]===e||n[s].listener&&n[s].listener===e){i=s;break}if(i<0)return this;1===n.length?(n.length=0,delete this._events[t]):n.splice(i,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},i.prototype.removeAllListeners=function(t){var e,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[t],r(n))this.removeListener(t,n);else if(n)for(;n.length;)this.removeListener(t,n[n.length-1]);return delete this._events[t],this},i.prototype.listeners=function(t){return this._events&&this._events[t]?r(this._events[t])?[this._events[t]]:this._events[t].slice():[]},i.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(r(e))return 1;if(e)return e.length}return 0},i.listenerCount=function(t,e){return t.listenerCount(e)}},function(t,e,n){"use strict";var i,i;!function(e){t.exports=e()}(function(){return function t(e,n,r){function o(s,l){if(!n[s]){if(!e[s]){var u="function"==typeof i&&i;if(!l&&u)return i(s,!0);if(a)return a(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var f=n[s]={exports:{}};e[s][0].call(f.exports,function(t){var n=e[s][1][t];return o(n||t)},f,f.exports,t,e,n,r)}return n[s].exports}for(var a="function"==typeof i&&i,s=0;s<r.length;s++)o(r[s]);return o}({1:[function(t,e,n){e.exports=function(t){var e,n,i,r=-1;if(t.lines.length>1&&"flex-start"===t.style.alignContent)for(e=0;i=t.lines[++r];)i.crossStart=e,e+=i.cross;else if(t.lines.length>1&&"flex-end"===t.style.alignContent)for(e=t.flexStyle.crossSpace;i=t.lines[++r];)i.crossStart=e,e+=i.cross;else if(t.lines.length>1&&"center"===t.style.alignContent)for(e=t.flexStyle.crossSpace/2;i=t.lines[++r];)i.crossStart=e,e+=i.cross;else if(t.lines.length>1&&"space-between"===t.style.alignContent)for(n=t.flexStyle.crossSpace/(t.lines.length-1),e=0;i=t.lines[++r];)i.crossStart=e,e+=i.cross+n;else if(t.lines.length>1&&"space-around"===t.style.alignContent)for(n=2*t.flexStyle.crossSpace/(2*t.lines.length),e=n/2;i=t.lines[++r];)i.crossStart=e,e+=i.cross+n;else for(n=t.flexStyle.crossSpace/t.lines.length,e=t.flexStyle.crossInnerBefore;i=t.lines[++r];)i.crossStart=e,i.cross+=n,e+=i.cross}},{}],2:[function(t,e,n){e.exports=function(t){for(var e,n=-1;line=t.lines[++n];)for(e=-1;child=line.children[++e];){var i=child.style.alignSelf;"auto"===i&&(i=t.style.alignItems),"flex-start"===i?child.flexStyle.crossStart=line.crossStart:"flex-end"===i?child.flexStyle.crossStart=line.crossStart+line.cross-child.flexStyle.crossOuter:"center"===i?child.flexStyle.crossStart=line.crossStart+(line.cross-child.flexStyle.crossOuter)/2:(child.flexStyle.crossStart=line.crossStart,child.flexStyle.crossOuter=line.cross,child.flexStyle.cross=child.flexStyle.crossOuter-child.flexStyle.crossBefore-child.flexStyle.crossAfter)}}},{}],3:[function(t,e,n){e.exports=function(t,e){var n="row"===e||"row-reverse"===e,i=t.mainAxis;if(i){n&&"inline"===i||!n&&"block"===i||(t.flexStyle={main:t.flexStyle.cross,cross:t.flexStyle.main,mainOffset:t.flexStyle.crossOffset,crossOffset:t.flexStyle.mainOffset,mainBefore:t.flexStyle.crossBefore,mainAfter:t.flexStyle.crossAfter,crossBefore:t.flexStyle.mainBefore,crossAfter:t.flexStyle.mainAfter,mainInnerBefore:t.flexStyle.crossInnerBefore,mainInnerAfter:t.flexStyle.crossInnerAfter,crossInnerBefore:t.flexStyle.mainInnerBefore,crossInnerAfter:t.flexStyle.mainInnerAfter,mainBorderBefore:t.flexStyle.crossBorderBefore,mainBorderAfter:t.flexStyle.crossBorderAfter,crossBorderBefore:t.flexStyle.mainBorderBefore,crossBorderAfter:t.flexStyle.mainBorderAfter})}else t.flexStyle=n?{main:t.style.width,cross:t.style.height,mainOffset:t.style.offsetWidth,crossOffset:t.style.offsetHeight,mainBefore:t.style.marginLeft,mainAfter:t.style.marginRight,crossBefore:t.style.marginTop,crossAfter:t.style.marginBottom,mainInnerBefore:t.style.paddingLeft,mainInnerAfter:t.style.paddingRight,crossInnerBefore:t.style.paddingTop,crossInnerAfter:t.style.paddingBottom,mainBorderBefore:t.style.borderLeftWidth,mainBorderAfter:t.style.borderRightWidth,crossBorderBefore:t.style.borderTopWidth,crossBorderAfter:t.style.borderBottomWidth}:{main:t.style.height,cross:t.style.width,mainOffset:t.style.offsetHeight,crossOffset:t.style.offsetWidth,mainBefore:t.style.marginTop,mainAfter:t.style.marginBottom,crossBefore:t.style.marginLeft,crossAfter:t.style.marginRight,mainInnerBefore:t.style.paddingTop,mainInnerAfter:t.style.paddingBottom,crossInnerBefore:t.style.paddingLeft,crossInnerAfter:t.style.paddingRight,mainBorderBefore:t.style.borderTopWidth,mainBorderAfter:t.style.borderBottomWidth,crossBorderBefore:t.style.borderLeftWidth,crossBorderAfter:t.style.borderRightWidth},"content-box"===t.style.boxSizing&&("number"==typeof t.flexStyle.main&&(t.flexStyle.main+=t.flexStyle.mainInnerBefore+t.flexStyle.mainInnerAfter+t.flexStyle.mainBorderBefore+t.flexStyle.mainBorderAfter),"number"==typeof t.flexStyle.cross&&(t.flexStyle.cross+=t.flexStyle.crossInnerBefore+t.flexStyle.crossInnerAfter+t.flexStyle.crossBorderBefore+t.flexStyle.crossBorderAfter));t.mainAxis=n?"inline":"block",t.crossAxis=n?"block":"inline","number"==typeof t.style.flexBasis&&(t.flexStyle.main=t.style.flexBasis+t.flexStyle.mainInnerBefore+t.flexStyle.mainInnerAfter+t.flexStyle.mainBorderBefore+t.flexStyle.mainBorderAfter),t.flexStyle.mainOuter=t.flexStyle.main,t.flexStyle.crossOuter=t.flexStyle.cross,"auto"===t.flexStyle.mainOuter&&(t.flexStyle.mainOuter=t.flexStyle.mainOffset),"auto"===t.flexStyle.crossOuter&&(t.flexStyle.crossOuter=t.flexStyle.crossOffset),"number"==typeof t.flexStyle.mainBefore&&(t.flexStyle.mainOuter+=t.flexStyle.mainBefore),"number"==typeof t.flexStyle.mainAfter&&(t.flexStyle.mainOuter+=t.flexStyle.mainAfter),"number"==typeof t.flexStyle.crossBefore&&(t.flexStyle.crossOuter+=t.flexStyle.crossBefore),"number"==typeof t.flexStyle.crossAfter&&(t.flexStyle.crossOuter+=t.flexStyle.crossAfter)}},{}],4:[function(t,e,n){var i=t("../reduce");e.exports=function(t){if(t.mainSpace>0){var e=i(t.children,function(t,e){return t+parseFloat(e.style.flexGrow)},0);e>0&&(t.main=i(t.children,function(n,i){return"auto"===i.flexStyle.main?i.flexStyle.main=i.flexStyle.mainOffset+parseFloat(i.style.flexGrow)/e*t.mainSpace:i.flexStyle.main+=parseFloat(i.style.flexGrow)/e*t.mainSpace,i.flexStyle.mainOuter=i.flexStyle.main+i.flexStyle.mainBefore+i.flexStyle.mainAfter,n+i.flexStyle.mainOuter},0),t.mainSpace=0)}}},{"../reduce":12}],5:[function(t,e,n){var i=t("../reduce");e.exports=function(t){if(t.mainSpace<0){var e=i(t.children,function(t,e){return t+parseFloat(e.style.flexShrink)},0);e>0&&(t.main=i(t.children,function(n,i){return i.flexStyle.main+=parseFloat(i.style.flexShrink)/e*t.mainSpace,i.flexStyle.mainOuter=i.flexStyle.main+i.flexStyle.mainBefore+i.flexStyle.mainAfter,n+i.flexStyle.mainOuter},0),t.mainSpace=0)}}},{"../reduce":12}],6:[function(t,e,n){var i=t("../reduce");e.exports=function(t){var e;t.lines=[e={main:0,cross:0,children:[]}];for(var n,r=-1;n=t.children[++r];)"nowrap"===t.style.flexWrap||0===e.children.length||"auto"===t.flexStyle.main||t.flexStyle.main-t.flexStyle.mainInnerBefore-t.flexStyle.mainInnerAfter-t.flexStyle.mainBorderBefore-t.flexStyle.mainBorderAfter>=e.main+n.flexStyle.mainOuter?(e.main+=n.flexStyle.mainOuter,e.cross=Math.max(e.cross,n.flexStyle.crossOuter)):t.lines.push(e={main:n.flexStyle.mainOuter,cross:n.flexStyle.crossOuter,children:[]}),e.children.push(n);t.flexStyle.mainLines=i(t.lines,function(t,e){return Math.max(t,e.main)},0),t.flexStyle.crossLines=i(t.lines,function(t,e){return t+e.cross},0),"auto"===t.flexStyle.main&&(t.flexStyle.main=Math.max(t.flexStyle.mainOffset,t.flexStyle.mainLines+t.flexStyle.mainInnerBefore+t.flexStyle.mainInnerAfter+t.flexStyle.mainBorderBefore+t.flexStyle.mainBorderAfter)),"auto"===t.flexStyle.cross&&(t.flexStyle.cross=Math.max(t.flexStyle.crossOffset,t.flexStyle.crossLines+t.flexStyle.crossInnerBefore+t.flexStyle.crossInnerAfter+t.flexStyle.crossBorderBefore+t.flexStyle.crossBorderAfter)),t.flexStyle.crossSpace=t.flexStyle.cross-t.flexStyle.crossInnerBefore-t.flexStyle.crossInnerAfter-t.flexStyle.crossBorderBefore-t.flexStyle.crossBorderAfter-t.flexStyle.crossLines,t.flexStyle.mainOuter=t.flexStyle.main+t.flexStyle.mainBefore+t.flexStyle.mainAfter,t.flexStyle.crossOuter=t.flexStyle.cross+t.flexStyle.crossBefore+t.flexStyle.crossAfter}},{"../reduce":12}],7:[function(t,e,n){function i(e){for(var n,i=-1;n=e.children[++i];)t("./flex-direction")(n,e.style.flexDirection);t("./flex-direction")(e,e.style.flexDirection),t("./order")(e),t("./flexbox-lines")(e),t("./align-content")(e),i=-1;for(var r;r=e.lines[++i];)r.mainSpace=e.flexStyle.main-e.flexStyle.mainInnerBefore-e.flexStyle.mainInnerAfter-e.flexStyle.mainBorderBefore-e.flexStyle.mainBorderAfter-r.main,t("./flex-grow")(r),t("./flex-shrink")(r),t("./margin-main")(r),t("./margin-cross")(r),t("./justify-content")(r,e.style.justifyContent,e);t("./align-items")(e)}e.exports=i},{"./align-content":1,"./align-items":2,"./flex-direction":3,"./flex-grow":4,"./flex-shrink":5,"./flexbox-lines":6,"./justify-content":8,"./margin-cross":9,"./margin-main":10,"./order":11}],8:[function(t,e,n){e.exports=function(t,e,n){var i,r,o,a=n.flexStyle.mainInnerBefore,s=-1;if("flex-end"===e)for(i=t.mainSpace,i+=a;o=t.children[++s];)o.flexStyle.mainStart=i,i+=o.flexStyle.mainOuter;else if("center"===e)for(i=t.mainSpace/2,i+=a;o=t.children[++s];)o.flexStyle.mainStart=i,i+=o.flexStyle.mainOuter;else if("space-between"===e)for(r=t.mainSpace/(t.children.length-1),i=0,i+=a;o=t.children[++s];)o.flexStyle.mainStart=i,i+=o.flexStyle.mainOuter+r;else if("space-around"===e)for(r=2*t.mainSpace/(2*t.children.length),i=r/2,i+=a;o=t.children[++s];)o.flexStyle.mainStart=i,i+=o.flexStyle.mainOuter+r;else for(i=0,i+=a;o=t.children[++s];)o.flexStyle.mainStart=i,i+=o.flexStyle.mainOuter}},{}],9:[function(t,e,n){e.exports=function(t){for(var e,n=-1;e=t.children[++n];){var i=0;"auto"===e.flexStyle.crossBefore&&++i,"auto"===e.flexStyle.crossAfter&&++i;var r=t.cross-e.flexStyle.crossOuter;"auto"===e.flexStyle.crossBefore&&(e.flexStyle.crossBefore=r/i),"auto"===e.flexStyle.crossAfter&&(e.flexStyle.crossAfter=r/i),"auto"===e.flexStyle.cross?e.flexStyle.crossOuter=e.flexStyle.crossOffset+e.flexStyle.crossBefore+e.flexStyle.crossAfter:e.flexStyle.crossOuter=e.flexStyle.cross+e.flexStyle.crossBefore+e.flexStyle.crossAfter}}},{}],10:[function(t,e,n){e.exports=function(t){for(var e,n=0,i=-1;e=t.children[++i];)"auto"===e.flexStyle.mainBefore&&++n,"auto"===e.flexStyle.mainAfter&&++n;if(n>0){for(i=-1;e=t.children[++i];)"auto"===e.flexStyle.mainBefore&&(e.flexStyle.mainBefore=t.mainSpace/n),"auto"===e.flexStyle.mainAfter&&(e.flexStyle.mainAfter=t.mainSpace/n),"auto"===e.flexStyle.main?e.flexStyle.mainOuter=e.flexStyle.mainOffset+e.flexStyle.mainBefore+e.flexStyle.mainAfter:e.flexStyle.mainOuter=e.flexStyle.main+e.flexStyle.mainBefore+e.flexStyle.mainAfter;t.mainSpace=0}}},{}],11:[function(t,e,n){var i=/^(column|row)-reverse$/;e.exports=function(t){t.children.sort(function(t,e){return t.style.order-e.style.order||t.index-e.index}),i.test(t.style.flexDirection)&&t.children.reverse()}},{}],12:[function(t,e,n){function i(t,e,n){for(var i=t.length,r=-1;++r<i;)r in t&&(n=e(n,t[r],r));return n}e.exports=i},{}],13:[function(t,e,n){function i(t){s(a(t))}var r=t("./read"),o=t("./write"),a=t("./readAll"),s=t("./writeAll");e.exports=i,e.exports.read=r,e.exports.write=o,e.exports.readAll=a,e.exports.writeAll=s},{"./read":15,"./readAll":16,"./write":17,"./writeAll":18}],14:[function(t,e,n){function i(t,e){var n=String(t).match(o);if(!n)return t;var i=n[1],a=n[2];return"px"===a?1*i:"cm"===a?.3937*i*96:"in"===a?96*i:"mm"===a?.3937*i*96/10:"pc"===a?12*i*96/72:"pt"===a?96*i/72:"rem"===a?16*i:r(t,e)}function r(t,e){a.style.cssText="border:none!important;clip:rect(0 0 0 0)!important;display:block!important;font-size:1em!important;height:0!important;margin:0!important;padding:0!important;position:relative!important;width:"+t+"!important",e.parentNode.insertBefore(a,e.nextSibling);var n=a.offsetWidth;return e.parentNode.removeChild(a),n}e.exports=i;var o=/^([-+]?\d*\.?\d+)(%|[a-z]+)$/,a=document.createElement("div")},{}],15:[function(t,e,n){function i(t){var e={alignContent:"stretch",alignItems:"stretch",alignSelf:"auto",borderBottomWidth:0,borderLeftWidth:0,borderRightWidth:0,borderTopWidth:0,boxSizing:"content-box",display:"inline",flexBasis:"auto",flexDirection:"row",flexGrow:0,flexShrink:1,flexWrap:"nowrap",justifyContent:"flex-start",height:"auto",marginTop:0,marginRight:0,marginLeft:0,marginBottom:0,paddingTop:0,paddingRight:0,paddingLeft:0,paddingBottom:0,maxHeight:"none",maxWidth:"none",minHeight:0,minWidth:0,order:0,position:"static",width:"auto"};if(t instanceof Element){var n=t.hasAttribute("data-style"),i=n?t.getAttribute("data-style"):t.getAttribute("style")||"";n||t.setAttribute("data-style",i),a(e,window.getComputedStyle&&getComputedStyle(t)||{}),r(e,t.currentStyle||{}),o(e,i);for(var s in e)e[s]=l(e[s],t);var u=t.getBoundingClientRect();e.offsetHeight=u.height||t.offsetHeight,e.offsetWidth=u.width||t.offsetWidth}return{element:t,style:e}}function r(t,e){for(var n in t){if(n in e)t[n]=e[n];else{var i=n.replace(/[A-Z]/g,"-$&").toLowerCase();i in e&&(t[n]=e[i])}}"-js-display"in e&&(t.display=e["-js-display"])}function o(t,e){for(var n;n=s.exec(e);){t[n[1].toLowerCase().replace(/-[a-z]/g,function(t){return t.slice(1).toUpperCase()})]=n[2]}}function a(t,e){for(var n in t){n in e&&!/^(alignSelf|height|width)$/.test(n)&&(t[n]=e[n])}}e.exports=i;var s=/([^\s:;]+)\s*:\s*([^;]+?)\s*(;|$)/g,l=t("./getComputedLength")},{"./getComputedLength":14}],16:[function(t,e,n){function i(t){var e=[];return r(t,e),e}function r(t,e){for(var n,i=o(t),s=[],l=-1;n=t.childNodes[++l];){var u=3===n.nodeType&&!/^\s*$/.test(n.nodeValue);if(i&&u){var c=n;n=t.insertBefore(document.createElement("flex-item"),c),n.appendChild(c)}if(n instanceof Element){var f=r(n,e);if(i){var d=n.style;d.display="inline-block",d.position="absolute",f.style=a(n).style,s.push(f)}}}var p={element:t,children:s};return i&&(p.style=a(t).style,e.push(p)),p}function o(t){var e=t instanceof Element,n=e&&t.getAttribute("data-style"),i=e&&t.currentStyle&&t.currentStyle["-js-display"];return s.test(n)||l.test(i)}e.exports=i;var a=t("../read"),s=/(^|;)\s*display\s*:\s*(inline-)?flex\s*(;|$)/i,l=/^(inline-)?flex$/i},{"../read":15}],17:[function(t,e,n){function i(t){o(t);var e=t.element.style,n="inline"===t.mainAxis?["main","cross"]:["cross","main"];e.boxSizing="content-box",e.display="block",e.position="relative",e.width=r(t.flexStyle[n[0]]-t.flexStyle[n[0]+"InnerBefore"]-t.flexStyle[n[0]+"InnerAfter"]-t.flexStyle[n[0]+"BorderBefore"]-t.flexStyle[n[0]+"BorderAfter"]),e.height=r(t.flexStyle[n[1]]-t.flexStyle[n[1]+"InnerBefore"]-t.flexStyle[n[1]+"InnerAfter"]-t.flexStyle[n[1]+"BorderBefore"]-t.flexStyle[n[1]+"BorderAfter"]);for(var i,a=-1;i=t.children[++a];){var s=i.element.style,l="inline"===i.mainAxis?["main","cross"]:["cross","main"];s.boxSizing="content-box",s.display="block",s.position="absolute","auto"!==i.flexStyle[l[0]]&&(s.width=r(i.flexStyle[l[0]]-i.flexStyle[l[0]+"InnerBefore"]-i.flexStyle[l[0]+"InnerAfter"]-i.flexStyle[l[0]+"BorderBefore"]-i.flexStyle[l[0]+"BorderAfter"])),"auto"!==i.flexStyle[l[1]]&&(s.height=r(i.flexStyle[l[1]]-i.flexStyle[l[1]+"InnerBefore"]-i.flexStyle[l[1]+"InnerAfter"]-i.flexStyle[l[1]+"BorderBefore"]-i.flexStyle[l[1]+"BorderAfter"])),s.top=r(i.flexStyle[l[1]+"Start"]),s.left=r(i.flexStyle[l[0]+"Start"]),s.marginTop=r(i.flexStyle[l[1]+"Before"]),s.marginRight=r(i.flexStyle[l[0]+"After"]),s.marginBottom=r(i.flexStyle[l[1]+"After"]),s.marginLeft=r(i.flexStyle[l[0]+"Before"])}}function r(t){return"string"==typeof t?t:Math.max(t,0)+"px"}e.exports=i;var o=t("../flexbox")},{"../flexbox":7}],18:[function(t,e,n){function i(t){for(var e,n=-1;e=t[++n];)r(e)}e.exports=i;var r=t("../write")},{"../write":17}]},{},[13])(13)})},function(t,e,n){"use strict";var i,r;!function(o,a){i=a,void 0!==(r="function"==typeof i?i.call(e,n,e,t):i)&&(t.exports=r)}(0,function(t,e,n){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t){var e=t.getBoundingClientRect(),n={};for(var i in e)n[i]=e[i];if(t.ownerDocument!==document){var o=t.ownerDocument.defaultView.frameElement;if(o){var a=r(o);n.top+=a.top,n.bottom+=a.top,n.left+=a.left,n.right+=a.left}}return n}function o(t){var e=getComputedStyle(t)||{},n=e.position,i=[];if("fixed"===n)return[t];for(var r=t;(r=r.parentNode)&&r&&1===r.nodeType;){var o=void 0;try{o=getComputedStyle(r)}catch(t){}if(void 0===o||null===o)return i.push(r),i;var a=o,s=a.overflow,l=a.overflowX;/(auto|scroll)/.test(s+a.overflowY+l)&&("absolute"!==n||["relative","absolute","fixed"].indexOf(o.position)>=0)&&i.push(r)}return i.push(t.ownerDocument.body),t.ownerDocument!==document&&i.push(t.ownerDocument.defaultView),i}function a(){C&&document.body.removeChild(C),C=null}function s(t){var e=void 0;t===document?(e=document,t=document.documentElement):e=t.ownerDocument;var n=e.documentElement,i=r(t),o=I();return i.top-=o.top,i.left-=o.left,void 0===i.width&&(i.width=document.body.scrollWidth-i.left-i.right),void 0===i.height&&(i.height=document.body.scrollHeight-i.top-i.bottom),i.top=i.top-n.clientTop,i.left=i.left-n.clientLeft,i.right=e.body.clientWidth-i.width-i.left,i.bottom=e.body.clientHeight-i.height-i.top,i}function l(t){return t.offsetParent||document.documentElement}function u(){if(O)return O;var t=document.createElement("div");t.style.width="100%",t.style.height="200px";var e=document.createElement("div");c(e.style,{position:"absolute",top:0,left:0,pointerEvents:"none",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),e.appendChild(t),document.body.appendChild(e);var n=t.offsetWidth;e.style.overflow="scroll";var i=t.offsetWidth;n===i&&(i=e.clientWidth),document.body.removeChild(e);var r=n-i;return O={width:r,height:r}}function c(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=[];return Array.prototype.push.apply(e,arguments),e.slice(1).forEach(function(e){if(e)for(var n in e)({}).hasOwnProperty.call(e,n)&&(t[n]=e[n])}),t}function f(t,e){if(void 0!==t.classList)e.split(" ").forEach(function(e){e.trim()&&t.classList.remove(e)});else{var n=new RegExp("(^| )"+e.split(" ").join("|")+"( |$)","gi"),i=h(t).replace(n," ");m(t,i)}}function d(t,e){if(void 0!==t.classList)e.split(" ").forEach(function(e){e.trim()&&t.classList.add(e)});else{f(t,e);var n=h(t)+" "+e;m(t,n)}}function p(t,e){if(void 0!==t.classList)return t.classList.contains(e);var n=h(t);return new RegExp("(^| )"+e+"( |$)","gi").test(n)}function h(t){return t.className instanceof t.ownerDocument.defaultView.SVGAnimatedString?t.className.baseVal:t.className}function m(t,e){t.setAttribute("class",e)}function g(t,e,n){n.forEach(function(n){-1===e.indexOf(n)&&p(t,n)&&f(t,n)}),e.forEach(function(e){p(t,e)||d(t,e)})}function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function v(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function y(t,e){var n=arguments.length<=2||void 0===arguments[2]?1:arguments[2];return t+n>=e&&e>=t-n}function b(){return"undefined"!=typeof performance&&void 0!==performance.now?performance.now():+new Date}function _(){for(var t={top:0,left:0},e=arguments.length,n=Array(e),i=0;i<e;i++)n[i]=arguments[i];return n.forEach(function(e){var n=e.top,i=e.left;"string"==typeof n&&(n=parseFloat(n,10)),"string"==typeof i&&(i=parseFloat(i,10)),t.top+=n,t.left+=i}),t}function x(t,e){return"string"==typeof t.left&&-1!==t.left.indexOf("%")&&(t.left=parseFloat(t.left,10)/100*e.width),"string"==typeof t.top&&-1!==t.top.indexOf("%")&&(t.top=parseFloat(t.top,10)/100*e.height),t}function w(t,e){return"scrollParent"===e?e=t.scrollParents[0]:"window"===e&&(e=[pageXOffset,pageYOffset,innerWidth+pageXOffset,innerHeight+pageYOffset]),e===document&&(e=e.documentElement),void 0!==e.nodeType&&function(){var t=e,n=s(e),i=n,r=getComputedStyle(e);if(e=[i.left,i.top,n.width+i.left,n.height+i.top],t.ownerDocument!==document){var o=t.ownerDocument.defaultView;e[0]+=o.pageXOffset,e[1]+=o.pageYOffset,e[2]+=o.pageXOffset,e[3]+=o.pageYOffset}Y.forEach(function(t,n){t=t[0].toUpperCase()+t.substr(1),"Top"===t||"Left"===t?e[n]+=parseFloat(r["border"+t+"Width"]):e[n]-=parseFloat(r["border"+t+"Width"])})}(),e}var S=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),E=void 0;void 0===E&&(E={modules:[]});var C=null,T=function(){var t=0;return function(){return++t}}(),A={},I=function(){var t=C;t&&document.body.contains(t)||(t=document.createElement("div"),t.setAttribute("data-tether-id",T()),c(t.style,{top:0,left:0,position:"absolute"}),document.body.appendChild(t),C=t);var e=t.getAttribute("data-tether-id");return void 0===A[e]&&(A[e]=r(t),D(function(){delete A[e]})),A[e]},O=null,k=[],D=function(t){k.push(t)},N=function(){for(var t=void 0;t=k.pop();)t()},P=function(){function t(){i(this,t)}return S(t,[{key:"on",value:function(t,e,n){var i=!(arguments.length<=3||void 0===arguments[3])&&arguments[3];void 0===this.bindings&&(this.bindings={}),void 0===this.bindings[t]&&(this.bindings[t]=[]),this.bindings[t].push({handler:e,ctx:n,once:i})}},{key:"once",value:function(t,e,n){this.on(t,e,n,!0)}},{key:"off",value:function(t,e){if(void 0!==this.bindings&&void 0!==this.bindings[t])if(void 0===e)delete this.bindings[t];else for(var n=0;n<this.bindings[t].length;)this.bindings[t][n].handler===e?this.bindings[t].splice(n,1):++n}},{key:"trigger",value:function(t){if(void 0!==this.bindings&&this.bindings[t]){for(var e=0,n=arguments.length,i=Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];for(;e<this.bindings[t].length;){var o=this.bindings[t][e],a=o.handler,s=o.ctx,l=o.once,u=s;void 0===u&&(u=this),a.apply(u,i),l?this.bindings[t].splice(e,1):++e}}}}]),t}();E.Utils={getActualBoundingClientRect:r,getScrollParents:o,getBounds:s,getOffsetParent:l,extend:c,addClass:d,removeClass:f,hasClass:p,updateClasses:g,defer:D,flush:N,uniqueId:T,Evented:P,getScrollBarSize:u,removeUtilElements:a};var L=function(){function t(t,e){var n=[],i=!0,r=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!e||n.length!==e);i=!0);}catch(t){r=!0,o=t}finally{try{!i&&s.return&&s.return()}finally{if(r)throw o}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),S=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),j=function(t,e,n){for(var i=!0;i;){var r=t,o=e,a=n;i=!1,null===r&&(r=Function.prototype);var s=Object.getOwnPropertyDescriptor(r,o);if(void 0!==s){if("value"in s)return s.value;var l=s.get;if(void 0===l)return;return l.call(a)}var u=Object.getPrototypeOf(r);if(null===u)return;t=u,e=o,n=a,i=!0,s=u=void 0}};if(void 0===E)throw new Error("You must include the utils.js file before tether.js");var B=E.Utils,o=B.getScrollParents,s=B.getBounds,l=B.getOffsetParent,c=B.extend,d=B.addClass,f=B.removeClass,g=B.updateClasses,D=B.defer,N=B.flush,u=B.getScrollBarSize,a=B.removeUtilElements,V=function(){if("undefined"==typeof document)return"";for(var t=document.createElement("div"),e=["transform","WebkitTransform","OTransform","MozTransform","msTransform"],n=0;n<e.length;++n){var i=e[n];if(void 0!==t.style[i])return i}}(),F=[],R=function(){F.forEach(function(t){t.position(!1)}),N()};!function(){var t=null,e=null,n=null,i=function i(){if(void 0!==e&&e>16)return e=Math.min(e-16,250),void(n=setTimeout(i,250));void 0!==t&&b()-t<10||(null!=n&&(clearTimeout(n),n=null),t=b(),R(),e=b()-t)};"undefined"!=typeof window&&void 0!==window.addEventListener&&["resize","scroll","touchmove"].forEach(function(t){window.addEventListener(t,i)})}();var M={center:"center",left:"right",right:"left"},H={middle:"middle",top:"bottom",bottom:"top"},W={top:0,left:0,middle:"50%",center:"50%",bottom:"100%",right:"100%"},U=function(t,e){var n=t.left,i=t.top;return"auto"===n&&(n=M[e.left]),"auto"===i&&(i=H[e.top]),{left:n,top:i}},q=function(t){var e=t.left,n=t.top;return void 0!==W[t.left]&&(e=W[t.left]),void 0!==W[t.top]&&(n=W[t.top]),{left:e,top:n}},z=function(t){var e=t.split(" "),n=L(e,2);return{top:n[0],left:n[1]}},$=z,Q=function(t){function e(t){var n=this;i(this,e),j(Object.getPrototypeOf(e.prototype),"constructor",this).call(this),this.position=this.position.bind(this),F.push(this),this.history=[],this.setOptions(t,!1),E.modules.forEach(function(t){void 0!==t.initialize&&t.initialize.call(n)}),this.position()}return v(e,t),S(e,[{key:"getClass",value:function(){var t=arguments.length<=0||void 0===arguments[0]?"":arguments[0],e=this.options.classes;return void 0!==e&&e[t]?this.options.classes[t]:this.options.classPrefix?this.options.classPrefix+"-"+t:t}},{key:"setOptions",value:function(t){var e=this,n=arguments.length<=1||void 0===arguments[1]||arguments[1],i={offset:"0 0",targetOffset:"0 0",targetAttachment:"auto auto",classPrefix:"tether"};this.options=c(i,t);var r=this.options,a=r.element,s=r.target,l=r.targetModifier;if(this.element=a,this.target=s,this.targetModifier=l,"viewport"===this.target?(this.target=document.body,this.targetModifier="visible"):"scroll-handle"===this.target&&(this.target=document.body,this.targetModifier="scroll-handle"),["element","target"].forEach(function(t){if(void 0===e[t])throw new Error("Tether Error: Both element and target must be defined");void 0!==e[t].jquery?e[t]=e[t][0]:"string"==typeof e[t]&&(e[t]=document.querySelector(e[t]))}),d(this.element,this.getClass("element")),!1!==this.options.addTargetClasses&&d(this.target,this.getClass("target")),!this.options.attachment)throw new Error("Tether Error: You must provide an attachment");this.targetAttachment=$(this.options.targetAttachment),this.attachment=$(this.options.attachment),this.offset=z(this.options.offset),this.targetOffset=z(this.options.targetOffset),void 0!==this.scrollParents&&this.disable(),"scroll-handle"===this.targetModifier?this.scrollParents=[this.target]:this.scrollParents=o(this.target),!1!==this.options.enabled&&this.enable(n)}},{key:"getTargetBounds",value:function(){if(void 0===this.targetModifier)return s(this.target);if("visible"===this.targetModifier){if(this.target===document.body)return{top:pageYOffset,left:pageXOffset,height:innerHeight,width:innerWidth};var t=s(this.target),e={height:t.height,width:t.width,top:t.top,left:t.left};return e.height=Math.min(e.height,t.height-(pageYOffset-t.top)),e.height=Math.min(e.height,t.height-(t.top+t.height-(pageYOffset+innerHeight))),e.height=Math.min(innerHeight,e.height),e.height-=2,e.width=Math.min(e.width,t.width-(pageXOffset-t.left)),e.width=Math.min(e.width,t.width-(t.left+t.width-(pageXOffset+innerWidth))),e.width=Math.min(innerWidth,e.width),e.width-=2,e.top<pageYOffset&&(e.top=pageYOffset),e.left<pageXOffset&&(e.left=pageXOffset),e}if("scroll-handle"===this.targetModifier){var t=void 0,n=this.target;n===document.body?(n=document.documentElement,t={left:pageXOffset,top:pageYOffset,height:innerHeight,width:innerWidth}):t=s(n);var i=getComputedStyle(n),r=n.scrollWidth>n.clientWidth||[i.overflow,i.overflowX].indexOf("scroll")>=0||this.target!==document.body,o=0;r&&(o=15);var a=t.height-parseFloat(i.borderTopWidth)-parseFloat(i.borderBottomWidth)-o,e={width:15,height:.975*a*(a/n.scrollHeight),left:t.left+t.width-parseFloat(i.borderLeftWidth)-15},l=0;a<408&&this.target===document.body&&(l=-11e-5*Math.pow(a,2)-.00727*a+22.58),this.target!==document.body&&(e.height=Math.max(e.height,24));var u=this.target.scrollTop/(n.scrollHeight-a);return e.top=u*(a-e.height-l)+t.top+parseFloat(i.borderTopWidth),this.target===document.body&&(e.height=Math.max(e.height,24)),e}}},{key:"clearCache",value:function(){this._cache={}}},{key:"cache",value:function(t,e){return void 0===this._cache&&(this._cache={}),void 0===this._cache[t]&&(this._cache[t]=e.call(this)),this._cache[t]}},{key:"enable",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]||arguments[0];!1!==this.options.addTargetClasses&&d(this.target,this.getClass("enabled")),d(this.element,this.getClass("enabled")),this.enabled=!0,this.scrollParents.forEach(function(e){e!==t.target.ownerDocument&&e.addEventListener("scroll",t.position)}),e&&this.position()}},{key:"disable",value:function(){var t=this;f(this.target,this.getClass("enabled")),f(this.element,this.getClass("enabled")),this.enabled=!1,void 0!==this.scrollParents&&this.scrollParents.forEach(function(e){e.removeEventListener("scroll",t.position)})}},{key:"destroy",value:function(){var t=this;this.disable(),F.forEach(function(e,n){e===t&&F.splice(n,1)}),0===F.length&&a()}},{key:"updateAttachClasses",value:function(t,e){var n=this;t=t||this.attachment,e=e||this.targetAttachment;var i=["left","top","bottom","right","middle","center"];void 0!==this._addAttachClasses&&this._addAttachClasses.length&&this._addAttachClasses.splice(0,this._addAttachClasses.length),void 0===this._addAttachClasses&&(this._addAttachClasses=[]);var r=this._addAttachClasses;t.top&&r.push(this.getClass("element-attached")+"-"+t.top),t.left&&r.push(this.getClass("element-attached")+"-"+t.left),e.top&&r.push(this.getClass("target-attached")+"-"+e.top),e.left&&r.push(this.getClass("target-attached")+"-"+e.left);var o=[];i.forEach(function(t){o.push(n.getClass("element-attached")+"-"+t),o.push(n.getClass("target-attached")+"-"+t)}),D(function(){void 0!==n._addAttachClasses&&(g(n.element,n._addAttachClasses,o),!1!==n.options.addTargetClasses&&g(n.target,n._addAttachClasses,o),delete n._addAttachClasses)})}},{key:"position",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]||arguments[0];if(this.enabled){this.clearCache();var n=U(this.targetAttachment,this.attachment);this.updateAttachClasses(this.attachment,n);var i=this.cache("element-bounds",function(){return s(t.element)}),r=i.width,o=i.height;if(0===r&&0===o&&void 0!==this.lastSize){var a=this.lastSize;r=a.width,o=a.height}else this.lastSize={width:r,height:o};var c=this.cache("target-bounds",function(){return t.getTargetBounds()}),f=c,d=x(q(this.attachment),{width:r,height:o}),p=x(q(n),f),h=x(this.offset,{width:r,height:o}),m=x(this.targetOffset,f);d=_(d,h),p=_(p,m);for(var g=c.left+p.left-d.left,v=c.top+p.top-d.top,y=0;y<E.modules.length;++y){var b=E.modules[y],w=b.position.call(this,{left:g,top:v,targetAttachment:n,targetPos:c,elementPos:i,offset:d,targetOffset:p,manualOffset:h,manualTargetOffset:m,scrollbarSize:A,attachment:this.attachment});if(!1===w)return!1;void 0!==w&&"object"==typeof w&&(v=w.top,g=w.left)}var S={page:{top:v,left:g},viewport:{top:v-pageYOffset,bottom:pageYOffset-v-o+innerHeight,left:g-pageXOffset,right:pageXOffset-g-r+innerWidth}},C=this.target.ownerDocument,T=C.defaultView,A=void 0;return T.innerHeight>C.documentElement.clientHeight&&(A=this.cache("scrollbar-size",u),S.viewport.bottom-=A.height),T.innerWidth>C.documentElement.clientWidth&&(A=this.cache("scrollbar-size",u),S.viewport.right-=A.width),-1!==["","static"].indexOf(C.body.style.position)&&-1!==["","static"].indexOf(C.body.parentElement.style.position)||(S.page.bottom=C.body.scrollHeight-v-o,S.page.right=C.body.scrollWidth-g-r),void 0!==this.options.optimizations&&!1!==this.options.optimizations.moveElement&&void 0===this.targetModifier&&function(){var e=t.cache("target-offsetparent",function(){return l(t.target)}),n=t.cache("target-offsetparent-bounds",function(){return s(e)}),i=getComputedStyle(e),r=n,o={};if(["Top","Left","Bottom","Right"].forEach(function(t){o[t.toLowerCase()]=parseFloat(i["border"+t+"Width"])}),n.right=C.body.scrollWidth-n.left-r.width+o.right,n.bottom=C.body.scrollHeight-n.top-r.height+o.bottom,S.page.top>=n.top+o.top&&S.page.bottom>=n.bottom&&S.page.left>=n.left+o.left&&S.page.right>=n.right){var a=e.scrollTop,u=e.scrollLeft;S.offset={top:S.page.top-n.top+a-o.top,left:S.page.left-n.left+u-o.left}}}(),this.move(S),this.history.unshift(S),this.history.length>3&&this.history.pop(),e&&N(),!0}}},{key:"move",value:function(t){var e=this;if(void 0!==this.element.parentNode){var n={};for(var i in t){n[i]={};for(var r in t[i]){for(var o=!1,a=0;a<this.history.length;++a){var s=this.history[a];if(void 0!==s[i]&&!y(s[i][r],t[i][r])){o=!0;break}}o||(n[i][r]=!0)}}var u={top:"",left:"",right:"",bottom:""},f=function(t,n){if(!1!==(void 0!==e.options.optimizations?e.options.optimizations.gpu:null)){var i=void 0,r=void 0;t.top?(u.top=0,i=n.top):(u.bottom=0,i=-n.bottom),t.left?(u.left=0,r=n.left):(u.right=0,r=-n.right),window.matchMedia&&(window.matchMedia("only screen and (min-resolution: 1.3dppx)").matches||window.matchMedia("only screen and (-webkit-min-device-pixel-ratio: 1.3)").matches||(r=Math.round(r),i=Math.round(i))),u[V]="translateX("+r+"px) translateY("+i+"px)","msTransform"!==V&&(u[V]+=" translateZ(0)")}else t.top?u.top=n.top+"px":u.bottom=n.bottom+"px",t.left?u.left=n.left+"px":u.right=n.right+"px"},d=!1;if((n.page.top||n.page.bottom)&&(n.page.left||n.page.right)?(u.position="absolute",f(n.page,t.page)):(n.viewport.top||n.viewport.bottom)&&(n.viewport.left||n.viewport.right)?(u.position="fixed",f(n.viewport,t.viewport)):void 0!==n.offset&&n.offset.top&&n.offset.left?function(){u.position="absolute";var i=e.cache("target-offsetparent",function(){return l(e.target)});l(e.element)!==i&&D(function(){e.element.parentNode.removeChild(e.element),i.appendChild(e.element)}),f(n.offset,t.offset),d=!0}():(u.position="absolute",f({top:!0,left:!0},t.page)),!d)if(this.options.bodyElement)this.options.bodyElement.appendChild(this.element);else{for(var p=!0,h=this.element.parentNode;h&&1===h.nodeType&&"BODY"!==h.tagName;){if("static"!==getComputedStyle(h).position){p=!1;break}h=h.parentNode}p||(this.element.parentNode.removeChild(this.element),this.element.ownerDocument.body.appendChild(this.element))}var m={},g=!1;for(var r in u){var v=u[r];this.element.style[r]!==v&&(g=!0,m[r]=v)}g&&D(function(){c(e.element.style,m),e.trigger("repositioned")})}}}]),e}(P);Q.modules=[],E.position=R;var G=c(Q,E),L=function(){function t(t,e){var n=[],i=!0,r=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!e||n.length!==e);i=!0);}catch(t){r=!0,o=t}finally{try{!i&&s.return&&s.return()}finally{if(r)throw o}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),B=E.Utils,s=B.getBounds,c=B.extend,g=B.updateClasses,D=B.defer,Y=["left","top","right","bottom"];E.modules.push({position:function(t){var e=this,n=t.top,i=t.left,r=t.targetAttachment;if(!this.options.constraints)return!0;var o=this.cache("element-bounds",function(){return s(e.element)}),a=o.height,l=o.width;if(0===l&&0===a&&void 0!==this.lastSize){var u=this.lastSize;l=u.width,a=u.height}var f=this.cache("target-bounds",function(){return e.getTargetBounds()}),d=f.height,p=f.width,h=[this.getClass("pinned"),this.getClass("out-of-bounds")];this.options.constraints.forEach(function(t){var e=t.outOfBoundsClass,n=t.pinnedClass;e&&h.push(e),n&&h.push(n)}),h.forEach(function(t){["left","top","right","bottom"].forEach(function(e){h.push(t+"-"+e)})});var m=[],v=c({},r),y=c({},this.attachment);return this.options.constraints.forEach(function(t){var o=t.to,s=t.attachment,u=t.pin;void 0===s&&(s="");var c=void 0,f=void 0;if(s.indexOf(" ")>=0){var h=s.split(" "),g=L(h,2);f=g[0],c=g[1]}else c=f=s;var b=w(e,o);"target"!==f&&"both"!==f||(n<b[1]&&"top"===v.top&&(n+=d,v.top="bottom"),n+a>b[3]&&"bottom"===v.top&&(n-=d,v.top="top")),"together"===f&&("top"===v.top&&("bottom"===y.top&&n<b[1]?(n+=d,v.top="bottom",n+=a,y.top="top"):"top"===y.top&&n+a>b[3]&&n-(a-d)>=b[1]&&(n-=a-d,v.top="bottom",y.top="bottom")),"bottom"===v.top&&("top"===y.top&&n+a>b[3]?(n-=d,v.top="top",n-=a,y.top="bottom"):"bottom"===y.top&&n<b[1]&&n+(2*a-d)<=b[3]&&(n+=a-d,v.top="top",y.top="top")),"middle"===v.top&&(n+a>b[3]&&"top"===y.top?(n-=a,y.top="bottom"):n<b[1]&&"bottom"===y.top&&(n+=a,y.top="top"))),"target"!==c&&"both"!==c||(i<b[0]&&"left"===v.left&&(i+=p,v.left="right"),i+l>b[2]&&"right"===v.left&&(i-=p,v.left="left")),"together"===c&&(i<b[0]&&"left"===v.left?"right"===y.left?(i+=p,v.left="right",i+=l,y.left="left"):"left"===y.left&&(i+=p,v.left="right",i-=l,y.left="right"):i+l>b[2]&&"right"===v.left?"left"===y.left?(i-=p,v.left="left",i-=l,y.left="right"):"right"===y.left&&(i-=p,v.left="left",i+=l,y.left="left"):"center"===v.left&&(i+l>b[2]&&"left"===y.left?(i-=l,y.left="right"):i<b[0]&&"right"===y.left&&(i+=l,y.left="left"))),"element"!==f&&"both"!==f||(n<b[1]&&"bottom"===y.top&&(n+=a,y.top="top"),n+a>b[3]&&"top"===y.top&&(n-=a,y.top="bottom")),"element"!==c&&"both"!==c||(i<b[0]&&("right"===y.left?(i+=l,y.left="left"):"center"===y.left&&(i+=l/2,y.left="left")),i+l>b[2]&&("left"===y.left?(i-=l,y.left="right"):"center"===y.left&&(i-=l/2,y.left="right"))),"string"==typeof u?u=u.split(",").map(function(t){return t.trim()}):!0===u&&(u=["top","left","right","bottom"]),u=u||[];var _=[],x=[];n<b[1]&&(u.indexOf("top")>=0?(n=b[1],_.push("top")):x.push("top")),n+a>b[3]&&(u.indexOf("bottom")>=0?(n=b[3]-a,_.push("bottom")):x.push("bottom")),i<b[0]&&(u.indexOf("left")>=0?(i=b[0],_.push("left")):x.push("left")),i+l>b[2]&&(u.indexOf("right")>=0?(i=b[2]-l,_.push("right")):x.push("right")),_.length&&function(){var t=void 0;t=void 0!==e.options.pinnedClass?e.options.pinnedClass:e.getClass("pinned"),m.push(t),_.forEach(function(e){m.push(t+"-"+e)})}(),x.length&&function(){var t=void 0;t=void 0!==e.options.outOfBoundsClass?e.options.outOfBoundsClass:e.getClass("out-of-bounds"),m.push(t),x.forEach(function(e){m.push(t+"-"+e)})}(),(_.indexOf("left")>=0||_.indexOf("right")>=0)&&(y.left=v.left=!1),(_.indexOf("top")>=0||_.indexOf("bottom")>=0)&&(y.top=v.top=!1),v.top===r.top&&v.left===r.left&&y.top===e.attachment.top&&y.left===e.attachment.left||(e.updateAttachClasses(y,v),e.trigger("update",{attachment:y,targetAttachment:v}))}),D(function(){!1!==e.options.addTargetClasses&&g(e.target,m,h),g(e.element,m,h)}),{top:n,left:i}}});var B=E.Utils,s=B.getBounds,g=B.updateClasses,D=B.defer;E.modules.push({position:function(t){var e=this,n=t.top,i=t.left,r=this.cache("element-bounds",function(){return s(e.element)}),o=r.height,a=r.width,l=this.getTargetBounds(),u=n+o,c=i+a,f=[];n<=l.bottom&&u>=l.top&&["left","right"].forEach(function(t){var e=l[t];e!==i&&e!==c||f.push(t)}),i<=l.right&&c>=l.left&&["top","bottom"].forEach(function(t){var e=l[t];e!==n&&e!==u||f.push(t)});var d=[],p=[],h=["left","top","right","bottom"];return d.push(this.getClass("abutted")),h.forEach(function(t){d.push(e.getClass("abutted")+"-"+t)}),f.length&&p.push(this.getClass("abutted")),f.forEach(function(t){p.push(e.getClass("abutted")+"-"+t)}),D(function(){!1!==e.options.addTargetClasses&&g(e.target,p,d),g(e.element,p,d)}),!0}});var L=function(){function t(t,e){var n=[],i=!0,r=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(i=(a=s.next()).done)&&(n.push(a.value),!e||n.length!==e);i=!0);}catch(t){r=!0,o=t}finally{try{!i&&s.return&&s.return()}finally{if(r)throw o}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();return E.modules.push({position:function(t){var e=t.top,n=t.left;if(this.options.shift){var i=this.options.shift;"function"==typeof this.options.shift&&(i=this.options.shift.call(this,{top:e,left:n}));var r=void 0,o=void 0;if("string"==typeof i){i=i.split(" "),i[1]=i[1]||i[0];var a=i,s=L(a,2);r=s[0],o=s[1],r=parseFloat(r,10),o=parseFloat(o,10)}else r=i.top,o=i.left;return e+=r,n+=o,{top:e,left:n}}}}),G})},function(t,e,n){"use strict";var i;i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(i=window)}t.exports=i},function(t,e,n){(function(e){t.exports=e.Tether=n(23)}).call(e,n(24))},function(t,e,n){n(5),t.exports=n(6)}]); \ No newline at end of file +(function(i,b){"use strict";function en(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}var Et={exports:{}};Et.exports,function(l){function n(t){"@babel/helpers - typeof";return n=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(w){return typeof w}:function(w){return w&&typeof Symbol=="function"&&w.constructor===Symbol&&w!==Symbol.prototype?"symbol":typeof w},n(t)}(function(t){n(l)==="object"&&l.exports?l.exports=function(w,s){return s===void 0&&(typeof window<"u"?s=i:s=i(w)),t(s),s}:t(jQuery)})(function(t){var w=0;t.fn.TouchSpin=function(s){var k={min:0,max:100,initval:"",replacementval:"",firstclickvalueifempty:null,step:1,decimals:0,stepinterval:100,forcestepdivisibility:"round",stepintervaldelay:500,verticalbuttons:!1,verticalup:"+",verticaldown:"−",verticalupclass:"",verticaldownclass:"",prefix:"",postfix:"",prefix_extraclass:"",postfix_extraclass:"",booster:!0,boostat:10,maxboostedstep:!1,mousewheel:!0,buttondown_class:"btn btn-primary",buttonup_class:"btn btn-primary",buttondown_txt:"−",buttonup_txt:"+",callback_before_calculation:function(p){return p},callback_after_calculation:function(p){return p}},C={min:"min",max:"max",initval:"init-val",replacementval:"replacement-val",firstclickvalueifempty:"first-click-value-if-empty",step:"step",decimals:"decimals",stepinterval:"step-interval",verticalbuttons:"vertical-buttons",verticalupclass:"vertical-up-class",verticaldownclass:"vertical-down-class",forcestepdivisibility:"force-step-divisibility",stepintervaldelay:"step-interval-delay",prefix:"prefix",postfix:"postfix",prefix_extraclass:"prefix-extra-class",postfix_extraclass:"postfix-extra-class",booster:"booster",boostat:"boostat",maxboostedstep:"max-boosted-step",mousewheel:"mouse-wheel",buttondown_class:"button-down-class",buttonup_class:"button-up-class",buttondown_txt:"button-down-txt",buttonup_txt:"button-up-txt"};return this.each(function(){var o,p=t(this),Q=p.data(),_,u,S,d,V,O,A,c,N,G,ie=0,ce=!1;Le();function Le(){if(!p.data("alreadyinitialized")){if(p.data("alreadyinitialized",!0),w+=1,p.data("spinnerid",w),!p.is("input")){console.log("Must be an input.");return}f(),Ue(),y(),Ae(),a(),z(),r(),F(),m(),x()}}function Ue(){o.initval!==""&&p.val()===""&&p.val(o.initval)}function be(g){qe(g),y();var q=d.input.val();q!==""&&(q=parseFloat(o.callback_before_calculation(d.input.val())),d.input.val(o.callback_after_calculation(parseFloat(q).toFixed(o.decimals))))}function f(){if(o=t.extend({},k,Q,Me(),s),parseFloat(o.step)!==1){var g;g=o.max%o.step,g!==0&&(o.max=parseFloat(o.max)-g),g=o.min%o.step,g!==0&&(o.min=parseFloat(o.min)+(parseFloat(o.step)-g))}}function Me(){var g={};return t.each(C,function(q,ee){var pe="bts-"+ee;p.is("[data-"+pe+"]")&&(g[q]=p.data(pe))}),t.each(["min","max","step"],function(q,ee){p.is("["+ee+"]")&&(g[ee]!==void 0&&console.warn('Both the "data-bts-'+ee+'" data attribute and the "'+ee+'" individual attribute were specified, the individual attribute will take precedence on: ',p),g[ee]=p.attr(ee))}),g}function ze(){var g=p.parent();Z(),p.off(".touchspin"),g.hasClass("bootstrap-touchspin-injected")?(p.siblings().remove(),p.unwrap()):(t(".bootstrap-touchspin-injected",g).remove(),g.removeClass("bootstrap-touchspin")),p.data("alreadyinitialized",!1)}function qe(g){if(o=t.extend({},o,g),g.postfix){var q=p.parent().find(".bootstrap-touchspin-postfix");q.length===0&&u.insertAfter(p),p.parent().find(".bootstrap-touchspin-postfix .input-group-text").text(g.postfix)}if(g.prefix){var ee=p.parent().find(".bootstrap-touchspin-prefix");ee.length===0&&_.insertBefore(p),p.parent().find(".bootstrap-touchspin-prefix .input-group-text").text(g.prefix)}r()}function Ae(){var g=p.val(),q=p.parent();g!==""&&(g=o.callback_before_calculation(g),g=o.callback_after_calculation(parseFloat(g).toFixed(o.decimals))),p.data("initvalue",g).val(g),p.addClass("form-control"),V=` + <span class="input-group-addon bootstrap-touchspin-vertical-button-wrapper"> + <span class="input-group-btn-vertical"> + <button tabindex="-1" class="`.concat(o.buttondown_class," bootstrap-touchspin-up ").concat(o.verticalupclass,'" type="button">').concat(o.verticalup,`</button> + <button tabindex="-1" class="`).concat(o.buttonup_class," bootstrap-touchspin-down ").concat(o.verticaldownclass,'" type="button">').concat(o.verticaldown,`</button> + </span> + </span> + `),q.hasClass("input-group")?ft(q):e()}function ft(g){g.addClass("bootstrap-touchspin");var q=p.prev(),ee=p.next(),pe,Y,Pe=` + <span class="input-group-addon input-group-prepend bootstrap-touchspin-prefix input-group-prepend bootstrap-touchspin-injected"> + <span class="input-group-text">`.concat(o.prefix,`</span> + </span> + `),Ne=` + <span class="input-group-addon input-group-append bootstrap-touchspin-postfix input-group-append bootstrap-touchspin-injected"> + <span class="input-group-text">`.concat(o.postfix,`</span> + </span> + `);o.verticalbuttons?t(V).insertAfter(p):(q.hasClass("input-group-btn")||q.hasClass("input-group-prepend")?(pe=` + <button tabindex="-1" class="`.concat(o.buttondown_class,' bootstrap-touchspin-down bootstrap-touchspin-injected" type="button">').concat(o.buttondown_txt,`</button> + `),q.append(pe)):(pe=` + <span class="input-group-btn input-group-prepend bootstrap-touchspin-injected"> + <button tabindex="-1" class="`.concat(o.buttondown_class,' bootstrap-touchspin-down" type="button">').concat(o.buttondown_txt,`</button> + </span> + `),t(pe).insertBefore(p)),ee.hasClass("input-group-btn")||ee.hasClass("input-group-append")?(Y=` + <button tabindex="-1" class="`.concat(o.buttonup_class,' bootstrap-touchspin-up bootstrap-touchspin-injected" type="button">').concat(o.buttonup_txt,`</button> + `),ee.prepend(Y)):(Y=` + <span class="input-group-btn input-group-append bootstrap-touchspin-injected"> + <button tabindex="-1" class="`.concat(o.buttonup_class,' bootstrap-touchspin-up" type="button">').concat(o.buttonup_txt,`</button> + </span> + `),t(Y).insertAfter(p))),t(Pe).insertBefore(p),t(Ne).insertAfter(p),S=g}function e(){var g,q="";p.hasClass("input-sm")||p.hasClass("form-control-sm")?q="input-group-sm":(p.hasClass("input-lg")||p.hasClass("form-control-lg"))&&(q="input-group-lg"),o.verticalbuttons?g=` + <div class="input-group `.concat(q,` bootstrap-touchspin bootstrap-touchspin-injected"> + <span class="input-group-addon input-group-prepend bootstrap-touchspin-prefix"> + <span class="input-group-text">`).concat(o.prefix,`</span> + </span> + <span class="input-group-addon bootstrap-touchspin-postfix input-group-append"> + <span class="input-group-text">`).concat(o.postfix,`</span> + </span> + `).concat(V,` + </div> + `):g=` + <div class="input-group bootstrap-touchspin bootstrap-touchspin-injected"> + <span class="input-group-btn input-group-prepend"> + <button tabindex="-1" class="`.concat(o.buttondown_class,' bootstrap-touchspin-down" type="button">').concat(o.buttondown_txt,`</button> + </span> + <span class="input-group-addon bootstrap-touchspin-prefix input-group-prepend"> + <span class="input-group-text">`).concat(o.prefix,`</span> + </span> + <span class="input-group-addon bootstrap-touchspin-postfix input-group-append"> + <span class="input-group-text">`).concat(o.postfix,`</span> + </span> + <span class="input-group-btn input-group-append"> + <button tabindex="-1" class="`).concat(o.buttonup_class,' bootstrap-touchspin-up" type="button">').concat(o.buttonup_txt,`</button> + </span> + </div>`),S=t(g).insertBefore(p),t(".bootstrap-touchspin-prefix",S).after(p),p.hasClass("input-sm")||p.hasClass("form-control-sm")?S.addClass("input-group-sm"):(p.hasClass("input-lg")||p.hasClass("form-control-lg"))&&S.addClass("input-group-lg")}function a(){d={down:t(".bootstrap-touchspin-down",S),up:t(".bootstrap-touchspin-up",S),input:t("input",S),prefix:t(".bootstrap-touchspin-prefix",S).addClass(o.prefix_extraclass),postfix:t(".bootstrap-touchspin-postfix",S).addClass(o.postfix_extraclass)}}function r(){o.prefix===""&&(_=d.prefix.detach()),o.postfix===""&&(u=d.postfix.detach())}function m(){p.on("keydown.touchspin",function(g){var q=g.keyCode||g.which;q===38?(ce!=="up"&&(D(),re()),g.preventDefault()):q===40?(ce!=="down"&&(U(),W()),g.preventDefault()):(q===9||q===13)&&y()}),p.on("keyup.touchspin",function(g){var q=g.keyCode||g.which;(q===38||q===40)&&Z()}),t(document).on("mousedown touchstart",function(g){t(g.target).is(p)||y()}),p.on("blur.touchspin",function(){y()}),d.down.on("keydown",function(g){var q=g.keyCode||g.which;(q===32||q===13)&&(ce!=="down"&&(U(),W()),g.preventDefault())}),d.down.on("keyup.touchspin",function(g){var q=g.keyCode||g.which;(q===32||q===13)&&Z()}),d.up.on("keydown.touchspin",function(g){var q=g.keyCode||g.which;(q===32||q===13)&&(ce!=="up"&&(D(),re()),g.preventDefault())}),d.up.on("keyup.touchspin",function(g){var q=g.keyCode||g.which;(q===32||q===13)&&Z()}),d.down.on("mousedown.touchspin",function(g){d.down.off("touchstart.touchspin"),!p.is(":disabled,[readonly]")&&(U(),W(),g.preventDefault(),g.stopPropagation())}),d.down.on("touchstart.touchspin",function(g){d.down.off("mousedown.touchspin"),!p.is(":disabled,[readonly]")&&(U(),W(),g.preventDefault(),g.stopPropagation())}),d.up.on("mousedown.touchspin",function(g){d.up.off("touchstart.touchspin"),!p.is(":disabled,[readonly]")&&(D(),re(),g.preventDefault(),g.stopPropagation())}),d.up.on("touchstart.touchspin",function(g){d.up.off("mousedown.touchspin"),!p.is(":disabled,[readonly]")&&(D(),re(),g.preventDefault(),g.stopPropagation())}),d.up.on("mouseup.touchspin mouseout.touchspin touchleave.touchspin touchend.touchspin touchcancel.touchspin",function(g){ce&&(g.stopPropagation(),Z())}),d.down.on("mouseup.touchspin mouseout.touchspin touchleave.touchspin touchend.touchspin touchcancel.touchspin",function(g){ce&&(g.stopPropagation(),Z())}),d.down.on("mousemove.touchspin touchmove.touchspin",function(g){ce&&(g.stopPropagation(),g.preventDefault())}),d.up.on("mousemove.touchspin touchmove.touchspin",function(g){ce&&(g.stopPropagation(),g.preventDefault())}),p.on("mousewheel.touchspin DOMMouseScroll.touchspin",function(g){if(!(!o.mousewheel||!p.is(":focus"))){var q=g.originalEvent.wheelDelta||-g.originalEvent.deltaY||-g.originalEvent.detail;g.stopPropagation(),g.preventDefault(),q<0?U():D()}})}function x(){p.on("touchspin.destroy",function(){ze()}),p.on("touchspin.uponce",function(){Z(),D()}),p.on("touchspin.downonce",function(){Z(),U()}),p.on("touchspin.startupspin",function(){re()}),p.on("touchspin.startdownspin",function(){W()}),p.on("touchspin.stopspin",function(){Z()}),p.on("touchspin.updatesettings",function(g,q){be(q)})}function F(){if(typeof MutationObserver<"u"){var g=new MutationObserver(function(q){q.forEach(function(ee){ee.type==="attributes"&&(ee.attributeName==="disabled"||ee.attributeName==="readonly")&&z()})});g.observe(p[0],{attributes:!0})}}function T(g){switch(o.forcestepdivisibility){case"round":return(Math.round(g/o.step)*o.step).toFixed(o.decimals);case"floor":return(Math.floor(g/o.step)*o.step).toFixed(o.decimals);case"ceil":return(Math.ceil(g/o.step)*o.step).toFixed(o.decimals);default:return g.toFixed(o.decimals)}}function y(){var g,q,ee;if(g=o.callback_before_calculation(p.val()),g===""){o.replacementval!==""&&(p.val(o.replacementval),p.trigger("change"));return}o.decimals>0&&g==="."||(q=parseFloat(g),isNaN(q)&&(o.replacementval!==""?q=o.replacementval:q=0),ee=q,q.toString()!==g&&(ee=q),ee=T(q),o.min!==null&&q<o.min&&(ee=o.min),o.max!==null&&q>o.max&&(ee=o.max),parseFloat(q).toString()!==parseFloat(ee).toString()&&p.val(ee),p.val(o.callback_after_calculation(parseFloat(ee).toFixed(o.decimals))))}function E(){if(o.booster){var g=Math.pow(2,Math.floor(ie/o.boostat))*o.step;return o.maxboostedstep&&g>o.maxboostedstep&&(g=o.maxboostedstep,O=Math.round(O/g)*g),Math.max(o.step,g)}else return o.step}function I(){return typeof o.firstclickvalueifempty=="number"?o.firstclickvalueifempty:(o.min+o.max)/2}function z(){var g=p.is(":disabled,[readonly]");d.up.prop("disabled",g),d.down.prop("disabled",g),g&&Z()}function D(){if(!p.is(":disabled,[readonly]")){y(),O=parseFloat(o.callback_before_calculation(d.input.val()));var g=O,q;isNaN(O)?O=I():(q=E(),O=O+q),o.max!==null&&O>=o.max&&(O=o.max,p.trigger("touchspin.on.max"),Z()),d.input.val(o.callback_after_calculation(parseFloat(O).toFixed(o.decimals))),g!==O&&p.trigger("change")}}function U(){if(!p.is(":disabled,[readonly]")){y(),O=parseFloat(o.callback_before_calculation(d.input.val()));var g=O,q;isNaN(O)?O=I():(q=E(),O=O-q),o.min!==null&&O<=o.min&&(O=o.min,p.trigger("touchspin.on.min"),Z()),d.input.val(o.callback_after_calculation(parseFloat(O).toFixed(o.decimals))),g!==O&&p.trigger("change")}}function W(){p.is(":disabled,[readonly]")||(Z(),ie=0,ce="down",p.trigger("touchspin.on.startspin"),p.trigger("touchspin.on.startdownspin"),N=setTimeout(function(){A=setInterval(function(){ie++,U()},o.stepinterval)},o.stepintervaldelay))}function re(){p.is(":disabled,[readonly]")||(Z(),ie=0,ce="up",p.trigger("touchspin.on.startspin"),p.trigger("touchspin.on.startupspin"),G=setTimeout(function(){c=setInterval(function(){ie++,D()},o.stepinterval)},o.stepintervaldelay))}function Z(){switch(clearTimeout(N),clearTimeout(G),clearInterval(A),clearInterval(c),ce){case"up":p.trigger("touchspin.on.stopupspin"),p.trigger("touchspin.on.stopspin");break;case"down":p.trigger("touchspin.on.stopdownspin"),p.trigger("touchspin.on.stopspin");break}ie=0,ce=!1}})}})}(Et),Et.exports;var tn={exports:{}};/*! + * @fileOverview TouchSwipe - jQuery Plugin + * @version 1.6.18 + * + * @author Matt Bryson http://www.github.com/mattbryson + * @see https://github.com/mattbryson/TouchSwipe-Jquery-Plugin + * @see http://labs.rampinteractive.co.uk/touchSwipe/ + * @see http://plugins.jquery.com/project/touchSwipe + * @license + * Copyright (c) 2010-2015 Matt Bryson + * Dual licensed under the MIT or GPL Version 2 licenses. + * + */(function(l){(function(n){n(l.exports?i:jQuery)})(function(n){function t(e){return!e||e.allowPageScroll!==void 0||e.swipe===void 0&&e.swipeStatus===void 0||(e.allowPageScroll=u),e.click!==void 0&&e.tap===void 0&&(e.tap=e.click),e||(e={}),e=n.extend({},n.fn.swipe.defaults,e),this.each(function(){var a=n(this),r=a.data(Ae);r||(r=new w(this,e),a.data(Ae,r))})}function w(e,v){function r(h){if(!(Be()||n(h.target).closest(v.excludedElements,R).length>0)){var L=h.originalEvent?h.originalEvent:h;if(!L.pointerType||L.pointerType!="mouse"||v.fallbackToMouseEvents!=0){var j,J=L.touches,ve=J?J[0]:L;return X=Le,J?oe=J.length:v.preventDefaultEvents!==!1&&h.preventDefault(),le=0,ge=null,de=null,Se=null,ue=0,Ve=0,Ye=0,xe=1,Te=0,Ze=At(),te(),Qe(0,ve),!J||oe===v.fingers||v.fingers===ie||q()?(De=nt(),oe==2&&(Qe(1,J[1]),Ve=Ye=pt(B[0].start,B[1].start)),(v.swipeStatus||v.pinchStatus)&&(j=I(L,X))):j=!1,j===!1?(X=f,I(L,X),j):(v.hold&&(rt=setTimeout(n.proxy(function(){R.trigger("hold",[L.target]),v.hold&&(j=v.hold.call(R,L,L.target))},this),v.longTapThreshold)),tt(!0),null)}}}function m(h){var L=h.originalEvent?h.originalEvent:h;if(X!==be&&X!==f&&!me()){var j,J=L.touches,ve=J?J[0]:L,we=vt(ve);if(Ge=nt(),J&&(oe=J.length),v.hold&&clearTimeout(rt),X=Ue,oe==2&&(Ve==0?(Qe(1,J[1]),Ve=Ye=pt(B[0].start,B[1].start)):(vt(J[1]),Ye=pt(B[0].end,B[1].end),Se=kt(B[0].end,B[1].end)),xe=ht(Ve,Ye),Te=Math.abs(Ve-Ye)),oe===v.fingers||v.fingers===ie||!J||q()){if(ge=wt(we.start,we.end),de=wt(we.last,we.end),Z(h,de),le=_t(we.start,we.end),ue=dt(),je(ge,le),j=I(L,X),!v.triggerOnTouchEnd||v.triggerOnTouchLeave){var Ke=!0;if(v.triggerOnTouchLeave){var Xe=Ct(this);Ke=at(we.end,Xe)}!v.triggerOnTouchEnd&&Ke?X=E(Ue):v.triggerOnTouchLeave&&!Ke&&(X=E(be)),X!=f&&X!=be||I(L,X)}}else X=f,I(L,X);j===!1&&(X=f,I(L,X))}}function x(h){var L=h.originalEvent?h.originalEvent:h,j=L.touches;if(j){if(j.length&&!me())return We(L),!0;if(j.length&&me())return!0}return me()&&(oe=gt),Ge=nt(),ue=dt(),U()||!D()?(X=f,I(L,X)):v.triggerOnTouchEnd||v.triggerOnTouchEnd===!1&&X===Ue?(v.preventDefaultEvents!==!1&&h.cancelable!==!1&&h.preventDefault(),X=be,I(L,X)):!v.triggerOnTouchEnd&&Oe()?(X=be,z(L,X,O)):X===Ue&&(X=f,I(L,X)),tt(!1),null}function F(){oe=0,Ge=0,De=0,Ve=0,Ye=0,xe=1,te(),tt(!1)}function T(h){var L=h.originalEvent?h.originalEvent:h;v.triggerOnTouchLeave&&(X=E(be),I(L,X))}function y(){R.off(ye,r),R.off(ne,F),R.off(Ee,m),R.off(K,x),ot&&R.off(ot,T),tt(!1)}function E(h){var L=h,j=re(),J=D(),ve=U();return!j||ve?L=f:!J||h!=Ue||v.triggerOnTouchEnd&&!v.triggerOnTouchLeave?!J&&h==be&&v.triggerOnTouchLeave&&(L=f):L=be,L}function I(h,L){var j,J=h.touches;return(Pe()||Y())&&(j=z(h,L,d)),(ee()||q())&&j!==!1&&(j=z(h,L,V)),_e()&&j!==!1?j=z(h,L,A):Ce()&&j!==!1?j=z(h,L,c):he()&&j!==!1&&(j=z(h,L,O)),L===f&&F(),L===be&&(J&&J.length||F()),j}function z(h,L,j){var J;if(j==d){if(R.trigger("swipeStatus",[L,ge||null,le||0,ue||0,oe,B,de]),v.swipeStatus&&(J=v.swipeStatus.call(R,h,L,ge||null,le||0,ue||0,oe,B,de),J===!1))return!1;if(L==be&&pe()){if(clearTimeout(Re),clearTimeout(rt),R.trigger("swipe",[ge,le,ue,oe,B,de]),v.swipe&&(J=v.swipe.call(R,h,ge,le,ue,oe,B,de),J===!1))return!1;switch(ge){case k:R.trigger("swipeLeft",[ge,le,ue,oe,B,de]),v.swipeLeft&&(J=v.swipeLeft.call(R,h,ge,le,ue,oe,B,de));break;case C:R.trigger("swipeRight",[ge,le,ue,oe,B,de]),v.swipeRight&&(J=v.swipeRight.call(R,h,ge,le,ue,oe,B,de));break;case o:R.trigger("swipeUp",[ge,le,ue,oe,B,de]),v.swipeUp&&(J=v.swipeUp.call(R,h,ge,le,ue,oe,B,de));break;case p:R.trigger("swipeDown",[ge,le,ue,oe,B,de]),v.swipeDown&&(J=v.swipeDown.call(R,h,ge,le,ue,oe,B,de))}}}if(j==V){if(R.trigger("pinchStatus",[L,Se||null,Te||0,ue||0,oe,xe,B]),v.pinchStatus&&(J=v.pinchStatus.call(R,h,L,Se||null,Te||0,ue||0,oe,xe,B),J===!1))return!1;if(L==be&&g())switch(Se){case Q:R.trigger("pinchIn",[Se||null,Te||0,ue||0,oe,xe,B]),v.pinchIn&&(J=v.pinchIn.call(R,h,Se||null,Te||0,ue||0,oe,xe,B));break;case _:R.trigger("pinchOut",[Se||null,Te||0,ue||0,oe,xe,B]),v.pinchOut&&(J=v.pinchOut.call(R,h,Se||null,Te||0,ue||0,oe,xe,B))}}return j==O?L!==f&&L!==be||(clearTimeout(Re),clearTimeout(rt),ke()&&!P()?(Je=nt(),Re=setTimeout(n.proxy(function(){Je=null,R.trigger("tap",[h.target]),v.tap&&(J=v.tap.call(R,h,h.target))},this),v.doubleTapThreshold)):(Je=null,R.trigger("tap",[h.target]),v.tap&&(J=v.tap.call(R,h,h.target)))):j==A?L!==f&&L!==be||(clearTimeout(Re),clearTimeout(rt),Je=null,R.trigger("doubletap",[h.target]),v.doubleTap&&(J=v.doubleTap.call(R,h,h.target))):j==c&&(L!==f&&L!==be||(clearTimeout(Re),Je=null,R.trigger("longtap",[h.target]),v.longTap&&(J=v.longTap.call(R,h,h.target)))),J}function D(){var h=!0;return v.threshold!==null&&(h=le>=v.threshold),h}function U(){var h=!1;return v.cancelThreshold!==null&&ge!==null&&(h=Tt(ge)-le>=v.cancelThreshold),h}function W(){return v.pinchThreshold!==null?Te>=v.pinchThreshold:!0}function re(){return v.maxTimeThreshold?!(ue>=v.maxTimeThreshold):!0}function Z(h,L){if(v.preventDefaultEvents!==!1)if(v.allowPageScroll===u)h.preventDefault();else{var j=v.allowPageScroll===S;switch(L){case k:(v.swipeLeft&&j||!j&&v.allowPageScroll!=N)&&h.preventDefault();break;case C:(v.swipeRight&&j||!j&&v.allowPageScroll!=N)&&h.preventDefault();break;case o:(v.swipeUp&&j||!j&&v.allowPageScroll!=G)&&h.preventDefault();break;case p:(v.swipeDown&&j||!j&&v.allowPageScroll!=G)&&h.preventDefault();break}}}function g(){var h=Ne(),L=et(),j=W();return h&&L&&j}function q(){return!!(v.pinchStatus||v.pinchIn||v.pinchOut)}function ee(){return!(!g()||!q())}function pe(){var h=re(),L=D(),j=Ne(),J=et(),ve=U(),we=!ve&&J&&j&&L&&h;return we}function Y(){return!!(v.swipe||v.swipeStatus||v.swipeLeft||v.swipeRight||v.swipeUp||v.swipeDown)}function Pe(){return!(!pe()||!Y())}function Ne(){return oe===v.fingers||v.fingers===ie||!Me}function et(){return B[0].end.x!==0}function Oe(){return!!v.tap}function ke(){return!!v.doubleTap}function M(){return!!v.longTap}function H(){if(Je==null)return!1;var h=nt();return ke()&&h-Je<=v.doubleTapThreshold}function P(){return H()}function se(){return(oe===1||!Me)&&(isNaN(le)||le<v.threshold)}function ae(){return ue>v.longTapThreshold&&ce>le}function he(){return!(!se()||!Oe())}function _e(){return!(!H()||!ke())}function Ce(){return!(!ae()||!M())}function We(h){it=nt(),gt=h.touches.length+1}function te(){it=0,gt=0}function me(){var h=!1;if(it){var L=nt()-it;L<=v.fingerReleaseThreshold&&(h=!0)}return h}function Be(){return R.data(Ae+"_intouch")===!0}function tt(h){R&&(h===!0?(R.on(Ee,m),R.on(K,x),ot&&R.on(ot,T)):(R.off(Ee,m,!1),R.off(K,x,!1),ot&&R.off(ot,T,!1)),R.data(Ae+"_intouch",h===!0))}function Qe(h,L){var j={start:{x:0,y:0},last:{x:0,y:0},end:{x:0,y:0}};return j.start.x=j.last.x=j.end.x=L.pageX||L.clientX,j.start.y=j.last.y=j.end.y=L.pageY||L.clientY,B[h]=j,j}function vt(h){var L=h.identifier!==void 0?h.identifier:0,j=bt(L);return j===null&&(j=Qe(L,h)),j.last.x=j.end.x,j.last.y=j.end.y,j.end.x=h.pageX||h.clientX,j.end.y=h.pageY||h.clientY,j}function bt(h){return B[h]||null}function je(h,L){h!=u&&(L=Math.max(L,Tt(h)),Ze[h].distance=L)}function Tt(h){return Ze[h]?Ze[h].distance:void 0}function At(){var h={};return h[k]=st(k),h[C]=st(C),h[o]=st(o),h[p]=st(p),h}function st(h){return{direction:h,distance:0}}function dt(){return Ge-De}function pt(h,L){var j=Math.abs(h.x-L.x),J=Math.abs(h.y-L.y);return Math.round(Math.sqrt(j*j+J*J))}function ht(h,L){var j=L/h*1;return j.toFixed(2)}function kt(){return 1>xe?_:Q}function _t(h,L){return Math.round(Math.sqrt(Math.pow(L.x-h.x,2)+Math.pow(L.y-h.y,2)))}function Pt(h,L){var j=h.x-L.x,J=L.y-h.y,ve=Math.atan2(J,j),we=Math.round(180*ve/Math.PI);return 0>we&&(we=360-Math.abs(we)),we}function wt(h,L){if(yt(h,L))return u;var j=Pt(h,L);return 45>=j&&j>=0||360>=j&&j>=315?k:j>=135&&225>=j?C:j>45&&135>j?p:o}function nt(){var h=new Date;return h.getTime()}function Ct(h){h=n(h);var L=h.offset(),j={left:L.left,right:L.left+h.outerWidth(),top:L.top,bottom:L.top+h.outerHeight()};return j}function at(h,L){return h.x>L.left&&h.x<L.right&&h.y>L.top&&h.y<L.bottom}function yt(h,L){return h.x==L.x&&h.y==L.y}var v=n.extend({},v),He=Me||qe||!v.fallbackToMouseEvents,ye=He?qe?ze?"MSPointerDown":"pointerdown":"touchstart":"mousedown",Ee=He?qe?ze?"MSPointerMove":"pointermove":"touchmove":"mousemove",K=He?qe?ze?"MSPointerUp":"pointerup":"touchend":"mouseup",ot=He?qe?"mouseleave":null:"mouseleave",ne=qe?ze?"MSPointerCancel":"pointercancel":"touchcancel",le=0,ge=null,de=null,ue=0,Ve=0,Ye=0,xe=1,Te=0,Se=0,Ze=null,R=n(e),X="start",oe=0,B={},De=0,Ge=0,it=0,gt=0,Je=0,Re=null,rt=null;try{R.on(ye,r),R.on(ne,F)}catch{n.error("events not supported "+ye+","+ne+" on jQuery.swipe")}this.enable=function(){return this.disable(),R.on(ye,r),R.on(ne,F),R},this.disable=function(){return y(),R},this.destroy=function(){y(),R.data(Ae,null),R=null},this.option=function(h,L){if(typeof h=="object")v=n.extend(v,h);else if(v[h]!==void 0){if(L===void 0)return v[h];v[h]=L}else{if(!h)return v;n.error("Option "+h+" does not exist on jQuery.swipe.options")}return null}}var s="1.6.18",k="left",C="right",o="up",p="down",Q="in",_="out",u="none",S="auto",d="swipe",V="pinch",O="tap",A="doubletap",c="longtap",N="horizontal",G="vertical",ie="all",ce=10,Le="start",Ue="move",be="end",f="cancel",Me="ontouchstart"in window,ze=window.navigator.msPointerEnabled&&!window.PointerEvent&&!Me,qe=(window.PointerEvent||window.navigator.msPointerEnabled)&&!Me,Ae="TouchSwipe",ft={fingers:1,threshold:75,cancelThreshold:null,pinchThreshold:20,maxTimeThreshold:null,fingerReleaseThreshold:250,longTapThreshold:500,doubleTapThreshold:200,swipe:null,swipeLeft:null,swipeRight:null,swipeUp:null,swipeDown:null,swipeStatus:null,pinchIn:null,pinchOut:null,pinchStatus:null,click:null,tap:null,doubleTap:null,longTap:null,hold:null,triggerOnTouchEnd:!0,triggerOnTouchLeave:!1,allowPageScroll:"auto",fallbackToMouseEvents:!0,excludedElements:".noSwipe",preventDefaultEvents:!0};n.fn.swipe=function(e){var a=n(this),r=a.data(Ae);if(r&&typeof e=="string"){if(r[e])return r[e].apply(r,Array.prototype.slice.call(arguments,1));n.error("Method "+e+" does not exist on jQuery.swipe")}else if(r&&typeof e=="object")r.option.apply(r,arguments);else if(!(r||typeof e!="object"&&e))return t.apply(this,arguments);return a},n.fn.swipe.version=s,n.fn.swipe.defaults=ft,n.fn.swipe.phases={PHASE_START:Le,PHASE_MOVE:Ue,PHASE_END:be,PHASE_CANCEL:f},n.fn.swipe.directions={LEFT:k,RIGHT:C,UP:o,DOWN:p,IN:Q,OUT:_},n.fn.swipe.pageScroll={NONE:u,HORIZONTAL:N,VERTICAL:G,AUTO:S},n.fn.swipe.fingers={ONE:1,TWO:2,THREE:3,FOUR:4,FIVE:5,ALL:ie}})})(tn);/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */const nn={template:"#password-feedback",hint:".js-hint-password",container:".password-strength-feedback",strengthText:".password-strength-text",requirementScore:".password-requirements-score",requirementLength:".password-requirements-length",requirementScoreIcon:".password-requirements-score i",requirementLengthIcon:".password-requirements-length i",progressBar:".progress-bar",inputColumn:".js-input-column"};b.themeSelectors={product:{tabs:".tabs .nav-link",activeNavClass:"js-product-nav-active",activeTabClass:"js-product-tab-active",activeTabs:".tabs .nav-link.active, .js-product-nav-active",imagesModal:".js-product-images-modal",thumb:".js-thumb",thumbContainer:".thumb-container, .js-thumb-container",arrows:".js-arrows",selected:".selected, .js-thumb-selected",modalProductCover:".js-modal-product-cover",cover:".js-qv-product-cover",customizationModal:".js-customization-modal"},listing:{searchFilterToggler:"#search_filter_toggler, .js-search-toggler",searchFiltersWrapper:"#search_filters_wrapper",searchFilterControls:"#search_filter_controls",searchFilters:"#search_filters",activeSearchFilters:"#js-active-search-filters",listTop:"#js-product-list-top",product:".js-product",list:"#js-product-list",listBottom:"#js-product-list-bottom",listHeader:"#js-product-list-header",searchFiltersClearAll:".js-search-filters-clear-all",searchLink:".js-search-link"},order:{returnForm:"#order-return-form, .js-order-return-form"},arrowDown:".arrow-down, .js-arrow-down",arrowUp:".arrow-up, .js-arrow-up",clear:".clear",fileInput:".js-file-input",contentWrapper:"#content-wrapper, .js-content-wrapper",footer:"#footer, .js-footer",modalContent:".js-modal-content",modal:"#modal, .js-checkout-modal",touchspin:".js-touchspin",checkout:{termsLink:".js-terms a",giftCheckbox:".js-gift-checkbox",imagesLink:".card-block .cart-summary-products p a, .js-show-details",carrierExtraContent:".carrier-extra-content, .js-carrier-extra-content",btn:".checkout a"},cart:{productLineQty:".js-cart-line-product-quantity",quickview:".quickview",touchspin:".bootstrap-touchspin",promoCode:"#promo-code",displayPromo:".display-promo",promoCodeButton:".promo-code-button",discountCode:".js-discount .code",discountName:"[name=discount_name]",actions:'[data-link-action="delete-from-cart"], [data-link-action="remove-voucher"]'},notifications:{dangerAlert:"#notifications article.alert-danger",container:"#notifications .notifications-container"},passwordPolicy:nn},i(document).ready(()=>{b.emit("themeSelectorsInit")});/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */b.responsive=b.responsive||{},b.responsive.current_width=window.innerWidth,b.responsive.min_width=768,b.responsive.mobile=b.responsive.current_width<b.responsive.min_width;function jt(l,n){const t=n.children().detach();n.empty().append(l.children().detach()),l.append(t)}function It(){b.responsive.mobile?i("*[id^='_desktop_']").each((l,n)=>{const t=i(`#${n.id.replace("_desktop_","_mobile_")}`);t.length&&jt(i(n),t)}):i("*[id^='_mobile_']").each((l,n)=>{const t=i(`#${n.id.replace("_mobile_","_desktop_")}`);t.length&&jt(i(n),t)}),b.emit("responsive update",{mobile:b.responsive.mobile})}i(window).on("resize",()=>{const l=b.responsive.current_width,n=b.responsive.min_width,t=window.innerWidth,w=l>=n&&t<n||l<n&&t>=n;b.responsive.current_width=t,b.responsive.mobile=b.responsive.current_width<b.responsive.min_width,w&&It()}),i(document).ready(()=>{b.responsive.mobile&&It()});/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */function rn(){i(b.themeSelectors.checkout.termsLink).on("click",l=>{l.preventDefault();let n=i(l.target).attr("href");n&&(n+="?content_only=1",i.get(n,t=>{i(b.themeSelectors.modal).find(b.themeSelectors.modalContent).html(i(t).find(".page-cms").contents())}).fail(t=>{b.emit("handleError",{eventType:"clickTerms",resp:t})})),i(b.themeSelectors.modal).modal("show")}),i(b.themeSelectors.checkout.giftCheckbox).on("click",()=>{i("#gift").slideToggle()})}function on(){i(b.themeSelectors.checkout.imagesLink).on("click",function(){const l=i(this).find("i.material-icons");l.text()==="expand_more"?l.text("expand_less"):l.text("expand_more")})}i(document).ready(()=>{i("body#checkout").length===1&&(rn(),on()),b.on("updatedDeliveryForm",l=>{typeof l.deliveryOption>"u"||l.deliveryOption.length===0||(i(b.themeSelectors.checkout.carrierExtraContent).hide(),l.deliveryOption.next(b.themeSelectors.checkout.carrierExtraContent).slideDown())})});/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */function sn(){i(`${b.themeSelectors.order.returnForm} table thead input[type=checkbox]`).on("click",function(){const l=i(this).prop("checked");i(`${b.themeSelectors.order.returnForm} table tbody input[type=checkbox]`).each((n,t)=>{i(t).prop("checked",l)})})}function an(){i("body#order-detail")&&sn()}i(document).ready(an);var ln={exports:{}};/*! VelocityJS.org (1.5.2). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */(function(l){/*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */(function(n){if(n.jQuery)return;var t=function(_,u){return new t.fn.init(_,u)};t.isWindow=function(_){return _&&_===_.window},t.type=function(_){return _?typeof _=="object"||typeof _=="function"?k[o.call(_)]||"object":typeof _:_+""},t.isArray=Array.isArray||function(_){return t.type(_)==="array"};function w(_){var u=_.length,S=t.type(_);return S==="function"||t.isWindow(_)?!1:_.nodeType===1&&u?!0:S==="array"||u===0||typeof u=="number"&&u>0&&u-1 in _}t.isPlainObject=function(_){var u;if(!_||t.type(_)!=="object"||_.nodeType||t.isWindow(_))return!1;try{if(_.constructor&&!C.call(_,"constructor")&&!C.call(_.constructor.prototype,"isPrototypeOf"))return!1}catch{return!1}for(u in _);return u===void 0||C.call(_,u)},t.each=function(_,u,S){var d,V=0,O=_.length,A=w(_);if(S){if(A)for(;V<O&&(d=u.apply(_[V],S),d!==!1);V++);else for(V in _)if(_.hasOwnProperty(V)&&(d=u.apply(_[V],S),d===!1))break}else if(A)for(;V<O&&(d=u.call(_[V],V,_[V]),d!==!1);V++);else for(V in _)if(_.hasOwnProperty(V)&&(d=u.call(_[V],V,_[V]),d===!1))break;return _},t.data=function(_,u,S){if(S===void 0){var d=_[t.expando],V=d&&s[d];if(u===void 0)return V;if(V&&u in V)return V[u]}else if(u!==void 0){var O=_[t.expando]||(_[t.expando]=++t.uuid);return s[O]=s[O]||{},s[O][u]=S,S}},t.removeData=function(_,u){var S=_[t.expando],d=S&&s[S];d&&(u?t.each(u,function(V,O){delete d[O]}):delete s[S])},t.extend=function(){var _,u,S,d,V,O,A=arguments[0]||{},c=1,N=arguments.length,G=!1;for(typeof A=="boolean"&&(G=A,A=arguments[c]||{},c++),typeof A!="object"&&t.type(A)!=="function"&&(A={}),c===N&&(A=this,c--);c<N;c++)if(V=arguments[c])for(d in V)V.hasOwnProperty(d)&&(_=A[d],S=V[d],A!==S&&(G&&S&&(t.isPlainObject(S)||(u=t.isArray(S)))?(u?(u=!1,O=_&&t.isArray(_)?_:[]):O=_&&t.isPlainObject(_)?_:{},A[d]=t.extend(G,O,S)):S!==void 0&&(A[d]=S)));return A},t.queue=function(_,u,S){function d(O,A){var c=A||[];return O&&(w(Object(O))?function(N,G){for(var ie=+G.length,ce=0,Le=N.length;ce<ie;)N[Le++]=G[ce++];if(ie!==ie)for(;G[ce]!==void 0;)N[Le++]=G[ce++];return N.length=Le,N}(c,typeof O=="string"?[O]:O):[].push.call(c,O)),c}if(_){u=(u||"fx")+"queue";var V=t.data(_,u);return S?(!V||t.isArray(S)?V=t.data(_,u,d(S)):V.push(S),V):V||[]}},t.dequeue=function(_,u){t.each(_.nodeType?[_]:_,function(S,d){u=u||"fx";var V=t.queue(d,u),O=V.shift();O==="inprogress"&&(O=V.shift()),O&&(u==="fx"&&V.unshift("inprogress"),O.call(d,function(){t.dequeue(d,u)}))})},t.fn=t.prototype={init:function(_){if(_.nodeType)return this[0]=_,this;throw new Error("Not a DOM node.")},offset:function(){var _=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:_.top+(n.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:_.left+(n.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function _(O){for(var A=O.offsetParent;A&&A.nodeName.toLowerCase()!=="html"&&A.style&&A.style.position.toLowerCase()==="static";)A=A.offsetParent;return A||document}var u=this[0],S=_(u),d=this.offset(),V=/^(?:body|html)$/i.test(S.nodeName)?{top:0,left:0}:t(S).offset();return d.top-=parseFloat(u.style.marginTop)||0,d.left-=parseFloat(u.style.marginLeft)||0,S.style&&(V.top+=parseFloat(S.style.borderTopWidth)||0,V.left+=parseFloat(S.style.borderLeftWidth)||0),{top:d.top-V.top,left:d.left-V.left}}};var s={};t.expando="velocity"+new Date().getTime(),t.uuid=0;for(var k={},C=k.hasOwnProperty,o=k.toString,p="Boolean Number String Function Array Date RegExp Object Error".split(" "),Q=0;Q<p.length;Q++)k["[object "+p[Q]+"]"]=p[Q].toLowerCase();t.fn.init.prototype=t.fn,n.Velocity={Utilities:t}})(window),function(n){l.exports=n()}(function(){return function(n,t,w,s){var k=function(){if(w.documentMode)return w.documentMode;for(var e=7;e>4;e--){var a=w.createElement("div");if(a.innerHTML="<!--[if IE "+e+"]><span></span><![endif]-->",a.getElementsByTagName("span").length)return a=null,e}return s}(),C=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(a){var r=new Date().getTime(),m;return m=Math.max(0,16-(r-e)),e=r+m,setTimeout(function(){a(r+m)},m)}}(),o=function(){var e=t.performance||{};if(typeof e.now!="function"){var a=e.timing&&e.timing.navigationStart?e.timing.navigationStart:new Date().getTime();e.now=function(){return new Date().getTime()-a}}return e}();function p(e){for(var a=-1,r=e?e.length:0,m=[];++a<r;){var x=e[a];x&&m.push(x)}return m}var Q=function(){var e=Array.prototype.slice;try{return e.call(w.documentElement),e}catch{return function(r,m){var x=this.length;if(typeof r!="number"&&(r=0),typeof m!="number"&&(m=x),this.slice)return e.call(this,r,m);var F,T=[],y=r>=0?r:Math.max(0,x+r),E=m<0?x+m:Math.min(m,x),I=E-y;if(I>0)if(T=new Array(I),this.charAt)for(F=0;F<I;F++)T[F]=this.charAt(y+F);else for(F=0;F<I;F++)T[F]=this[y+F];return T}}}(),_=function(){return Array.prototype.includes?function(e,a){return e.includes(a)}:Array.prototype.indexOf?function(e,a){return e.indexOf(a)>=0}:function(e,a){for(var r=0;r<e.length;r++)if(e[r]===a)return!0;return!1}};function u(e){return S.isWrapped(e)?e=Q.call(e):S.isNode(e)&&(e=[e]),e}var S={isNumber:function(e){return typeof e=="number"},isString:function(e){return typeof e=="string"},isArray:Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"},isFunction:function(e){return Object.prototype.toString.call(e)==="[object Function]"},isNode:function(e){return e&&e.nodeType},isWrapped:function(e){return e&&e!==t&&S.isNumber(e.length)&&!S.isString(e)&&!S.isFunction(e)&&!S.isNode(e)&&(e.length===0||S.isNode(e[0]))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var a in e)if(e.hasOwnProperty(a))return!1;return!0}},d,V=!1;if(n.fn&&n.fn.jquery?(d=n,V=!0):d=t.Velocity.Utilities,k<=8&&!V)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(k<=7){jQuery.fn.velocity=jQuery.fn.animate;return}var O=400,A="swing",c={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t.navigator.userAgent),isAndroid:/Android/i.test(t.navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(t.navigator.userAgent),isChrome:t.chrome,isFirefox:/Firefox/i.test(t.navigator.userAgent),prefixElement:w.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[],delayedElements:{count:0}},CSS:{},Utilities:d,Redirects:{},Easings:{},Promise:t.Promise,defaults:{queue:"",duration:O,easing:A,begin:s,complete:s,progress:s,display:s,visibility:s,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0,promiseRejectEmpty:!0},init:function(e){d.data(e,"velocity",{isSVG:S.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:5,patch:2},debug:!1,timestamp:!0,pauseAll:function(e){var a=new Date().getTime();d.each(c.State.calls,function(r,m){if(m){if(e!==s&&(m[2].queue!==e||m[2].queue===!1))return!0;m[5]={resume:!1}}}),d.each(c.State.delayedElements,function(r,m){m&&G(m,a)})},resumeAll:function(e){new Date().getTime(),d.each(c.State.calls,function(a,r){if(r){if(e!==s&&(r[2].queue!==e||r[2].queue===!1))return!0;r[5]&&(r[5].resume=!0)}}),d.each(c.State.delayedElements,function(a,r){r&&ie(r)})}};t.pageYOffset!==s?(c.State.scrollAnchor=t,c.State.scrollPropertyLeft="pageXOffset",c.State.scrollPropertyTop="pageYOffset"):(c.State.scrollAnchor=w.documentElement||w.body.parentNode||w.body,c.State.scrollPropertyLeft="scrollLeft",c.State.scrollPropertyTop="scrollTop");function N(e){var a=d.data(e,"velocity");return a===null?s:a}function G(e,a){var r=N(e);r&&r.delayTimer&&!r.delayPaused&&(r.delayRemaining=r.delay-a+r.delayBegin,r.delayPaused=!0,clearTimeout(r.delayTimer.setTimeout))}function ie(e,a){var r=N(e);r&&r.delayTimer&&r.delayPaused&&(r.delayPaused=!1,r.delayTimer.setTimeout=setTimeout(r.delayTimer.next,r.delayRemaining))}function ce(e){return function(a){return Math.round(a*e)*(1/e)}}function Le(e,a,r,m){var x=4,F=.001,T=1e-7,y=10,E=11,I=1/(E-1),z="Float32Array"in t;if(arguments.length!==4)return!1;for(var D=0;D<4;++D)if(typeof arguments[D]!="number"||isNaN(arguments[D])||!isFinite(arguments[D]))return!1;e=Math.min(e,1),r=Math.min(r,1),e=Math.max(e,0),r=Math.max(r,0);var U=z?new Float32Array(E):new Array(E);function W(M,H){return 1-3*H+3*M}function re(M,H){return 3*H-6*M}function Z(M){return 3*M}function g(M,H,P){return((W(H,P)*M+re(H,P))*M+Z(H))*M}function q(M,H,P){return 3*W(H,P)*M*M+2*re(H,P)*M+Z(H)}function ee(M,H){for(var P=0;P<x;++P){var se=q(H,e,r);if(se===0)return H;var ae=g(H,e,r)-M;H-=ae/se}return H}function pe(){for(var M=0;M<E;++M)U[M]=g(M*I,e,r)}function Y(M,H,P){var se,ae,he=0;do ae=H+(P-H)/2,se=g(ae,e,r)-M,se>0?P=ae:H=ae;while(Math.abs(se)>T&&++he<y);return ae}function Pe(M){for(var H=0,P=1,se=E-1;P!==se&&U[P]<=M;++P)H+=I;--P;var ae=(M-U[P])/(U[P+1]-U[P]),he=H+ae*I,_e=q(he,e,r);return _e>=F?ee(M,he):_e===0?he:Y(M,H,H+I)}var Ne=!1;function et(){Ne=!0,(e!==a||r!==m)&&pe()}var Oe=function(M){return Ne||et(),e===a&&r===m?M:M===0?0:M===1?1:g(Pe(M),a,m)};Oe.getControlPoints=function(){return[{x:e,y:a},{x:r,y:m}]};var ke="generateBezier("+[e,a,r,m]+")";return Oe.toString=function(){return ke},Oe}var Ue=function(){function e(m){return-m.tension*m.x-m.friction*m.v}function a(m,x,F){var T={x:m.x+F.dx*x,v:m.v+F.dv*x,tension:m.tension,friction:m.friction};return{dx:T.v,dv:e(T)}}function r(m,x){var F={dx:m.v,dv:e(m)},T=a(m,x*.5,F),y=a(m,x*.5,T),E=a(m,x,y),I=1/6*(F.dx+2*(T.dx+y.dx)+E.dx),z=1/6*(F.dv+2*(T.dv+y.dv)+E.dv);return m.x=m.x+I*x,m.v=m.v+z*x,m}return function m(x,F,T){var y={x:-1,v:0,tension:null,friction:null},E=[0],I=0,z=1/1e4,D=16/1e3,U,W,re;for(x=parseFloat(x)||500,F=parseFloat(F)||20,T=T||null,y.tension=x,y.friction=F,U=T!==null,U?(I=m(x,F),W=I/T*D):W=D;re=r(re||y,W),E.push(1+re.x),I+=16,Math.abs(re.x)>z&&Math.abs(re.v)>z;);return U?function(Z){return E[Z*(E.length-1)|0]}:I}}();c.Easings={linear:function(e){return e},swing:function(e){return .5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(e*4.5*Math.PI)*Math.exp(-e*6)}},d.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(e,a){c.Easings[a[0]]=Le.apply(null,a[1])});function be(e,a){var r=e;return S.isString(e)?c.Easings[e]||(r=!1):S.isArray(e)&&e.length===1?r=ce.apply(null,e):S.isArray(e)&&e.length===2?r=Ue.apply(null,e.concat([a])):S.isArray(e)&&e.length===4?r=Le.apply(null,e):r=!1,r===!1&&(c.Easings[c.defaults.easing]?r=c.defaults.easing:r=A),r}var f=c.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/ig},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"],units:["%","em","ex","ch","rem","vw","vh","vmin","vmax","cm","mm","Q","in","pc","pt","px","deg","grad","rad","turn","s","ms"],colorNames:{aliceblue:"240,248,255",antiquewhite:"250,235,215",aquamarine:"127,255,212",aqua:"0,255,255",azure:"240,255,255",beige:"245,245,220",bisque:"255,228,196",black:"0,0,0",blanchedalmond:"255,235,205",blueviolet:"138,43,226",blue:"0,0,255",brown:"165,42,42",burlywood:"222,184,135",cadetblue:"95,158,160",chartreuse:"127,255,0",chocolate:"210,105,30",coral:"255,127,80",cornflowerblue:"100,149,237",cornsilk:"255,248,220",crimson:"220,20,60",cyan:"0,255,255",darkblue:"0,0,139",darkcyan:"0,139,139",darkgoldenrod:"184,134,11",darkgray:"169,169,169",darkgrey:"169,169,169",darkgreen:"0,100,0",darkkhaki:"189,183,107",darkmagenta:"139,0,139",darkolivegreen:"85,107,47",darkorange:"255,140,0",darkorchid:"153,50,204",darkred:"139,0,0",darksalmon:"233,150,122",darkseagreen:"143,188,143",darkslateblue:"72,61,139",darkslategray:"47,79,79",darkturquoise:"0,206,209",darkviolet:"148,0,211",deeppink:"255,20,147",deepskyblue:"0,191,255",dimgray:"105,105,105",dimgrey:"105,105,105",dodgerblue:"30,144,255",firebrick:"178,34,34",floralwhite:"255,250,240",forestgreen:"34,139,34",fuchsia:"255,0,255",gainsboro:"220,220,220",ghostwhite:"248,248,255",gold:"255,215,0",goldenrod:"218,165,32",gray:"128,128,128",grey:"128,128,128",greenyellow:"173,255,47",green:"0,128,0",honeydew:"240,255,240",hotpink:"255,105,180",indianred:"205,92,92",indigo:"75,0,130",ivory:"255,255,240",khaki:"240,230,140",lavenderblush:"255,240,245",lavender:"230,230,250",lawngreen:"124,252,0",lemonchiffon:"255,250,205",lightblue:"173,216,230",lightcoral:"240,128,128",lightcyan:"224,255,255",lightgoldenrodyellow:"250,250,210",lightgray:"211,211,211",lightgrey:"211,211,211",lightgreen:"144,238,144",lightpink:"255,182,193",lightsalmon:"255,160,122",lightseagreen:"32,178,170",lightskyblue:"135,206,250",lightslategray:"119,136,153",lightsteelblue:"176,196,222",lightyellow:"255,255,224",limegreen:"50,205,50",lime:"0,255,0",linen:"250,240,230",magenta:"255,0,255",maroon:"128,0,0",mediumaquamarine:"102,205,170",mediumblue:"0,0,205",mediumorchid:"186,85,211",mediumpurple:"147,112,219",mediumseagreen:"60,179,113",mediumslateblue:"123,104,238",mediumspringgreen:"0,250,154",mediumturquoise:"72,209,204",mediumvioletred:"199,21,133",midnightblue:"25,25,112",mintcream:"245,255,250",mistyrose:"255,228,225",moccasin:"255,228,181",navajowhite:"255,222,173",navy:"0,0,128",oldlace:"253,245,230",olivedrab:"107,142,35",olive:"128,128,0",orangered:"255,69,0",orange:"255,165,0",orchid:"218,112,214",palegoldenrod:"238,232,170",palegreen:"152,251,152",paleturquoise:"175,238,238",palevioletred:"219,112,147",papayawhip:"255,239,213",peachpuff:"255,218,185",peru:"205,133,63",pink:"255,192,203",plum:"221,160,221",powderblue:"176,224,230",purple:"128,0,128",red:"255,0,0",rosybrown:"188,143,143",royalblue:"65,105,225",saddlebrown:"139,69,19",salmon:"250,128,114",sandybrown:"244,164,96",seagreen:"46,139,87",seashell:"255,245,238",sienna:"160,82,45",silver:"192,192,192",skyblue:"135,206,235",slateblue:"106,90,205",slategray:"112,128,144",snow:"255,250,250",springgreen:"0,255,127",steelblue:"70,130,180",tan:"210,180,140",teal:"0,128,128",thistle:"216,191,216",tomato:"255,99,71",turquoise:"64,224,208",violet:"238,130,238",wheat:"245,222,179",whitesmoke:"245,245,245",white:"255,255,255",yellowgreen:"154,205,50",yellow:"255,255,0"}},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var e=0;e<f.Lists.colors.length;e++){var a=f.Lists.colors[e]==="color"?"0 0 0 1":"255 255 255 1";f.Hooks.templates[f.Lists.colors[e]]=["Red Green Blue Alpha",a]}var r,m,x;if(k){for(r in f.Hooks.templates)if(f.Hooks.templates.hasOwnProperty(r)){m=f.Hooks.templates[r],x=m[0].split(" ");var F=m[1].match(f.RegEx.valueSplit);x[0]==="Color"&&(x.push(x.shift()),F.push(F.shift()),f.Hooks.templates[r]=[x.join(" "),F.join(" ")])}}for(r in f.Hooks.templates)if(f.Hooks.templates.hasOwnProperty(r)){m=f.Hooks.templates[r],x=m[0].split(" ");for(var T in x)if(x.hasOwnProperty(T)){var y=r+x[T],E=T;f.Hooks.registered[y]=[r,E]}}},getRoot:function(e){var a=f.Hooks.registered[e];return a?a[0]:e},getUnit:function(e,a){var r=(e.substr(a||0,5).match(/^[a-z%]+/)||[])[0]||"";return r&&_(f.Lists.units)?r:""},fixColors:function(e){return e.replace(/(rgba?\(\s*)?(\b[a-z]+\b)/g,function(a,r,m){return f.Lists.colorNames.hasOwnProperty(m)?(r||"rgba(")+f.Lists.colorNames[m]+(r?"":",1)"):r+m})},cleanRootPropertyValue:function(e,a){return f.RegEx.valueUnwrap.test(a)&&(a=a.match(f.RegEx.valueUnwrap)[1]),f.Values.isCSSNullValue(a)&&(a=f.Hooks.templates[e][1]),a},extractValue:function(e,a){var r=f.Hooks.registered[e];if(r){var m=r[0],x=r[1];return a=f.Hooks.cleanRootPropertyValue(m,a),a.toString().match(f.RegEx.valueSplit)[x]}else return a},injectValue:function(e,a,r){var m=f.Hooks.registered[e];if(m){var x=m[0],F=m[1],T,y;return r=f.Hooks.cleanRootPropertyValue(x,r),T=r.toString().match(f.RegEx.valueSplit),T[F]=a,y=T.join(" "),y}else return r}},Normalizations:{registered:{clip:function(e,a,r){switch(e){case"name":return"clip";case"extract":var m;return f.RegEx.wrappedValueAlreadyExtracted.test(r)?m=r:(m=r.toString().match(f.RegEx.valueUnwrap),m=m?m[1].replace(/,(\s+)?/g," "):r),m;case"inject":return"rect("+r+")"}},blur:function(e,a,r){switch(e){case"name":return c.State.isFirefox?"filter":"-webkit-filter";case"extract":var m=parseFloat(r);if(!(m||m===0)){var x=r.toString().match(/blur\(([0-9]+[A-z]+)\)/i);x?m=x[1]:m=0}return m;case"inject":return parseFloat(r)?"blur("+r+")":"none"}},opacity:function(e,a,r){if(k<=8)switch(e){case"name":return"filter";case"extract":var m=r.toString().match(/alpha\(opacity=(.*)\)/i);return m?r=m[1]/100:r=1,r;case"inject":return a.style.zoom=1,parseFloat(r)>=1?"":"alpha(opacity="+parseInt(parseFloat(r)*100,10)+")"}else switch(e){case"name":return"opacity";case"extract":return r;case"inject":return r}}},register:function(){(!k||k>9)&&!c.State.isGingerbread&&(f.Lists.transformsBase=f.Lists.transformsBase.concat(f.Lists.transforms3D));for(var e=0;e<f.Lists.transformsBase.length;e++)(function(){var x=f.Lists.transformsBase[e];f.Normalizations.registered[x]=function(F,T,y){switch(F){case"name":return"transform";case"extract":return N(T)===s||N(T).transformCache[x]===s?/^scale/i.test(x)?1:0:N(T).transformCache[x].replace(/[()]/g,"");case"inject":var E=!1;switch(x.substr(0,x.length-1)){case"translate":E=!/(%|px|em|rem|vw|vh|\d)$/i.test(y);break;case"scal":case"scale":c.State.isAndroid&&N(T).transformCache[x]===s&&y<1&&(y=1),E=!/(\d)$/i.test(y);break;case"skew":E=!/(deg|\d)$/i.test(y);break;case"rotate":E=!/(deg|\d)$/i.test(y);break}return E||(N(T).transformCache[x]="("+y+")"),N(T).transformCache[x]}}})();for(var a=0;a<f.Lists.colors.length;a++)(function(){var x=f.Lists.colors[a];f.Normalizations.registered[x]=function(F,T,y){switch(F){case"name":return x;case"extract":var E;if(f.RegEx.wrappedValueAlreadyExtracted.test(y))E=y;else{var I,z={black:"rgb(0, 0, 0)",blue:"rgb(0, 0, 255)",gray:"rgb(128, 128, 128)",green:"rgb(0, 128, 0)",red:"rgb(255, 0, 0)",white:"rgb(255, 255, 255)"};/^[A-z]+$/i.test(y)?z[y]!==s?I=z[y]:I=z.black:f.RegEx.isHex.test(y)?I="rgb("+f.Values.hexToRgb(y).join(" ")+")":/^rgba?\(/i.test(y)||(I=z.black),E=(I||y).toString().match(f.RegEx.valueUnwrap)[1].replace(/,(\s+)?/g," ")}return(!k||k>8)&&E.split(" ").length===3&&(E+=" 1"),E;case"inject":return/^rgb/.test(y)?y:(k<=8?y.split(" ").length===4&&(y=y.split(/\s+/).slice(0,3).join(" ")):y.split(" ").length===3&&(y+=" 1"),(k<=8?"rgb":"rgba")+"("+y.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")")}}})();function r(x,F,T){var y=f.getPropertyValue(F,"boxSizing").toString().toLowerCase()==="border-box";if(y===(T||!1)){var E,I,z=0,D=x==="width"?["Left","Right"]:["Top","Bottom"],U=["padding"+D[0],"padding"+D[1],"border"+D[0]+"Width","border"+D[1]+"Width"];for(E=0;E<U.length;E++)I=parseFloat(f.getPropertyValue(F,U[E])),isNaN(I)||(z+=I);return T?-z:z}return 0}function m(x,F){return function(T,y,E){switch(T){case"name":return x;case"extract":return parseFloat(E)+r(x,y,F);case"inject":return parseFloat(E)-r(x,y,F)+"px"}}}f.Normalizations.registered.innerWidth=m("width",!0),f.Normalizations.registered.innerHeight=m("height",!0),f.Normalizations.registered.outerWidth=m("width"),f.Normalizations.registered.outerHeight=m("height")}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(a,r){return r.toUpperCase()})},SVGAttribute:function(e){var a="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(k||c.State.isAndroid&&!c.State.isChrome)&&(a+="|transform"),new RegExp("^("+a+")$","i").test(e)},prefixCheck:function(e){if(c.State.prefixMatches[e])return[c.State.prefixMatches[e],!0];for(var a=["","Webkit","Moz","ms","O"],r=0,m=a.length;r<m;r++){var x;if(r===0?x=e:x=a[r]+e.replace(/^\w/,function(F){return F.toUpperCase()}),S.isString(c.State.prefixElement.style[x]))return c.State.prefixMatches[e]=x,[x,!0]}return[e,!1]}},Values:{hexToRgb:function(e){var a=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,r=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,m;return e=e.replace(a,function(x,F,T,y){return F+F+T+T+y+y}),m=r.exec(e),m?[parseInt(m[1],16),parseInt(m[2],16),parseInt(m[3],16)]:[0,0,0]},isCSSNullValue:function(e){return!e||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e)},getUnitType:function(e){return/^(rotate|skew)/i.test(e)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e)?"":"px"},getDisplayType:function(e){var a=e&&e.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(a)?"inline":/^(li)$/i.test(a)?"list-item":/^(tr)$/i.test(a)?"table-row":/^(table)$/i.test(a)?"table":/^(tbody)$/i.test(a)?"table-row-group":"block"},addClass:function(e,a){if(e)if(e.classList)e.classList.add(a);else if(S.isString(e.className))e.className+=(e.className.length?" ":"")+a;else{var r=e.getAttribute(k<=7?"className":"class")||"";e.setAttribute("class",r+(r?" ":"")+a)}},removeClass:function(e,a){if(e)if(e.classList)e.classList.remove(a);else if(S.isString(e.className))e.className=e.className.toString().replace(new RegExp("(^|\\s)"+a.split(" ").join("|")+"(\\s|$)","gi")," ");else{var r=e.getAttribute(k<=7?"className":"class")||"";e.setAttribute("class",r.replace(new RegExp("(^|s)"+a.split(" ").join("|")+"(s|$)","gi")," "))}}},getPropertyValue:function(e,a,r,m){function x(D,U){var W=0;if(k<=8)W=d.css(D,U);else{var re=!1;/^(width|height)$/.test(U)&&f.getPropertyValue(D,"display")===0&&(re=!0,f.setPropertyValue(D,"display",f.Values.getDisplayType(D)));var Z=function(){re&&f.setPropertyValue(D,"display","none")};if(!m){if(U==="height"&&f.getPropertyValue(D,"boxSizing").toString().toLowerCase()!=="border-box"){var g=D.offsetHeight-(parseFloat(f.getPropertyValue(D,"borderTopWidth"))||0)-(parseFloat(f.getPropertyValue(D,"borderBottomWidth"))||0)-(parseFloat(f.getPropertyValue(D,"paddingTop"))||0)-(parseFloat(f.getPropertyValue(D,"paddingBottom"))||0);return Z(),g}else if(U==="width"&&f.getPropertyValue(D,"boxSizing").toString().toLowerCase()!=="border-box"){var q=D.offsetWidth-(parseFloat(f.getPropertyValue(D,"borderLeftWidth"))||0)-(parseFloat(f.getPropertyValue(D,"borderRightWidth"))||0)-(parseFloat(f.getPropertyValue(D,"paddingLeft"))||0)-(parseFloat(f.getPropertyValue(D,"paddingRight"))||0);return Z(),q}}var ee;N(D)===s?ee=t.getComputedStyle(D,null):N(D).computedStyle?ee=N(D).computedStyle:ee=N(D).computedStyle=t.getComputedStyle(D,null),U==="borderColor"&&(U="borderTopColor"),k===9&&U==="filter"?W=ee.getPropertyValue(U):W=ee[U],(W===""||W===null)&&(W=D.style[U]),Z()}if(W==="auto"&&/^(top|right|bottom|left)$/i.test(U)){var pe=x(D,"position");(pe==="fixed"||pe==="absolute"&&/top|left/i.test(U))&&(W=d(D).position()[U]+"px")}return W}var F;if(f.Hooks.registered[a]){var T=a,y=f.Hooks.getRoot(T);r===s&&(r=f.getPropertyValue(e,f.Names.prefixCheck(y)[0])),f.Normalizations.registered[y]&&(r=f.Normalizations.registered[y]("extract",e,r)),F=f.Hooks.extractValue(T,r)}else if(f.Normalizations.registered[a]){var E,I;E=f.Normalizations.registered[a]("name",e),E!=="transform"&&(I=x(e,f.Names.prefixCheck(E)[0]),f.Values.isCSSNullValue(I)&&f.Hooks.templates[a]&&(I=f.Hooks.templates[a][1])),F=f.Normalizations.registered[a]("extract",e,I)}if(!/^[\d-]/.test(F)){var z=N(e);if(z&&z.isSVG&&f.Names.SVGAttribute(a))if(/^(height|width)$/i.test(a))try{F=e.getBBox()[a]}catch{F=0}else F=e.getAttribute(a);else F=x(e,f.Names.prefixCheck(a)[0])}return f.Values.isCSSNullValue(F)&&(F=0),c.debug>=2&&console.log("Get "+a+": "+F),F},setPropertyValue:function(e,a,r,m,x){var F=a;if(a==="scroll")x.container?x.container["scroll"+x.direction]=r:x.direction==="Left"?t.scrollTo(r,x.alternateValue):t.scrollTo(x.alternateValue,r);else if(f.Normalizations.registered[a]&&f.Normalizations.registered[a]("name",e)==="transform")f.Normalizations.registered[a]("inject",e,r),F="transform",r=N(e).transformCache[a];else{if(f.Hooks.registered[a]){var T=a,y=f.Hooks.getRoot(a);m=m||f.getPropertyValue(e,y),r=f.Hooks.injectValue(T,r,m),a=y}if(f.Normalizations.registered[a]&&(r=f.Normalizations.registered[a]("inject",e,r),a=f.Normalizations.registered[a]("name",e)),F=f.Names.prefixCheck(a)[0],k<=8)try{e.style[F]=r}catch{c.debug&&console.log("Browser does not support ["+r+"] for ["+F+"]")}else{var E=N(e);E&&E.isSVG&&f.Names.SVGAttribute(a)?e.setAttribute(a,r):e.style[F]=r}c.debug>=2&&console.log("Set "+a+" ("+F+"): "+r)}return[F,r]},flushTransformCache:function(e){var a="",r=N(e);if((k||c.State.isAndroid&&!c.State.isChrome)&&r&&r.isSVG){var m=function(y){return parseFloat(f.getPropertyValue(e,y))},x={translate:[m("translateX"),m("translateY")],skewX:[m("skewX")],skewY:[m("skewY")],scale:m("scale")!==1?[m("scale"),m("scale")]:[m("scaleX"),m("scaleY")],rotate:[m("rotateZ"),0,0]};d.each(N(e).transformCache,function(y){/^translate/i.test(y)?y="translate":/^scale/i.test(y)?y="scale":/^rotate/i.test(y)&&(y="rotate"),x[y]&&(a+=y+"("+x[y].join(" ")+") ",delete x[y])})}else{var F,T;d.each(N(e).transformCache,function(y){if(F=N(e).transformCache[y],y==="transformPerspective")return T=F,!0;k===9&&y==="rotateZ"&&(y="rotate"),a+=y+F+" "}),T&&(a="perspective"+T+" "+a)}f.setPropertyValue(e,"transform",a)}};f.Hooks.register(),f.Normalizations.register(),c.hook=function(e,a,r){var m;return e=u(e),d.each(e,function(x,F){if(N(F)===s&&c.init(F),r===s)m===s&&(m=f.getPropertyValue(F,a));else{var T=f.setPropertyValue(F,a,r);T[0]==="transform"&&c.CSS.flushTransformCache(F),m=T}}),m};var Me=function(){var e;function a(){return m?I.promise||null:x}var r=arguments[0]&&(arguments[0].p||d.isPlainObject(arguments[0].properties)&&!arguments[0].properties.names||S.isString(arguments[0].properties)),m,x,F,T,y,E;S.isWrapped(this)?(m=!1,F=0,T=this,x=this):(m=!0,F=1,T=r?arguments[0].elements||arguments[0].e:arguments[0]);var I={promise:null,resolver:null,rejecter:null};if(m&&c.Promise&&(I.promise=new c.Promise(function(M,H){I.resolver=M,I.rejecter=H})),r?(y=arguments[0].properties||arguments[0].p,E=arguments[0].options||arguments[0].o):(y=arguments[F],E=arguments[F+1]),T=u(T),!T){I.promise&&(!y||!E||E.promiseRejectEmpty!==!1?I.rejecter():I.resolver());return}var z=T.length,D=0;if(!/^(stop|finish|finishAll|pause|resume)$/i.test(y)&&!d.isPlainObject(E)){var U=F+1;E={};for(var W=U;W<arguments.length;W++)!S.isArray(arguments[W])&&(/^(fast|normal|slow)$/i.test(arguments[W])||/^\d/.test(arguments[W]))?E.duration=arguments[W]:S.isString(arguments[W])||S.isArray(arguments[W])?E.easing=arguments[W]:S.isFunction(arguments[W])&&(E.complete=arguments[W])}var re;switch(y){case"scroll":re="scroll";break;case"reverse":re="reverse";break;case"pause":var Z=new Date().getTime();return d.each(T,function(M,H){G(H,Z)}),d.each(c.State.calls,function(M,H){var P=!1;H&&d.each(H[1],function(se,ae){var he=E===s?"":E;if(he!==!0&&H[2].queue!==he&&!(E===s&&H[2].queue===!1))return!0;if(d.each(T,function(_e,Ce){if(Ce===ae)return H[5]={resume:!1},P=!0,!1}),P)return!1})}),a();case"resume":return d.each(T,function(M,H){ie(H)}),d.each(c.State.calls,function(M,H){var P=!1;H&&d.each(H[1],function(se,ae){var he=E===s?"":E;if(he!==!0&&H[2].queue!==he&&!(E===s&&H[2].queue===!1)||!H[5])return!0;if(d.each(T,function(_e,Ce){if(Ce===ae)return H[5].resume=!0,P=!0,!1}),P)return!1})}),a();case"finish":case"finishAll":case"stop":d.each(T,function(M,H){N(H)&&N(H).delayTimer&&(clearTimeout(N(H).delayTimer.setTimeout),N(H).delayTimer.next&&N(H).delayTimer.next(),delete N(H).delayTimer),y==="finishAll"&&(E===!0||S.isString(E))&&(d.each(d.queue(H,S.isString(E)?E:""),function(P,se){S.isFunction(se)&&se()}),d.queue(H,S.isString(E)?E:"",[]))});var g=[];return d.each(c.State.calls,function(M,H){H&&d.each(H[1],function(P,se){var ae=E===s?"":E;if(ae!==!0&&H[2].queue!==ae&&!(E===s&&H[2].queue===!1))return!0;d.each(T,function(he,_e){if(_e===se)if((E===!0||S.isString(E))&&(d.each(d.queue(_e,S.isString(E)?E:""),function(We,te){S.isFunction(te)&&te(null,!0)}),d.queue(_e,S.isString(E)?E:"",[])),y==="stop"){var Ce=N(_e);Ce&&Ce.tweensContainer&&(ae===!0||ae==="")&&d.each(Ce.tweensContainer,function(We,te){te.endValue=te.currentValue}),g.push(M)}else(y==="finish"||y==="finishAll")&&(H[2].duration=1)})})}),y==="stop"&&(d.each(g,function(M,H){ft(H,!0)}),I.promise&&I.resolver(T)),a();default:if(d.isPlainObject(y)&&!S.isEmptyObject(y))re="start";else if(S.isString(y)&&c.Redirects[y]){e=d.extend({},E);var q=e.duration,ee=e.delay||0;return e.backwards===!0&&(T=d.extend(!0,[],T).reverse()),d.each(T,function(M,H){parseFloat(e.stagger)?e.delay=ee+parseFloat(e.stagger)*M:S.isFunction(e.stagger)&&(e.delay=ee+e.stagger.call(H,M,z)),e.drag&&(e.duration=parseFloat(q)||(/^(callout|transition)/.test(y)?1e3:O),e.duration=Math.max(e.duration*(e.backwards?1-M/z:(M+1)/z),e.duration*.75,200)),c.Redirects[y].call(H,H,e||{},M,z,T,I.promise?I:s)}),a()}else{var pe="Velocity: First argument ("+y+") was not a property map, a known action, or a registered redirect. Aborting.";return I.promise?I.rejecter(new Error(pe)):t.console&&console.log(pe),a()}}var Y={lastParent:null,lastPosition:null,lastFontSize:null,lastPercentToPxWidth:null,lastPercentToPxHeight:null,lastEmToPx:null,remToPx:null,vwToPx:null,vhToPx:null},Pe=[];function Ne(M,H){var P=d.extend({},c.defaults,E),se={},ae;switch(N(M)===s&&c.init(M),parseFloat(P.delay)&&P.queue!==!1&&d.queue(M,P.queue,function(We,te){if(te===!0)return!0;c.velocityQueueEntryFlag=!0;var me=c.State.delayedElements.count++;c.State.delayedElements[me]=M;var Be=function(tt){return function(){c.State.delayedElements[tt]=!1,We()}}(me);N(M).delayBegin=new Date().getTime(),N(M).delay=parseFloat(P.delay),N(M).delayTimer={setTimeout:setTimeout(We,parseFloat(P.delay)),next:Be}}),P.duration.toString().toLowerCase()){case"fast":P.duration=200;break;case"normal":P.duration=O;break;case"slow":P.duration=600;break;default:P.duration=parseFloat(P.duration)||1}c.mock!==!1&&(c.mock===!0?P.duration=P.delay=1:(P.duration*=parseFloat(c.mock)||1,P.delay*=parseFloat(c.mock)||1)),P.easing=be(P.easing,P.duration),P.begin&&!S.isFunction(P.begin)&&(P.begin=null),P.progress&&!S.isFunction(P.progress)&&(P.progress=null),P.complete&&!S.isFunction(P.complete)&&(P.complete=null),P.display!==s&&P.display!==null&&(P.display=P.display.toString().toLowerCase(),P.display==="auto"&&(P.display=c.CSS.Values.getDisplayType(M))),P.visibility!==s&&P.visibility!==null&&(P.visibility=P.visibility.toString().toLowerCase()),P.mobileHA=P.mobileHA&&c.State.isMobile&&!c.State.isGingerbread;function he(We){var te,me;if(P.begin&&D===0)try{P.begin.call(T,T)}catch(v){setTimeout(function(){throw v},1)}if(re==="scroll"){var Be=/^x$/i.test(P.axis)?"Left":"Top",tt=parseFloat(P.offset)||0,Qe,vt,bt;P.container?S.isWrapped(P.container)||S.isNode(P.container)?(P.container=P.container[0]||P.container,Qe=P.container["scroll"+Be],bt=Qe+d(M).position()[Be.toLowerCase()]+tt):P.container=null:(Qe=c.State.scrollAnchor[c.State["scrollProperty"+Be]],vt=c.State.scrollAnchor[c.State["scrollProperty"+(Be==="Left"?"Top":"Left")]],bt=d(M).offset()[Be.toLowerCase()]+tt),se={scroll:{rootPropertyValue:!1,startValue:Qe,currentValue:Qe,endValue:bt,unitType:"",easing:P.easing,scrollData:{container:P.container,direction:Be,alternateValue:vt}},element:M},c.debug&&console.log("tweensContainer (scroll): ",se.scroll,M)}else if(re==="reverse"){if(te=N(M),!te)return;if(te.tweensContainer){te.opts.display==="none"&&(te.opts.display="auto"),te.opts.visibility==="hidden"&&(te.opts.visibility="visible"),te.opts.loop=!1,te.opts.begin=null,te.opts.complete=null,E.easing||delete P.easing,E.duration||delete P.duration,P=d.extend({},te.opts,P),me=d.extend(!0,{},te?te.tweensContainer:null);for(var je in me)if(me.hasOwnProperty(je)&&je!=="element"){var Tt=me[je].startValue;me[je].startValue=me[je].currentValue=me[je].endValue,me[je].endValue=Tt,S.isEmptyObject(E)||(me[je].easing=P.easing),c.debug&&console.log("reverse tweensContainer ("+je+"): "+JSON.stringify(me[je]),M)}se=me}else{d.dequeue(M,P.queue);return}}else if(re==="start"){te=N(M),te&&te.tweensContainer&&te.isAnimating===!0&&(me=te.tweensContainer);var At=function(v,He){var ye,Ee,K;return S.isFunction(v)&&(v=v.call(M,H,z)),S.isArray(v)?(ye=v[0],!S.isArray(v[1])&&/^[\d-]/.test(v[1])||S.isFunction(v[1])||f.RegEx.isHex.test(v[1])?K=v[1]:S.isString(v[1])&&!f.RegEx.isHex.test(v[1])&&c.Easings[v[1]]||S.isArray(v[1])?(Ee=He?v[1]:be(v[1],P.duration),K=v[2]):K=v[1]||v[2]):ye=v,He||(Ee=Ee||P.easing),S.isFunction(ye)&&(ye=ye.call(M,H,z)),S.isFunction(K)&&(K=K.call(M,H,z)),[ye||0,Ee,K]},st=function(v,He){var ye=f.Hooks.getRoot(v),Ee=!1,K=He[0],ot=He[1],ne=He[2],le;if((!te||!te.isSVG)&&ye!=="tween"&&f.Names.prefixCheck(ye)[1]===!1&&f.Normalizations.registered[ye]===s){c.debug&&console.log("Skipping ["+ye+"] due to a lack of browser support.");return}(P.display!==s&&P.display!==null&&P.display!=="none"||P.visibility!==s&&P.visibility!=="hidden")&&/opacity|filter/.test(v)&&!ne&&K!==0&&(ne=0),P._cacheValues&&me&&me[v]?(ne===s&&(ne=me[v].endValue+me[v].unitType),Ee=te.rootPropertyValueCache[ye]):f.Hooks.registered[v]?ne===s?(Ee=f.getPropertyValue(M,ye),ne=f.getPropertyValue(M,v,Ee)):Ee=f.Hooks.templates[ye][1]:ne===s&&(ne=f.getPropertyValue(M,v));var ge,de,ue,Ve=!1,Ye=function(ve,we){var Ke,Xe;return Xe=(we||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(Fe){return Ke=Fe,""}),Ke||(Ke=f.Values.getUnitType(ve)),[Xe,Ke]};if(ne!==K&&S.isString(ne)&&S.isString(K)){le="";var xe=0,Te=0,Se=[],Ze=[],R=0,X=0,oe=0;for(ne=f.Hooks.fixColors(ne),K=f.Hooks.fixColors(K);xe<ne.length&&Te<K.length;){var B=ne[xe],De=K[Te];if(/[\d\.-]/.test(B)&&/[\d\.-]/.test(De)){for(var Ge=B,it=De,gt=".",Je=".";++xe<ne.length;){if(B=ne[xe],B===gt)gt="..";else if(!/\d/.test(B))break;Ge+=B}for(;++Te<K.length;){if(De=K[Te],De===Je)Je="..";else if(!/\d/.test(De))break;it+=De}var Re=f.Hooks.getUnit(ne,xe),rt=f.Hooks.getUnit(K,Te);if(xe+=Re.length,Te+=rt.length,Re===rt)Ge===it?le+=Ge+Re:(le+="{"+Se.length+(X?"!":"")+"}"+Re,Se.push(parseFloat(Ge)),Ze.push(parseFloat(it)));else{var h=parseFloat(Ge),L=parseFloat(it);le+=(R<5?"calc":"")+"("+(h?"{"+Se.length+(X?"!":"")+"}":"0")+Re+" + "+(L?"{"+(Se.length+(h?1:0))+(X?"!":"")+"}":"0")+rt+")",h&&(Se.push(h),Ze.push(0)),L&&(Se.push(0),Ze.push(L))}}else if(B===De)le+=B,xe++,Te++,R===0&&B==="c"||R===1&&B==="a"||R===2&&B==="l"||R===3&&B==="c"||R>=4&&B==="("?R++:(R&&R<5||R>=4&&B===")"&&--R<5)&&(R=0),X===0&&B==="r"||X===1&&B==="g"||X===2&&B==="b"||X===3&&B==="a"||X>=3&&B==="("?(X===3&&B==="a"&&(oe=1),X++):oe&&B===","?++oe>3&&(X=oe=0):(oe&&X<(oe?5:4)||X>=(oe?4:3)&&B===")"&&--X<(oe?5:4))&&(X=oe=0);else{R=0;break}}(xe!==ne.length||Te!==K.length)&&(c.debug&&console.error('Trying to pattern match mis-matched strings ["'+K+'", "'+ne+'"]'),le=s),le&&(Se.length?(c.debug&&console.log('Pattern found "'+le+'" -> ',Se,Ze,"["+ne+","+K+"]"),ne=Se,K=Ze,de=ue=""):le=s)}le||(ge=Ye(v,ne),ne=ge[0],ue=ge[1],ge=Ye(v,K),K=ge[0].replace(/^([+-\/*])=/,function(ve,we){return Ve=we,""}),de=ge[1],ne=parseFloat(ne)||0,K=parseFloat(K)||0,de==="%"&&(/^(fontSize|lineHeight)$/.test(v)?(K=K/100,de="em"):/^scale/.test(v)?(K=K/100,de=""):/(Red|Green|Blue)$/i.test(v)&&(K=K/100*255,de="")));var j=function(){var ve={myParent:M.parentNode||w.body,position:f.getPropertyValue(M,"position"),fontSize:f.getPropertyValue(M,"fontSize")},we=ve.position===Y.lastPosition&&ve.myParent===Y.lastParent,Ke=ve.fontSize===Y.lastFontSize;Y.lastParent=ve.myParent,Y.lastPosition=ve.position,Y.lastFontSize=ve.fontSize;var Xe=100,Fe={};if(!Ke||!we){var Ie=te&&te.isSVG?w.createElementNS("http://www.w3.org/2000/svg","rect"):w.createElement("div");c.init(Ie),ve.myParent.appendChild(Ie),d.each(["overflow","overflowX","overflowY"],function(Tn,Nt){c.CSS.setPropertyValue(Ie,Nt,"hidden")}),c.CSS.setPropertyValue(Ie,"position",ve.position),c.CSS.setPropertyValue(Ie,"fontSize",ve.fontSize),c.CSS.setPropertyValue(Ie,"boxSizing","content-box"),d.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(Tn,Nt){c.CSS.setPropertyValue(Ie,Nt,Xe+"%")}),c.CSS.setPropertyValue(Ie,"paddingLeft",Xe+"em"),Fe.percentToPxWidth=Y.lastPercentToPxWidth=(parseFloat(f.getPropertyValue(Ie,"width",null,!0))||1)/Xe,Fe.percentToPxHeight=Y.lastPercentToPxHeight=(parseFloat(f.getPropertyValue(Ie,"height",null,!0))||1)/Xe,Fe.emToPx=Y.lastEmToPx=(parseFloat(f.getPropertyValue(Ie,"paddingLeft"))||1)/Xe,ve.myParent.removeChild(Ie)}else Fe.emToPx=Y.lastEmToPx,Fe.percentToPxWidth=Y.lastPercentToPxWidth,Fe.percentToPxHeight=Y.lastPercentToPxHeight;return Y.remToPx===null&&(Y.remToPx=parseFloat(f.getPropertyValue(w.body,"fontSize"))||16),Y.vwToPx===null&&(Y.vwToPx=parseFloat(t.innerWidth)/100,Y.vhToPx=parseFloat(t.innerHeight)/100),Fe.remToPx=Y.remToPx,Fe.vwToPx=Y.vwToPx,Fe.vhToPx=Y.vhToPx,c.debug>=1&&console.log("Unit ratios: "+JSON.stringify(Fe),M),Fe};if(/[\/*]/.test(Ve))de=ue;else if(ue!==de&&ne!==0)if(K===0)de=ue;else{ae=ae||j();var J=/margin|padding|left|right|width|text|word|letter/i.test(v)||/X$/.test(v)||v==="x"?"x":"y";switch(ue){case"%":ne*=J==="x"?ae.percentToPxWidth:ae.percentToPxHeight;break;case"px":break;default:ne*=ae[ue+"ToPx"]}switch(de){case"%":ne*=1/(J==="x"?ae.percentToPxWidth:ae.percentToPxHeight);break;case"px":break;default:ne*=1/ae[de+"ToPx"]}}switch(Ve){case"+":K=ne+K;break;case"-":K=ne-K;break;case"*":K=ne*K;break;case"/":K=ne/K;break}se[v]={rootPropertyValue:Ee,startValue:ne,currentValue:ne,endValue:K,unitType:de,easing:ot},le&&(se[v].pattern=le),c.debug&&console.log("tweensContainer ("+v+"): "+JSON.stringify(se[v]),M)};for(var dt in y)if(y.hasOwnProperty(dt)){var pt=f.Names.camelCase(dt),ht=At(y[dt]);if(_(f.Lists.colors)){var kt=ht[0],_t=ht[1],Pt=ht[2];if(f.RegEx.isHex.test(kt)){for(var wt=["Red","Green","Blue"],nt=f.Values.hexToRgb(kt),Ct=Pt?f.Values.hexToRgb(Pt):s,at=0;at<wt.length;at++){var yt=[nt[at]];_t&&yt.push(_t),Ct!==s&&yt.push(Ct[at]),st(pt+wt[at],yt)}continue}}st(pt,ht)}se.element=M}se.element&&(f.Values.addClass(M,"velocity-animating"),Pe.push(se),te=N(M),te&&(P.queue===""&&(te.tweensContainer=se,te.opts=P),te.isAnimating=!0),D===z-1?(c.State.calls.push([Pe,T,P,null,I.resolver,null,0]),c.State.isTicking===!1&&(c.State.isTicking=!0,Ae())):D++)}if(P.queue===!1)if(P.delay){var _e=c.State.delayedElements.count++;c.State.delayedElements[_e]=M;var Ce=function(We){return function(){c.State.delayedElements[We]=!1,he()}}(_e);N(M).delayBegin=new Date().getTime(),N(M).delay=parseFloat(P.delay),N(M).delayTimer={setTimeout:setTimeout(he,parseFloat(P.delay)),next:Ce}}else he();else d.queue(M,P.queue,function(We,te){if(te===!0)return I.promise&&I.resolver(T),!0;c.velocityQueueEntryFlag=!0,he()});(P.queue===""||P.queue==="fx")&&d.queue(M)[0]!=="inprogress"&&d.dequeue(M)}d.each(T,function(M,H){S.isNode(H)&&Ne(H,M)}),e=d.extend({},c.defaults,E),e.loop=parseInt(e.loop,10);var et=e.loop*2-1;if(e.loop)for(var Oe=0;Oe<et;Oe++){var ke={delay:e.delay,progress:e.progress};Oe===et-1&&(ke.display=e.display,ke.visibility=e.visibility,ke.complete=e.complete),Me(T,"reverse",ke)}return a()};c=d.extend(Me,c),c.animate=Me;var ze=t.requestAnimationFrame||C;if(!c.State.isMobile&&w.hidden!==s){var qe=function(){w.hidden?(ze=function(e){return setTimeout(function(){e(!0)},16)},Ae()):ze=t.requestAnimationFrame||C};qe(),w.addEventListener("visibilitychange",qe)}function Ae(e){if(e){var a=c.timestamp&&e!==!0?e:o.now(),r=c.State.calls.length;r>1e4&&(c.State.calls=p(c.State.calls),r=c.State.calls.length);for(var m=0;m<r;m++)if(c.State.calls[m]){var x=c.State.calls[m],F=x[0],T=x[2],y=x[3],E=!y,I=null,z=x[5],D=x[6];if(y||(y=c.State.calls[m][3]=a-16),z)if(z.resume===!0)y=x[3]=Math.round(a-D-16),x[5]=null;else continue;D=x[6]=a-y;for(var U=Math.min(D/T.duration,1),W=0,re=F.length;W<re;W++){var Z=F[W],g=Z.element;if(N(g)){var q=!1;if(T.display!==s&&T.display!==null&&T.display!=="none"){if(T.display==="flex"){var ee=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];d.each(ee,function(P,se){f.setPropertyValue(g,"display",se)})}f.setPropertyValue(g,"display",T.display)}T.visibility!==s&&T.visibility!=="hidden"&&f.setPropertyValue(g,"visibility",T.visibility);for(var pe in Z)if(Z.hasOwnProperty(pe)&&pe!=="element"){var Y=Z[pe],Pe,Ne=S.isString(Y.easing)?c.Easings[Y.easing]:Y.easing;if(S.isString(Y.pattern)){var et=U===1?function(P,se,ae){var he=Y.endValue[se];return ae?Math.round(he):he}:function(P,se,ae){var he=Y.startValue[se],_e=Y.endValue[se]-he,Ce=he+_e*Ne(U,T,_e);return ae?Math.round(Ce):Ce};Pe=Y.pattern.replace(/{(\d+)(!)?}/g,et)}else if(U===1)Pe=Y.endValue;else{var Oe=Y.endValue-Y.startValue;Pe=Y.startValue+Oe*Ne(U,T,Oe)}if(!E&&Pe===Y.currentValue)continue;if(Y.currentValue=Pe,pe==="tween")I=Pe;else{var ke;if(f.Hooks.registered[pe]){ke=f.Hooks.getRoot(pe);var M=N(g).rootPropertyValueCache[ke];M&&(Y.rootPropertyValue=M)}var H=f.setPropertyValue(g,pe,Y.currentValue+(k<9&&parseFloat(Pe)===0?"":Y.unitType),Y.rootPropertyValue,Y.scrollData);f.Hooks.registered[pe]&&(f.Normalizations.registered[ke]?N(g).rootPropertyValueCache[ke]=f.Normalizations.registered[ke]("extract",null,H[1]):N(g).rootPropertyValueCache[ke]=H[1]),H[0]==="transform"&&(q=!0)}}T.mobileHA&&N(g).transformCache.translate3d===s&&(N(g).transformCache.translate3d="(0px, 0px, 0px)",q=!0),q&&f.flushTransformCache(g)}}T.display!==s&&T.display!=="none"&&(c.State.calls[m][2].display=!1),T.visibility!==s&&T.visibility!=="hidden"&&(c.State.calls[m][2].visibility=!1),T.progress&&T.progress.call(x[1],x[1],U,Math.max(0,y+T.duration-a),y,I),U===1&&ft(m)}}c.State.isTicking&&ze(Ae)}function ft(e,a){if(!c.State.calls[e])return!1;for(var r=c.State.calls[e][0],m=c.State.calls[e][1],x=c.State.calls[e][2],F=c.State.calls[e][4],T=!1,y=0,E=r.length;y<E;y++){var I=r[y].element;!a&&!x.loop&&(x.display==="none"&&f.setPropertyValue(I,"display",x.display),x.visibility==="hidden"&&f.setPropertyValue(I,"visibility",x.visibility));var z=N(I);if(x.loop!==!0&&(d.queue(I)[1]===s||!/\.velocityQueueEntryFlag/i.test(d.queue(I)[1]))&&z){z.isAnimating=!1,z.rootPropertyValueCache={};var D=!1;d.each(f.Lists.transforms3D,function(re,Z){var g=/^scale/.test(Z)?1:0,q=z.transformCache[Z];z.transformCache[Z]!==s&&new RegExp("^\\("+g+"[^.]").test(q)&&(D=!0,delete z.transformCache[Z])}),x.mobileHA&&(D=!0,delete z.transformCache.translate3d),D&&f.flushTransformCache(I),f.Values.removeClass(I,"velocity-animating")}if(!a&&x.complete&&!x.loop&&y===E-1)try{x.complete.call(m,m)}catch(re){setTimeout(function(){throw re},1)}F&&x.loop!==!0&&F(m),z&&x.loop===!0&&!a&&(d.each(z.tweensContainer,function(re,Z){if(/^rotate/.test(re)&&(parseFloat(Z.startValue)-parseFloat(Z.endValue))%360===0){var g=Z.startValue;Z.startValue=Z.endValue,Z.endValue=g}/^backgroundPosition/.test(re)&&parseFloat(Z.endValue)===100&&Z.unitType==="%"&&(Z.endValue=0,Z.startValue=100)}),c(I,"reverse",{loop:!0,delay:x.delay})),x.queue!==!1&&d.dequeue(I,x.queue)}c.State.calls[e]=!1;for(var U=0,W=c.State.calls.length;U<W;U++)if(c.State.calls[U]!==!1){T=!0;break}T===!1&&(c.State.isTicking=!1,delete c.State.calls,c.State.calls=[])}return n.Velocity=c,n!==t&&(n.fn.velocity=Me,n.fn.velocity.defaults=c.defaults),d.each(["Down","Up"],function(e,a){c.Redirects["slide"+a]=function(r,m,x,F,T,y){var E=d.extend({},m),I=E.begin,z=E.complete,D={},U={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""};E.display===s&&(E.display=a==="Down"?c.CSS.Values.getDisplayType(r)==="inline"?"inline-block":"block":"none"),E.begin=function(){x===0&&I&&I.call(T,T);for(var W in U)if(U.hasOwnProperty(W)){D[W]=r.style[W];var re=f.getPropertyValue(r,W);U[W]=a==="Down"?[re,0]:[0,re]}D.overflow=r.style.overflow,r.style.overflow="hidden"},E.complete=function(){for(var W in D)D.hasOwnProperty(W)&&(r.style[W]=D[W]);x===F-1&&(z&&z.call(T,T),y&&y.resolver(T))},c(r,U,E)}}),d.each(["In","Out"],function(e,a){c.Redirects["fade"+a]=function(r,m,x,F,T,y){var E=d.extend({},m),I=E.complete,z={opacity:a==="In"?1:0};x!==0&&(E.begin=null),x!==F-1?E.complete=null:E.complete=function(){I&&I.call(T,T),y&&y.resolver(T)},E.display===s&&(E.display=a==="In"?"auto":"none"),c(this,z,E)}}),c}(window.jQuery||window.Zepto||window,window,window?window.document:void 0)})})(ln);/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */function Lt(l,n){if(n===void 0)return;const t=i(l).siblings('source[type="image/webp"]'),w=i(l).siblings('source[type="image/avif"]');n.webp!==void 0&&t.length&&t.attr("srcset",n.webp),n.avif!==void 0&&w.length&&w.attr("srcset",n.avif)}/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */class qt{init(){i(".js-product-miniature").each((n,t)=>{if(i(t).find(".color").length>5){let w=0;i(t).find(".color").each((s,k)=>{s>4&&(i(k).hide(),w+=1)}),i(t).find(".js-count").append(`+${w}`)}})}}/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */i(document).ready(()=>{const l=s=>{const C=i(".js-qv-product-images"),o=i(".js-qv-product-images li img").height()+20,p=C.position().top;C.velocity({translateY:s==="up"?p+o:p-o},()=>{C.position().top>=0?i(".arrow-up").css("opacity",".2"):C.position().top+C.height()<=i(".js-qv-mask").height()&&i(".arrow-down").css("opacity",".2")})},n=s=>{const C=i(b.themeSelectors.product.arrows),o=s.find(".js-qv-product-images");i(b.themeSelectors.product.thumb).on("click",p=>{i(b.themeSelectors.product.thumb).hasClass("selected")&&i(b.themeSelectors.product.thumb).removeClass("selected"),i(p.currentTarget).addClass("selected"),i(b.themeSelectors.product.cover).attr("src",i(p.target).data("image-large-src")),i(b.themeSelectors.product.cover).attr("alt",i(p.target).attr("alt")),i(b.themeSelectors.product.cover).attr("title",i(p.target).attr("title")),Lt(i(b.themeSelectors.product.cover),i(p.target).data("image-large-sources"))}),o.find("li").length<=4?C.hide():C.on("click",p=>{i(p.target).hasClass("arrow-up")&&i(".js-qv-product-images").position().top<0?(l("up"),i(b.themeSelectors.arrowDown).css("opacity","1")):i(p.target).hasClass("arrow-down")&&o.position().top+o.height()>i(".js-qv-mask").height()&&(l("down"),i(b.themeSelectors.arrowUp).css("opacity","1"))}),s.find(b.selectors.quantityWanted).TouchSpin({verticalbuttons:!0,verticalupclass:"material-icons touchspin-up",verticaldownclass:"material-icons touchspin-down",buttondown_class:"btn btn-touchspin js-touchspin",buttonup_class:"btn btn-touchspin js-touchspin",min:1,max:1e6}),i(b.themeSelectors.touchspin).off("touchstart.touchspin")};b.on("clickQuickView",s=>{const k={action:"quickview",id_product:s.dataset.idProduct,id_product_attribute:s.dataset.idProductAttribute};i.post(b.urls.pages.product,k,null,"json").then(C=>{i("body").append(C.quickview_html);const o=i(`#quickview-modal-${C.product.id}-${C.product.id_product_attribute}`);o.modal("show"),n(o),o.on("hidden.bs.modal",()=>{o.remove()})}).fail(C=>{b.emit("handleError",{eventType:"clickQuickView",resp:C})})}),i("body").on("click",b.themeSelectors.listing.searchFilterToggler,()=>{i(b.themeSelectors.listing.searchFiltersWrapper).removeClass("hidden-sm-down"),i(b.themeSelectors.contentWrapper).addClass("hidden-sm-down"),i(b.themeSelectors.footer).addClass("hidden-sm-down")}),i(`${b.themeSelectors.listing.searchFilterControls} ${b.themeSelectors.clear}`).on("click",()=>{i(b.themeSelectors.listing.searchFiltersWrapper).addClass("hidden-sm-down"),i(b.themeSelectors.contentWrapper).removeClass("hidden-sm-down"),i(b.themeSelectors.footer).removeClass("hidden-sm-down")}),i(`${b.themeSelectors.listing.searchFilterControls} .ok`).on("click",()=>{i(b.themeSelectors.listing.searchFiltersWrapper).addClass("hidden-sm-down"),i(b.themeSelectors.contentWrapper).removeClass("hidden-sm-down"),i(b.themeSelectors.footer).removeClass("hidden-sm-down")});const t=function(s){if(s.target.dataset.searchUrl!==void 0)return s.target.dataset.searchUrl;if(i(s.target).parent()[0].dataset.searchUrl===void 0)throw new Error("Can not parse search URL");return i(s.target).parent()[0].dataset.searchUrl};function w(s){i(b.themeSelectors.listing.searchFilters).replaceWith(s.rendered_facets),i(b.themeSelectors.listing.activeSearchFilters).replaceWith(s.rendered_active_filters),i(b.themeSelectors.listing.listTop).replaceWith(s.rendered_products_top);const k=i(s.rendered_products),C=i(b.themeSelectors.listing.product);C.length>0?C.removeClass().addClass(C.first().attr("class")):C.removeClass().addClass(k.first().attr("class")),i(b.themeSelectors.listing.list).replaceWith(k),i(b.themeSelectors.listing.listBottom).replaceWith(s.rendered_products_bottom),s.rendered_products_header&&i(b.themeSelectors.listing.listHeader).replaceWith(s.rendered_products_header),new qt().init()}i("body").on("change",`${b.themeSelectors.listing.searchFilters} input[data-search-url]`,s=>{b.emit("updateFacets",t(s))}),i("body").on("click",b.themeSelectors.listing.searchFiltersClearAll,s=>{b.emit("updateFacets",t(s))}),i("body").on("click",b.themeSelectors.listing.searchLink,s=>{s.preventDefault(),b.emit("updateFacets",i(s.target).closest("a").get(0).href)}),window.addEventListener("popstate",s=>{s.state&&s.state.current_url&&(window.location.href=s.state.current_url)}),i("body").on("change",`${b.themeSelectors.listing.searchFilters} select`,s=>{const k=i(s.target).closest("form");b.emit("updateFacets",`?${k.serialize()}`)}),b.on("updateProductList",s=>{w(s),window.scrollTo(0,0)})});/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */class Ht{init(){const t=i(".js-modal-arrows"),w=i(".js-modal-product-images");i("body").on("click",".js-modal-thumb",s=>{i(".js-modal-thumb").hasClass("selected")&&i(".js-modal-thumb").removeClass("selected"),i(s.currentTarget).addClass("selected"),i(prestashop.themeSelectors.product.modalProductCover).attr("src",i(s.target).data("image-large-src")),i(prestashop.themeSelectors.product.modalProductCover).attr("title",i(s.target).attr("title")),i(prestashop.themeSelectors.product.modalProductCover).attr("alt",i(s.target).attr("alt"))}).on("click","aside#thumbnails",s=>{s.target.id==="thumbnails"&&i("#product-modal").modal("hide")}),i(".js-modal-product-images li").length<=5?t.css("opacity",".2"):t.on("click",s=>{i(s.target).hasClass("arrow-up")&&w.position().top<0?(this.move("up"),i(".js-modal-arrow-down").css("opacity","1")):i(s.target).hasClass("arrow-down")&&w.position().top+w.height()>i(".js-modal-mask").height()&&(this.move("down"),i(".js-modal-arrow-up").css("opacity","1"))})}move(n){const w=i(".js-modal-product-images"),s=i(".js-modal-product-images li img").height()+10,k=w.position().top;w.velocity({translateY:n==="up"?k+s:k-s},()=>{w.position().top>=0?i(".js-modal-arrow-up").css("opacity",".2"):w.position().top+w.height()<=i(".js-modal-mask").height()&&i(".js-modal-arrow-down").css("opacity",".2")})}}/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */i(document).ready(()=>{function l(){const k=i(b.themeSelectors.product.cover),C=i(b.themeSelectors.product.modalProductCover);let o=i(b.themeSelectors.product.selected);const p=(Q,_)=>{const u=_.find(b.themeSelectors.product.thumb);Q.removeClass("selected"),u.addClass("selected"),C.prop("src",u.data("image-large-src")),k.prop("src",u.data("image-medium-src")),k.attr("title",u.attr("title")),C.attr("title",u.attr("title")),k.attr("alt",u.attr("alt")),C.attr("alt",u.attr("alt")),Lt(k,u.data("image-medium-sources")),Lt(C,u.data("image-large-sources"))};i(b.themeSelectors.product.thumb).on("click",Q=>{o=i(b.themeSelectors.product.selected),p(o,i(Q.target).closest(b.themeSelectors.product.thumbContainer))}),k.swipe({swipe:(Q,_)=>{o=i(b.themeSelectors.product.selected);const u=o.closest(b.themeSelectors.product.thumbContainer);_==="right"?u.prev().length>0?p(o,u.prev()):u.next().length>0&&p(o,u.next()):_==="left"&&(u.next().length>0?p(o,u.next()):u.prev().length>0&&p(o,u.prev()))},allowPageScroll:"vertical"})}function n(){i("#main .js-qv-product-images li").length>2?(i("#main .js-qv-mask").addClass("scroll"),i(".scroll-box-arrows").addClass("scroll"),i("#main .js-qv-mask").scrollbox({direction:"h",distance:113,autoPlay:!1}),i(".scroll-box-arrows .left").click(()=>{i("#main .js-qv-mask").trigger("backward")}),i(".scroll-box-arrows .right").click(()=>{i("#main .js-qv-mask").trigger("forward")})):(i("#main .js-qv-mask").removeClass("scroll"),i(".scroll-box-arrows").removeClass("scroll"))}function t(){i(b.themeSelectors.fileInput).on("change",k=>{const C=i(k.currentTarget)[0],o=C?C.files[0]:null;C&&o&&i(C).prev().text(o.name)})}function w(){const k=i(b.selectors.quantityWanted);k.TouchSpin({verticalbuttons:!0,verticalupclass:"material-icons touchspin-up",verticaldownclass:"material-icons touchspin-down",buttondown_class:"btn btn-touchspin js-touchspin",buttonup_class:"btn btn-touchspin js-touchspin",min:parseInt(k.attr("min"),10),max:1e6}),i(b.themeSelectors.touchspin).off("touchstart.touchspin"),k.on("focusout",()=>{(k.val()===""||k.val()<k.attr("min"))&&(k.val(k.attr("min")),k.trigger("change"))}),i("body").on("change keyup",b.selectors.quantityWanted,C=>{k.val()!==""&&(i(C.currentTarget).trigger("touchspin.stopspin"),b.emit("updateProduct",{eventType:"updatedProductQuantity",event:C}))})}function s(){const k=i(b.themeSelectors.product.tabs);k.on("show.bs.tab",C=>{const o=i(C.target);o.addClass(b.themeSelectors.product.activeNavClass),i(o.attr("href")).addClass(b.themeSelectors.product.activeTabClass)}),k.on("hide.bs.tab",C=>{const o=i(C.target);o.removeClass(b.themeSelectors.product.activeNavClass),i(o.attr("href")).removeClass(b.themeSelectors.product.activeTabClass)})}w(),t(),l(),n(),s(),b.on("updatedProduct",k=>{if(t(),l(),k&&k.product_minimal_quantity){const o=parseInt(k.product_minimal_quantity,10),p=b.selectors.quantityWanted;i(p).trigger("touchspin.updatesettings",{min:o})}n(),i(i(b.themeSelectors.product.activeTabs).attr("href")).addClass("active").removeClass("fade"),i(b.themeSelectors.product.imagesModal).replaceWith(k.product_images_modal),new Ht().init()})});/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */function cn(l,n=300){let t;return(...w)=>{clearTimeout(t),t=setTimeout(()=>{l.apply(this,w)},n)}}b.cart=b.cart||{},b.cart.active_inputs=null;const Vt='input[name="product-quantity-spin"]';let mt=!1,lt=!1,ct="";const Ot={switchErrorStat:()=>{const l=i(b.themeSelectors.checkout.btn);if((i(b.themeSelectors.notifications.dangerAlert).length||ct!==""&&!mt)&&l.addClass("disabled"),ct!==""){const n=` + <article class="alert alert-danger" role="alert" data-alert="danger"> + <ul> + <li>${ct}</li> + </ul> + </article> + `;i(b.themeSelectors.notifications.container).html(n),ct="",lt=!1,mt&&l.removeClass("disabled")}else!mt&<&&(mt=!1,lt=!1,i(b.themeSelectors.notifications.container).html(""),l.removeClass("disabled"))},checkUpdateOperation:l=>{const{hasError:n,errors:t}=l;mt=n??!1;const w=t??"";w instanceof Array?ct=w.join(" "):ct=w,lt=!0}};function Dt(){i.each(i(Vt),(l,n)=>{i(n).TouchSpin({verticalbuttons:!0,verticalupclass:"material-icons touchspin-up",verticaldownclass:"material-icons touchspin-down",buttondown_class:"btn btn-touchspin js-touchspin js-increase-product-quantity",buttonup_class:"btn btn-touchspin js-touchspin js-decrease-product-quantity",min:parseInt(i(n).attr("min"),10),max:1e6})}),i(b.themeSelectors.touchspin).off("touchstart.touchspin"),Ot.switchErrorStat()}const Rt=l=>window.shouldPreventModal?(l.preventDefault(),!1):!0;i(document).ready(()=>{const l=b.themeSelectors.cart.productLineQty,n=[];b.on("updateCart",()=>{i(b.themeSelectors.cart.quickview).modal("hide")}),b.on("updatedCart",()=>{window.shouldPreventModal=!1,i(b.themeSelectors.product.customizationModal).on("show.bs.modal",A=>{Rt(A)}),Dt()}),Dt();const t=i("body");function w(A){return A==="on.startupspin"||A==="on.startdownspin"}function s(A){return A==="on.startupspin"}function k(A){const c=A.parents(b.themeSelectors.cart.touchspin).find(l);return c.is(":focus")?null:c}function C(A){const c=A.split("-");let N,G,ie="";for(N=0;N<c.length;N+=1)G=c[N],N!==0&&(G=G.substring(0,1).toUpperCase()+G.substring(1)),ie+=G;return ie}function o(A,c){if(!w(c))return{url:A.attr("href"),type:C(A.data("link-action"))};const N=k(A);if(!N)return!1;let G={};return s(c)?G={url:N.data("up-url"),type:"increaseProductQuantity"}:G={url:N.data("down-url"),type:"decreaseProductQuantity"},G}const p=()=>{let A;for(;n.length>0;)A=n.pop(),A.abort()},Q=A=>i(A.parents(b.themeSelectors.cart.touchspin).find("input"));i(b.themeSelectors.product.customizationModal).on("show.bs.modal",A=>{Rt(A)});const _=A=>{p(),window.shouldPreventModal=!0,A.preventDefault();const c=i(A.currentTarget),{dataset:N}=A.currentTarget,G=o(c,A.namespace),ie={ajax:"1",action:"update"};G&&i.ajax({url:G.url,method:"POST",data:ie,dataType:"json",beforeSend(ce){n.push(ce)}}).then(ce=>{const Le=Q(c);Ot.checkUpdateOperation(ce),Le.val(ce.quantity),b.emit("updateCart",{reason:N,resp:ce})}).fail(ce=>{b.emit("handleError",{eventType:"updateProductInCart",resp:ce,cartAction:G.type})})};t.on("click",b.themeSelectors.cart.actions,_);function u(A,c,N){return p(),window.shouldPreventModal=!0,i.ajax({url:A,method:"POST",data:c,dataType:"json",beforeSend(G){n.push(G)}}).then(G=>{Ot.checkUpdateOperation(G),N.val(G.quantity);const ie=N&&N.dataset?N.dataset:G;b.emit("updateCart",{reason:ie,resp:G})}).fail(G=>{b.emit("handleError",{eventType:"updateProductQuantityInCart",resp:G})})}function S(A){return A>0?"up":"down"}function d(A){return{ajax:"1",qty:Math.abs(A),action:"update",op:S(A)}}function V(A){const c=i(A.currentTarget),N=c.data("update-url"),G=c.attr("value"),ie=c.val();if(ie!=parseInt(ie,10)||ie<0||isNaN(ie)){window.shouldPreventModal=!1,c.val(G);return}const ce=ie-G;ce!==0&&(ie==="0"?c.closest(".product-line-actions").find('[data-link-action="delete-from-cart"]').click():(c.attr("value",ie),u(N,d(ce),c)))}t.on("touchspin.on.stopspin",Vt,cn(V)),t.on("focusout keyup",l,A=>A.type==="keyup"?(A.keyCode===13&&(lt=!0,V(A)),!1):(lt||V(A),!1));const O=400;t.on("hidden.bs.collapse",b.themeSelectors.cart.promoCode,()=>{i(b.themeSelectors.cart.displayPromo).show(O)}),t.on("click",b.themeSelectors.cart.promoCodeButton,A=>{A.preventDefault(),i(b.themeSelectors.cart.promoCode).collapse("toggle")}),t.on("click",b.themeSelectors.cart.displayPromo,A=>{i(A.currentTarget).hide(O)}),t.on("click",b.themeSelectors.cart.discountCode,A=>{A.stopPropagation();const c=i(A.currentTarget);return i(b.themeSelectors.cart.discountName).val(c.text()),i(b.themeSelectors.cart.promoCode).collapse("show"),i(b.themeSelectors.cart.displayPromo).hide(O),!1})});var Ft={exports:{}},ut=typeof Reflect=="object"?Reflect:null,Ut=ut&&typeof ut.apply=="function"?ut.apply:function(n,t,w){return Function.prototype.apply.call(n,t,w)},xt;ut&&typeof ut.ownKeys=="function"?xt=ut.ownKeys:Object.getOwnPropertySymbols?xt=function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:xt=function(n){return Object.getOwnPropertyNames(n)};function un(l){console&&console.warn&&console.warn(l)}var zt=Number.isNaN||function(n){return n!==n};function fe(){fe.init.call(this)}Ft.exports=fe,Ft.exports.once=hn,fe.EventEmitter=fe,fe.prototype._events=void 0,fe.prototype._eventsCount=0,fe.prototype._maxListeners=void 0;var Wt=10;function St(l){if(typeof l!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof l)}Object.defineProperty(fe,"defaultMaxListeners",{enumerable:!0,get:function(){return Wt},set:function(l){if(typeof l!="number"||l<0||zt(l))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+l+".");Wt=l}}),fe.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},fe.prototype.setMaxListeners=function(n){if(typeof n!="number"||n<0||zt(n))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+n+".");return this._maxListeners=n,this};function Bt(l){return l._maxListeners===void 0?fe.defaultMaxListeners:l._maxListeners}fe.prototype.getMaxListeners=function(){return Bt(this)},fe.prototype.emit=function(n){for(var t=[],w=1;w<arguments.length;w++)t.push(arguments[w]);var s=n==="error",k=this._events;if(k!==void 0)s=s&&k.error===void 0;else if(!s)return!1;if(s){var C;if(t.length>0&&(C=t[0]),C instanceof Error)throw C;var o=new Error("Unhandled error."+(C?" ("+C.message+")":""));throw o.context=C,o}var p=k[n];if(p===void 0)return!1;if(typeof p=="function")Ut(p,this,t);else for(var Q=p.length,_=Jt(p,Q),w=0;w<Q;++w)Ut(_[w],this,t);return!0};function Qt(l,n,t,w){var s,k,C;if(St(t),k=l._events,k===void 0?(k=l._events=Object.create(null),l._eventsCount=0):(k.newListener!==void 0&&(l.emit("newListener",n,t.listener?t.listener:t),k=l._events),C=k[n]),C===void 0)C=k[n]=t,++l._eventsCount;else if(typeof C=="function"?C=k[n]=w?[t,C]:[C,t]:w?C.unshift(t):C.push(t),s=Bt(l),s>0&&C.length>s&&!C.warned){C.warned=!0;var o=new Error("Possible EventEmitter memory leak detected. "+C.length+" "+String(n)+" listeners added. Use emitter.setMaxListeners() to increase limit");o.name="MaxListenersExceededWarning",o.emitter=l,o.type=n,o.count=C.length,un(o)}return l}fe.prototype.addListener=function(n,t){return Qt(this,n,t,!1)},fe.prototype.on=fe.prototype.addListener,fe.prototype.prependListener=function(n,t){return Qt(this,n,t,!0)};function fn(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Yt(l,n,t){var w={fired:!1,wrapFn:void 0,target:l,type:n,listener:t},s=fn.bind(w);return s.listener=t,w.wrapFn=s,s}fe.prototype.once=function(n,t){return St(t),this.on(n,Yt(this,n,t)),this},fe.prototype.prependOnceListener=function(n,t){return St(t),this.prependListener(n,Yt(this,n,t)),this},fe.prototype.removeListener=function(n,t){var w,s,k,C,o;if(St(t),s=this._events,s===void 0)return this;if(w=s[n],w===void 0)return this;if(w===t||w.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete s[n],s.removeListener&&this.emit("removeListener",n,w.listener||t));else if(typeof w!="function"){for(k=-1,C=w.length-1;C>=0;C--)if(w[C]===t||w[C].listener===t){o=w[C].listener,k=C;break}if(k<0)return this;k===0?w.shift():dn(w,k),w.length===1&&(s[n]=w[0]),s.removeListener!==void 0&&this.emit("removeListener",n,o||t)}return this},fe.prototype.off=fe.prototype.removeListener,fe.prototype.removeAllListeners=function(n){var t,w,s;if(w=this._events,w===void 0)return this;if(w.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):w[n]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete w[n]),this;if(arguments.length===0){var k=Object.keys(w),C;for(s=0;s<k.length;++s)C=k[s],C!=="removeListener"&&this.removeAllListeners(C);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(t=w[n],typeof t=="function")this.removeListener(n,t);else if(t!==void 0)for(s=t.length-1;s>=0;s--)this.removeListener(n,t[s]);return this};function Zt(l,n,t){var w=l._events;if(w===void 0)return[];var s=w[n];return s===void 0?[]:typeof s=="function"?t?[s.listener||s]:[s]:t?pn(s):Jt(s,s.length)}fe.prototype.listeners=function(n){return Zt(this,n,!0)},fe.prototype.rawListeners=function(n){return Zt(this,n,!1)},fe.listenerCount=function(l,n){return typeof l.listenerCount=="function"?l.listenerCount(n):Gt.call(l,n)},fe.prototype.listenerCount=Gt;function Gt(l){var n=this._events;if(n!==void 0){var t=n[l];if(typeof t=="function")return 1;if(t!==void 0)return t.length}return 0}fe.prototype.eventNames=function(){return this._eventsCount>0?xt(this._events):[]};function Jt(l,n){for(var t=new Array(n),w=0;w<n;++w)t[w]=l[w];return t}function dn(l,n){for(;n+1<l.length;n++)l[n]=l[n+1];l.pop()}function pn(l){for(var n=new Array(l.length),t=0;t<n.length;++t)n[t]=l[t].listener||l[t];return n}function hn(l,n){return new Promise(function(t,w){function s(C){l.removeListener(n,k),w(C)}function k(){typeof l.removeListener=="function"&&l.removeListener("error",s),t([].slice.call(arguments))}Kt(l,n,k,{once:!0}),n!=="error"&&gn(l,s,{once:!0})})}function gn(l,n,t){typeof l.on=="function"&&Kt(l,"error",n,t)}function Kt(l,n,t,w){if(typeof l.on=="function")w.once?l.once(n,t):l.on(n,t);else if(typeof l.addEventListener=="function")l.addEventListener(n,function s(k){w.once&&l.removeEventListener(n,s),t(k)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof l)}var mn=Ft.exports;const Xt=en(mn);/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */class $t{constructor(n){this.el=n}init(){this.el.on("show.bs.dropdown",(n,t)=>{t?i(`#${t}`).find(".dropdown-menu").first().stop(!0,!0).slideDown():i(n.target).find(".dropdown-menu").first().stop(!0,!0).slideDown()}),this.el.on("hide.bs.dropdown",(n,t)=>{t?i(`#${t}`).find(".dropdown-menu").first().stop(!0,!0).slideUp():i(n.target).find(".dropdown-menu").first().stop(!0,!0).slideUp()}),this.el.find("select.link").each((n,t)=>{i(t).on("change",function(){window.location=i(this).val()})})}}/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */class vn{init(){this.parentFocus(),this.togglePasswordVisibility()}parentFocus(){i(".js-child-focus").on("focus",function(){i(this).closest(".js-parent-focus").addClass("focus")}),i(".js-child-focus").on("focusout",function(){i(this).closest(".js-parent-focus").removeClass("focus")})}togglePasswordVisibility(){i('button[data-action="show-password"]').on("click",function(){const n=i(this).closest(".input-group").children("input.js-visible-password");n.attr("type")==="password"?(n.attr("type","text"),i(this).text(i(this).data("textHide"))):(n.attr("type","password"),i(this).text(i(this).data("textShow")))})}}var Mt={};(function(l){(function(){var n={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function t(o){return s(C(o),arguments)}function w(o,p){return t.apply(null,[o].concat(p||[]))}function s(o,p){var Q=1,_=o.length,u,S="",d,V,O,A,c,N,G,ie;for(d=0;d<_;d++)if(typeof o[d]=="string")S+=o[d];else if(typeof o[d]=="object"){if(O=o[d],O.keys)for(u=p[Q],V=0;V<O.keys.length;V++){if(u==null)throw new Error(t('[sprintf] Cannot access property "%s" of undefined value "%s"',O.keys[V],O.keys[V-1]));u=u[O.keys[V]]}else O.param_no?u=p[O.param_no]:u=p[Q++];if(n.not_type.test(O.type)&&n.not_primitive.test(O.type)&&u instanceof Function&&(u=u()),n.numeric_arg.test(O.type)&&typeof u!="number"&&isNaN(u))throw new TypeError(t("[sprintf] expecting number but found %T",u));switch(n.number.test(O.type)&&(G=u>=0),O.type){case"b":u=parseInt(u,10).toString(2);break;case"c":u=String.fromCharCode(parseInt(u,10));break;case"d":case"i":u=parseInt(u,10);break;case"j":u=JSON.stringify(u,null,O.width?parseInt(O.width):0);break;case"e":u=O.precision?parseFloat(u).toExponential(O.precision):parseFloat(u).toExponential();break;case"f":u=O.precision?parseFloat(u).toFixed(O.precision):parseFloat(u);break;case"g":u=O.precision?String(Number(u.toPrecision(O.precision))):parseFloat(u);break;case"o":u=(parseInt(u,10)>>>0).toString(8);break;case"s":u=String(u),u=O.precision?u.substring(0,O.precision):u;break;case"t":u=String(!!u),u=O.precision?u.substring(0,O.precision):u;break;case"T":u=Object.prototype.toString.call(u).slice(8,-1).toLowerCase(),u=O.precision?u.substring(0,O.precision):u;break;case"u":u=parseInt(u,10)>>>0;break;case"v":u=u.valueOf(),u=O.precision?u.substring(0,O.precision):u;break;case"x":u=(parseInt(u,10)>>>0).toString(16);break;case"X":u=(parseInt(u,10)>>>0).toString(16).toUpperCase();break}n.json.test(O.type)?S+=u:(n.number.test(O.type)&&(!G||O.sign)?(ie=G?"+":"-",u=u.toString().replace(n.sign,"")):ie="",c=O.pad_char?O.pad_char==="0"?"0":O.pad_char.charAt(1):" ",N=O.width-(ie+u).length,A=O.width&&N>0?c.repeat(N):"",S+=O.align?ie+u+A:c==="0"?ie+A+u:A+ie+u)}return S}var k=Object.create(null);function C(o){if(k[o])return k[o];for(var p=o,Q,_=[],u=0;p;){if((Q=n.text.exec(p))!==null)_.push(Q[0]);else if((Q=n.modulo.exec(p))!==null)_.push("%");else if((Q=n.placeholder.exec(p))!==null){if(Q[2]){u|=1;var S=[],d=Q[2],V=[];if((V=n.key.exec(d))!==null)for(S.push(V[1]);(d=d.substring(V[0].length))!=="";)if((V=n.key_access.exec(d))!==null)S.push(V[1]);else if((V=n.index_access.exec(d))!==null)S.push(V[1]);else throw new SyntaxError("[sprintf] failed to parse named argument key");else throw new SyntaxError("[sprintf] failed to parse named argument key");Q[2]=S}else u|=2;if(u===3)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");_.push({placeholder:Q[0],param_no:Q[1],keys:Q[2],sign:Q[3],pad_char:Q[4],align:Q[5],width:Q[6],precision:Q[7],type:Q[8]})}else throw new SyntaxError("[sprintf] unexpected placeholder");p=p.substring(Q[0].length)}return k[o]=_}l.sprintf=t,l.vsprintf=w,typeof window<"u"&&(window.sprintf=t,window.vsprintf=w)})()})(Mt);/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */const{passwordPolicy:$e}=prestashop.themeSelectors,bn="The password policy elements are undefined.",wn=l=>{switch(l){case 0:return{color:"bg-danger"};case 1:return{color:"bg-danger"};case 2:return{color:"bg-warning"};case 3:return{color:"bg-success"};case 4:return{color:"bg-success"};default:throw new Error("Invalid password strength indicator.")}},yn=async(l,n,t)=>{const{prestashop:w}=window,s=l.value,k=n.querySelector($e.requirementScoreIcon),C=await w.checkPasswordScore(s),o=wn(C.score),p=s.length,Q=[];$(l).popover("dispose"),n.style.display=s===""?"none":"block",C.feedback.warning!==""&&C.feedback.warning in t&&Q.push(t[C.feedback.warning]),C.feedback.suggestions.forEach(V=>{V in t&&Q.push(t[V])}),$(l).popover({html:!0,placement:"top",content:Q.join("<br/>")}).popover("show");const _=p>=parseInt(l.dataset.minlength,10)&&p<=parseInt(l.dataset.maxlength,10),u=parseInt(l.dataset.minscore,10)<=C.score;n.querySelector($e.requirementLengthIcon).classList.toggle("text-success",_),k.classList.toggle("text-success",u),l.classList.remove("border-success","border-danger"),l.classList.add(u&&_?"border-success":"border-danger"),l.classList.add("form-control","border");const S=C.score*20+20,d=n.querySelector($e.progressBar);d&&(d.style.width=`${S}%`,d.classList.remove("bg-success","bg-danger","bg-warning"),d.classList.add(o.color))},xn=l=>{document.querySelectorAll(l).forEach(t=>{const w=t==null?void 0:t.querySelector($e.inputColumn),s=t==null?void 0:t.querySelector("input"),k=document.createElement("div"),C=document.querySelector($e.template);let o;if(C&&t&&w&&s&&(k.innerHTML=C.innerHTML,w.append(k),o=t.querySelector($e.container),o)){const p=document.querySelector($e.hint);if(p){const Q=JSON.parse(p.innerHTML),_=o.querySelector($e.requirementLength),u=o.querySelector($e.requirementScore),S=_==null?void 0:_.querySelector("span"),d=u==null?void 0:u.querySelector("span");S&&_&&_.dataset.translation&&(S.innerText=Mt.sprintf(_.dataset.translation,s.dataset.minlength,s.dataset.maxlength)),d&&u&&u.dataset.translation&&(d.innerText=Mt.sprintf(u.dataset.translation,Q[s.dataset.minscore])),s.addEventListener("keyup",()=>yn(s,o,Q)),s.addEventListener("blur",()=>{$(s).popover("dispose")})}}return t?{element:t}:{error:new Error(bn)}})};/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */class Sn extends $t{init(){let n;const t=this;this.el.find("li").on("mouseenter mouseleave",w=>{if(this.el.parent().hasClass("mobile"))return;const s=i(w.currentTarget).attr("class");n!==s&&(n=Array.prototype.slice.call(w.currentTarget.classList).map(C=>typeof C=="string"?`.${C}`:!1).join(""),n&&i(w.target).data("depth")===0&&i(`${n} .js-sub-menu`).css({top:i(`${n}`).height()+i(`${n}`).position().top}))}),i("#menu-icon").on("click",()=>{i("#mobile_top_menu_wrapper").toggle(),t.toggleMobileMenu()}),this.el.on("click",w=>{this.el.parent().hasClass("mobile")||w.stopPropagation()}),b.on("responsive update",()=>{i(".js-sub-menu").removeAttr("style"),t.toggleMobileMenu()}),super.init()}toggleMobileMenu(){i("#header").toggleClass("is-open"),i("#mobile_top_menu_wrapper").is(":visible")?i("#notifications, #wrapper, #footer").hide():i("#notifications, #wrapper, #footer").show()}}/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */b.blockcart=b.blockcart||{},b.blockcart.showModal=l=>{function n(){return i("#blockcart-modal")}let t=n();t.length&&t.remove(),i("body").append(l),t=n(),t.modal("show").on("hidden.bs.modal",w=>{b.emit("updateProduct",{reason:w.currentTarget.dataset,event:w})})};/** + * Copyright since 2007 PrestaShop SA and Contributors + * PrestaShop is an International Registered Trademark & Property of PrestaShop SA + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License 3.0 (AFL-3.0) + * that is bundled with this package in the file LICENSE.md. + * It is also available through the world-wide-web at this URL: + * https://opensource.org/licenses/AFL-3.0 + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to https://devdocs.prestashop.com/ for more information. + * + * @author PrestaShop SA and Contributors <contact@prestashop.com> + * @copyright Since 2007 PrestaShop SA and Contributors + * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) + */for(const l in Xt.prototype)b[l]=Xt.prototype[l];i(document).ready(()=>{const l=i(".js-dropdown"),n=new vn,t=i('.js-top-menu ul[data-depth="0"]'),w=new $t(l),s=new Sn(t),k=new qt,C=new Ht;w.init(),n.init(),s.init(),k.init(),C.init(),xn(".field-password-policy"),i('.carousel[data-touch="true"]').swipe({swipe(o,p){p==="left"&&i(this).carousel("next"),p==="right"&&i(this).carousel("prev")},allowPageScroll:"vertical"})})})(jQuery,prestashop); diff --git a/modules/ps_advertising/index.php b/modules/ps_advertising/index.php deleted file mode 100644 index 99e1f25..0000000 --- a/modules/ps_advertising/index.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php -/** - * 2007-2019 PrestaShop and Contributors - * - * NOTICE OF LICENSE - * - * This source file is subject to the Academic Free License 3.0 (AFL-3.0) - * that is bundled with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * https://opensource.org/licenses/AFL-3.0 - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@prestashop.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade PrestaShop to newer - * versions in the future. If you wish to customize PrestaShop for your - * needs please refer to https://www.prestashop.com for more information. - * - * @author PrestaShop SA <contact@prestashop.com> - * @copyright 2007-2019 PrestaShop SA and Contributors - * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) - * International Registered Trademark & Property of PrestaShop SA - */ - -header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); -header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - -header("Cache-Control: no-store, no-cache, must-revalidate"); -header("Cache-Control: post-check=0, pre-check=0", false); -header("Pragma: no-cache"); - -header("Location: ../"); -exit; diff --git a/modules/ps_categoryproducts/views/templates/hook/ps_categoryproducts.tpl b/modules/ps_categoryproducts/views/templates/hook/ps_categoryproducts.tpl index 3139444..e4b9049 100644 --- a/modules/ps_categoryproducts/views/templates/hook/ps_categoryproducts.tpl +++ b/modules/ps_categoryproducts/views/templates/hook/ps_categoryproducts.tpl @@ -22,15 +22,15 @@ * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) * International Registered Trademark & Property of PrestaShop SA *} -<section class="featured-products clearfix mt-3"> - <h2> +<section class="flex flex-col mt-16"> + <span class="text-lg mt-16 font-medium"> {if $products|@count == 1} {l s='%s other product in the same category:' sprintf=[$products|@count] d='Shop.Theme.Catalog'} {else} {l s='%s other products in the same category:' sprintf=[$products|@count] d='Shop.Theme.Catalog'} {/if} - </h2> - <div class="products"> + </span> + <div class="products flex flex-wrap"> {foreach from=$products item="product"} {include file="catalog/_partials/miniatures/product.tpl" product=$product} {/foreach} diff --git a/modules/ps_featuredproducts/views/templates/hook/ps_featuredproducts.tpl b/modules/ps_featuredproducts/views/templates/hook/ps_featuredproducts.tpl index 544d208..1f18155 100644 --- a/modules/ps_featuredproducts/views/templates/hook/ps_featuredproducts.tpl +++ b/modules/ps_featuredproducts/views/templates/hook/ps_featuredproducts.tpl @@ -26,7 +26,7 @@ <h2 class="products-section-title text-2xl font-bold"> {l s='Popular Products' d='Shop.Theme.Catalog'} </h2> - <div class="products grid grid-cols-1 md:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-8"> + <div class="products flex flex-wrap"> {foreach from=$products item="product"} {include file="catalog/_partials/miniatures/product.tpl" product=$product} {/foreach} diff --git a/modules/ps_imageslider/views/templates/hook/slider.tpl b/modules/ps_imageslider/views/templates/hook/slider.tpl index c670467..55775ad 100644 --- a/modules/ps_imageslider/views/templates/hook/slider.tpl +++ b/modules/ps_imageslider/views/templates/hook/slider.tpl @@ -24,17 +24,17 @@ *} {if $homeslider.slides} - <div id="carousel" data-ride="carousel" class="carousel slide" data-interval="{$homeslider.speed}" data-wrap="{(string)$homeslider.wrap}" data-pause="{$homeslider.pause}"> + <div id="carousel" data-ride="carousel" class="carousel slide mb-16" data-interval="{$homeslider.speed}" data-wrap="{(string)$homeslider.wrap}" data-pause="{$homeslider.pause}"> <ul class="carousel-inner" role="listbox"> {foreach from=$homeslider.slides item=slide name='homeslider'} <li class="carousel-item {if $smarty.foreach.homeslider.first}active{/if}" role="option" aria-hidden="{if $smarty.foreach.homeslider.first}false{else}true{/if}"> <a href="{$slide.url}"> - <figure class="relative"> - <img src="{$slide.image_url}" alt="{$slide.legend|escape}"> + <figure class="relative h-screen bg-gray-50"> + <img class="w-full h-full object-contain md:object-cover" src="{$slide.image_url}" alt="{$slide.legend|escape}"> {if $slide.title || $slide.description} - <figcaption class="caption absolute right-0 bottom-0"> - <h2 class="display-1 text-uppercase">{$slide.title}</h2> - <div class="caption-description">{$slide.description nofilter}</div> + <figcaption class="caption absolute left-16 md:left-1/2 bottom-0 top-0 right-16 flex flex-col justify-center"> + <h2 class="text-xl md:text-2xl lg:text-4xl xl:text-6xl font-bold mb-4">{$slide.title}</h2> + <div class="text-sm md:text-base font-medium">{$slide.description nofilter}</div> </figcaption> {/if} </figure> @@ -42,19 +42,5 @@ </li> {/foreach} </ul> - <div class="direction" aria-label="{l s='Carousel buttons' d='Shop.Theme.Global'}"> - <a class="left carousel-control" href="#carousel" role="button" data-slide="prev"> - <span class="icon-prev hidden-xs" aria-hidden="true"> - <i class="material-icons"></i> - </span> - <span class="sr-only">{l s='Previous' d='Shop.Theme.Global'}</span> - </a> - <a class="right carousel-control" href="#carousel" role="button" data-slide="next"> - <span class="icon-next" aria-hidden="true"> - <i class="material-icons"></i> - </span> - <span class="sr-only">{l s='Next' d='Shop.Theme.Global'}</span> - </a> - </div> </div> {/if} diff --git a/modules/ps_languageselector/ps_languageselector.tpl b/modules/ps_languageselector/ps_languageselector.tpl deleted file mode 100644 index d016e39..0000000 --- a/modules/ps_languageselector/ps_languageselector.tpl +++ /dev/null @@ -1,49 +0,0 @@ -{** - * 2007-2019 PrestaShop and Contributors - * - * NOTICE OF LICENSE - * - * This source file is subject to the Academic Free License 3.0 (AFL-3.0) - * that is bundled with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * https://opensource.org/licenses/AFL-3.0 - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@prestashop.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade PrestaShop to newer - * versions in the future. If you wish to customize PrestaShop for your - * needs please refer to https://www.prestashop.com for more information. - * - * @author PrestaShop SA <contact@prestashop.com> - * @copyright 2007-2019 PrestaShop SA and Contributors - * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) - * International Registered Trademark & Property of PrestaShop SA - *} -<div id="_desktop_language_selector"> - <div class="language-selector-wrapper"> - <span id="language-selector-label" class="hidden-md-up">{l s='Language:' d='Shop.Theme.Global'}</span> - <div class="language-selector dropdown js-dropdown"> - <button data-toggle="dropdown" class="hidden-sm-down btn-unstyle" aria-haspopup="true" aria-expanded="false" aria-label="{l s='Language dropdown' d='Shop.Theme.Global'}"> - <span class="expand-more">{$current_language.name_simple}</span> - <i class="material-icons expand-more"></i> - </button> - <ul class="dropdown-menu hidden-sm-down" aria-labelledby="language-selector-label"> - {foreach from=$languages item=language} - <li {if $language.id_lang == $current_language.id_lang} class="current" {/if}> - <a href="{url entity='language' id=$language.id_lang}" class="dropdown-item" data-iso-code="{$language.iso_code}">{$language.name_simple}</a> - </li> - {/foreach} - </ul> - <select class="link hidden-md-up" aria-labelledby="language-selector-label"> - {foreach from=$languages item=language} - <option value="{url entity='language' id=$language.id_lang}"{if $language.id_lang == $current_language.id_lang} selected="selected"{/if} data-iso-code="{$language.iso_code}"> - {$language.name_simple} - </option> - {/foreach} - </select> - </div> - </div> -</div> diff --git a/modules/ps_linklist/views/templates/hook/linkblock.tpl b/modules/ps_linklist/views/templates/hook/linkblock.tpl index c319477..fb38620 100644 --- a/modules/ps_linklist/views/templates/hook/linkblock.tpl +++ b/modules/ps_linklist/views/templates/hook/linkblock.tpl @@ -22,9 +22,9 @@ * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) * International Registered Trademark & Property of PrestaShop SA *} -<div class="flex flex-wrap flex-1"> +<div class="flex flex-wrap flex-1 flex-col md:flex-row"> {foreach $linkBlocks as $linkBlock} - <div class="flex flex-col mb-4 w-1/3"> + <div class="flex flex-col mb-4 md:w-1/3"> <div class="font-bold mb-4"> {$linkBlock.title} </div> diff --git a/modules/ps_rssfeed/views/index.php b/modules/ps_rssfeed/views/index.php deleted file mode 100644 index 99e1f25..0000000 --- a/modules/ps_rssfeed/views/index.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php -/** - * 2007-2019 PrestaShop and Contributors - * - * NOTICE OF LICENSE - * - * This source file is subject to the Academic Free License 3.0 (AFL-3.0) - * that is bundled with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * https://opensource.org/licenses/AFL-3.0 - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@prestashop.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade PrestaShop to newer - * versions in the future. If you wish to customize PrestaShop for your - * needs please refer to https://www.prestashop.com for more information. - * - * @author PrestaShop SA <contact@prestashop.com> - * @copyright 2007-2019 PrestaShop SA and Contributors - * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) - * International Registered Trademark & Property of PrestaShop SA - */ - -header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); -header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - -header("Cache-Control: no-store, no-cache, must-revalidate"); -header("Cache-Control: post-check=0, pre-check=0", false); -header("Pragma: no-cache"); - -header("Location: ../"); -exit; diff --git a/modules/ps_rssfeed/views/templates/hook/index.php b/modules/ps_rssfeed/views/templates/hook/index.php deleted file mode 100644 index 99e1f25..0000000 --- a/modules/ps_rssfeed/views/templates/hook/index.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php -/** - * 2007-2019 PrestaShop and Contributors - * - * NOTICE OF LICENSE - * - * This source file is subject to the Academic Free License 3.0 (AFL-3.0) - * that is bundled with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * https://opensource.org/licenses/AFL-3.0 - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@prestashop.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade PrestaShop to newer - * versions in the future. If you wish to customize PrestaShop for your - * needs please refer to https://www.prestashop.com for more information. - * - * @author PrestaShop SA <contact@prestashop.com> - * @copyright 2007-2019 PrestaShop SA and Contributors - * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) - * International Registered Trademark & Property of PrestaShop SA - */ - -header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); -header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - -header("Cache-Control: no-store, no-cache, must-revalidate"); -header("Cache-Control: post-check=0, pre-check=0", false); -header("Pragma: no-cache"); - -header("Location: ../"); -exit; diff --git a/modules/ps_rssfeed/views/templates/hook/ps_rssfeed.tpl b/modules/ps_rssfeed/views/templates/hook/ps_rssfeed.tpl deleted file mode 100644 index 54dfe8e..0000000 --- a/modules/ps_rssfeed/views/templates/hook/ps_rssfeed.tpl +++ /dev/null @@ -1,39 +0,0 @@ -{** - * 2007-2019 PrestaShop and Contributors - * - * NOTICE OF LICENSE - * - * This source file is subject to the Academic Free License 3.0 (AFL-3.0) - * that is bundled with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * https://opensource.org/licenses/AFL-3.0 - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@prestashop.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade PrestaShop to newer - * versions in the future. If you wish to customize PrestaShop for your - * needs please refer to https://www.prestashop.com for more information. - * - * @author PrestaShop SA <contact@prestashop.com> - * @copyright 2007-2019 PrestaShop SA and Contributors - * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) - * International Registered Trademark & Property of PrestaShop SA - *} - -<div class="block-contact col-md-2 links wrapper"> - <h3 class="h3 hidden-sm-down">{$title}</h3> - <div> - {if $rss_links} - <ul> - {foreach from=$rss_links item='rss_link'} - <li><a href="{$rss_link['link']}" title="{$rss_link['title']}" target="_blank">{$rss_link['title']}</a></li> - {/foreach} - </ul> - {else} - <p>{l s='No RSS feed added' d='Shop.Theme.Catalog'}</p> - {/if} - </div> -</div> diff --git a/modules/ps_rssfeed/views/templates/index.php b/modules/ps_rssfeed/views/templates/index.php deleted file mode 100644 index 99e1f25..0000000 --- a/modules/ps_rssfeed/views/templates/index.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php -/** - * 2007-2019 PrestaShop and Contributors - * - * NOTICE OF LICENSE - * - * This source file is subject to the Academic Free License 3.0 (AFL-3.0) - * that is bundled with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * https://opensource.org/licenses/AFL-3.0 - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@prestashop.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade PrestaShop to newer - * versions in the future. If you wish to customize PrestaShop for your - * needs please refer to https://www.prestashop.com for more information. - * - * @author PrestaShop SA <contact@prestashop.com> - * @copyright 2007-2019 PrestaShop SA and Contributors - * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) - * International Registered Trademark & Property of PrestaShop SA - */ - -header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); -header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - -header("Cache-Control: no-store, no-cache, must-revalidate"); -header("Cache-Control: post-check=0, pre-check=0", false); -header("Pragma: no-cache"); - -header("Location: ../"); -exit; diff --git a/modules/ps_sharebuttons/views/templates/hook/ps_sharebuttons.tpl b/modules/ps_sharebuttons/views/templates/hook/ps_sharebuttons.tpl deleted file mode 100644 index 7d2127a..0000000 --- a/modules/ps_sharebuttons/views/templates/hook/ps_sharebuttons.tpl +++ /dev/null @@ -1,37 +0,0 @@ -{** - * 2007-2019 PrestaShop and Contributors - * - * NOTICE OF LICENSE - * - * This source file is subject to the Academic Free License 3.0 (AFL-3.0) - * that is bundled with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * https://opensource.org/licenses/AFL-3.0 - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@prestashop.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade PrestaShop to newer - * versions in the future. If you wish to customize PrestaShop for your - * needs please refer to https://www.prestashop.com for more information. - * - * @author PrestaShop SA <contact@prestashop.com> - * @copyright 2007-2019 PrestaShop SA and Contributors - * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) - * International Registered Trademark & Property of PrestaShop SA - *} - -{block name='social_sharing'} - {if $social_share_links} - <div class="social-sharing"> - <span>{l s='Share' d='Shop.Theme.Actions'}</span> - <ul> - {foreach from=$social_share_links item='social_share_link'} - <li class="{$social_share_link.class} icon-gray"><a href="{$social_share_link.url}" class="text-hide" title="{$social_share_link.label}" target="_blank">{$social_share_link.label}</a></li> - {/foreach} - </ul> - </div> - {/if} -{/block} diff --git a/modules/ps_socialfollow/ps_socialfollow.tpl b/modules/ps_socialfollow/ps_socialfollow.tpl deleted file mode 100644 index 5379ffd..0000000 --- a/modules/ps_socialfollow/ps_socialfollow.tpl +++ /dev/null @@ -1,34 +0,0 @@ -{** - * 2007-2019 PrestaShop and Contributors - * - * NOTICE OF LICENSE - * - * This source file is subject to the Academic Free License 3.0 (AFL-3.0) - * that is bundled with this package in the file LICENSE.txt. - * It is also available through the world-wide-web at this URL: - * https://opensource.org/licenses/AFL-3.0 - * If you did not receive a copy of the license and are unable to - * obtain it through the world-wide-web, please send an email - * to license@prestashop.com so we can send you a copy immediately. - * - * DISCLAIMER - * - * Do not edit or add to this file if you wish to upgrade PrestaShop to newer - * versions in the future. If you wish to customize PrestaShop for your - * needs please refer to https://www.prestashop.com for more information. - * - * @author PrestaShop SA <contact@prestashop.com> - * @copyright 2007-2019 PrestaShop SA and Contributors - * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) - * International Registered Trademark & Property of PrestaShop SA - *} - -{block name='block_social'} - <div class="block-social col-lg-4 col-md-12 col-sm-12"> - <ul> - {foreach from=$social_links item='social_link'} - <li class="{$social_link.class}"><a href="{$social_link.url}" target="_blank">{$social_link.label}</a></li> - {/foreach} - </ul> - </div> -{/block} diff --git a/templates/_partials/footer.tpl b/templates/_partials/footer.tpl index 7b98c75..030b58c 100644 --- a/templates/_partials/footer.tpl +++ b/templates/_partials/footer.tpl @@ -27,18 +27,43 @@ {hook h='displayFooterBefore'} {/block} </div> -<div class="container mx-auto flex flex-col"> - <div class="flex"> - <div class="w-48 h-48 flex flex-col justify-center"> +<div class="container mx-auto flex flex-col gap-8"> + <div class="flex flex-col lg:flex-row gap-8"> + <div class="w-48 flex flex-row justify-center items-center"> <a class="w-24 h-24" href="{$urls.base_url}"> <img class="logo w-full aspect-square object-fit" src="{$shop.logo}" alt="{$shop.name}"> </a> </div> - <div class="w-full flex flex-1"> + <div class="w-full flex flex-1 flex-col lg:flex-row"> {block name='hook_footer'} {hook h='displayFooter'} {/block} </div> + <div class="flex justify-center items-center gap-4"> + <a class="p-4" href="{$urls.base_url}"> + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-x" width="24" height="24" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round"> + <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> + <path d="M4 4l11.733 16h4.267l-11.733 -16z"></path> + <path d="M4 20l6.768 -6.768m2.46 -2.46l6.772 -6.772"></path> + </svg> + </a> + <a class="p-4"> + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-instagram" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> + <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> + <path d="M4 4m0 4a4 4 0 0 1 4 -4h8a4 4 0 0 1 4 4v8a4 4 0 0 1 -4 4h-8a4 4 0 0 1 -4 -4z"></path> + <path d="M12 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"></path> + <path d="M16.5 7.5l0 .01"></path> + </svg> + </a> + <a class="p-4"> + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-instagram" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> + <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> + <path d="M4 4m0 4a4 4 0 0 1 4 -4h8a4 4 0 0 1 4 4v8a4 4 0 0 1 -4 4h-8a4 4 0 0 1 -4 -4z"></path> + <path d="M12 12m-3 0a3 3 0 1 0 6 0a3 3 0 1 0 -6 0"></path> + <path d="M16.5 7.5l0 .01"></path> + </svg> + </a> + </div> </div> <div class="flex"> {block name='hook_footer_after'} @@ -46,7 +71,7 @@ {/block} </div> <div class="flex py-8"> - <a href="{$shop.url}"> + <a href="{$urls.base_url}"> <span class="text-sm">© 2023 Brooksbingham Clothing</span> </a> </div> diff --git a/templates/_partials/head.tpl b/templates/_partials/head.tpl index 65fc4ce..8948c4b 100644 --- a/templates/_partials/head.tpl +++ b/templates/_partials/head.tpl @@ -1,5 +1,5 @@ {** - * 2007-2019 PrestaShop and Contributors + * 2007-2019 PrestaShop and Contributorslivereload * * NOTICE OF LICENSE * @@ -76,12 +76,6 @@ } } </script> -{** TODO: Remove this before going live *} -<script>document.write('<script src="http://' - + location.host.split(':')[0] - + ':35729/livereload.js"></' - + 'script>')</script> - {block name='hook_header'} {$HOOK_HEADER nofilter} {/block} diff --git a/templates/_partials/stylesheets.tpl b/templates/_partials/stylesheets.tpl index d8b838f..f3186e3 100644 --- a/templates/_partials/stylesheets.tpl +++ b/templates/_partials/stylesheets.tpl @@ -26,6 +26,7 @@ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Cairo:wght@200;300;400;500;600;700;800;900;1000&display=swap" rel="stylesheet"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@2.36.0/tabler-icons.min.css"> +<link rel="stylesheet" href="/themes/elegance/assets/js/style.css"> {foreach $stylesheets.external as $stylesheet} <link rel="stylesheet" href="{$stylesheet.uri}" type="text/css" media="{$stylesheet.media}"> {/foreach} diff --git a/templates/catalog/_partials/facets.tpl b/templates/catalog/_partials/facets.tpl index a3078ee..337d1a0 100644 --- a/templates/catalog/_partials/facets.tpl +++ b/templates/catalog/_partials/facets.tpl @@ -23,27 +23,107 @@ * International Registered Trademark & Property of PrestaShop SA *} {if $facets|count} - <div id="search_filters" class="flex gap-4 flex-1 flex-col lg:flex-row lg:items-center"> - {block name='facets_clearall_button'} - {if $activeFilters|count} - <button id="_desktop_search_filters_clear_all" data-search-url="{$clear_all_link}" class="flex w-6 h-6 flex items-center justify-center select-none js-search-filters-clear-all"> - <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-filter-off hover:stroke-2 cursor-pointer" width="16" height="16" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round"> - <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> - <path d="M8 4h12v2.172a2 2 0 0 1 -.586 1.414l-3.914 3.914m-.5 3.5v4l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227"></path> - <path d="M3 3l18 18"></path> - </svg> - </button> - {else} - <div class="flex w-6 h-6 items-center justify-center select-none"> - <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-filter hover:stroke-2 cursor-pointer" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"> - <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> - <path d="M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z"></path> - </svg> + <div id="search_filters"> + <div id="search_filter_buttons" class="flex hidden"> + {block name='facets_clearall_button'} + {if $activeFilters|count} + <button id="_desktop_search_filters_clear_all" data-search-url="{$clear_all_link}" class="flex w-6 h-6 flex items-center justify-center select-none js-search-filters-clear-all"> + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-filter-off hover:stroke-2 cursor-pointer" width="16" height="16" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round"> + <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> + <path d="M8 4h12v2.172a2 2 0 0 1 -.586 1.414l-3.914 3.914m-.5 3.5v4l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227"></path> + <path d="M3 3l18 18"></path> + </svg> + </button> + {else} + <button id="_desktop_search_filters" class="flex w-6 h-6 items-center justify-center select-none"> + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-filter hover:stroke-2 cursor-pointer" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"> + <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> + <path d="M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z"></path> + </svg> + </button> + {/if} + {/block} + </div> + <div class="th-accordion"> + {foreach from=$facets item="facet"} + {if !$facet.displayed} + {continue} + {/if} + {if $facet.widgetType === 'dropdown'} + <div class="th-accordion-item border-t border-gray-200 px-4 py-4"> + <h3 class="-mx-2 -my-3 flow-root"> + <!-- Expand/collapse section button --> + <button id="show-filters-{$facet.label}" data-filter-name="{$facet.label}" type="button" class="th-accordion-item-trigger flex w-full items-center justify-between bg-white px-2 py-3 text-gray-400 hover:text-gray-500" aria-controls="filter-section-mobile-0" aria-expanded="false"> + <span class="font-medium text-gray-900"> + {$active_found = false} + {foreach from=$facet.filters item="filter"} + {if $filter.active} + {$filter.label} + {$active_found = true} + {/if} + {/foreach} + {if !$active_found} + {$facet.label} + {/if} + </span> + <span class="ml-6 flex items-center"> + <!-- Expand icon, show/hide based on section open state. --> + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-chevron-down" width="16" height="16" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> + <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> + <path d="M6 9l6 6l6 -6"></path> + </svg> + </span> + </button> + </h3> + <!-- Filter section, show/hide based on section state. --> + <div class="th-accordion-item-content pt-6 px-4 hidden" id="filter-section-{$facet.label}" data-filter-name="{$facet.label}"> + <div class="flex flex-wrap w-full"> + {foreach from=$facet.filters item="filter"} + {if !$filter.active} + <a + rel="nofollow" + href="{$filter.nextEncodedFacetsURL}" + class="select-list text-sm w-1/4 mb-4" + > + {$filter.label} + </a> + {/if} + {/foreach} + </div> + </div> </div> {/if} - {/block} - - <div class="flex gap-4 flex-1 flex-col lg:flex-row"> + {/foreach} + </div> +{/if} + + + {* +{if $facets|count} + <div id="products_top_sidebar" class="sidebar lg:left-0 p-2 overflow-y-auto text-center bg-white h-screen w-56"> + <div id="search_filters"> + <div id="search_filter_buttons" class="flex"> + {block name='facets_clearall_button'} + {if $activeFilters|count} + <button id="_desktop_search_filters_clear_all" data-search-url="{$clear_all_link}" class="flex w-6 h-6 flex items-center justify-center select-none js-search-filters-clear-all"> + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-filter-off hover:stroke-2 cursor-pointer" width="16" height="16" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round"> + <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> + <path d="M8 4h12v2.172a2 2 0 0 1 -.586 1.414l-3.914 3.914m-.5 3.5v4l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227"></path> + <path d="M3 3l18 18"></path> + </svg> + </button> + {else} + <button id="_desktop_search_filters" class="flex w-6 h-6 items-center justify-center select-none"> + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-filter hover:stroke-2 cursor-pointer" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke-linecap="round" stroke-linejoin="round"> + <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> + <path d="M4 4h16v2.172a2 2 0 0 1 -.586 1.414l-4.414 4.414v7l-6 2v-8.5l-4.48 -4.928a2 2 0 0 1 -.52 -1.345v-2.227z"></path> + </svg> + </button> + {/if} + {/block} + </div> + + <div class="flex gap-4 flex-1 flex-col"> {foreach from=$facets item="facet"} {if !$facet.displayed} {continue} @@ -66,7 +146,7 @@ <path d="M6 9l6 6l6 -6"></path> </svg> </button> - <div class="dropdown-menu hidden group-hover:flex flex-col position absolute left-0 top-full w-full bg-white"> + <div class="dropdown-menu hidden group-hover:flex flex-col position absolute left-0 top-full w-full bg-white z-10"> {foreach from=$facet.filters item="filter"} {if !$filter.active} <a @@ -83,132 +163,8 @@ {/if} {/foreach} </div> + + </div> </div> {/if} - -{** - - {if !$facet.displayed} - {continue} - {/if} - - <section class="facet clearfix"> - <p class="h6 facet-title hidden-sm-down">{$facet.label}</p> - {assign var=_expand_id value=10|mt_rand:100000} - {assign var=_collapse value=true} - {foreach from=$facet.filters item="filter"} - {if $filter.active}{assign var=_collapse value=false}{/if} - {/foreach} - - <div class="title hidden-md-up" data-target="#facet_{$_expand_id}" data-toggle="collapse"{if !$_collapse} aria-expanded="true"{/if}> - <p class="h6 facet-title">{$facet.label}</p> - <span class="float-xs-right"> - <span class="navbar-toggler collapse-icons"> - <i class="material-icons add"></i> - <i class="material-icons remove"></i> - </span> - </span> - </div> - - {if $facet.widgetType !== 'dropdown'} - {block name='facet_item_other'} - <ul id="facet_{$_expand_id}" class="collapse{if !$_collapse} in{/if}"> - {foreach from=$facet.filters key=filter_key item="filter"} - {if !$filter.displayed} - {continue} - {/if} - - <li> - <label class="facet-label{if $filter.active} active {/if}" for="facet_input_{$_expand_id}_{$filter_key}"> - {if $facet.multipleSelectionAllowed} - <span class="custom-checkbox"> - <input - id="facet_input_{$_expand_id}_{$filter_key}" - data-search-url="{$filter.nextEncodedFacetsURL}" - type="checkbox" - {if $filter.active }checked{/if} - > - {if isset($filter.properties.color)} - <span class="color" style="background-color:{$filter.properties.color}"></span> - {elseif isset($filter.properties.texture)} - <span class="color texture" style="background-image:url({$filter.properties.texture})"></span> - {else} - <span {if !$js_enabled} class="ps-shown-by-js" {/if}><i class="material-icons rtl-no-flip checkbox-checked"></i></span> - {/if} - </span> - {else} - <span class="custom-radio"> - <input - id="facet_input_{$_expand_id}_{$filter_key}" - data-search-url="{$filter.nextEncodedFacetsURL}" - type="radio" - name="filter {$facet.label}" - {if $filter.active }checked{/if} - > - <span {if !$js_enabled} class="ps-shown-by-js" {/if}></span> - </span> - {/if} - - <a - href="{$filter.nextEncodedFacetsURL}" - class="_gray-darker search-link js-search-link" - rel="nofollow" - > - {$filter.label} - {if $filter.magnitude} - <span class="magnitude">({$filter.magnitude})</span> - {/if} - </a> - </label> - </li> - {/foreach} - </ul> - {/block} - - {else} - - {block name='facet_item_dropdown'} - <ul id="facet_{$_expand_id}" class="collapse{if !$_collapse} in{/if}"> - <li> - <div class="col-sm-12 col-xs-12 col-md-12 facet-dropdown dropdown"> - <a class="select-title" rel="nofollow" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> - {$active_found = false} - <span> - {foreach from=$facet.filters item="filter"} - {if $filter.active} - {$filter.label} - {if $filter.magnitude} - ({$filter.magnitude}) - {/if} - {$active_found = true} - {/if} - {/foreach} - {if !$active_found} - {l s='(no filter)' d='Shop.Theme.Global'} - {/if} - </span> - <i class="material-icons float-xs-right"></i> - </a> - <div class="dropdown-menu"> - {foreach from=$facet.filters item="filter"} - {if !$filter.active} - <a - rel="nofollow" - href="{$filter.nextEncodedFacetsURL}" - class="select-list" - > - {$filter.label} - {if $filter.magnitude} - ({$filter.magnitude}) - {/if} - </a> - {/if} - {/foreach} - </div> - </div> - </li> - </ul> - {/block} - {/if} - </section> *} diff --git a/templates/catalog/_partials/miniatures/product.tpl b/templates/catalog/_partials/miniatures/product.tpl index 33153db..831f39d 100644 --- a/templates/catalog/_partials/miniatures/product.tpl +++ b/templates/catalog/_partials/miniatures/product.tpl @@ -23,7 +23,7 @@ * International Registered Trademark & Property of PrestaShop SA *} {block name='product_miniature_item'} -<a href="{$product.url}" class="group w-full flex flex-col"> +<a href="{$product.url}" class="group w-full md:w-1/2 lg:w-1/3 xl:w-1/4 flex flex-col p-4"> {block name='product_thumbnail'} {if $product.cover} <div class="thumbnail product-thumbnail w-full aspect-[342/513] bg-gray-100"> @@ -54,7 +54,7 @@ </div> {/block} {block name='product_name'} - <span class="text-xl font-medium" itemprop="name">{$product.name|truncate:30:'...'}</span> + <span class="text-lg font-light" itemprop="name">{$product.name|truncate:30:'...'}</span> {/block} </div> </a> diff --git a/templates/catalog/_partials/product-prices.tpl b/templates/catalog/_partials/product-prices.tpl index 5426c5a..520bd1a 100644 --- a/templates/catalog/_partials/product-prices.tpl +++ b/templates/catalog/_partials/product-prices.tpl @@ -28,7 +28,7 @@ {if $product.has_discount} <div class="product-discount"> {hook h='displayProductPriceBlock' product=$product type="old_price"} - <span class="regular-price line-through text-red-700/50 leading-none">{$product.regular_price}</span> + <span class="regular-price line-through text-red-400 leading-none">{$product.regular_price}</span> </div> {/if} {/block} diff --git a/templates/catalog/_partials/products-top.tpl b/templates/catalog/_partials/products-top.tpl index eb74cfa..b55d513 100644 --- a/templates/catalog/_partials/products-top.tpl +++ b/templates/catalog/_partials/products-top.tpl @@ -22,7 +22,43 @@ * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) * International Registered Trademark & Property of PrestaShop SA *} + +<div id="js-product-list-top" class="bg-white"> + <div class="relative z-40" role="dialog" aria-modal="true"> + <div class="fixed inset-0 z-50 flex"> + <div id="product-list-top-filters" class="relative mr-auto flex h-full w-screen md:w-64 flex-col overflow-y-auto bg-white py-4 pb-12 shadow-xl"> + <div class="flex items-center justify-between px-4"> + <h2 class="text-lg font-medium text-gray-900">Filters</h2> + <button id="hide_filters" type="button" class="-mr-2 flex h-10 w-10 items-center justify-center rounded-md bg-white p-2 text-gray-400"> + <span class="sr-only">Close menu</span> + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-x" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> + <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> + <path d="M18 6l-12 12"></path> + <path d="M6 6l12 12"></path> + </svg> + </button> + </div> + <form class="mt-4 border-t border-gray-200"> + {block name='sort_by'} + {include file='catalog/_partials/sort-orders.tpl' sort_orders=$listing.sort_orders} + {/block} + {if !empty($listing.rendered_facets)} + {include file='catalog/_partials/facets.tpl'} + {else} + <div></div> + {/if} + + </form> + </div> + </div> + </div> +</div> + + + +{* <div id="js-product-list-top" class="flex w-full flex-col lg:flex-row lg:justify-between"> + <button id="show_filters" class=""> Filter </button> {if !empty($listing.rendered_facets)} {include file='catalog/_partials/facets.tpl'} {else} @@ -32,3 +68,4 @@ {include file='catalog/_partials/sort-orders.tpl' sort_orders=$listing.sort_orders} {/block} </div> +*} diff --git a/templates/catalog/_partials/products.tpl b/templates/catalog/_partials/products.tpl index 8aebc8a..9c1f5ff 100644 --- a/templates/catalog/_partials/products.tpl +++ b/templates/catalog/_partials/products.tpl @@ -23,7 +23,7 @@ * International Registered Trademark & Property of PrestaShop SA *} <div id="js-product-list flex flex-col"> - <div class="products grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8"> + <div class="products flex flex-wrap"> {foreach from=$listing.products item="product"} {block name='product_miniature'} {include file='catalog/_partials/miniatures/product.tpl' product=$product} diff --git a/templates/catalog/_partials/sort-orders.tpl b/templates/catalog/_partials/sort-orders.tpl index fb963c6..f300fe8 100644 --- a/templates/catalog/_partials/sort-orders.tpl +++ b/templates/catalog/_partials/sort-orders.tpl @@ -22,21 +22,58 @@ * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) * International Registered Trademark & Property of PrestaShop SA *} -<div class="relative flex gap-2 lg:items-center"> - <div class="relative w-48 dropdown group"> + +<div class="th-accordion"> +<div class="th-accordion-item border-t border-gray-200 px-4 py-4"> + <h3 class="-mx-2 -my-3 flow-root"> + <!-- Expand/collapse section button --> + <button id="show-sort-by" type="button" class="th-accordion-item-trigger flex w-full items-center justify-between bg-white px-2 py-3 text-gray-400 hover:text-gray-500" aria-controls="filter-section-mobile-0" aria-expanded="false"> + <span class="font-medium text-gray-900"> + Sort By + </span> + <span class="ml-6 flex items-center"> + <!-- Expand icon, show/hide based on section open state. --> + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-chevron-down" width="16" height="16" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> + <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> + <path d="M6 9l6 6l6 -6"></path> + </svg> + </span> + </button> + </h3> + <!-- Filter section, show/hide based on section state. --> + <div class="pt-6 hidden th-accordion-item-content" id="filter-section-sort-by"> + <div class="flex flex-col w-full gap-4"> + {foreach from=$listing.sort_orders item=sort_order} + <a + rel="nofollow" + href="{$sort_order.url}" + class="select-list text-sm shrink-0 {['current' => $sort_order.current, 'js-search-link' => true]|classnames}" + > + {$sort_order.label} + </a> + {/foreach} + </div> + </div> +</div> +</div> + + +{* +<div class="relative flex gap-2 lg:items-center top-4 lg:top-0"> + <div class="relative flex-1 max-w-[140px] group"> <button - class="w-full px-4 pr-8 py-1 gap-4 relative text-left h-8 hover:text-yellow-700 dropdown-toggle" + class="dropdown-toggle relative px-4 pr-6 leading-1 w-full text-left" type="button" rel="nofollow" aria-haspopup="true" aria-expanded="false"> {if isset($listing.sort_selected)}{$listing.sort_selected}{else}{l s='Select' d='Shop.Theme.Actions'}{/if} - <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-chevron-down absolute right-0 top-1" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-chevron-down absolute right-0 top-1" width="16" height="16" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"> <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> <path d="M6 9l6 6l6 -6"></path> </svg> </button> - <div class="dropdown-menu hidden group-hover:flex absolute top-full left-0 w-full flex-col bg-white"> + <div class="dropdown-menu hidden group-hover:flex absolute top-full left-0 w-full flex-col bg-white z-10"> {foreach from=$listing.sort_orders item=sort_order} <a rel="nofollow" @@ -49,3 +86,4 @@ </div> </div> </div> +*} diff --git a/templates/checkout/_partials/cart-detailed-actions.tpl b/templates/checkout/_partials/cart-detailed-actions.tpl index 130410c..a094df1 100644 --- a/templates/checkout/_partials/cart-detailed-actions.tpl +++ b/templates/checkout/_partials/cart-detailed-actions.tpl @@ -23,21 +23,21 @@ * International Registered Trademark & Property of PrestaShop SA *} {block name='cart_detailed_actions'} - <div class="checkout cart-detailed-actions card-block"> + <div class="flex flex-col mt-4"> {if $cart.minimalPurchaseRequired} <div class="alert alert-warning" role="alert"> {$cart.minimalPurchaseRequired} </div> <div class="text-sm-center"> - <button type="button" class="btn btn-primary disabled" disabled>{l s='Proceed to checkout' d='Shop.Theme.Actions'}</button> + <button type="button" class="flex-1 uppercase py-2 font-medium text-center bg-blue-900 text-gray-50" disabled>{l s='Proceed to checkout' d='Shop.Theme.Actions'}</button> </div> {elseif empty($cart.products) } <div class="text-sm-center"> - <button type="button" class="btn btn-primary disabled" disabled>{l s='Proceed to checkout' d='Shop.Theme.Actions'}</button> + <button type="button" class="flex-1 uppercase py-2 font-medium text-center bg-blue-900 text-gray-50" disabled>{l s='Proceed to checkout' d='Shop.Theme.Actions'}</button> </div> {else} - <div class="text-sm-center"> - <a href="{$urls.pages.order}" class="btn btn-primary">{l s='Proceed to checkout' d='Shop.Theme.Actions'}</a> + <div class="flex"> + <a href="{$urls.pages.order}" class="flex-1 uppercase py-2 font-medium text-center bg-blue-900 text-gray-50">{l s='Proceed to checkout' d='Shop.Theme.Actions'}</a> {hook h='displayExpressCheckout'} </div> {/if} diff --git a/templates/checkout/_partials/cart-detailed-product-line.tpl b/templates/checkout/_partials/cart-detailed-product-line.tpl index 2761364..1015889 100644 --- a/templates/checkout/_partials/cart-detailed-product-line.tpl +++ b/templates/checkout/_partials/cart-detailed-product-line.tpl @@ -22,154 +22,83 @@ * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) * International Registered Trademark & Property of PrestaShop SA *} -<div class="product-line-grid"> - <!-- product left content: image--> - <div class="product-line-grid-left col-md-3 col-xs-4"> - <span class="product-image media-middle"> - <img src="{$product.cover.bySize.cart_default.url}" alt="{$product.name|escape:'quotes'}"> - </span> - </div> - <!-- product left body: description --> - <div class="product-line-grid-body col-md-4 col-xs-8"> +<div class="flex flex-1"> + <div class="w-40 h-40"> + <img class="object-cover w-full h-full" src="{$product.cover.bySize.cart_default.url}" alt="{$product.name|escape:'quotes'}"> + </div> + <div class="flex flex-1 flex-col gap-4"> <div class="product-line-info"> <a class="label" href="{$product.url}" data-id_customization="{$product.id_customization|intval}">{$product.name}</a> </div> - - <div class="product-line-info product-price h5 {if $product.has_discount}has-discount{/if}"> + <div class="flex gap-4 product-line-info product-price h5 {if $product.has_discount}has-discount{/if}"> {if $product.has_discount} - <div class="product-discount"> - <span class="regular-price">{$product.regular_price}</span> - {if $product.discount_type === 'percentage'} - <span class="discount discount-percentage"> - -{$product.discount_percentage_absolute} - </span> - {else} - <span class="discount discount-amount"> - -{$product.discount_to_display} - </span> - {/if} - </div> + <span class="line-through text-red-400">{$product.regular_price}</span> {/if} <div class="current-price"> - <span class="price">{$product.price}</span> + <span class="price font-medium">{$product.price}</span> {if $product.unit_price_full} <div class="unit-price-cart">{$product.unit_price_full}</div> {/if} </div> </div> - - <br/> - - {foreach from=$product.attributes key="attribute" item="value"} - <div class="product-line-info"> - <span class="label">{$attribute}:</span> - <span class="value">{$value}</span> - </div> - {/foreach} - - {if is_array($product.customizations) && $product.customizations|count} - <br> - {block name='cart_detailed_product_line_customization'} - {foreach from=$product.customizations item="customization"} - <a href="#" data-toggle="modal" data-target="#product-customizations-modal-{$customization.id_customization}">{l s='Product customization' d='Shop.Theme.Catalog'}</a> - <div class="modal fade customization-modal" id="product-customizations-modal-{$customization.id_customization}" tabindex="-1" role="dialog" aria-hidden="true"> - <div class="modal-dialog" role="document"> - <div class="modal-content"> - <div class="modal-header"> - <button type="button" class="close" data-dismiss="modal" aria-label="Close"> - <span aria-hidden="true">×</span> - </button> - <h4 class="modal-title">{l s='Product customization' d='Shop.Theme.Catalog'}</h4> - </div> - <div class="modal-body"> - {foreach from=$customization.fields item="field"} - <div class="product-customization-line row"> - <div class="col-sm-3 col-xs-4 label"> - {$field.label} - </div> - <div class="col-sm-9 col-xs-8 value"> - {if $field.type == 'text'} - {if (int)$field.id_module} - {$field.text nofilter} - {else} - {$field.text} - {/if} - {elseif $field.type == 'image'} - <img src="{$field.image.small.url}"> - {/if} - </div> - </div> - {/foreach} - </div> - </div> - </div> - </div> - {/foreach} - {/block} - {/if} - </div> - - <!-- product left body: description --> - <div class="product-line-grid-right product-line-actions col-md-5 col-xs-12"> - <div class="row"> - <div class="col-xs-4 hidden-md-up"></div> - <div class="col-md-10 col-xs-6"> - <div class="row"> - <div class="col-md-6 col-xs-6 qty"> - {if isset($product.is_gift) && $product.is_gift} - <span class="gift-quantity">{$product.quantity}</span> - {else} - <input - class="js-cart-line-product-quantity" - data-down-url="{$product.down_quantity_url}" - data-up-url="{$product.up_quantity_url}" - data-update-url="{$product.update_quantity_url}" - data-product-id="{$product.id_product}" - type="number" - value="{$product.quantity}" - name="product-quantity-spin" - min="{$product.minimal_quantity}" - /> - {/if} - </div> - <div class="col-md-6 col-xs-2 price"> - <span class="product-price"> - <strong> - {if isset($product.is_gift) && $product.is_gift} - <span class="gift">{l s='Gift' d='Shop.Theme.Checkout'}</span> - {else} - {$product.total} - {/if} - </strong> - </span> - </div> - </div> - </div> - <div class="col-md-2 col-xs-2 text-xs-right"> - <div class="cart-line-product-actions"> - <a - class = "remove-from-cart" - rel = "nofollow" - href = "{$product.remove_from_cart_url}" - data-link-action = "delete-from-cart" - data-id-product = "{$product.id_product|escape:'javascript'}" - data-id-product-attribute = "{$product.id_product_attribute|escape:'javascript'}" - data-id-customization = "{$product.id_customization|escape:'javascript'}" - > - {if !isset($product.is_gift) || !$product.is_gift} - <i class="material-icons float-xs-left">delete</i> - {/if} - </a> - - {block name='hook_cart_extra_product_actions'} - {hook h='displayCartExtraProductActions' product=$product} - {/block} - - </div> + <div class="flex items-center"> + <span class="font-medium">Quanity: </span> + <div class="ml-4"> + {if isset($product.is_gift) && $product.is_gift} + <span class="gift-quantity">{$product.quantity}</span> + {else} + <input + class="js-cart-line-product-quantity px-2 py-1" + data-down-url="{$product.down_quantity_url}" + data-up-url="{$product.up_quantity_url}" + data-update-url="{$product.update_quantity_url}" + data-product-id="{$product.id_product}" + type="number" + value="{$product.quantity}" + name="product-quantity-spin" + min="{$product.minimal_quantity}" + /> + {/if} </div> </div> </div> + <div class="px-4 flex flex-1 items-center"> + <span class="product-price text-base font-bold"> + {if isset($product.is_gift) && $product.is_gift} + {l s='Gift' d='Shop.Theme.Checkout'} + {else} + {$product.total} + {/if} + </span> + </div> + <div class="flex w-24 items-center"> + <div class="cart-line-product-actions"> + <a + class = "remove-from-cart" + rel = "nofollow" + href = "{$product.remove_from_cart_url}" + data-link-action = "delete-from-cart" + data-id-product = "{$product.id_product|escape:'javascript'}" + data-id-product-attribute = "{$product.id_product_attribute|escape:'javascript'}" + data-id-customization = "{$product.id_customization|escape:'javascript'}" + > + {if !isset($product.is_gift) || !$product.is_gift} + <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-trash" width="24" height="24" viewBox="0 0 24 24" stroke-linecap="round" stroke-linejoin="round"> + <path stroke="none" d="M0 0h24v24H0z" fill="none"></path> + <path d="M4 7l16 0"></path> + <path d="M10 11l0 6"></path> + <path d="M14 11l0 6"></path> + <path d="M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2 -2l1 -12"></path> + <path d="M9 7v-3a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v3"></path> + </svg> + {/if} + </a> - <div class="clearfix"></div> + {block name='hook_cart_extra_product_actions'} + {hook h='displayCartExtraProductActions' product=$product} + {/block} + + </div> + </div> </div> diff --git a/templates/checkout/_partials/cart-detailed-totals.tpl b/templates/checkout/_partials/cart-detailed-totals.tpl index b15aaae..43615dd 100644 --- a/templates/checkout/_partials/cart-detailed-totals.tpl +++ b/templates/checkout/_partials/cart-detailed-totals.tpl @@ -23,13 +23,13 @@ * International Registered Trademark & Property of PrestaShop SA *} {block name='cart_detailed_totals'} -<div class="cart-detailed-totals"> +<div class="flex flex-col gap-4"> - <div class="card-block"> + <div class="flex flex-col gap-8"> {foreach from=$cart.subtotals item="subtotal"} {if $subtotal.value && $subtotal.type !== 'tax'} - <div class="cart-summary-line" id="cart-subtotal-{$subtotal.type}"> - <span class="label{if 'products' === $subtotal.type} js-subtotal{/if}"> + <div class="flex font-medium" id="cart-subtotal-{$subtotal.type}"> + <span class="flex-1 label{if 'products' === $subtotal.type} js-subtotal{/if}"> {if 'products' == $subtotal.type} {$cart.summary_string} {else} diff --git a/templates/checkout/_partials/cart-detailed.tpl b/templates/checkout/_partials/cart-detailed.tpl index f04ca4b..50a647d 100644 --- a/templates/checkout/_partials/cart-detailed.tpl +++ b/templates/checkout/_partials/cart-detailed.tpl @@ -23,11 +23,11 @@ * International Registered Trademark & Property of PrestaShop SA *} {block name='cart_detailed_product'} - <div class="cart-overview js-cart" data-refresh-url="{url entity='cart' params=['ajax' => true, 'action' => 'refresh']}"> + <div class="relative" data-refresh-url="{url entity='cart' params=['ajax' => true, 'action' => 'refresh']}"> {if $cart.products} - <ul class="cart-items"> + <ul class="flex flex-col"> {foreach from=$cart.products item=product} - <li class="cart-item"> + <li class="flex mb-4"> {block name='cart_detailed_product_line'} {include file='checkout/_partials/cart-detailed-product-line.tpl' product=$product} {/block} diff --git a/templates/checkout/_partials/cart-summary-items-subtotal.tpl b/templates/checkout/_partials/cart-summary-items-subtotal.tpl index 4f3d99d..23f0b0e 100644 --- a/templates/checkout/_partials/cart-summary-items-subtotal.tpl +++ b/templates/checkout/_partials/cart-summary-items-subtotal.tpl @@ -23,7 +23,7 @@ * International Registered Trademark & Property of PrestaShop SA *} {block name='cart_summary_items_subtotal'} - <div class="card-block cart-summary-line cart-summary-items-subtotal clearfix" id="items-subtotal"> + <div class="flex justify-between" id="items-subtotal"> <span class="label">{$cart.summary_string}</span> <span class="value">{$cart.subtotals.products.amount}</span> </div> diff --git a/templates/checkout/_partials/cart-summary-subtotals.tpl b/templates/checkout/_partials/cart-summary-subtotals.tpl index f1fab19..81ba29a 100644 --- a/templates/checkout/_partials/cart-summary-subtotals.tpl +++ b/templates/checkout/_partials/cart-summary-subtotals.tpl @@ -23,22 +23,18 @@ * International Registered Trademark & Property of PrestaShop SA *} -<div class="card-block cart-summary-subtotals-container"> - +<div class="flex"> {foreach from=$cart.subtotals item="subtotal"} {if $subtotal.value && $subtotal.type !== 'tax'} - <div class="cart-summary-line cart-summary-subtotals" id="cart-subtotal-{$subtotal.type}"> - - <span class="label"> + <div class="flex justify-between font-medium" id="cart-subtotal-{$subtotal.type}"> + <span> {$subtotal.label} </span> - - <span class="value"> + <span > {$subtotal.value} </span> </div> {/if} {/foreach} - </div> diff --git a/templates/checkout/_partials/cart-summary-totals.tpl b/templates/checkout/_partials/cart-summary-totals.tpl index 903817c..05c79ea 100644 --- a/templates/checkout/_partials/cart-summary-totals.tpl +++ b/templates/checkout/_partials/cart-summary-totals.tpl @@ -22,20 +22,20 @@ * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) * International Registered Trademark & Property of PrestaShop SA *} -<div class="card-block cart-summary-totals"> +<div class="flex flex-col my-8"> {block name='cart_summary_total'} {if !$configuration.display_prices_tax_incl && $configuration.taxes_enabled} - <div class="cart-summary-line"> + <div class="flex justify-between font-medium"> <span class="label">{$cart.totals.total.label} {$cart.labels.tax_short}</span> <span class="value">{$cart.totals.total.value}</span> </div> - <div class="cart-summary-line cart-total"> + <div class="flex justify-between font-medium"> <span class="label">{$cart.totals.total_including_tax.label}</span> <span class="value">{$cart.totals.total_including_tax.value}</span> </div> {else} - <div class="cart-summary-line cart-total"> + <div class="flex justify-between font-medium"> <span class="label">{$cart.totals.total.label} {if $configuration.taxes_enabled}{$cart.labels.tax_short}{/if}</span> <span class="value">{$cart.totals.total.value}</span> </div> @@ -44,7 +44,7 @@ {block name='cart_summary_tax'} {if $cart.subtotals.tax} - <div class="cart-summary-line"> + <div class="flex justify-between font-medium"> <span class="label sub">{l s='%label%:' sprintf=['%label%' => $cart.subtotals.tax.label] d='Shop.Theme.Global'}</span> <span class="value sub">{$cart.subtotals.tax.value}</span> </div> diff --git a/templates/checkout/cart.tpl b/templates/checkout/cart.tpl index fb0a4d5..7befb96 100644 --- a/templates/checkout/cart.tpl +++ b/templates/checkout/cart.tpl @@ -26,26 +26,25 @@ {block name='content'} - <section id="main"> - <div class="cart-grid row"> + <section id="main" class="flex"> + <div class="flex flex-col lg:flex-row gap-8 flex-1"> <!-- Left Block: cart product informations & shpping --> - <div class="cart-grid-body col-xs-12 col-lg-8"> + <div class="flex flex-col gap-4 w-full lg:w-3/5"> <!-- cart products detailed --> - <div class="card cart-container"> - <div class="card-block"> - <h1 class="h1">{l s='Shopping Cart' d='Shop.Theme.Checkout'}</h1> + <div class="flex flex-col gap-4"> + <div class="flex-1 flex mb-4"> + <span class="w-full py-2 uppercase text-center font-medium">{l s='Shopping Cart' d='Shop.Theme.Checkout'}</span> </div> - <hr class="separator"> {block name='cart_overview'} {include file='checkout/_partials/cart-detailed.tpl' cart=$cart} {/block} </div> {block name='continue_shopping'} - <a class="label" href="{$urls.pages.index}"> - <i class="material-icons">chevron_left</i>{l s='Continue shopping' d='Shop.Theme.Actions'} + <a class="py-2 uppercase font-medium border border-gray-900 text-center" href="{$urls.pages.index}"> + {l s='Continue shopping' d='Shop.Theme.Actions'} </a> {/block} @@ -56,10 +55,13 @@ </div> <!-- Right Block: cart subtotal & cart total --> - <div class="cart-grid-right col-xs-12 col-lg-4"> + <div class="flex flex-col gap-4 w-full lg:w-2/5"> + <div class="flex-1 flex mb-4"> + <span class="w-full py-2 uppercase text-center font-medium">{l s='Shopping Cart' d='Shop.Theme.Checkout'}</span> + </div> {block name='cart_summary'} - <div class="card cart-summary"> + <div class="flex flex-col"> {block name='hook_shopping_cart'} {hook h='displayShoppingCart'} diff --git a/templates/index.tpl b/templates/index.tpl index 93a01c7..09007a7 100644 --- a/templates/index.tpl +++ b/templates/index.tpl @@ -23,6 +23,8 @@ * International Registered Trademark & Property of PrestaShop SA *} {extends file='page.tpl'} +{block name='breadcrumb'} +{/block} {block name='page_content_container'} <section id="content" class="page-home"> {block name='page_content_top'}{/block}