import { AggregationTypeEnum, ComponentTypeEnum } from '@sentecacommerce-theme/lib';
import { BannerType } from '../components/Banner/banner.type';
import { data as invertedBannerData } from '../components/Banner/templateData/inverted';
import { CaptionType } from '../components/Caption/caption.type';
import { data as captionData } from '../components/Caption/templateData/default';
import { CookieConsentType } from '../components/CookieConsent/cookieConsent.type';
import { data as cookieConsentData } from '../components/CookieConsent/templateData/default';
import { ElementType } from '../components/Element/element.type';
import { FooterType } from '../components/Footer/footer.type';
import { data as footerData } from '../components/Footer/templateData/default';
import { ListingPageType } from '../components/ListingPage/listingPage.type';
import { MerchMenuType } from '../components/MerchMenu/merchMenu.type';
import { data as merchMenuData } from '../components/MerchMenu/templateData/default';
import { data as navbarData } from '../components/Navbar/templateData/default';
import { NavbarType } from '../components/Navbar/navbar.type';
import { SlidingCTAType } from '../components/SlidingCTA/slidingCTA.type';
import { data as slidingCTAData } from '../components/SlidingCTA/templateData/default';
import { StoresType } from '../components/Stores/stores.type';
import { data as storesData } from '../components/Stores/templateData/default';
import { SubscribeToNewsletterType } from '../components/SubscribeToNewsletter/subscribeToNewsletter.type';
import { data as subscriptionData } from '../components/SubscribeToNewsletter/templateData/default';
import { BlogPageType } from '../components/BlogPage/blogPage.type';
import { BrandsType } from '../components/Brands/brands.type';
import { ListingBannerType } from '../components/ListingBanner/listingBanner.type';
import { FitImageEnum, ListingBannerSizeEnum } from '../components/ListingBanner/listingBanner.props';
var sortOptions = [{
  key: 'defaultSort',
  label: 'По подразбиране'
}, {
  key: 'price-asc',
  label: 'Цена възх.'
}, {
  key: 'price-desc',
  label: 'Цена низх.'
}, {
  key: 'discount-asc',
  label: 'Отстъпка възх.'
}, {
  key: 'discount-desc',
  label: 'Отстъпка низх.'
}];
var defaultSortKey = 'defaultSort';
export var Templates = {
  BannerTemplate: BannerType.addTemplate('InvertedBanner', invertedBannerData),
  CaptionTemplate: CaptionType.addTemplate('Caption', captionData),
  CookieConsentTemplate: CookieConsentType.addTemplate('CookieConsent', cookieConsentData),
  ElementTemplate: {
    container: ElementType.addTemplate('Container', {
      className: 'container'
    }),
    containerFluid: ElementType.addTemplate('Container fluid', {
      className: 'container-fluid'
    }),
    row: ElementType.addTemplate('Row', {
      className: 'row'
    }),
    col: ElementType.addTemplate('Col', {
      className: 'col'
    }),
    hideOnDesktop: ElementType.addTemplate('Hide On Desktop', {
      className: 'd-md-none'
    }),
    hideOnMobile: ElementType.addTemplate('Hide On Mobile', {
      className: 'd-none d-md-block'
    })
  },
  BlogPageTemplate: BlogPageType.addTemplate('BlogPage', {
    labels: {
      title: 'Блог',
      noPosts: 'Няма намерени публикации',
      readMore: 'Прочети още'
    }
  }),
  Brands: BrandsType.addTemplate('Brands', {
    defaultTopBrandsImage: 'https://content.sportmaster.dk/sites/default/files/sm_popular_brands/adidas_brand.jpg',
    findBrands: 'Намери марки',
    popularBrandsTitle: 'Популярни марки'
  }),
  FooterTemplate: FooterType.addTemplate('Footer', footerData),
  ListingTemplate: {
    Category: ListingPageType.addTemplate('Category', {
      seoAggregates: {
        label: 'Категории',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'subCategories',
        filterDefinition: 'category',
        component: ComponentTypeEnum.TextWithLink,
        order: 0
      },
      categoryTreeConfig: {
        label: 'Категории',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'categories',
        filterDefinition: 'category',
        component: ComponentTypeEnum.TextWithLink,
        order: 0
      },
      sortOptions,
      defaultSortKey,
      aggregates: [{
        label: 'Размери',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'attr.size',
        filterDefinition: 'attr.size',
        order: 0,
        component: ComponentTypeEnum.Dropdown
      }, {
        label: 'Цена',
        aggregationType: AggregationTypeEnum.Stats,
        aggregationDefinition: 'price:*-*',
        filterDefinition: 'price',
        order: 1,
        component: ComponentTypeEnum.RangeSlider
      }, {
        label: 'Марки',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'brands',
        filterDefinition: 'brand',
        order: 2,
        component: ComponentTypeEnum.Autocomplete
      }, {
        label: 'Цвят',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'attr.color',
        filterDefinition: 'attr.color',
        order: 3,
        component: ComponentTypeEnum.Color
      }, {
        label: 'Пол',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'attr.sex',
        filterDefinition: 'attr.sex',
        order: 3,
        component: ComponentTypeEnum.Checkbox
      }, {
        label: 'Спорт',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'attr.sport',
        filterDefinition: 'attr.sport',
        order: 4,
        component: ComponentTypeEnum.Checkbox
      }, {
        label: 'Модел',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'attr.model',
        filterDefinition: 'attr.model',
        order: 5,
        component: ComponentTypeEnum.Autocomplete
      }],
      labels: {
        noMatchingItems: 'Няма намерени съответстващи продукти',
        seeMore: 'Виж повече',
        seeLess: 'Виж по-малко',
        resetAll: 'Нулиране на всички',
        clearAllFilters: 'Изчистване на всички филтри',
        filters: 'Филтри',
        showResults: 'Покажи :results: резултата',
        show: 'Покажи',
        results: 'Резултати',
        sortBy: 'Сортирай по'
      },
      productsPerPage: 60
    }),
    CategoryWithAttribute: ListingPageType.addTemplate('CategoryWithAttribute', {
      seoAggregates: {
        label: 'Категории',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'subCategories',
        filterDefinition: 'category',
        component: ComponentTypeEnum.TextWithLink,
        order: 0
      },
      categoryTreeConfig: {
        label: 'Категории',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'categories',
        filterDefinition: 'category',
        component: ComponentTypeEnum.TextWithLink,
        order: 0
      },
      sortOptions,
      defaultSortKey,
      aggregates: [{
        label: 'Размери',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'attr.size',
        filterDefinition: 'attr.size',
        order: 0,
        component: ComponentTypeEnum.Dropdown
      }, {
        label: 'Цена',
        aggregationType: AggregationTypeEnum.Stats,
        aggregationDefinition: 'price:*-*',
        filterDefinition: 'price',
        order: 1,
        component: ComponentTypeEnum.RangeSlider
      }, {
        label: 'Марки',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'brands',
        filterDefinition: 'brand',
        order: 2,
        component: ComponentTypeEnum.Autocomplete
      }, {
        label: 'Цвят',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'attr.color',
        filterDefinition: 'attr.color',
        order: 3,
        component: ComponentTypeEnum.Color
      }, {
        label: 'Спорт',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'attr.sport',
        filterDefinition: 'attr.sport',
        order: 4,
        component: ComponentTypeEnum.Checkbox
      }, {
        label: 'Модел',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'attr.model',
        filterDefinition: 'attr.model',
        order: 5,
        component: ComponentTypeEnum.Autocomplete
      }],
      labels: {
        noMatchingItems: 'Няма намерени съответстващи продукти',
        seeMore: 'Виж повече',
        seeLess: 'Виж по-малко',
        resetAll: 'Нулиране на всички',
        clearAllFilters: 'Изчистване на всички филтри',
        filters: 'Филтри',
        showResults: 'Покажи :results: резултата',
        show: 'Покажи',
        results: 'Резултати',
        sortBy: 'Сортирай по'
      },
      productsPerPage: 60
    }),
    Brand: ListingPageType.addTemplate('Brand', {
      seoAggregates: {
        label: 'Категории',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'subBrands',
        filterDefinition: 'brand',
        component: ComponentTypeEnum.TextWithLink,
        order: 0
      },
      categoryTreeConfig: {
        label: 'Категории',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'categories',
        filterDefinition: 'category',
        component: ComponentTypeEnum.TextWithLink,
        order: 0
      },
      sortOptions,
      defaultSortKey,
      aggregates: [{
        label: 'Размери',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'attr.size',
        filterDefinition: 'attr.size',
        order: 0,
        component: ComponentTypeEnum.Dropdown
      }, {
        label: 'Цена',
        aggregationType: AggregationTypeEnum.Stats,
        aggregationDefinition: 'price:*-*',
        filterDefinition: 'price',
        order: 1,
        component: ComponentTypeEnum.RangeSlider
      }, {
        label: 'Цвят',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'attr.color',
        filterDefinition: 'attr.color',
        order: 2,
        component: ComponentTypeEnum.Color
      }, {
        label: 'Пол',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'attr.sex',
        filterDefinition: 'attr.sex',
        order: 3,
        component: ComponentTypeEnum.Checkbox
      }],
      labels: {
        noMatchingItems: 'Няма намерени съответстващи продукти',
        seeMore: 'Виж повече',
        seeLess: 'Виж по-малко',
        resetAll: 'Нулиране на всички',
        clearAllFilters: 'Изчистване на всички филтри',
        filters: 'Филтри',
        showResults: 'Покажи :results: резултата',
        show: 'Покажи',
        results: 'Резултати',
        sortBy: 'Сортирай по'
      },
      productsPerPage: 60
    }),
    View: ListingPageType.addTemplate('View', {
      sortOptions,
      defaultSortKey,
      categoryTreeConfig: {
        label: 'Категории',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'categories',
        filterDefinition: 'category',
        component: ComponentTypeEnum.TextWithLink,
        order: 0
      },
      labels: {
        noMatchingItems: 'Няма съвпадащи продукти',
        seeMore: 'Виж повече',
        seeLess: 'Виж по-малко',
        resetAll: 'Нулиране на всички',
        clearAllFilters: 'Изчистване на всички филтри',
        filters: 'Филтри',
        showResults: 'Покажи резултати',
        show: 'Покажи',
        results: 'Резултати',
        sortBy: 'Сортирай по'
      },
      productsPerPage: 60
    }),
    Collection: ListingPageType.addTemplate('Collection', {
      sortOptions,
      defaultSortKey,
      labels: {
        noMatchingItems: 'Няма съвпадащи продукти',
        seeMore: 'Виж повече',
        seeLess: 'Виж по-малко',
        resetAll: 'Нулиране всички',
        clearAllFilters: 'Изчистване на всички филтри',
        filters: 'Филтри',
        showResults: 'Покажи резултати',
        show: 'Покажи',
        results: 'Резултати',
        sortBy: 'Сортирай по'
      },
      productsPerPage: 60
    }),
    Search: ListingPageType.addTemplate('Search', {
      sortOptions,
      defaultSortKey,
      categoryTreeConfig: {
        label: 'Категории',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'categories',
        filterDefinition: 'category',
        component: ComponentTypeEnum.TextWithLink,
        order: 0
      },
      aggregates: [{
        label: 'Размери',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'attr.size',
        filterDefinition: 'attr.size',
        order: 0,
        component: ComponentTypeEnum.Dropdown
      }, {
        label: 'Цена',
        aggregationType: AggregationTypeEnum.Stats,
        aggregationDefinition: 'price:*-*',
        filterDefinition: 'price',
        order: 1,
        component: ComponentTypeEnum.RangeSlider
      }, {
        label: 'Марки',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'brands',
        filterDefinition: 'brand',
        order: 2,
        component: ComponentTypeEnum.Autocomplete
      }, {
        label: 'Цвят',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'attr.color',
        filterDefinition: 'attr.color',
        order: 3,
        component: ComponentTypeEnum.Color
      }, {
        label: 'Пол',
        aggregationType: AggregationTypeEnum.Terms,
        aggregationDefinition: 'attr.sex',
        filterDefinition: 'attr.sex',
        order: 4,
        component: ComponentTypeEnum.Checkbox
      }],
      labels: {
        noMatchingItems: 'Няма намерени съответстващи продукти',
        seeMore: 'Виж повече',
        seeLess: 'Виж по-малко',
        resetAll: 'Нулиране на всички',
        clearAllFilters: 'Изчистване на всички филтри',
        filters: 'Филтри',
        showResults: 'Покажи :results: резултата',
        show: 'Покажи',
        results: 'Резултати',
        sortBy: 'Сортирай по'
      },
      productsPerPage: 60
    })
  },
  MerchMenuTemplate: MerchMenuType.addTemplate('MerchMenu', merchMenuData),
  NavbarTemplate: NavbarType.addTemplate('Navbar', navbarData),
  SlidingCTATemplate: SlidingCTAType.addTemplate('SlidingCTA', slidingCTAData),
  StoreListTemplate: StoresType.addTemplate('ListOfStores', storesData),
  SubscribeToNewsletterTemplate: SubscribeToNewsletterType.addTemplate('SubscribeToNewsletter', subscriptionData),
  ListingBanners: {
    AdidasBanner: ListingBannerType.addTemplate('Adidas Shoes', {
      fitImage: FitImageEnum.Cover,
      alt: 'Adidas Banner',
      link: '/adidas-7/b',
      size: {
        mobile: ListingBannerSizeEnum.Two,
        desktop: ListingBannerSizeEnum.Two
      },
      mobileImage: 'https://staging.sportdepot-contents.com/platform/media/sd-category-banners-originals-60ee97675fa875001130a39a.webp',
      desktopImage: 'https://staging.sportdepot-contents.com/platform/media/sd-category-banners-originals-60ee97675fa875001130a39a.webp'
    })
  }
};
//# sourceMappingURL=index.js.map