/**
 * 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");
});