{"version":3,"sources":["../UI.DEI.Portal/src/_scripts/base/api.js","../UI.DEI.Portal/src/_scripts/polyfills/polyfill.min.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-benefits-carousel.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-product-group.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-info-panel.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-download-list.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-accordion-section.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-product-promo.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-carousel-cards.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-article-quick-actions.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-simple-masonry.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-hero.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-fullwidth-gallery.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-table-charge.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-article-cards.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-header-desktop.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-header-scroll.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-aside-menu.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-timeline.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-readspeaker.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-organogramma-carousel.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-search-results-carousel.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-breadcrumb.js","../UI.DEI.Portal/src/_scripts/jQuery/widgets/w-compare-two.js","../UI.DEI.Portal/src/_scripts/global/accessibilities.js","../UI.DEI.Portal/src/_scripts/global/fn.js","../UI.DEI.Portal/src/_scripts/global/forms.js","src/_scripts/base/ini.js","../UI.DEI.Portal/src/_scripts/global/inViewport.js","../UI.DEI.Portal/src/_scripts/vue/mixins/reload-window-if-token-expired.js","../UI.DEI.Portal/src/_scripts/vue/mixins/mixins.js","../UI.DEI.Portal/src/_scripts/vue/mixins/getSetSessionStorage.js","../UI.DEI.Portal/src/_scripts/vue/mixins/viewport.js","../UI.DEI.Portal/src/_scripts/vue/mixins/introTabs.js","../UI.DEI.Portal/src/_scripts/vue/mixins/window-width.js","../UI.DEI.Portal/src/_scripts/vue/mixins/alertDismissible.js","../UI.DEI.Portal/src/_scripts/vue/mixins/forms/send-captcha.js","../UI.DEI.Portal/src/_scripts/vue/components/common/_ini.js","../UI.DEI.Portal/src/_scripts/vue/components/common/slickCarousel.js","../UI.DEI.Portal/src/_scripts/vue/components/common/alert-danger.js","../UI.DEI.Portal/src/_scripts/vue/components/common/alert-success.js","../UI.DEI.Portal/src/_scripts/vue/components/common/infinity-scroll.js","../UI.DEI.Portal/src/_scripts/vue/components/common/b-media-item--file.js","../UI.DEI.Portal/src/_scripts/vue/components/common/b-auto-completer.js","../UI.DEI.Portal/src/_scripts/vue/components/common/b-tabs.js","../UI.DEI.Portal/src/_scripts/vue/components/common/b-pagination.js","../UI.DEI.Portal/src/_scripts/vue/components/common/photo-item.js","../UI.DEI.Portal/src/_scripts/vue/components/common/media-item.js","../UI.DEI.Portal/src/_scripts/vue/components/common/custom-lightbox.js","../UI.DEI.Portal/src/_scripts/vue/components/common/search-input.js","../UI.DEI.Portal/src/_scripts/vue/components/common/b-office.js","../UI.DEI.Portal/src/_scripts/vue/components/header-menu/header-card.js","../UI.DEI.Portal/src/_scripts/vue/components/compare/comparison-footer.js","../UI.DEI.Portal/src/_scripts/vue/components/compare/compare-card.js","../UI.DEI.Portal/src/_scripts/vue/components/compare/compare-table.js","../UI.DEI.Portal/src/_scripts/vue/components/compare/compare-header.js","../UI.DEI.Portal/src/_scripts/vue/components/common/e-loader.js","../UI.DEI.Portal/src/_scripts/vue/components/common/vue-datepicker.js","../UI.DEI.Portal/src/_scripts/vue/components/common/table-accordion.js","../UI.DEI.Portal/src/_scripts/vue/components/common/b-print-bill-view.js","../UI.DEI.Portal/src/_scripts/vue/components/common/expandable-text.js","../UI.DEI.Portal/src/_scripts/vue/components/common/custom-tabs.js","../UI.DEI.Portal/src/_scripts/vue/components/common/accordion-tabs.js","../UI.DEI.Portal/src/_scripts/vue/components/common/slide-up-down.js","../UI.DEI.Portal/src/_scripts/vue/components/common/arc-progress-bar.js","../UI.DEI.Portal/src/_scripts/vue/components/common/e-circle-progress-step.js","../UI.DEI.Portal/src/_scripts/vue/components/common/e-circle-progress-bar.js","../UI.DEI.Portal/src/_scripts/vue/components/common/b-accordion.js","../UI.DEI.Portal/src/_scripts/vue/components/common/doi-finder.js","../UI.DEI.Portal/src/_scripts/vue/components/common/svg-source-print.js","../UI.DEI.Portal/src/_scripts/vue/components/common/named-steps.js","../UI.DEI.Portal/src/_scripts/vue/components/common/formatted-number.js","../UI.DEI.Portal/src/_scripts/vue/components/common/add-remove-group.js","../UI.DEI.Portal/src/_scripts/vue/directives/init.js","../UI.DEI.Portal/src/_scripts/vue/apps/header-menu.js","../UI.DEI.Portal/src/_scripts/vue/apps/header-menu-devices.js","../UI.DEI.Portal/src/_scripts/vue/apps/intro-tabs.js","../UI.DEI.Portal/src/_scripts/vue/apps/home-news.js","../UI.DEI.Portal/src/_scripts/vue/apps/search-modal.js","../UI.DEI.Portal/src/_scripts/vue/apps/search-results.js","../UI.DEI.Portal/src/_scripts/vue/apps/appointment-form.js","../UI.DEI.Portal/src/_scripts/vue/apps/media-landing.js","../UI.DEI.Portal/src/_scripts/vue/apps/offices.js","../UI.DEI.Portal/src/_scripts/vue/apps/press-releases.js","../UI.DEI.Portal/src/_scripts/vue/apps/board.js","../UI.DEI.Portal/src/_scripts/vue/apps/access-international-files.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5EA;AACA;ACDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACrGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1lCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7BA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7JA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChQA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACjkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"main.js","sourcesContent":["// jQuery.noConflict();\n\n\nwindow.api = {\n\n vars: {\n lang: 'el',\n\n isIE: false,\n isEdge: false,\n isIE6To11: false,\n is: \"desktop\",\n windW: 0,\n windH: 0,\n windOldW: 0,\n windOldH: 0,\n\n wresizetimer: 100,\n resizetimeout: 0,\n timerout: 0,\n\n IframeAPIReady: false,\n\n youtubeSelectors: [],\n youtube_addedScriptToHead: false,\n\n googleMapReady: false,\n recaptchaReady: false,\n allowCaptcha: true,\n\n grecaptchaIds: [],\n\n scr: {\n phone: 0,\n tablet: 768,\n\t\t\tdesktop: 1025,\n desktop_medium: 1440\n\t\t},\n\n datepicker: {\n dateFormat: \"dd/mm/yy\"\n },\n\n selectors: {\n body: \"body\",\n header: \".header\",\n footer: \".footer\",\n },\n\n slick: {\n edgeFriction: 0,\n speed: 300,\n prevArrow: '',\n nextArrow: ''\n },\n\n zoomLevel: 100\n\n },\n\n detectors: {},\n\n fn: {},\n\n components: {},\n\n forms: {},\n\n resizeCommon: {},\n\n modules: {},\n\n cookies: {},\n\n accessibilities: {}\n\n};","!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t():\"function\"==typeof define&&define.amd?define(t):t()}(0,function(){\"use strict\";function e(e){var t=this.constructor;return this.then(function(n){return t.resolve(e()).then(function(){return n})},function(n){return t.resolve(e()).then(function(){return t.reject(n)})})}function t(e){return new this(function(t,n){function o(e,n){if(n&&(\"object\"==typeof n||\"function\"==typeof n)){var f=n.then;if(\"function\"==typeof f)return void f.call(n,function(t){o(e,t)},function(n){r[e]={status:\"rejected\",reason:n},0==--i&&t(r)})}r[e]={status:\"fulfilled\",value:n},0==--i&&t(r)}if(!e||\"undefined\"==typeof e.length)return n(new TypeError(typeof e+\" \"+e+\" is not iterable(cannot read property Symbol(Symbol.iterator))\"));var r=Array.prototype.slice.call(e);if(0===r.length)return t([]);for(var i=r.length,f=0;r.length>f;f++)o(f,r[f])})}function n(e){return!(!e||\"undefined\"==typeof e.length)}function o(){}function r(e){if(!(this instanceof r))throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof e)throw new TypeError(\"not a function\");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],l(e,this)}function i(e,t){for(;3===e._state;)e=e._value;0!==e._state?(e._handled=!0,r._immediateFn(function(){var n=1===e._state?t.onFulfilled:t.onRejected;if(null!==n){var o;try{o=n(e._value)}catch(r){return void u(t.promise,r)}f(t.promise,o)}else(1===e._state?f:u)(t.promise,e._value)})):e._deferreds.push(t)}function f(e,t){try{if(t===e)throw new TypeError(\"A promise cannot be resolved with itself.\");if(t&&(\"object\"==typeof t||\"function\"==typeof t)){var n=t.then;if(t instanceof r)return e._state=3,e._value=t,void c(e);if(\"function\"==typeof n)return void l(function(e,t){return function(){e.apply(t,arguments)}}(n,t),e)}e._state=1,e._value=t,c(e)}catch(o){u(e,o)}}function u(e,t){e._state=2,e._value=t,c(e)}function c(e){2===e._state&&0===e._deferreds.length&&r._immediateFn(function(){e._handled||r._unhandledRejectionFn(e._value)});for(var t=0,n=e._deferreds.length;n>t;t++)i(e,e._deferreds[t]);e._deferreds=null}function l(e,t){var n=!1;try{e(function(e){n||(n=!0,f(t,e))},function(e){n||(n=!0,u(t,e))})}catch(o){if(n)return;n=!0,u(t,o)}}var a=setTimeout;r.prototype[\"catch\"]=function(e){return this.then(null,e)},r.prototype.then=function(e,t){var n=new this.constructor(o);return i(this,new function(e,t,n){this.onFulfilled=\"function\"==typeof e?e:null,this.onRejected=\"function\"==typeof t?t:null,this.promise=n}(e,t,n)),n},r.prototype[\"finally\"]=e,r.all=function(e){return new r(function(t,o){function r(e,n){try{if(n&&(\"object\"==typeof n||\"function\"==typeof n)){var u=n.then;if(\"function\"==typeof u)return void u.call(n,function(t){r(e,t)},o)}i[e]=n,0==--f&&t(i)}catch(c){o(c)}}if(!n(e))return o(new TypeError(\"Promise.all accepts an array\"));var i=Array.prototype.slice.call(e);if(0===i.length)return t([]);for(var f=i.length,u=0;i.length>u;u++)r(u,i[u])})},r.allSettled=t,r.resolve=function(e){return e&&\"object\"==typeof e&&e.constructor===r?e:new r(function(t){t(e)})},r.reject=function(e){return new r(function(t,n){n(e)})},r.race=function(e){return new r(function(t,o){if(!n(e))return o(new TypeError(\"Promise.race accepts an array\"));for(var i=0,f=e.length;f>i;i++)r.resolve(e[i]).then(t,o)})},r._immediateFn=\"function\"==typeof setImmediate&&function(e){setImmediate(e)}||function(e){a(e,0)},r._unhandledRejectionFn=function(e){void 0!==console&&console&&console.warn(\"Possible Unhandled Promise Rejection:\",e)};var s=function(){if(\"undefined\"!=typeof self)return self;if(\"undefined\"!=typeof window)return window;if(\"undefined\"!=typeof global)return global;throw Error(\"unable to locate global object\")}();\"function\"!=typeof s.Promise?s.Promise=r:s.Promise.prototype[\"finally\"]?s.Promise.allSettled||(s.Promise.allSettled=t):s.Promise.prototype[\"finally\"]=e});\n","/// \n\n\n;(function ($) {\n\n $.widget(\"nsp.benefitsCarousel\", {\n options: {\n },\n\n _create: function () {\n this.wrap = this.element;\n \n this._createDotContainer();\n\n $(document).on(\"window-resized\", ()=> {\n this.iniSlick();\n });\n\n this.iniSlick();\n },\n\n iniSlick: function () {\n \n\n if (api.vars.windW < api.vars.scr.tablet) { \n\n if (!this.wrap.hasClass('slick-initialized')) {\n this.wrap.slick({\n slidesToShow: 1,\n slidesToScroll: 1,\n dots: true,\n arrows: false,\n infinite: false,\n variableWidth: true,\n appendDots: this.wrap.parent().find('.carousel_dots')\n });\n }\n } else {\n if (this.wrap.hasClass('slick-initialized')) {\n this.wrap.slick('unslick');\n }\n }\n\n },\n\n _createDotContainer() {\n $('
').insertBefore(this.wrap);\n },\n\n });\n})(jQuery);","/// \n\n(function ($) {\n $.widget(\"nsp.productGroup\", {\n opts: {},\n\n _setOption: function (key, value) {\n var plgn = this;\n plgn.opts[key] = value;\n },\n\n getOption: function (opt) {\n var plgn = this;\n return plgn.opts[opt];\n },\n\n _create: function () {\n this.wrap = this.element;\n\n this.panel = this.wrap.find(\".b-info-panel\");\n this.aside = this.panel.parent();\n\n this.positionPanel();\n\n $(document).on(\"window-resized\", () => {\n this.positionPanel();\n this.pointEventLayer();\n });\n\n $(window).on(\"scroll\", () => {\n setTimeout(() => {\n if (api.vars.windW > api.vars.scr.desktop) {\n this.positionPanel();\n this.pointEventLayer();\n }\n\n this.stickyBox();\n });\n });\n\n jQuery(document.body).on(\"accordion-activated\", () => {\n if(this.panel.hasClass('in-bottom')){\n this.panel.trigger(\"sticky_kit:detach\");\n this.panel.removeAttr(\"style\").removeClass('in-bottom').removeClass('is_stuck')\n\n setTimeout(() => {\n this.stickyBox();\n })\n }\n });\n\n this.stickyBox();\n },\n\n stickyBox() {\n if (api.vars.windW > api.vars.scr.desktop) {\n this.panel\n .stick_in_parent({\n offset_top: 140,\n parent: this.wrap,\n //recalc_every: 500,\n })\n .on(\"sticky_kit:bottom\", (e) => {\n this.panel.addClass(\"in-bottom\");\n })\n .on(\"sticky_kit:unbottom\", (e) => {\n this.panel.removeClass(\"in-bottom\");\n })\n .on(\"sticky_kit:stick\", (e) => {\n this.positionPanel();\n })\n .on(\"sticky_kit:unstick\", (e) => {\n this.positionPanel();\n });\n setTimeout(() => {\n this.pointEventLayer();\n });\n } else {\n this.panel.trigger(\"sticky_kit:detach\");\n }\n },\n\n positionPanel() {\n var hasAside = this.wrap.find(\".g-product-group__aside\").length;\n\n if (api.vars.windW > api.vars.scr.desktop && hasAside) {\n this.panel.css({\n left: this.aside.offset().left,\n width: this.aside.width(),\n });\n }\n },\n\n pointEventLayer() {\n this.panel.next().css(\"pointer-events\", \"none\");\n },\n });\n})(jQuery);\n","/// \n\n(function ($) {\n $.widget(\"nsp.infoPanel\", {\n opts: {},\n\n _create: function () {\n this.wrap = this.element;\n\n $('[data-bs-toggle=\"tooltip\"]', this.wrap).each(function () {\n var tooltipEl = document.getElementById($(this).attr(\"id\"));\n var tooltip = new bootstrap.Tooltip(tooltipEl, {\n container: $(this).parent(),\n });\n\n tooltipEl.addEventListener(\"show.bs.tooltip\", function () {\n // do something...\n });\n });\n\n this._addBodyClass();\n this._mobSlideToggle();\n\n $(window).resize(function () {\n if (api.vars.windW < api.vars.scr.desktop) { \n // $(\".b-info-panel__title\", this.wrap).removeClass(\"open\");\n \n // $(\".b-info-panel__nav, .b-info-panel__cta, .b-info-panel__top p\", this.wrap).hide();\n } \n if (api.vars.windW > api.vars.scr.desktop) {\n \n $(\n \".b-info-panel__nav, .b-info-panel__cta, .b-info-panel__top p\", this.wrap\n )\n .show();\n }\n });\n },\n\n _addBodyClass: function () {\n $(\"body\").addClass(\"p-product\");\n },\n\n _mobSlideToggle: function () {\n var title = this.wrap.find(\".b-info-panel__title\");\n var toggleElem = this.wrap.find(\n \".b-info-panel__nav, .b-info-panel__cta, .b-info-panel__top p\"\n );\n\n title.click(function () {\n if (api.vars.windW < api.vars.scr.desktop) {\n $(this).toggleClass(\"open\");\n toggleElem.slideToggle();\n }\n });\n },\n });\n})(jQuery);\n","/// \n\n\n;(function ($) {\n\n $.widget(\"nsp.downloadList\", {\n opts: {\n },\n\n _create: function () {\n this.wrap = this.element;\n\n $('a', this.wrap).on(\"click\", (e)=>{\n //e.preventDefault()\n var iframe = $(``).appendTo('body')\n $(iframe).attr('url', e.target.href)\n\n setTimeout(()=>{\n $('#my-frame').remove()\n })\n })\n \n }\n\n\n });\n})(jQuery);","/// \n\n(function ($) {\n $.widget(\"nsp.accordionSection\", {\n options: {\n header: 'h3',\n active: 0,\n useOptsActive:false // if true will skip active by data\n },\n\n _create: function () {\n this.acc = this.element;\n\n var activeItm\n\n if(this.options.useOptsActive){\n activeItm = this.options.active;\n }else{\n activeItm = api.fn.getData(this.acc, \"active\", 0);\n }\n\n var qsHeaderId = api.fn.getParameterByName(\"q\");\n var header = null;\n\n if (qsHeaderId) {\n header = this.acc.find(\"#\" + qsHeaderId);\n\n if (header.length) {\n activeItm = Math.floor(header.index() / 2);\n }\n }\n\n var animate = api.fn.getData(this.acc, 'animate', 200);\n\n this.acc.accordion({\n navigation: true,\n animate: animate,\n header: this.options.header,\n heightStyle: \"content\",\n collapsible: true,\n active: activeItm,\n create: function (event, ui) {\n if (activeItm >= 0 && qsHeaderId && header.length) {\n api.fn.moveWindowToObj(header)\n }\n },\n beforeActivate: function (event, ui) {\n },\n activate: function (event, ui) {\n\n setTimeout(()=>{\n jQuery(document.body).trigger(\"accordion-activated\");\n }, animate)\n }\n });\n\n\n },\n });\n})(jQuery);\n","/// \n\n\n;(function ($) {\n\n $.widget(\"nsp.productPromo\", {\n opts: {\n },\n\n _create: function () {\n this.wrap = this.element;\n\n this.wrap.appear(_=> {\n \n this.wrap.addClass('is-onscreen')\n \n\n }, { accX: 0, accY: -200 })\n \n \n }\n\n\n });\n})(jQuery);","/// \n\n(function ($) {\n $.widget(\"nsp.carouselCards\", { \n\n _create: function () {\n this.wrap = this.element;\n\n\n this._createDotContainer();\n this._createArrowContainer()\n\n // var slickOpts = Object.assign(this.options.slickOptions, {\n \n // responsive: [\n // {\n // //breakpoint: api.vars.scr.tablet - 1,\n // // settings: {\n // // slidesToScroll:2,\n // // dots: true,\n // // variableWidth: true,\n // // appendDots: this.wrap\n // // .parent()\n // // .find(\".carousel_dots\"),\n // // },\n // breakpoint: api.vars.scr.tablet - 1,\n // settings: {\n // slidesToScroll:1\n // }\n // },\n\n // ],\n // });\n\n this._initSlick()\n\n //this._setOpacity()\n },\n\n\n _initSlick(){ \n\n this.wrap.slick({\n edgeFriction: 0,\n infinite: false,\n arrows: api.fn.getData(this.wrap, 'arrows', true),\n appendArrows: this.wrap.parents('.s-carousel-cards__row').find('.carousel_arrows'),\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n dots: api.fn.getData(this.wrap, 'dots', false),\n appendDots: this.wrap.parent().find('.carousel_dots'),\n rows: 0,\n variableWidth: true,\n slidesToShow: 4,\n slidesToScroll: parseInt(this.wrap.attr('data-scrollItems')),\n responsive: [\n {\n breakpoint: 1800,\n settings: {\n slidesToShow:2,\n slidesToScroll:2\n }\n },\n { \n breakpoint: api.vars.scr.tablet - 1,\n settings: {\n slidesToShow:1,\n slidesToScroll:1\n }\n },\n ],\n }); \n\n \n this.wrap.on('edge', (evt, fn, by) => {\n \n })\n \n this.wrap.on('beforeChange', (slick, currentSlide, nextSlide) => {\n this.wrap.find('[data-src]').lazy();\n\n console.log(\"nextSlide\", nextSlide)\n }); \n\n this.wrap.on('afterChange', function(event, slick, currentSlide, nextSlide){ \n\n if(currentSlide != 0){\n $('.s-carousel-cards__wrp').addClass('opacityLeft')\n }else{\n \n $('.s-carousel-cards__wrp').removeClass('opacityLeft')\n } \n });\n },\n\n _createDotContainer() {\n $('
').insertBefore(this.wrap);\n },\n _createArrowContainer() {\n $('
').appendTo(this.wrap.parents('.s-carousel-cards__row'));\n },\n\n _setOpacity(){\n this.carouselChild = this.wrap.find('.s-carousel-cards__carousel__item').length;\n\n if(this.carouselChild > 3){\n this.wrap.parents('.s-carousel-cards__wrp').addClass('opacityRight')\n } \n }\n });\n})(jQuery);\n","/// \n\n\n;(function ($) {\n\n $.widget(\"nsp.quickActionsCarousel\", {\n options: {\n },\n\n _create: function () {\n this.wrap = this.element;\n\n this._createDotContainer();\n\n $(document).on(\"window-resized\", ()=> {\n this.iniSlick();\n })\n\n this.iniSlick();\n },\n\n iniSlick: function () {\n\n if (api.vars.windW < api.vars.scr.tablet) { \n if (!this.wrap.hasClass('slick-initialized')) {\n this.wrap.slick({\n rows: 0,\n slidesToShow: 1,\n slidesToScroll: 1,\n dots: true,\n arrows: false,\n infinite: false,\n variableWidth: true,\n appendDots: this.wrap.parent().find('.carousel_dots')\n });\n }\n } \n else {\n if (this.wrap.hasClass('slick-initialized')) {\n this.wrap.slick('unslick');\n }\n }\n\n },\n\n _createDotContainer() {\n $('
').insertBefore(this.wrap);\n }\n\n });\n})(jQuery);","/// \n\n(function ($) {\n $.widget(\"nsp.simpleMasonry\", {\n opts: {\n \n },\n\n _create: function () {\n this.wrap = this.element;\n\n this._splitBoxes(); \n \n },\n _splitBoxes: function(){ \n var leftCol = this.wrap.find('.s-product-feats__left').eq(0);\n var rightCol = this.wrap.find('.s-product-feats__right').last();\n var oddItems = this.wrap.find('.b-prod-benef-box').clone().odd();\n var evenItems = this.wrap.find('.b-prod-benef-box').clone().even();\n \n oddItems.appendTo(rightCol)\n evenItems.appendTo(leftCol)\n } \n });\n})(jQuery);\n","/// \n\n(function ($) {\n $.widget(\"nsp.hero\", {\n options: {},\n\n _create: function () {\n this.wrap = this.element;\n this.wrap.addClass(\"ready\")\n this.carousel = $(\".s-hero__conts\", this.wrap);\n\n this.items = $(\".s-hero__item\", this.wrap);\n\n this._arrowDown()\n\n this._loadAllImgs()\n\n if (this.items.length > 1) {\n\n this._createArrowPlaceholder();\n\n this.carousel.on('init', (event, slick)=>{\n api.accessibilities.aria_slick_arrows(this.wrap)\n \n });\n\n //console.log(this.wrap, api.fn.getData(this.wrap, 'autoplay-speed', 10000))\n\n this.carousel.slick({\n rows: 0,\n infinite: true,\n dots: false,\n arrows: true,\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n edgeFriction: api.vars.slick.edgeFriction,\n autoplay: api.fn.getData(this.wrap, 'autoplay', false),\n autoplaySpeed: api.fn.getData(this.wrap, 'autoplay-speed', 10000),\n pauseOnHover: false,\n appendArrows: this.arrowHolder.find('.s-hero__arrows__ins')\n });\n\n // this.carousel.on('beforeChange', (slick, currentSlide, nextSlide)=>{\n // this.carousel.find('[data-src]').lazy();\n // });\n \n // this.carousel.on('afterChange', (slick, currentSlide)=>{\n // this.carousel.find('[data-src]').lazy();\n // })\n }\n },\n\n _loadAllImgs(){\n\n this.wrap.find('.s-hero__item').each( (indx, item) =>{\n if($(item).attr('data-src') && $(item).attr('data-src') !==\"\"){\n $(item).css('background-image', `url(${$(item).attr('data-src')}`)\n }\n\n var rightBg = $('.s-hero__img-right__bg', $(item))\n if(rightBg.length){\n if(rightBg.attr('data-src') && rightBg.attr('data-src') !==\"\"){\n rightBg.css('background-image', `url(${rightBg.attr('data-src')}`)\n }\n }\n })\n\n },\n\n _createArrowPlaceholder(){\n this.arrowHolder = $('
').appendTo(this.wrap)\n },\n\n _arrowDown(){\n $('.e-arrow--down', this.wrap).on('click', ()=>{\n api.fn.moveWindowToObj(this.wrap.next());\n })\n }\n\n });\n})(jQuery);\n","/// \n\n(function ($) {\n $.widget(\"nsp.fullwidthGallery\", {\n options: {\n \n },\n\n _create: function () {\n this.wrap = this.element;\n\n this._createDotContainer(); \n this._initSlick(); \n },\n\n _initSlick(){\n this.carousel = this.wrap.find(\".s-fullwidth-gallery__carousel\");\n\n this.carousel.slick({\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: true,\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n dots: false,\n rows: 0,\n slidesToShow: 1,\n appendArrows: this.wrap.find(\".carousel_arrows\"), \n slidesToScroll: parseInt(this.carousel.attr('data-scrollItems')),\n responsive: [\n {\n breakpoint: api.vars.scr.tablet - 1,\n settings: {\n dots: true,\n appendDots: this.wrap.find(\".carousel_dots\"),\n },\n },\n ],\n });\n\n this.carousel.on('afterChange', function(event, slick, currentSlide, nextSlide){ \n if(currentSlide != 0){\n $('.s-fullwidth-gallery__wrp').addClass('opacityLeft')\n } \n else{ \n $('.s-fullwidth-gallery__wrp').removeClass('opacityLeft')\n } \n });\n\n },\n\n _createDotContainer() {\n $('
').insertBefore(this.wrap.find('.s-fullwidth-gallery__row'));\n }\n \n });\n})(jQuery);\n","/// \n\n(function ($) {\n $.widget(\"nsp.tableCharge\", {\n options: {},\n\n _create: function () {\n this.wrap = this.element;\n\n this._eqRowTop();\n\n $(document).on(\"window-loaded\", ()=>{\n this._reMinHeight()\n });\n\n $(document).on(\"window-resized\", ()=>{\n this._reMinHeight()\n });\n\n if (\n this.wrap.hasClass(\"b-table-charge--day\") ||\n this.wrap.hasClass(\"b-table-charge--night\")\n ) {\n if(api.vars.windW > api.vars.scr.tablet){ \n this._addClicks();\n } \n }\n },\n\n _eqRowTop() {\n var row = this.wrap\n .parents(\".b-table-charge-row\")\n .not(\".js-row-init\");\n if (row.length) {\n if (!row.hasClass(\"js-row-init\")) {\n row.addClass(\"js-row-init\");\n api.fn.equalMinHeights($(\".b-table-charge__top\", row));\n }\n }\n },\n\n _reMinHeight(){\n var row = this.wrap.parents(\".b-table-charge-row\")\n if (row.length) {\n $(\".b-table-charge__top\", row).removeAttr(\"style\")\n api.fn.equalMinHeights($(\".b-table-charge__top\", row));\n }\n\n },\n\n _addClicks() {\n\n this.wrap.on(\"mouseover\", (e) => {\n var parent = this.wrap.parents(\".b-table-charge-bg\");\n var cls = this.wrap.hasClass(\"b-table-charge--day\")\n ? \"js-is-day\"\n : \"js-is-night\";\n \n\n if (parent.length) {\n if(cls===\"js-is-night\"){\n parent.removeClass(\"js-is-day\") \n } else if(cls===\"js-is-day\"){\n parent.removeClass(\"js-is-night\") \n }\n \n parent.addClass(cls);\n }\n });\n\n this.wrap.on(\"mouseout\", (e) => {\n var parent = this.wrap.parents(\".b-table-charge-bg\");\n\n parent.removeClass(\"js-is-day\").removeClass(\"js-is-night\") \n })\n },\n });\n})(jQuery);\n","/// \n\n(function ($) {\n $.widget(\"nsp.articleCards\", {\n \n _create: function () {\n this.wrap = this.element;\n \n $('.s-carousel-article__wrp').addClass('opacityLeft').addClass('opacityRight')\n\n \n this._createDotContainer();\n this._createArrowContainer()\n \n this._initSlick();\n //this._setOpacity();\n },\n\n _initSlick(){ \n\n this.wrap.slick({\n lazyLoad: 'progressive',\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: api.fn.getData(this.wrap, 'arrows', true),\n appendArrows: this.wrap.parents('.s-carousel-article__row').find('.carousel_arrows'),\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n dots: api.fn.getData(this.wrap, 'dots', false),\n appendDots: this.wrap.parent().find('.carousel_dots'),\n rows: 0,\n slidesToShow:1,\n slidesToScroll: parseInt(this.wrap.attr('data-scrollItems')),\n appendArrows: this.wrap\n .parents(\".s-carousel-article__body\")\n .find(\".carousel_arrows\"),\n variableWidth:false,\n responsive: [\n {\n breakpoint: api.vars.scr.tablet ,\n settings: {\n variableWidth: true, \n },\n }\n ],\n }); \n \n this.wrap.on('beforeChange', (slick, currentSlide, nextSlide) => {\n this.wrap.find('[data-src]').lazy();\n });\n\n }, \n\n _createDotContainer() {\n $('
').insertBefore(this.wrap);\n },\n _createArrowContainer() {\n $('
').appendTo(this.wrap.parents('.s-carousel-article__row'));\n },\n \n });\n})(jQuery);\n","/// \n\n(function ($) {\n $.widget(\"nsp.headerDesktop\", {\n options: {},\n\n _create: function () {\n this.wrap = this.element;\n\n this._iniVars();\n\n this._createLine();\n\n this._toShowSubMenu(this.activeMainMenu, 0);\n\n this._iniMainMenu();\n \n this._iniSubMenu();\n\n this._iniMegaMenu();\n\n this._iniSideMenu();\n\n this._showIconsLabel();\n \n this.wrap.find('.btn--close').on(\"click\", ()=>{\n this._hideMegaMenu();\n })\n },\n\n _iniVars() {\n // delays\n this.delayMainMenuReset = 1000;\n this.delaySubMenuReset = 1000;\n this.delayShowSubMenu = 200;\n this.delayMegaMenuReset = 1000;\n this.delaySideMenuReset = 1000;\n this.delayShowSideMenu = 200;\n this.delayShowMegaMenu = 500;\n\n //hover timers\n this.mainMenuTimer = 0;\n this.subMenuTimer = 0;\n this.megaMenuTimer = 0;\n this.showMegaMenuTimer = 0;\n this.sideMenuTimer = 0;\n\n this.menuItems = this.wrap.find(\".header__menu__item\");\n this.activeMainMenu = this.wrap.find(\".header__menu .active a\");\n\n this.subMenu = this.wrap.find(\".header__sub\");\n this.subMenuItems = this.subMenu.find(\".header__sub__item\");\n this.activeSubMenu = this.subMenu.find(\".active a\");\n this.subLine = null\n\n this.megaMenu = this.wrap.find(\".header__mega\");\n this.megaMenuItems = this.megaMenu.find(\".header__mega__items\");\n this.megaMenuLinks = this.megaMenu.find(\".header__mega__col .header__mega__item\");\n \n },\n\n _createLine(){\n this.subLine = $('
').appendTo(this.subMenu)\n },\n\n _moveLine(){\n var actSubMenu = this.subMenu.find(\"li.active:visible\")\n if(actSubMenu.length){\n this.subLine.css({\n 'transform':`translateX(${actSubMenu.offset().left}px)`,\n \"width\": actSubMenu.outerWidth()\n })\n } else {\n this.subLine.css({\n \"width\": 0\n })\n }\n },\n\n /* #region main menu and submenu */\n _iniMainMenu() {\n this.menuItems\n .on(\"mouseover focus\", (e) => {\n var item = $(e.target);\n\n api.accessibilities.ARIA_toggleContent(this.menuItems, false);\n api.accessibilities.ARIA_toggleContent(item, true);\n\n clearTimeout(this.mainMenuTimer);\n clearTimeout(this.megaMenuTimer);\n\n this._hideMegaMenu();\n\n \n\n if(item.attr(\"aria-haspopup\")===\"true\"){\n \n this._setActiveMainMenu(item); \n\n this._toShowSubMenu(item, this.delayShowSubMenu);\n\n this._resetSubMenu()\n \n this._moveLine()\n\n } else { \n $(\".header__sub__items\", this.subMenu).removeClass('active').hide();\n\n }\n \n\n })\n .on(\"mouseout\", (e) => {\n var item = $(e.target);\n\n this._toResetMainMenu();\n this._toHideMegaMenu()\n });\n \n },\n\n _removeActiveMainMenu() {\n this.menuItems.parent().removeClass(\"active\");\n },\n\n _setActiveMainMenu(lnk) { \n this._removeActiveMainMenu();\n lnk.parent().addClass(\"active\");\n },\n\n _toResetMainMenu() {\n this.mainMenuTimer = setTimeout(() => {\n this._resetMainMenu();\n }, this.delayMainMenuReset);\n },\n\n _resetMainMenu() {\n this._setActiveMainMenu(this.activeMainMenu);\n this._toShowSubMenu(this.activeMainMenu, 0);\n api.accessibilities.ARIA_toggleContent(this.menuItems, false);\n api.accessibilities.ARIA_toggleContent(this.activeMainMenu, true);\n },\n\n _toShowSubMenu(item, delay) {\n \n if (item.attr(\"aria-haspopup\")===\"true\") {\n var activeSubMenu = $(`#${item.attr(\"aria-controls\")}`); \n\n this.mainMenuTimer = setTimeout(() => {\n this._showSubMenu(activeSubMenu);\n }, delay);\n }\n },\n\n _showSubMenu(activeSubMenu) {\n $(\".header__sub__items\", this.subMenu).not(activeSubMenu).removeClass('active').hide();\n activeSubMenu.show();\n \n setTimeout(()=>{ \n activeSubMenu.addClass('active')\n setTimeout(()=>{\n this._moveLine()\n },100)\n },10)\n },\n \n /* #endregion */\n\n /* #region submenu */\n _iniSubMenu(){\n this.subMenu\n .on(\"mouseover focus\", (e) => {\n var item = $(e.target)\n\n // if (item.attr(\"aria-haspopup\")===\"true\") {\n // e.preventDefault()\n // }\n\n clearTimeout(this.mainMenuTimer);\n clearTimeout(this.megaMenuTimer);\n clearTimeout(this.subMenuTimer);\n \n })\n .on(\"mouseout\", (e) => {\n this._toResetMainMenu();\n this._toResetSubMenu()\n this._toHideMegaMenu()\n });\n },\n\n _setActiveSubMenu(lnk) { \n this._removeActiveSubMenu();\n this._addInactiveSubMenu(lnk);\n lnk.parent().removeClass(\"inactive\").addClass(\"active\");\n this._moveLine();\n }, \n\n _removeActiveSubMenu() {\n this.subMenuItems.parent().removeClass(\"active\");\n this._moveLine();\n },\n\n _addInactiveSubMenu(lnk){ \n this.subMenuItems.not(lnk).parent().addClass(\"inactive\");\n\n },\n\n _toResetSubMenu() {\n this.subMenuTimer = setTimeout(() => {\n this._resetSubMenu();\n }, this.delaySubMenuReset);\n },\n\n _resetSubMenu(){\n this._setActiveSubMenu(this.activeSubMenu);\n this.subMenuItems.parent().removeClass(\"inactive\");\n }, \n /* #endregion */\n\n /* #region megaMenu */\n _iniMegaMenu() {\n this.subMenuItems\n .on(\"mouseover focus\", (e) => {\n var item = $(e.target);\n\n \n clearTimeout(this.mainMenuTimer);\n clearTimeout(this.megaMenuTimer);\n clearTimeout(this.subMenuTimer);\n clearTimeout(this.showMegaMenuTimer);\n \n api.accessibilities.ARIA_toggleContent(this.subMenuItems, false);\n api.accessibilities.ARIA_toggleContent(item, true);\n\n this._subRemoveActive();\n\n this._hideSideMenu();\n\n this._setActiveSubMenu(item);\n\n this._toShowMegaMenu(item);\n\n })\n .on(\"mouseout\", (e) => {\n var item = $(e.target);\n });\n\n \n this.megaMenu\n .on(\"mouseover\", (e) => {\n clearTimeout(this.mainMenuTimer);\n clearTimeout(this.megaMenuTimer);\n clearTimeout(this.subMenuTimer);\n clearTimeout(this.showMegaMenuTimer);\n })\n .on(\"mouseout\", (e) => {\n this._toHideMegaMenu()\n })\n\n \n }, \n\n _toShowMegaMenu(item, delay) {\n \n if (item.attr(\"aria-haspopup\")===\"true\") {\n var activeMegaMenu = $(`#${item.attr(\"aria-controls\")}`);\n\n if(activeMegaMenu.length){\n\n this.showMegaMenuTimer = setTimeout(() => { \n \n this._showMegaMenu(activeMegaMenu);\n\n }, this.delayShowMegaMenu);\n\n } else {\n this._hideMegaMenu()\n }\n }\n },\n\n _showMegaMenu(activeMegaMenu) {\n if(this.megaMenu.hasClass('active')){\n this.megaMenu.show()\n this.wrap.addClass(\"mega-menu-opened\")\n this._showMegaMenuItem(activeMegaMenu)\n $('html, body').addClass('noscroll-desktops')\n } else {\n this._showMegaMenuItem(activeMegaMenu)\n this.megaMenu.slideDown(250, 'linear', ()=>{\n this.megaMenu.addClass(\"active\")\n this.wrap.addClass(\"mega-menu-opened\")\n $('html, body').addClass('noscroll-desktops')\n });\n }\n },\n\n _showMegaMenuItem(activeMegaMenu){\n this._hideMegaMenuItems(activeMegaMenu)\n activeMegaMenu.show();\n },\n\n _hideMegaMenuItems(activeMegaMenu){\n this.megaMenuItems.not(activeMegaMenu).hide();\n $('html, body').removeClass('noscroll-desktops')\n },\n\n _toHideMegaMenu() {\n \n clearTimeout(this.showMegaMenuTimer);\n this.megaMenuTimer = setTimeout(() => {\n this._hideMegaMenu();\n }, this.delayMegaMenuReset);\n },\n\n _hideMegaMenu(){\n this._hideMegaMenuItems()\n this.megaMenu.removeClass(\"active\").hide()\n this.wrap.removeClass(\"mega-menu-opened\")\n api.accessibilities.ARIA_toggleContent(this.subMenuItems, false);\n },\n /* #endregion */\n \n /* #region megaMenu */\n _iniSideMenu(){\n this.megaMenuLinks\n .on(\"mouseover\", (e) => {\n var item = $(e.target);\n\n clearTimeout(this.mainMenuTimer);\n clearTimeout(this.megaMenuTimer);\n clearTimeout(this.subMenuTimer);\n clearTimeout(this.sideMenuTimer);\n\n this._subAddActive(item)\n\n this._toShowSideMenu(item, this.delayShowSideMenu)\n\n })\n .on(\"mouseout\", (e) => {\n var item = $(e.target);\n\n });\n },\n\n _subAddActive(item){\n this._subRemoveActive()\n var parent = item.parents('.header__mega__col')\n if(parent.length){\n item.addClass('active')\n }\n },\n\n _subRemoveActive(item){\n this.megaMenu.find('.header__mega__col .active').removeClass('active')\n },\n\n _toShowSideMenu(item, delay) {\n if (item.attr(\"aria-haspopup\")===\"true\") {\n var activeSideMenu = $(`#${item.attr(\"aria-controls\")}`);\n\n this.sideMenuTimer = setTimeout(() => {\n this._showSideMenu(activeSideMenu);\n }, delay);\n } else {\n \n this._hideSideMenu()\n }\n },\n\n _showSideMenu(activeSideMenu){\n this._hideSideMenu()\n activeSideMenu.parents(\".header__mega__side\").addClass(\"active\")\n activeSideMenu.show()\n },\n\n _hideSideMenu(){\n $(\".header__mega__side__item\", this.megaMenu).hide()\n $(\".header__mega__side\", this.megaMenu).removeClass(\"active\")\n },\n\n _showIconsLabel(){\n var items = $(\".header__tools__anim\", this.wrap); \n\n items.each(function(){\n $(this).mouseenter(function(){\n $(this).addClass('expand'); \n $(this).find('a:first-child').addClass('blue')\n })\n\n $(this).mouseleave(function(){\n $(this).removeClass('expand');\n $(this).find('a:first-child').removeClass('blue')\n })\n })\n }\n /* #endregion */\n \n });\n})(jQuery);\n","/// \n\n(function ($) {\n $.widget(\"nsp.headerScroll\", {\n options: {},\n\n _create: function () {\n this.header = this.element;\n\n this.timeout = 0\n this.didScroll;\n this.lastScrollTop = 0;\n this.navbarHeight = this.header.outerHeight();\n this.delta = this.navbarHeight / 2;\n \n $(window).scroll((event) =>{\n //clearTimeout(this.timeout)\n this.didScroll = true;\n \n setTimeout(()=>{\n if (this.didScroll) {\n this._hasScrolled();\n this.didScroll = false;\n }\n }, 250)\n }); \n \n },\n\n _hasScrolled() {\n var st = $(window).scrollTop();\n\n \n // Make sure they scroll more than delta\n if(Math.abs(this.lastScrollTop - st) <= this.delta)\n return;\n\n if (st > this.lastScrollTop && st > this.navbarHeight){\n this.header.removeClass('nav-down').addClass('nav-up');\n } else {\n // Scroll Up\n if(st + $(window).height() < $(document).height()) {\n this.header.removeClass('nav-up').addClass('nav-down');\n }\n } \n this.lastScrollTop = st;\n }\n\n \n });\n})(jQuery);\n","/// \n\n(function ($) {\n jQuery.widget(\"nsp.asideMenu\", {\n options: {},\n _setOption: function (key, value) {\n this.options[key] = value;\n this._update();\n },\n _create: function () {\n this._iniVars();\n\n this._stickyMenu();\n\n\n if (!this.onlySticky) {\n this._scrollOnClick();\n\n setTimeout(() => {\n this._checkActiveSection();\n }, 100);\n\n $(window).on(\"scroll\", () => {\n this._checkActiveSection();\n });\n }\n },\n\n _iniVars: function () {\n this.wrap = this.element;\n this.onlySticky = this.wrap.hasClass(\"only-sticky\") ? true : false;\n this.ul = $(\"ul\", this.wrap);\n this.liItems = $(\"li\", this.wrap);\n this.hrefs = $(\"ul li a\", this.wrap);\n },\n\n _scrollOnClick: function () {\n \n if (!this.onlySticky) {\n this.hrefs.on(\"click\", function (e) {\n e.preventDefault();\n\n $(document).off(\"scroll\");\n\n var target = this.hash,\n target = $(target);\n\n $(\"html, body\")\n .stop()\n .animate(\n {\n scrollTop: target.offset().top - 120,\n },\n 600,\n \"swing\"\n );\n });\n }\n },\n\n _checkActiveSection: function () {\n \n if (!this.onlySticky) {\n var menu_pos =\n this.element.offset().top + this.element.scrollTop() + 40;\n\n var sections = $(\".s-hr__section\");\n\n sections.each(function () {\n if (menu_pos >= $(this).offset().top) {\n var activeId = $(this).attr(\"id\");\n var activeHref = $('a[href=\"#' + activeId + '\"]');\n var activeLi = activeHref.parent();\n\n $(\".b-aside-menu li a\").removeClass(\"active\");\n\n activeHref.addClass(\"active\");\n }\n });\n }\n },\n\n _stickyMenu: function () {\n this.element.stick_in_parent({\n offset_top: api.fn.getHeaderHeight(),\n });\n },\n });\n})(jQuery);\n","/// \n\n(function ($) {\n $.widget(\"nsp.timeline\", {\n options: {},\n\n _create: function () {\n this.elem = this.element;\n\n this._iniVars()\n\n this._checkMobile()\n\n this._iniSlider();\n\n $(window).on('resize', _ => {\n this._checkMobile()\n\n if (!this.sliders.hasClass('slick-initialized') && !this.isMobile) {\n this._iniSlider();\n }\n })\n\n this._iniTimelineNav()\n },\n\n _iniVars() {\n this.timelineCont = $('.s-timeline__cont', this.elem)\n this.timelineItemsWrap = $('.s-timeline__items', this.elem)\n this.groups = $('.s-timeline__group', this.elem);\n this.sliders = $('.s-timeline__group__slider', this.elem);\n this.btnPrev = $('.s-timeline__group__nav a.nav-prev', this.elem);\n this.btnNext = $('.s-timeline__group__nav a.nav-next', this.elem);\n\n this.timelineNav = $('.s-timeline__nav', this.elem)\n this.timelineNavList = $('.s-timeline__nav__list', this.elem)\n this.timelineNavItems = $('.s-timeline__nav__item', this.elem)\n this.timelineNavLinks = $('.s-timeline__nav__link', this.elem)\n },\n\n _checkMobile() {\n this.isMobile = api.vars.windW < api.vars.scr.desktop\n },\n\n _iniSlider() {\n this.sliders.each(function () {\n var slider = $(this);\n slider.slick({\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: true,\n dots: false,\n swipeToSlide: true,\n rows: 0,\n slidesToShow: 1,\n prevArrow: slider.parents('.s-timeline__group').find('.nav-prev'),\n nextArrow: slider.parents('.s-timeline__group').find('.nav-next'),\n responsive: [\n {\n breakpoint: api.vars.scr.desktop,\n settings: \"unslick\"\n }\n ]\n });\n\n slider.on('beforeChange', (slick, currentSlide, nextSlide) => {\n slider.find('[data-src]').lazy();\n });\n\n slider.on('afterChange', (slick, currentSlide) => {\n slider.find('[data-src]').lazy();\n })\n })\n },\n\n _iniTimelineNav() {\n var self = this;\n\n this.timelineNavLinks.on('click', function(e) {\n e.preventDefault()\n\n var link = $(this);\n var target = self.groups.filter(`[id=\"${link.attr('href').substr(1)}\"]`)\n self.scrollToGroup(target)\n })\n\n setTimeout(_ => {\n this._checkStickyTimelineNav()\n this._checkActiveGroup()\n })\n\n $(window).on('resize', _ => {\n this._checkStickyTimelineNav()\n this._checkActiveGroup()\n })\n $(window).on('scroll', _ => {\n if (!this.isMobile) {\n this._checkStickyTimelineNav()\n this._checkActiveGroup()\n\n setTimeout(_ => {\n this._checkStickyTimelineNav()\n this._checkActiveGroup()\n }, 280)\n }\n })\n\n this.timelineItemsWrap.on('scroll', _ => {\n this._checkActiveGroup()\n this.timelineItemsWrap.find('[data-src]').lazy();\n })\n },\n\n _checkStickyTimelineNav: function () {\n if (this.isMobile) {\n return;\n }\n\n var header = $('.header__layer');\n\n var timelineItemsWrapHeight = this.timelineItemsWrap.outerHeight();\n var minTopPosition = this.timelineItemsWrap.offset().top;\n var maxTopPosition = minTopPosition + timelineItemsWrapHeight\n\n var timelineNavHeight = this.timelineNav.outerHeight();\n var topElementsHeight = header.hasClass('nav-down') ? header.outerHeight() : 0\n var scrollOffset = $(window).scrollTop()\n var stickyPosition = scrollOffset + topElementsHeight + (api.vars.windH - topElementsHeight) / 2 - timelineNavHeight / 2;\n\n if (stickyPosition >= minTopPosition && stickyPosition + timelineNavHeight <= maxTopPosition) {\n this.timelineNav.css({\n 'position': 'fixed',\n \"top\": Number(stickyPosition - scrollOffset) + \"px\",\n \"left\": this.timelineCont.offset().left + \"px\",\n \"width\": this.timelineCont.width() - this.timelineItemsWrap.width()\n }).addClass('is-sticky')\n }\n else if (stickyPosition < minTopPosition) {\n this.timelineNav.css({\n 'position': 'absolute',\n \"top\": 0,\n \"left\": this.timelineCont.offset().left + \"px\",\n \"width\": this.timelineCont.width() - this.timelineItemsWrap.width()\n }).removeClass('is-sticky')\n }\n else if (stickyPosition + timelineNavHeight > maxTopPosition) {\n this.timelineNav.css({\n 'position': 'absolute',\n \"top\": timelineItemsWrapHeight - timelineNavHeight + \"px\",\n \"left\": this.timelineCont.offset().left + \"px\",\n \"width\": this.timelineCont.width() - this.timelineItemsWrap.width()\n }).removeClass('is-sticky')\n }\n\n },\n\n _checkActiveGroup() {\n var checkpoint = !this.isMobile\n ? $(window).scrollTop() + api.vars.windH / 2\n : this.timelineItemsWrap.offset().left\n\n this.groups.each((i) => {\n var group = this.groups.eq(i);\n var groupStart = !this.isMobile\n ? group.offset().top\n : group.offset().left\n var groupEnd = !this.isMobile\n ? groupStart + group.outerHeight()\n : groupStart + group.outerWidth()\n\n if (checkpoint >= groupStart && checkpoint < groupEnd) {\n this.activateGroup(group)\n }\n })\n },\n\n scrollToGroup(group) {\n if (group.length) {\n if (!this.isMobile) {\n var offset = group.offset().top > $(window).scrollTop() ? $('.header').outerHeight() : 0\n api.fn.moveWindowToObj(group, offset - 30)\n }\n else {\n var scrollMove = group.offset().left + this.timelineItemsWrap.scrollLeft() - this.timelineItemsWrap.offset().left\n\n this.timelineItemsWrap.clearQueue();\n this.timelineItemsWrap\n .stop()\n .animate({ scrollLeft: scrollMove },400);\n\n api.fn.moveWindowToObj(this.timelineItemsWrap, -60)\n }\n }\n },\n\n activateGroup(group) {\n var groupId = group.attr('id')\n\n var groupNavItem = this.timelineNavLinks.filter(`[href='#${groupId}']`).parent()\n\n this.timelineNavItems.removeClass('active')\n\n if (groupNavItem.length) {\n groupNavItem.addClass('active')\n\n $('.s-timeline__group__period.mob-info').text(group.find('.s-timeline__group__period').text())\n $('.s-timeline__group__title.mob-info').text(group.find('.s-timeline__group__title').text())\n\n if (this.isMobile) {\n var scrollMove = groupNavItem.offset().left + this.timelineNav.scrollLeft() - 20\n this.timelineNav.clearQueue();\n this.timelineNav\n .stop()\n .animate({ scrollLeft: scrollMove }, 400);\n }\n }\n \n }\n\n\n });\n})(jQuery);\n","/// \n\n(function ($) {\n $.widget(\"nsp.readspeaker\", {\n options: {},\n\n _create () {\n\n this.sticker = $('.readspeaker__sticker', this.element)\n this.trigger = $('.readspeaker__trigger', this.element)\n this.close = $('.readspeaker__close', this.element)\n\n this.trigger.on(\"click\", ()=>{\n this.showPanel()\n })\n this.close.on(\"click\", ()=>{\n this.hidePanel()\n })\n },\n\n showPanel(){\n this.trigger.hide()\n this.close.show()\n this.sticker.show();\n },\n\n hidePanel(){\n this.trigger.show()\n this.close.hide()\n this.sticker.hide();\n\n var stopBtn = $('.rsbtn_closer')\n if(stopBtn.length){\n stopBtn.trigger(\"click\")\n }\n }\n \n \n });\n})(jQuery);\n","/// \n\n\n;(function ($) {\n\n $.widget(\"nsp.organogrammaCarousel\", {\n options: {\n },\n\n _create: function () {\n this.wrap = this.element;\n \n\n $(document).on(\"window-resized\", ()=> {\n this.iniSlick();\n })\n\n this.iniSlick();\n },\n\n iniSlick: function () {\n var items = this.wrap.find('.s-organogramma__item').length;\n \n if (api.vars.windW < 1370) { \n if (!this.wrap.hasClass('slick-initialized')) {\n if(items > 1){\n this.wrap.slick({\n slidesToShow: 1,\n slidesToScroll: 1,\n dots: false,\n arrows: false,\n infinite: false,\n variableWidth: true \n });\n }else{\n this.wrap.addClass('no-carousel')\n }\n \n }\n } \n else {\n if (this.wrap.hasClass('slick-initialized')) {\n this.wrap.slick('unslick');\n }\n }\n\n } \n\n });\n})(jQuery);","/// \n\n\n;(function ($) {\n\n $.widget(\"nsp.searchresultsCarousel\", {\n options: {\n },\n\n _create: function () {\n this.wrap = this.element;\n \n\n $(document).on(\"window-resized\", ()=> {\n this.iniSlick();\n })\n\n this.iniSlick();\n },\n\n iniSlick: function () { \n \n if (api.vars.windW <= 836) { \n if (!this.wrap.hasClass('slick-initialized')) {\n this.wrap.slick({\n slidesToShow: 1,\n slidesToScroll: 1,\n dots: false,\n arrows: false,\n infinite: false,\n variableWidth: true \n });\n \n }\n } \n else {\n if (this.wrap.hasClass('slick-initialized')) {\n this.wrap.slick('unslick');\n }\n }\n\n } \n\n });\n})(jQuery);","/// \n\n\n;(function ($) {\n\n $.widget(\"nsp.breadcrumb\", {\n options: {},\n\n _create: function () {\n\n if($('html').hasClass(\"no-touchevents\")){\n this._init()\n }\n\n },\n\n _init(){\n this.wrap = this.element;\n this.mover = $('ul', this.wrap);\n this.windowW = this._getWindowWidth()\n\n this._resetPosition()\n this._checkIfActive();\n\n\n $(document).on(\"window-resized\", ()=>{\n var newWindowW = this._getWindowWidth()\n\n if(this.windowW != newWindowW){\n this.windowW = this._getWindowWidth()\n this._resetPosition()\n this._checkIfActive();\n }\n \n });\n\n this._events();\n },\n\n _events() {\n\n var offsetX = 0;\n var isDown = false;\n $('.s-breadcrumb__conts')[0].addEventListener('mousedown', (e) => {\n isDown = true;\n offsetX = this.mover[0].offsetLeft - e.clientX;\n \n }, true);\n\n document.addEventListener('mouseup', (e) => {\n isDown = false;\n }, true);\n\n document.addEventListener('mousemove', (e) => {\n //event.preventDefault();\n if (isDown) {\n var finalX = e.clientX + offsetX\n this._moveOverlay(finalX)\n }\n }, true);\n\n },\n\n _checkIfActive() {\n var moverW = this.mover[0].scrollWidth;\n var parentW = this.mover.parent().outerWidth();\n\n if (moverW + this.margL > parentW) {\n this.wrap.removeClass('not-active').addClass('movable')\n return true\n } else {\n this.wrap.addClass('not-active').removeClass('movable')\n return false\n }\n },\n\n _moveOverlay(finalX) {\n\n if (this._checkIfActive()) {\n\n finalX = finalX <= 0 ? finalX : 0;\n var moverW = this.mover[0].scrollWidth;\n var parentW = this.mover.parent().outerWidth();\n var minX = - moverW - this.margL - 50 + parentW\n finalX = finalX >= minX ? finalX : minX\n \n this.mover.css('left', `${finalX}px`)\n }\n\n },\n\n _getWindowWidth() {\n return window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\n },\n\n _resetPosition(){\n this.mover.css('left', 0)\n this.margL = this.mover.offset().left;\n }\n\n });\n})(jQuery);","/// \n\n(function ($) {\n $.widget(\"nsp.compareTwo\", {\n options: {},\n\n _create: function () {\n this.wrap = this.element;\n this.allTxtsInCard = $(\".b-product-card\", this.wrap).find(\".b-product-card__txt\").length / 2;\n this.timer = 0;\n\n this._iniForEqualHeights();\n\n this._setEqualHeights();\n\n this.iniSlick();\n\n\n $(document).on(\"window-resized\", () => {\n clearTimeout(this.timer)\n this._setEqualHeights();\n this.iniSlick();\n\n });\n\n },\n\n iniSlick: function () {\n if (api.vars.windW < api.vars.scr.tablet) {\n if (!this.wrap.hasClass(\"slick-initialized\")) {\n this.wrap.slick({\n rows: 0,\n slidesToShow: 1,\n slidesToScroll: 1,\n dots: true,\n arrows: false,\n infinite: false,\n variableWidth: true,\n });\n }\n } else {\n if (this.wrap.hasClass(\"slick-initialized\")) {\n this.wrap.slick(\"unslick\");\n }\n }\n },\n\n _iniForEqualHeights: function () {\n $(\".b-product-card\", this.wrap).each((indx, item) => {\n var card = $(item);\n var txt = $(\".b-product-card__txt\", card);\n txt.each((indx, txtItem) => {\n $(txtItem).addClass(\"compare-height-\" + indx);\n });\n });\n },\n\n _setEqualHeights: function () {\n this.timer = setTimeout(() => {\n $(\".b-product-card__txt\", this.wrap).css(\"height\", \"auto\");\n\n for (var i = 0; i < this.allTxtsInCard; i++) {\n api.fn.equalHeights($(\".compare-height-\" + i));\n }\n }, 100);\n\n //\n },\n });\n})(jQuery);\n","(function ($) {\n\n api.accessibilities = {\n \n ARIA_toggleContent: function (obj, bool) {\n\t\t\t$(obj).attr({'aria-expanded':bool});\n\t\t},\n\n\t\tAria_controls: function (obj, controlObjId) {\n\t\t\t$(obj).attr('aria-controls', controlObjId);\n\t\t},\n\n\t\taria_slick_arrows: function(wrap){\n\t\t\twrap.find('.slick-prev').attr('aria-label', \"previous slide\")\n\t\t\twrap.find('.slick-next').attr('aria-label', \"next slide\")\n\t\t}\n\n }\n\n})(jQuery);","/// \n/// \n\n(function ($) {\n api.fn = {\n getWindDims: function () {\n var dims = api.fn.viewport();\n api.vars.windW = dims.width;\n api.vars.windH = dims.height;\n\n api.vars.is = api.fn.is();\n\n //console.log(\"resp:\", resp)\n\n // console.log(\"is\", api.vars.is)\n },\n\n is: function () {\n if (api.vars.windW < api.vars.scr.tablet) {\n return \"phone\";\n } else if (api.vars.windW < api.vars.scr.desktop) {\n return \"tablet\";\n }\n return \"desktop\";\n },\n\n checkTouchDevice: function () {\n api.isTouch = $(\"html\").hasClass(\"touchevents\");\n },\n\n checkFontsIconsLoad: function () {\n if (document.documentElement.className.indexOf(\"font-icons-loaded\") > -1) {\n return;\n }\n var fontIcons = new FontFaceObserver(\"icons\", {\n weight: 400\n });\n\n fontIcons.load(null, 15000).then(function () {\n document.documentElement.className += \" font-icons-loaded\";\n }, function () {\n document.documentElement.className += \" font-icons-loaded\";\n });\n },\n\n disableBodyScroll: function () {\n var scrollTop = $(window).scrollTop();\n\n api.winTopMemory = scrollTop;\n\n $(\"body\").css({\n position: \"fixed\",\n width: \"100%\",\n top: -scrollTop,\n });\n $(\"html, body\").addClass(\"scrollDisabled\");\n },\n\n enableBodyScroll: function () {\n $(\"body\").css({\n position: \"static\",\n top: \"auto\",\n });\n $(window).scrollTop(api.winTopMemory);\n $(\"html, body\").removeClass(\"scrollDisabled\");\n },\n\n onEnterTriggerBtn: function () {\n $(\".triggerEnter\").on(\"keydown\", function (e) {\n var inpt = $(this);\n var code = e.keyCode ? e.keyCode : e.which;\n if (code === 13) {\n var btnId = inpt.data(\"triggerbtn\");\n $(\"#\" + btnId).trigger(\"click\");\n return false;\n }\n });\n },\n\n setAnchors: function () {\n $(\".anchorLnk\").on(\"click\", function (e) {\n e.preventDefault();\n\n var lnk = $(this);\n var target = $(lnk.attr(\"href\"));\n if (target.length) api.fn.moveWindowToObj(target);\n });\n },\n\n toFocus: function (slc) {\n $(\".toFocus\").on(\"touchstart\", function () {\n $(this).focus();\n });\n },\n\n toFocusThis: function (obj) {\n $(obj).on(\"touchstart\", function () {\n $(this).focus();\n });\n },\n\n focusfix: function (selector, className) {\n $(selector).focus(function () {\n $(this).addClass(className);\n });\n // Removes class when focus is lost\n $(selector).blur(function () {\n $(this).removeClass(className);\n });\n },\n\n viewport: function () {\n var e = window,\n a = \"inner\";\n if (!(\"innerWidth\" in window)) {\n a = \"client\";\n e = document.documentElement || document.body;\n }\n return { width: e[a + \"Width\"], height: e[a + \"Height\"] };\n },\n\n onEscTriggerReset: function () {\n function resetTxt(btn) {\n var txtId = btn.data(\"textreset\");\n $(\"#\" + txtId).val(\"\");\n btn.hide();\n }\n\n var txtId = $(\".resetTxtBtn\").data(\"textreset\");\n if ($(\"#\" + txtId).val() === \"\") {\n //$('.resetTxtBtn').hide();\n }\n\n $(\".resetTxtBtn\").on(\"click\", function (e) {\n e.preventDefault();\n var btn = $(this);\n resetTxt(btn);\n return false;\n });\n\n $(\".resetEsc\").on(\"keydown\", function (e) {\n var inpt = $(this);\n var btnId = inpt.data(\"triggerreset\");\n var btn = $(\"#\" + btnId);\n btn.show();\n var code = e.keyCode ? e.keyCode : e.which;\n if (code === 27) {\n btn.trigger(\"click\");\n //resetTxt(btn);\n return false;\n }\n });\n },\n\n /*-- PRELOADER REPLACING BUTTONS : START --*/\n iniPostPreloader: function (selector, ToPrepend) {\n function getBtnSize(btn) {\n return {\n w: btn.outerWidth(),\n h: btn.outerHeight(),\n };\n }\n\n var btn = $(selector);\n var btnDisplay = btn.css(\"display\");\n var btnSizes = getBtnSize(btn);\n var btnWrap = btn.parent();\n btn.hide();\n var prel = $(\n '
'\n );\n\n if (ToPrepend) {\n prel.insertBefore(btn);\n } else {\n prel.insertAfter(btn);\n }\n\n $(window).on(\"resize.preloader\", function () {\n var btn = prel.prev();\n btn.show();\n btnSizes = getBtnSize(btn);\n prel.css({\n width: btnSizes.w,\n height: btnSizes.h,\n });\n btn.hide();\n });\n },\n\n removePostPreloader: function (selector) {\n var btn = $(selector);\n var btnWrap = btn.parent();\n $(window).off(\"resize.preloader\");\n btnWrap.find(\".btnPreloader\").remove();\n btn.show();\n },\n /*-- PRELOADER REPLACING BUTTONS : END --*/\n\n getData: function (obj, datastr, defVal) {\n var str = \"\";\n if (typeof defVal !== \"undefined\") str = defVal;\n if (typeof obj.data(datastr) !== \"undefined\")\n str = obj.data(datastr);\n return str;\n },\n\n shuffle: function (o) {\n for (\n var j, x, i = o.length;\n i;\n j = parseInt(Math.random() * i),\n x = o[--i],\n o[i] = o[j],\n o[j] = x\n );\n return o;\n },\n\n /*-- Print Specified Element by Id --*/\n printPage: function (id, pageTitle) {\n pageTitle = pageTitle ? pageTitle : \"\";\n var html =\n \"\" +\n pageTitle +\n \"\";\n html += document.getElementById(id).innerHTML;\n html += \"\";\n var printWin = window.open(\n \"\",\n \"\",\n \"left=0,top=0,width=1,height=1,toolbar=0,scrollbars=0,status=0\"\n );\n printWin.document.write(html);\n printWin.document.close();\n printWin.focus();\n printWin.print();\n printWin.close();\n },\n\n getHeaderHeight: function () {\n return $(\".header\").outerHeight();\n },\n\n moveWindowToObj: function (obj, offset, callback) {\n var windowscrollTop = $(window).scrollTop();\n offset = !offset ? 0 : offset;\n var objToPos = 0;\n if (obj.is(\":hidden\")) {\n obj.show();\n objToPos = $(obj).offset();\n obj.hide();\n } else {\n objToPos = $(obj).offset();\n }\n\n var headerH = api.fn.getHeaderHeight();\n headerH = headerH ? headerH : 0\n\n $(\"html,body\").clearQueue();\n $(\"html,body\").stop();\n $(\"html,body\")\n .stop()\n .animate(\n { scrollTop: objToPos.top + offset - headerH },\n 400,\n function () {\n if (callback) {\n if (typeof callback === \"function\") {\n callback();\n }\n }\n }\n );\n },\n\n moveWindowToScrollPoint: function (scrlPoint, callback) {\n $(\"html,body\").clearQueue();\n $(\"html,body\").stop();\n $(\"html,body\")\n .stop()\n .animate({ scrollTop: scrlPoint.top }, 400, function () {\n if (callback) {\n if (typeof callback === \"function\") {\n callback();\n }\n }\n });\n },\n\n getQueryByName: function (name) {\n name = name.replace(/[\\[]/, \"\\\\[\").replace(/[\\]]/, \"\\\\]\");\n var regex = new RegExp(\"[\\\\?&]\" + name + \"=([^&#]*)\"),\n results = regex.exec(location.search);\n return results === null\n ? \"\"\n : decodeURIComponent(results[1].replace(/\\+/g, \" \"));\n },\n\n mediaQueryCallbacks: function (\n devicesToWatch /* ['desktop', 'tablet', 'phone'] */,\n matchCallback,\n unmatchCallback\n ) {\n var mediaMatch = false;\n\n var mediaIs = api.vars.is; //.split(\" \");\n\n for (var i = 0; i < devicesToWatch.length; i++) {\n if (mediaIs.indexOf(devicesToWatch[i]) >= 0) {\n mediaMatch = true;\n }\n }\n\n if (mediaMatch) {\n if (matchCallback && typeof matchCallback() === \"function\") {\n matchCallback();\n }\n } else {\n if (\n unmatchCallback &&\n typeof unmatchCallback() === \"function\"\n ) {\n unmatchCallback();\n }\n }\n\n return mediaMatch;\n },\n\n checkForYouTube: function () {\n api.vars.youtubeSelectors = $(\".for_youtube\");\n\n if (api.vars.youtubeSelectors.length) {\n api.fn.addYouTubeApi();\n }\n },\n\n addYouTubeApi: function () {\n if (!api.fn.youtube_addedScriptToHead) {\n api.fn.youtube_addedScriptToHead = true;\n\n var tag = document.createElement(\"script\");\n tag.src = \"https://www.youtube.com/iframe_api\";\n var firstScriptTag = document.getElementsByTagName(\"script\")[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n }\n },\n\n recaptchaLoaded: function () {\n api.vars.recaptchaReady = true;\n $(document).trigger(\"recaptcha-loaded\");\n },\n\n getScrollPosition: function () {\n var doc = document.documentElement;\n var pos = {};\n pos.left =\n (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n pos.top =\n (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n return pos;\n },\n\n getDate: function (element) {\n var date;\n try {\n date = $.datepicker.parseDate(\n api.vars.datepicker.dateFormat,\n element.value\n );\n } catch (error) {\n date = null;\n }\n return date;\n },\n\n youtube_embed: function () {\n function createEmbed(parent) {\n var youtube_embed = $(\".youtube_embed\", parent);\n\n var vId = api.fn.getData(youtube_embed, \"vid\", false);\n\n if (vId) {\n $(\n ''\n ).appendTo(youtube_embed);\n }\n }\n\n $(\".icon-video-play\").on(\"click\", function () {\n var lnk = $(this);\n createEmbed(lnk.parents(\".b-video\"));\n\n lnk.parent().hide();\n });\n //$('').appendTo(videoHolder);\n },\n\n highlight: function (selector, txt) {\n var innerHTML = selector.text();\n var index = innerHTML.indexOf(txt);\n if (index >= 0) {\n innerHTML =\n innerHTML.substring(0, index) +\n \"\" +\n innerHTML.substring(index, index + txt.length) +\n \"\" +\n innerHTML.substring(index + txt.length);\n selector.html(innerHTML);\n }\n },\n\n smsLnk: function () {\n link = new SMSLink.link();\n link.replaceAll();\n },\n\n pad: function (n) {\n if (n < 10) return \"0\" + n;\n return n;\n },\n\n preloadBodyMarkup: function () {\n return '
';\n },\n\n preloaderMarkup: function () {\n return '
';\n },\n\n preloadBody: function (state, callback, instant) {\n if (state) {\n if ($(\".preloaderBody\").length) {\n api.fn._toggleBodyPreloader(state, callback, instant);\n } else {\n $(api.fn.preloadBodyMarkup()).appendTo(\"body\");\n api.fn._toggleBodyPreloader(state, callback, instant);\n }\n } else {\n if ($(\".preloaderBody\").length) {\n api.fn._toggleBodyPreloader(state, callback, instant);\n }\n }\n },\n\n _toggleBodyPreloader: function (state, callBack, instant) {\n var timer = instant ? 0 : 300;\n\n $(\".preloaderBody__txt\").html(\"\");\n\n if (state) {\n $(\".preloaderBody\").fadeIn(timer, function () {\n $(\"body\").addClass(\"loading\");\n if (typeof callBack == \"function\") callBack();\n });\n } else {\n $(\".preloaderBody\").fadeOut(timer, function () {\n $(\"body\").removeClass(\"loading\");\n if (typeof callBack == \"function\") callBack();\n });\n }\n },\n\n addTextToBodyPreloader(txt) {\n var prBody = $(\".preloaderBody\");\n if (prBody.length) {\n if ($(\".preloaderBody__txt\").length) {\n $(\".preloaderBody__txt\").text(txt);\n } else {\n $(\n `${txt}`\n ).appendTo(prBody);\n }\n }\n },\n\n modalLnk: function () {\n $(\"body\").on(\"click.modalLnk\", \".modalLnk\", function (e) {\n e.preventDefault();\n\n\n api.fn.modalLnkTrigger($(this));\n\n\n });\n },\n\n modalLnkTrigger: function (lnk) {\n const modalId = $(lnk.attr(\"href\"));\n const resetForm = api.fn.getData(lnk, \"reset-form\", false);\n $(\".modal.show\").modal(\"hide\");\n $(modalId).modal(\"show\");\n \n $(document).trigger(\"modal-triggered\", {\n lnk, \n modalId: lnk.attr(\"href\").substr(1)\n });\n\n\n if (resetForm) {\n api.forms.resetFields($(modalId));\n }\n\n if ($(modalId).find(\".g-recaptcha\").length) {\n setTimeout(function () {\n api.forms.resetCaptcha();\n api.forms.iniCaptcha($(modalId));\n }, 500);\n }\n },\n\n modal: function (modalId, toggle) {\n var modal = $(\"#\" + modalId);\n if (modal && modal.length) {\n if (toggle === true) {\n $(\".modal.show\").modal(\"hide\");\n modal.modal(\"show\");\n } else {\n modal.modal(\"hide\");\n }\n }\n },\n\n sortByButton: function () {\n $(\"body\").on(\"click.sortByButton\", \".btn--sortby\", function (e) {\n e.preventDefault();\n\n var btn = $(this);\n if (btn.hasClass(\"asc\")) {\n btn.removeClass(\"asc\").addClass(\"desc\");\n } else if (btn.hasClass(\"desc\")) {\n btn.removeClass(\"desc\");\n } else {\n btn.addClass(\"asc\");\n }\n\n var attr = api.fn.getData(btn, \"rel\", false);\n\n if (attr) {\n $(attr).removeClass(\"asc\").removeClass(\"desc\");\n }\n });\n },\n\n backToTop: function () {\n $(\".footer .e-back-top\").on(\"click\", function (e) {\n e.preventDefault();\n api.fn.moveWindowToObj($(\".header\"));\n });\n },\n\n convertLnkAddToEdit: function (nodeId) {\n $('.e-add-note[data-node-id=\"' + nodeId + '\"]')\n .removeClass(\"e-add-note\")\n .addClass(\"e-add-note-filled\");\n },\n\n convertLnkEditToAdd: function (nodeId) {\n $('.e-add-note-filled[data-node-id=\"' + nodeId + '\"]')\n .removeClass(\"e-add-note-filled\")\n .addClass(\"e-add-note\");\n },\n\n enableBodyScroll: function () {\n $(\"body\").css({\n position: \"static\",\n top: \"auto\",\n });\n $(window).scrollTop(api.winTopMemory);\n $(\"html, body\").removeClass(\"scrollDisabled\");\n },\n\n hasCookie: function (key) {\n if (\n !key ||\n /^(?:expires|max\\-age|path|domain|secure)$/i.test(key)\n ) {\n return false;\n }\n return new RegExp(\n \"(?:^|;\\\\s*)\" +\n encodeURIComponent(key).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") +\n \"\\\\s*\\\\=\"\n ).test(document.cookie);\n },\n\n iniWaypointElements: function () {\n var offset = $(window).height() - 300;\n\n $(\n \".s-img-banner__text__ins, .s-img-banner__img, .s-logos-list, .s-extra-info\"\n ).each(function () {\n var elem = $(this)[0];\n var inview = new Waypoint({\n element: elem,\n handler: function (direction) {\n $(this.element).addClass(\"onScreen\");\n },\n offset: offset,\n });\n });\n },\n\n removeInlineImgSizes: function (img) {\n if (img.length) {\n img.css({\n width: \"auto\",\n height: \"auto\",\n });\n }\n },\n\n googleMapsReady: function () {\n api.vars.googleMapReady = true;\n $(document).trigger(\"google-map-ready\");\n },\n\n preloadContentLikeVue: function (parentObj, callback) {\n $(parentObj).find(\".preloader-abs\").addClass(\"loaded\");\n $(parentObj).find(\".preloader-rel\").addClass(\"loaded\");\n\n setTimeout(function () {\n $(parentObj).find(\".preloader-abs\").addClass(\"entered\");\n $(parentObj).find(\".preloader-rel\").addClass(\"entered\");\n if (typeof callBack == \"function\") callBack();\n }, 500);\n },\n\n preloadedItem: function (obj, callback) {\n $(obj).addClass(\"loaded\");\n\n setTimeout(function () {\n $(obj).addClass(\"entered\");\n if (typeof callBack == \"function\") callBack();\n }, 500);\n },\n\n cleanBreak: function (str) {\n return str\n .replace(/
/g, \"
\")\n .replace(/
/g, \"
\")\n .replace(//g, \"
\");\n },\n\n getParameterByName: function (name, url) {\n if (!url) url = window.location.href;\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\n results = regex.exec(url);\n if (!results) return null;\n if (!results[2]) return \"\";\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\n },\n\n setUrlParameter: function (key, value) {\n window.history.replaceState(\n \"\",\n \"\",\n api.fn.setUrlParameter_fn(key, value)\n );\n },\n\n setUrlParameter_fn: function (key, value) {\n var url = window.location.href,\n baseUrl = url.split(\"?\")[0],\n urlQueryString =\n url.split(\"?\").length > 1 ? \"?\" + url.split(\"?\")[1] : \"\",\n newParam = key + \"=\" + value,\n params = \"?\" + newParam;\n\n // If the \"search\" string exists, then build params from it\n if (urlQueryString) {\n var updateRegex = new RegExp(\"([?&])\" + key + \"[^&]*\");\n var removeRegex = new RegExp(\"([?&])\" + key + \"=[^&;]+[&;]?\");\n\n if (\n typeof value === \"undefined\" ||\n value === null ||\n value === \"\"\n ) {\n // Remove param if value is empty\n params = urlQueryString.replace(removeRegex, \"$1\");\n params = params.replace(/[&;]$/, \"\");\n } else if (urlQueryString.match(updateRegex) !== null) {\n // If param exists already, update it\n params = urlQueryString.replace(\n updateRegex,\n \"$1\" + newParam\n );\n } else {\n // Otherwise, add it to end of query string\n params =\n urlQueryString == \"\"\n ? \"?\" + newParam\n : urlQueryString + \"&\" + newParam;\n }\n }\n\n // no parameter was set so we don't need the question mark\n params = params === \"?\" ? \"\" : params;\n\n return baseUrl + params;\n },\n\n updateQueryStringParameter: function (uri, key, value) {\n // remove the hash part before operating on the uri\n var i = uri.indexOf(\"#\");\n var hash = i === -1 ? \"\" : uri.substr(i);\n uri = i === -1 ? uri : uri.substr(0, i);\n\n var re = new RegExp(\"([?&])\" + key + \"=.*?(&|$)\", \"i\");\n var separator = uri.indexOf(\"?\") !== -1 ? \"&\" : \"?\";\n\n if (!value) {\n // remove key-value pair if value is empty\n uri = uri.replace(\n new RegExp(\"([?&]?)\" + key + \"=[^&]*\", \"i\"),\n \"\"\n );\n if (uri.slice(-1) === \"?\") {\n uri = uri.slice(0, -1);\n }\n // replace first occurrence of & by ? if no ? is present\n if (uri.indexOf(\"?\") === -1) uri = uri.replace(/&/, \"?\");\n } else if (uri.match(re)) {\n uri = uri.replace(re, \"$1\" + key + \"=\" + value + \"$2\");\n } else {\n uri = uri + separator + key + \"=\" + value;\n }\n return uri + hash;\n },\n\n removeURLParameter: function (key) {\n window.history.replaceState(\n \"\",\n \"\",\n api.fn.removeURLParameter_fn(key)\n );\n },\n\n removeURLParameter_fn: function (parameter) {\n var url = window.location.href;\n //prefer to use l.search if you have a location/link object\n var urlparts = url.split(\"?\");\n if (urlparts.length >= 2) {\n var prefix = encodeURIComponent(parameter) + \"=\";\n var pars = urlparts[1].split(/[&;]/g);\n\n //reverse iteration as may be destructive\n for (var i = pars.length; i-- > 0; ) {\n //idiom for string.startsWith\n if (pars[i].lastIndexOf(prefix, 0) !== -1) {\n pars.splice(i, 1);\n }\n }\n\n return (\n urlparts[0] + (pars.length > 0 ? \"?\" + pars.join(\"&\") : \"\")\n );\n }\n return url;\n },\n\n uniqueValues: function (theArray) {\n function contains(newArrr, v) {\n for (var i = 0; i < newArrr.length; i++) {\n if (newArrr[i] === v) return true;\n }\n return false;\n }\n\n var arr = [];\n for (var i = 0; i < theArray.length; i++) {\n if (!contains(arr, theArray[i])) {\n arr.push(theArray[i]);\n }\n }\n return arr.concat([]);\n },\n\n zoomLevel: function () {\n api.vars.zoomLevel = Math.round(window.devicePixelRatio * 100);\n\n if (api.vars.zoomLevel < 100) {\n $(\"html\").addClass(\"zoomout\");\n } else {\n $(\"html\").removeClass(\"zoomout\");\n }\n },\n\n iniShareLinks: function () {\n var shareUrl = window.location.href;\n\n jQuery(\"body\").on(\"click\", \".sharemenu .slnk_fb\", function (e) {\n e.preventDefault();\n\n var lnk = jQuery(this);\n if (typeof lnk.data(\"shareurl\") == \"string\")\n shareUrl = lnk.data(\"shareurl\");\n shareUrl = shareUrl\n .replace(/(ifr=)[^\\&]+/, \"\")\n .replace(\"?&\", \"?\");\n\n window.open(\n \"https://www.facebook.com/sharer/sharer.php?u=\" +\n encodeURIComponent(shareUrl),\n \"Facebook\",\n \"width=626,height=436\"\n );\n });\n\n jQuery(\"body\").on(\"click\", \".sharemenu .slnk_twit\", function (e) {\n e.preventDefault();\n\n var lnk = jQuery(this);\n if (typeof lnk.data(\"shareurl\") == \"string\")\n shareUrl = lnk.data(\"shareurl\");\n shareUrl = shareUrl\n .replace(/(ifr=)[^\\&]+/, \"\")\n .replace(\"?&\", \"?\");\n window.open(\n \"http://twitter.com/home?status=\" +\n encodeURIComponent(shareUrl),\n \"twitter-share-dialog\",\n \"width=650,height=450\"\n );\n });\n\n jQuery(\"body\").on(\"click\", \".sharemenu .slnk_lin\", function (e) {\n e.preventDefault();\n\n var lnk = jQuery(this);\n if (typeof lnk.data(\"shareurl\") == \"string\")\n shareUrl = lnk.data(\"shareurl\");\n shareUrl = shareUrl\n .replace(/(ifr=)[^\\&]+/, \"\")\n .replace(\"?&\", \"?\");\n window.open(\n \"https://www.linkedin.com/cws/share?url=\" +\n encodeURIComponent(shareUrl),\n \"linkedin-share-dialog\",\n \"width=650,height=450\"\n );\n });\n\n jQuery(\"body\").on(\"click\", \"a.slnk_print\", function (e) {\n e.preventDefault();\n\n print();\n });\n },\n\n suffle: function (o) {\n for (\n var j, x, i = o.length;\n i;\n j = parseInt(Math.random() * i),\n x = o[--i],\n o[i] = o[j],\n o[j] = x\n );\n return o;\n },\n\n sanitizeString(str) {\n //https://stackoverflow.com/questions/23187013/is-there-a-better-way-to-sanitize-input-with-javascript\n str = str.replace(/[^a-z0-9áéíóúñü \\.,_-]/gim, \"\");\n return str.trim();\n },\n\n groupedArray(items, n) {\n return new Array(Math.ceil(items.length / n))\n .fill()\n .map((_) => items.splice(0, n));\n },\n\n hexToRgb(hex) {\n // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\n var shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n hex = hex.replace(shorthandRegex, function (m, r, g, b) {\n return r + r + g + g + b + b;\n });\n\n var result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n return result\n ? {\n r: parseInt(result[1], 16),\n g: parseInt(result[2], 16),\n b: parseInt(result[3], 16),\n }\n : null;\n },\n\n validEmail(email) {\n var re =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(email);\n },\n\n acceptNumber(phone) {\n var x = phone\n .replace(/\\D/g, \"\")\n .match(/(\\d{0,3})(\\d{0,3})(\\d{0,4})/);\n return !x[2]\n ? x[1]\n : \"(\" + x[1] + \") \" + x[2] + (x[3] ? \"-\" + x[3] : \"\");\n },\n toFix (value) {\n return value.toFixed(2)\n },\n addCommasFilter (nStr, septhou, sepdec) {\n nStr += '';\n x = nStr.split('.');\n x1 = x[0];\n x2 = x.length > 1 ? sepdec + x[1] : '';\n var rgx = /(\\d+)(\\d{3})/;\n while (rgx.test(x1)) {\n x1 = x1.replace(rgx, '$1' + septhou + '$2');\n }\n return x1 + x2;\n },\n getNumberFromCustomDec: function (val) {\n \tif(!isNaN(val))\n return val\n\n \tvar comma = val.indexOf(',');\n\n \tif (comma) {\n \t\tvar intPart = val.split(',')[0];\n \t\tvar decPart = val.split(',')[1];\n \t}\n \tvar outp = \"\";\n \toutp += intPart;\n \tif (comma > 0) outp += \".\" + decPart;\n \treturn outp;\n },\n removeDotsOrCommas: function(str, comma){\n var hasComma = str.indexOf(comma);\n return str.replace(/[.,]+/g, \"\");\n },\n\n equalMinHeights: function (elements, minHeight) {\n tallest = minHeight ? minHeight : 0;\n elements.each(function () {\n if ($(this).outerHeight() > tallest) {\n tallest = $(this).outerHeight();\n }\n });\n\n return elements.each(function () {\n $(this).css(\"min-height\", tallest);\n });\n },\n\n redirectToJobPage: function () {\n $(\".s-hr__select .form-select\").on(\"change\", function () {\n var url = $(this).val();\n if (url) {\n // require a URL\n window.location = url; // redirect\n }\n return false;\n });\n },\n\n updateFavicon: function () {\n matcher = window.matchMedia(\"(prefers-color-scheme: dark)\");\n lightSchemeIcon = document.querySelector(\"link#light-scheme-icon\");\n darkSchemeIcon = document.querySelector(\"link#dark-scheme-icon\");\n\n if (matcher.matches) {\n lightSchemeIcon.remove();\n document.head.append(darkSchemeIcon);\n } else {\n document.head.append(lightSchemeIcon);\n darkSchemeIcon.remove();\n }\n },\n\n clone(obj) {\n // from just-clone https://github.com/angus-c/just#just-clone\n\n function getRegExpFlags(regExp) {\n if (typeof regExp.source.flags == \"string\") {\n return regExp.source.flags;\n } else {\n var flags = [];\n regExp.global && flags.push(\"g\");\n regExp.ignoreCase && flags.push(\"i\");\n regExp.multiline && flags.push(\"m\");\n regExp.sticky && flags.push(\"y\");\n regExp.unicode && flags.push(\"u\");\n return flags.join(\"\");\n }\n }\n if (typeof obj == \"function\") {\n return obj;\n }\n var result = Array.isArray(obj) ? [] : {};\n for (var key in obj) {\n // include prototype properties\n var value = obj[key];\n var type = {}.toString.call(value).slice(8, -1);\n if (type == \"Array\" || type == \"Object\") {\n result[key] = api.fn.clone(value);\n } else if (type == \"Date\") {\n result[key] = new Date(value.getTime());\n } else if (type == \"RegExp\") {\n result[key] = RegExp(value.source, getRegExpFlags(value));\n } else {\n result[key] = value;\n }\n }\n return result;\n },\n\n passiveListeners() {\n\n jQuery.event.special.touchstart = {\n setup: function( _, ns, handle ) {\n this.addEventListener(\"touchstart\", handle, { passive: !ns.includes(\"noPreventDefault\") });\n }\n };\n jQuery.event.special.touchmove = {\n setup: function( _, ns, handle ) {\n this.addEventListener(\"touchmove\", handle, { passive: !ns.includes(\"noPreventDefault\") });\n }\n };\n jQuery.event.special.wheel = {\n setup: function( _, ns, handle ){\n this.addEventListener(\"wheel\", handle, { passive: true });\n }\n };\n jQuery.event.special.mousewheel = {\n setup: function( _, ns, handle ){\n this.addEventListener(\"mousewheel\", handle, { passive: true });\n }\n };\n\n },\n\n downloadFile (url) {\n var a = document.createElement('A');\n a.href = url;\n a.download = url.substr(url.lastIndexOf('/') + 1);\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n },\n\n guid(){\n return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, c =>\n (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)\n );\n },\n\n getSvgSource(){\n var svgs = $('[data-svg-src]:not(.loaded)');\n\n svgs.each((index, svg) => {\n var svg = $(svg)\n var url = svg.data('svg-src');\n if (svg.html().trim() === \"\" && url) {\n try {\n axios\n .get(url)\n .then((resp)=>{\n if(resp.status===200){\n svg.addClass('loaded').html(resp.data); \n }\n })\n .catch((errors) => {\n // ignore\n })\n .then(() => {\n })\n } catch (err) {\n //console.warn(err.message)\n }\n }\n })\n },\n \n equalHeights: function (elements, allowOverflow, minHeight, maxHeight) {\n \tvar tallest = (minHeight) ? minHeight : 0;\n\n \telements.each(function () {\n \t\tif (jQuery(this).height() > tallest) {\n \t\t\ttallest = jQuery(this).height();\n \t\t}\n \t});\n\n \tif ((maxHeight) && tallest > maxHeight) tallest = maxHeight;\n\n \treturn elements.each(function () {\n \t\tif (allowOverflow) {\n \t\t\tjQuery(this).height(tallest);\n \t\t} else {\n \t\t\tjQuery(this).height(tallest).css(\"overflow\", \"hidden\");\n \t\t}\n \t});\n },\n\n };\n})(jQuery);\n","/// \n/// \n\n(function ($) {\n api.forms = {\n inputWithPasswords: function () {\n document.addEventListener(\n \"click\",\n function (e) {\n const btn = $(e.target).closest(\".btn--show-password\");\n\n if (btn.length) {\n btn.toggleClass(\"active\");\n const inptId = btn.attr(\"aria-controls\");\n const inpt = inptId ? $(\"#\" + inptId) : null;\n\n if (inpt && inpt.length) {\n if (btn.hasClass(\"active\")) {\n inpt.attr('type', \"text\")\n } else {\n inpt.attr('type', \"password\")\n }\n }\n }\n },\n true\n );\n },\n preventPaste: function () {\n document.addEventListener(\n \"paste\",\n function (e) {\n const input = $(e.target).closest(\"input.prevent-paste\");\n if (input.length) {\n e.preventDefault();\n }\n },\n true\n );\n } \n };\n})(jQuery);\n","(function ($) {\n $(function () {\n api.fn.passiveListeners();\n\n api.fn.checkTouchDevice();\n\n api.vars.isIE = !!window.MSInputMethodContext && !!document.documentMode;\n\n var lang = $(\"html\").attr(\"lang\");\n if (lang) api.vars.lang = lang;\n\n jQuery.datepicker.setDefaults(jQuery.datepicker.regional[\"\" + api.vars.lang + \"\"]);\n\n //api.components.iniResponsive();\n\n api.fn.toFocus();\n api.fn.getWindDims();\n api.fn.onEnterTriggerBtn();\n api.fn.onEscTriggerReset();\n api.fn.zoomLevel();\n api.fn.iniShareLinks();\n api.fn.modalLnk();\n api.fn.redirectToJobPage();\n api.fn.checkFontsIconsLoad();\n api.fn.getSvgSource();\n //api.fn.updateFavicon()\n\n // forms\n api.forms.inputWithPasswords();\n\n var tooltipTriggerList = [].slice.call(jQuery('[data-bs-toggle=\"tooltip\"]'));\n var tooltipList = tooltipTriggerList.map((tooltipTriggerEl) => {\n var tooltip = new bootstrap.Tooltip(tooltipTriggerEl);\n tooltipTriggerEl.addEventListener(\"shown.bs.tooltip\", (el) => {\n const tooltip = jQuery(\".tooltip.show.bs-tooltip-top\");\n if (tooltip.length) {\n const scrlTop = jQuery(window).scrollTop() + jQuery(\".header__layer\").outerHeight();\n const dif = tooltip.offset().top - scrlTop;\n\n if (dif < 0) {\n window.scrollTo(0, jQuery(window).scrollTop() + dif);\n }\n }\n });\n return tooltip;\n });\n\n //api.components.responsiveImgs();\n\n // lazy load\n $(\"[data-src]\").lazy();\n\n // widgets\n $(\".s-breadcrumb\").breadcrumb();\n $(\".s-hero\").hero();\n $(\".s-benefits__items\").benefitsCarousel();\n $(\".g-product-group\").productGroup();\n $(\".b-info-panel\").infoPanel();\n $(\".b-download-list\").downloadList();\n $(\".b-accordion:not(.stand-alone)\").accordionSection({\n header: \".b-accordion__head\",\n });\n $(\".s-product-promo\").productPromo();\n\n $(\".s-quick-actions__items, .s-service-way__items\").quickActionsCarousel();\n $(\".s-fullwidth-gallery\").fullwidthGallery();\n\n $(\".s-carousel-cards__carousel\").carouselCards();\n $(\".s-product-feats__masonry-widget\").simpleMasonry();\n $(\".b-product-card--accordion\").accordionSection({\n header: \".b-product-card__title\",\n });\n $(\".b-table-charge\").tableCharge();\n $(\".s-carousel-article__carousel\").articleCards();\n\n $(\".b-aside-menu\").asideMenu();\n\n $(\".s-timeline\").timeline();\n\n $(\".readspeaker\").readspeaker();\n\n $(\".s-organogramma__slider\").organogrammaCarousel();\n\n $(\".s-search-results-org__wrp\").searchresultsCarousel();\n\n $(\".b-compare-two\").compareTwo();\n\n // ini rest page script block elements used with docReady\n $.each(jsCallbacks, function (i, val) {\n val($);\n });\n\n $(document).trigger(\"ini-ready\");\n\n // resize\n $(window).on(\"resize\", function () {\n // api.forms.resizeCaptch();\n api.fn.getWindDims();\n //api.components.responsive();\n api.fn.zoomLevel();\n\n $(document).trigger(\"window-resized\");\n });\n\n $(window).on(\"load\", function () {\n $(document).trigger(\"window-loaded\");\n });\n\n if (!api.vars.pagemode_edit) {\n $(\".inViewport\").inViewport();\n } else {\n $(\".inViewport\").removeClass(\"inViewport\");\n }\n });\n})(jQuery);\n","/// \n/// \n\n\n(function ($) {\n\n\t$.widget(\"nsp.inViewport\", {\n\t\toptions: {\n\t\t\toffset:100,\n\t\t\tcls: \"onScreen\"\n\t\t},\n\t\t_create: function () {\n\t\t\tvar plgn = this;\n\t\t\tvar section = plgn.element;\n\n\t\t\t$(document).on(\"window-loaded\", ()=> {\n\t\t\t\tplgn.isOnScreen();\n\t\t\t})\n\t\t\tplgn.isOnScreen();\n\n\t\t\tplgn.scrolling = false;\n\t\t\tplgn.scrolltimer = 0;\n\t\t\t$(window).on('scroll', function () {\n\t\t\t\tplgn.scrolling = true;\n\t\t\t\tclearTimeout(plgn.scrolltimer);\n\t\t\t\tscrolltimer = setTimeout(function () {\n\t\t\t\t\tplgn.isOnScreen();\n\t\t\t\t}, 300);\n\t\t\t});\n\n\t\t\t$(window).on('resize', function () {\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tplgn.isOnScreen();\n\t\t\t\t}, 300);\n\t\t\t});\n\n\t\t},\n\t\tisOnScreen: function () {\n\t\t\tvar plgn = this;\n\t\t\tvar section = plgn.element;\n\n\t\t\tvar win = $(window);\n\n\t\t\tsection.onScreenCls = !section.onScreenCls ? plgn.options.cls : section.onScreenCls;\n\n\n\t\t\tvar viewport = {\n\t\t\t\ttop: win.scrollTop(),\n\t\t\t\tleft: win.scrollLeft()\n\t\t\t};\n\t\t\tviewport.right = viewport.left + win.width();\n\t\t\tviewport.bottom = viewport.top + win.height();\n\n\t\t\tvar bounds = section.offset();\n\t\t\tbounds.right = bounds.left + section.outerWidth();\n\t\t\tbounds.bottom = bounds.top + section.outerHeight();\n\n\t\t\tvar headeroffset = 0;\n\t\t\tif ($('.header__outer').length) {\n\t\t\t\theaderoffset = $('.header__outer').outerHeight();\n\t\t\t}\n\n\t\t\tvar offset = headeroffset + plgn.options.offset;\n\n\n\t\t\tif (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < bounds.top + offset || viewport.top > bounds.bottom - offset)) {\n\t\t\t\tsection.addClass(section.onScreenCls);\n\t\t\t\tsection.addClass(\"onScreenOnce\");\n\n\t\t\t\tplgn._trigger('onScreen', null, { item: section });\n\n\t\t\t} else {\n\t\t\t\tsection.removeClass(section.onScreenCls);\n\n\t\t\t\tplgn._trigger('offScreen', null, { item: section });\n\t\t\t}\n\n\n\t\t}\n\t});\n\n\n})(jQuery);","const reloadWindowIfTokenExpired = {\n methods: {\n reloadWindowIfTokenExpired(tokenExpired) {\n // if tokenExpired is true, reload window and also return true, in order to avoid proceeding to next line of code for all calls to this method\n if(!tokenExpired) return false\n if (tokenExpired === true) {\n console.warn('Window reloaded because token has expired!')\n window.location.reload()\n return true\n }\n return false\n },\n },\n}\n","var mixins = {\n mixins: [reloadWindowIfTokenExpired],\n data () {\n return {\n loading: true,\n errorMsgs: [],\n globalerror: \"Ενα σφάλμα προέκυψε\"\n }\n },\n methods: {\n getFormAction: function (form) {\n return form.getAttribute(\"action\");\n },\n\n removeDuplicates: function (array) {\n return array.filter((c, index) => {\n return array.indexOf(c) === index;\n });\n },\n\n getData: function (objName) {\n return typeof window[objName] !== \"undefined\"\n ? window[objName]\n : null;\n },\n\n getDataText: function (objName, val) {\n if (typeof window[objName] === \"undefined\") {\n return \"\";\n }\n var entry = window[objName].find((i) => i.value === val);\n\n if (typeof entry === \"undefined\") {\n return \"\";\n }\n\n return entry.text;\n },\n\n makeid: function (length = 10) {\n var result = \"\";\n var characters =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n var charactersLength = characters.length;\n for (var i = 0; i < length; i++) {\n result += characters.charAt(\n Math.floor(Math.random() * charactersLength)\n );\n }\n return result;\n },\n\n validateFields: function (names) {\n if (names === \"\") {\n return true;\n }\n\n var validArray = [];\n\n names.split(\",\").forEach((item, index) => {\n validArray.push(jQuery(`*[name =\"${item.trim()}\"]`).valid());\n });\n\n if (validArray.includes(false)) {\n return false;\n }\n\n return true;\n },\n\n getAllFields: function (elemId) {\n var fieldsArray = [];\n var inputs = jQuery(`#${elemId}`).find(\":input\");\n\n inputs.each(function () {\n var name = jQuery(this).attr(\"name\");\n if (name !== \"\" && typeof name !== \"undefined\") {\n fieldsArray.push(name);\n }\n });\n\n return fieldsArray.join();\n },\n\n iniReCaptcha: function (elem) {\n var self = this;\n\n Vue.nextTick(function () {\n self.reCaptcha = jQuery(\".e-g-recaptcha\", elem);\n\n grecaptcha.render(self.reCaptcha.attr(\"id\"), {\n sitekey: self.reCaptcha.data(\"sitekey\"),\n });\n });\n },\n\n scrollToError: function (offsetY = 0) {\n Vue.nextTick(function () {\n jQuery([document.documentElement, document.body]).animate(\n {\n scrollTop: jQuery(\".alert\").offset().top - offsetY,\n },\n 100,\n \"linear\"\n );\n });\n },\n\n scrollToValidation: function (offsetY = 50) {\n Vue.nextTick(function () {\n var barH = jQuery(\".s-booking-bar\").length\n ? jQuery(\".s-booking-bar\").outerHeight()\n : 0;\n\n var elem = jQuery(\".error--text\").first();\n if (!elem.length) {\n return false;\n }\n\n jQuery([document.documentElement, document.body]).animate(\n {\n scrollTop: elem.offset().top - offsetY - barH,\n },\n 100,\n \"linear\"\n );\n });\n },\n\n scrollToTop: function () {\n Vue.nextTick(function () {\n jQuery([document.documentElement, document.body]).animate(\n {\n scrollTop: jQuery(\"html\").offset().top,\n },\n 'slow',\n \"linear\"\n );\n });\n },\n\n scrollToElem: function (elem, offsetY = 0, callback) {\n Vue.nextTick(function () {\n jQuery([document.documentElement, document.body]).animate(\n {\n scrollTop: elem.offset().top - offsetY,\n },\n 'slow',\n \"linear\",\n function () {\n if (callback) {\n if (typeof callback === \"function\") {\n callback();\n }\n }\n }\n );\n });\n },\n\n getIndex: function (index) {\n return index + 1;\n },\n\n hasValue: function (val) {\n return typeof val !== \"undefined\" && val !== null && val !== \"\";\n },\n\n showErrorDialog: function (message) {\n this.errorDialog = true;\n this.errorMsg = this.hasValue(this.dictionary)\n ? this.dictionary.serverErrorMsg\n : \"\";\n\n if (this.hasValue(message)) {\n this.errorMsg = message;\n }\n },\n\n getAjaxResponseMessages: function (messages) {\n let msg = Array.isArray(messages) ? messages[0] : messages;\n\n if (messages.length > 1 && Array.isArray(messages)) {\n let msgList = \"
    \";\n messages.forEach((item) => {\n msgList += `
  • ${item}
  • `;\n });\n msgList += \"
\";\n msg = msgList;\n }\n\n return msg;\n },\n\n getRandomInt: function (max) {\n return Math.floor(Math.random() * Math.floor(max));\n },\n\n getUrlVars: function () {\n var vars = {};\n var parts = window.location.href.replace(\n /[?&]+([^=&]+)=([^&]*)/gi,\n function (m, key, value) {\n vars[key] = value;\n }\n );\n return vars;\n },\n\n getUrlParam: function (parameter, defaultvalue) {\n var urlparameter = defaultvalue;\n if (window.location.href.indexOf(parameter) > -1) {\n urlparameter = this.getUrlVars()[parameter];\n }\n return urlparameter;\n },\n\n getCharPosition: function (string, char, index) {\n return string.split(char, index).join(char).length;\n },\n\n appendUrlParam: function (parameter, value) {\n var url = new URL(window.location.href);\n var search_params = url.searchParams;\n\n if (this.urlParamExists(parameter)) {\n search_params.set(parameter, value);\n } else {\n search_params.append(parameter, value);\n }\n\n url.search = search_params.toString();\n\n var new_url = decodeURIComponent(url.toString());\n\n history.pushState({}, null, new_url);\n },\n\n appendUrlParams: function (parameters, values) {\n var url = new URL(window.location.href);\n var search_params = url.searchParams;\n\n var i;\n for (i = 0; i < parameters.length; i++) {\n if (this.urlParamExists(parameters[i])) {\n search_params.set(parameters[i], values[i]);\n } else {\n search_params.append(parameters[i], values[i]);\n }\n }\n\n url.search = search_params.toString();\n\n var new_url = decodeURIComponent(url.toString());\n\n history.pushState({}, null, new_url);\n },\n\n urlParamExists: function (field) {\n var url = window.location.href;\n if (url.indexOf(\"?\" + field + \"=\") != -1) return true;\n else if (url.indexOf(\"&\" + field + \"=\") != -1) return true;\n return false;\n },\n\n coordinatesAreValid: function (long, lat) {\n if (!this.hasValue(long)) {\n return false;\n }\n\n if (!this.hasValue(lat)) {\n return false;\n }\n\n if (lat === 0) {\n return false;\n }\n\n if (long === 0) {\n return false;\n }\n\n return true;\n },\n\n trimChar: function (string, charToRemove) {\n while (string.charAt(0) == charToRemove) {\n string = string.substring(1);\n }\n\n while (string.charAt(string.length - 1) == charToRemove) {\n string = string.substring(0, string.length - 1);\n }\n\n return string;\n },\n\n getCharacteristicTooltip: function (item) {\n if (this.hasValue(item.tooltip)) {\n return `${item.text}: ${item.tooltip}`;\n }\n\n return item.text;\n },\n\n getInfoWindowContentString: function (item) {\n var url = this.hasValue(item.url) ? item.url : \"javascript:void(0)\";\n var className = this.hasValue(item.url) ? \"\" : \"void\";\n var target = this.hasValue(item.url) ? \"_blank\" : \"\";\n\n return `
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

${item.title}

\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t

${item.address}

\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
`;\n },\n\n ajax(handler, obj){\n try {\n axios\n .post(handler, obj)\n .then((response) => {\n var { tokenExpired, hasError, errorMessages, data, allItems } = response.data;\n\n\n if (tokenExpired) {\n if (window.MobileApp && window.MobileApp.logout) {\n window.MobileApp.logout()\n }\n }\n\n if(this.reloadWindowIfTokenExpired(tokenExpired)) return\n\n if (hasError) { \n this.handleAjaxError(errorMessages);\n return false;\n } \n \n if (response.headers && response.headers[\"x-rut\"] && response.headers[\"x-rrt\"]) {\n console.log('received new token pair')\n if (window.MobileApp && window.MobileApp.setTokens) {\n window.MobileApp.setTokens(response.headers[\"x-rut\"], response.headers[\"x-rrt\"])\n }\n }\n \n this.handleAjaxSuccess(data, response.data, allItems);\n })\n .catch((errors) => {\n this.handleAjaxError([this.globalerror]);\n })\n .then(() => {\n this.loading = false;\n });\n } catch (err) {\n this.loading = false;\n this.handleAjaxError(JSON.parse(err));\n }\n },\n \n handleAjaxError(messages) {\n this.loading = false;\n this.errorMsgs = this.hasValue(messages) ? messages : [];\n },\n\n changeAllNodes: function(currentNode, callback){\n for (var k in currentNode) {\n if (typeof currentNode[k] == \"object\" && currentNode[k] !== null)\n this.changeAllNodes(currentNode[k], callback);\n else {\n if(typeof callback === \"function\"){\n callback(currentNode)\n }\n }\n }\n }, \n findNode: function(id, currentNode, nodeName, callback) {\n var i, currentChild, result;\n\n if (id == currentNode.id) {\n return currentNode;\n } else {\n if(currentNode && currentNode[nodeName]){\n for (i = 0; i < currentNode[nodeName].length; i += 1) {\n currentChild = currentNode[nodeName][i];\n result = this.findNode(id, currentChild, callback);\n if (result) {\n if(!callback){\n return result;\n } else {\n if(typeof callback === \"function\"){\n callback(currentChild, result)\n return result;\n }\n }\n }\n }\n }\n return false;\n }\n },\n findValues(obj, key){\n return this.findValuesHelper(obj, key, []);\n },\n findValuesHelper: function(obj, key, list) {\n if (!obj) return list;\n if (obj instanceof Array) {\n for (var i in obj) {\n list = list.concat(this.findValuesHelper(obj[i], key, []));\n }\n return list;\n }\n if (obj[key]) list.push(obj);\n \n if ((typeof obj == \"object\") && (obj !== null) ){\n var children = Object.keys(obj);\n if (children.length > 0){\n for (i = 0; i < children.length; i++ ){\n list = list.concat(this.findValuesHelper(obj[children[i]], key, []));\n }\n }\n }\n return list;\n }\n\n },\n};\n","const getSetSessionStorage = {\n methods: {\n getSingleSessionItem(id) {\n if (!id) return\n return sessionStorage.getItem(id)\n },\n setSingleSessionItem(id, value) {\n if (!id) return\n if(value === undefined || value === null) return\n sessionStorage.setItem(id, value)\n },\n getSessionItem(id) {\n if (!id) return\n const item = sessionStorage.getItem(id)\n if (item) {\n return JSON.parse(item)\n }\n return null\n },\n setSessionItem(id, dataToStore) {\n if (!id) return\n const jsonData = JSON.stringify(dataToStore)\n if (!jsonData) return\n sessionStorage.setItem(id, jsonData)\n },\n },\n}\n","var mixin_viewport = {\n data () {\n return {\n screen: '' // phone, tablet, desktop\n }\n },\n mounted(){\n\n this.defineScreen()\n\n jQuery(document).on(\"ini-ready\", ()=>{\n this.defineScreen()\n })\n\n jQuery(document).on(\"window-resized\", ()=>{\n this.defineScreen()\n });\n\n },\n methods:{\n defineScreen(){\n this.screen = api.vars.is\n }\n }\n}","var mixin_intro_tabs = {\n mixins: [getSetSessionStorage],\n data() {\n return {\n tab: null,\n savedSessionTab: null,\n }\n },\n mounted() {\n this.savedSessionTab = this.getSingleSessionItem(this.$el.id)\n if (this.savedSessionTab) {\n this.changeTab(this.savedSessionTab)\n }\n },\n methods: {\n async changeTab(newTab) {\n this.tab = newTab\n await this.$nextTick()\n this.setSession()\n },\n activeClass(tab) {\n if (this.tab === tab) {\n return 'ui-tabs-active'\n }\n return ''\n },\n setSession() {\n this.setSingleSessionItem(this.$el.id, this.tab)\n },\n },\n}\n","const windowWidth = {\n data () {\n return {\n windW: '' // \n }\n },\n mounted(){\n\n this.getWidth()\n\n jQuery(document).on(\"ini-ready\", ()=>{\n this.getWidth()\n })\n\n jQuery(document).on(\"window-resized\", ()=>{\n this.getWidth()\n });\n\n },\n methods:{\n getWidth(){\n this.windW = api.vars.windW\n }\n }\n}","const alertDismissible = {\n props: {\n dismissible:{\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n isClosed: false,\n };\n },\n methods: {\n close() {\n this.isClosed = true;\n },\n },\n computed: {\n showAlertClass() {\n return this.isClosed ? \"hide-important\" : \"show\";\n },\n dismissibleClass() {\n return this.dismissible ? \"alert-dismissible\" : \"\";\n },\n }\n};\n","const sendCaptcha = {\n data() {\n return {\n allowCaptcha: api.vars.allowCaptcha,\n };\n },\n methods: {\n async callCaptcha() {\n this.allowCaptcha = api.vars.allowCaptcha\n //console.log(\"allowCaptcha:\",this.allowCaptcha)\n if (this.allowCaptcha) {\n if (this.greReady) {\n try {\n return await grecaptcha.execute(this.captchaSiteKey, { action: this.captchaAction });\n } catch (e) {\n console.warn(\"invalid captcha\");\n }\n }\n\n return false;\n } else {\n return true\n }\n },\n updateToken(token) {\n this.$emit(\"tokenUpdated\", token);\n }\n },\n};\n","let commonComponents = [];","const slickCarousel = {\n props: {\n carouselArrows: false,\n options: {\n type: Object,\n default: function () {\n return {};\n },\n },\n },\n template: \"
\",\n mounted: function () {\n var self = this;\n //console.log(\"mounted\")\n\n this.$nextTick(() => {\n self.create();\n\n jQuery(this.$el).find('[data-src]').lazy();\n\n jQuery(this.$el).on('beforeChange', (slick, currentSlide, nextSlide)=>{\n jQuery(this.$el).find('[data-src]').lazy();\n });\n\n jQuery(this.$el).on('afterChange', (slick, currentSlide)=>{\n jQuery(this.$el).find('[data-src]').lazy();\n })\n \n });\n\n },\n beforeUnmount: function () {\n this.onDestroy()\n },\n\n methods: {\n create: function () {\n var $slick = jQuery(this.$el);\n\n if ($slick.find(\".item\").length > 1) {\n $slick.on(\"afterChange\", this.onAfterChange);\n $slick.on(\"beforeChange\", this.onBeforeChange);\n $slick.on(\"breakpoint\", this.onBreakpoint);\n $slick.on(\"destroy\", this.onDestroy);\n $slick.on(\"edge\", this.onEdge);\n $slick.on(\"init\", this.onInit);\n $slick.on(\"reInit\", this.onReInit);\n $slick.on(\"setPosition\", this.onSetPosition);\n $slick.on(\"swipe\", this.onSwipe);\n $slick.on(\"lazyLoaded\", this.onLazyLoaded);\n $slick.on(\"lazyLoadError\", this.onLazyLoadError);\n\n\n if(this.carouselArrows){\n this.options.appendArrows = $slick.parent().find('.carousel_arrows')\n // console.log(this.options, $slick.parent().find('.carousel_arrows'))\n }\n\n $slick.slick(this.options);\n }\n },\n\n destroy: function () {\n var $slick = jQuery(this.$el);\n\n if (jQuery(this.$el).hasClass(\"slick-initialized\")) {\n $slick.off(\"afterchange\", this.onAfterChange);\n $slick.off(\"beforeChange\", this.onBeforeChange);\n $slick.off(\"breakpoint\", this.onBreakpoint);\n $slick.off(\"destroy\", this.onDestroy);\n $slick.off(\"edge\", this.onEdge);\n $slick.off(\"init\", this.onInit);\n $slick.off(\"reInit\", this.onReInit);\n $slick.off(\"setPosition\", this.onSetPosition);\n $slick.off(\"swipe\", this.onSwipe);\n $slick.off(\"lazyLoaded\", this.onLazyLoaded);\n $slick.off(\"lazyLoadError\", this.onLazyLoadError);\n $slick.removeClass(\"slick-initialized\");\n jQuery(this.$el).slick(\"unslick\");\n }\n },\n\n reSlick: function () {\n this.destroy();\n this.create();\n },\n\n next: function () {\n jQuery(this.$el).slick(\"slickNext\");\n },\n\n prev: function () {\n jQuery(this.$el).slick(\"slickPrev\");\n },\n\n pause: function () {\n jQuery(this.$el).slick(\"slickPause\");\n },\n\n play: function () {\n jQuery(this.$el).slick(\"slickPlay\");\n },\n\n goTo: function (index, dontAnimate) {\n jQuery(this.$el).slick(\"slickGoTo\", index, dontAnimate);\n },\n\n currentSlide: function () {\n return jQuery(this.$el).slick(\"slickCurrentSlide\");\n },\n\n add: function (element, index, addBefore) {\n jQuery(this.$el).slick(\"slickAdd\", element, index, addBefore);\n },\n\n remove: function (index, removeBefore) {\n jQuery(this.$el).slick(\"slickRemove\", index, removeBefore);\n },\n\n filter: function (filterData) {\n jQuery(this.$el).slick(\"slickFilter\", filterData);\n },\n\n unfilter: function () {\n jQuery(this.$el).slick(\"slickUnfilter\");\n },\n\n getOption: function (option) {\n jQuery(this.$el).slick(\"slickGetOption\", option);\n },\n\n setOption: function (option, value, refresh) {\n jQuery(this.$el).slick(\"slickSetOption\", option, value, refresh);\n },\n\n setPosition: function () {\n jQuery(this.$el).slick(\"setPosition\");\n },\n\n // Events\n onAfterChange: function (event, slick, currentSlide) {\n this.$emit(\"afterchange\", event, slick, currentSlide);\n },\n\n onBeforeChange: function (event, slick, currentSlide, nextSlide) {\n this.$emit(\"beforechange\", event, slick, currentSlide, nextSlide);\n },\n\n onBreakpoint: function (event, slick, breakpoint) {\n this.$emit(\"breakpoint\", event, slick, breakpoint);\n },\n\n onDestroy: function (event, slick) {\n this.$emit(\"destroy\", event, slick);\n },\n\n onEdge: function (event, slick, direction) {\n this.$emit(\"edge\", event, slick, direction);\n },\n\n onInit: function (event, slick) {\n this.$emit(\"init\", event, slick);\n },\n\n onReInit: function (event, slick) {\n this.$emit(\"reinit\", event, slick);\n },\n\n onSetPosition: function (event, slick) {\n this.$emit(\"setposition\", event, slick);\n },\n\n onSwipe: function (event, slick, direction) {\n this.$emit(\"swipe\", event, slick, direction);\n },\n\n onLazyLoaded: function (event, slick, image, imageSource) {\n this.$emit(\"lazyloaded\", event, slick, image, imageSource);\n },\n\n onLazyLoadError: function (event, slick, image, imageSource) {\n this.$emit(\"lazyloaderror\", event, slick, image, imageSource);\n }\n },\n};\n","const alertDanger = {\n props: [\"msgs\", \"dismissible\"],\n template: `\n
\n
    \n
  • \n
    \n
  • \n
\n \n
`\n}\n\ncommonComponents.push({\n name: 'alert-danger',\n var: alertDanger\n})","const alertSuccess = {\n mixins: [alertDismissible],\n props: [\"msgs\", \"dismissible\"],\n template: `\n
\n
    \n
  • \n \n
  • \n
\n \n
`,\n \n};\n\ncommonComponents.push({\n name: \"alert-success\",\n var: alertSuccess,\n});\n","const infinityScroll = {\n props: {\n loading:{\n type: Boolean,\n default: true\n },\n hasMore: {\n type: Boolean,\n default: true\n }\n },\n template: \n `
\n \n
\n
\n
`,\n data: function () {\n\t\treturn {\n }\n },\n mounted(){\n\n jQuery(window).on('scroll.infinity', (e)=> {\n this.handleScroll()\n })\n },\n beforeUnmount: function () {\n jQuery(window).off('scroll.infinity')\n },\n methods:{\n handleScroll(e){\n let element = this.$el\n\t\t\tif ( element.getBoundingClientRect().bottom < window.innerHeight && element.getBoundingClientRect().bottom>0) {\n if(!this.loading && this.hasMore){\n this.$emit(\"onloadMore\")\n }\n\t\t\t}\n }\n }\n}\n","const bMediaItemFile = {\n props: {\n card: {\n type: Object,\n default() {\n return null;\n },\n }\n },\n template: \n `\n
\n
\n
\n \n
\n
`\n\n}","const bAutoCompleter = {\n mixins: [mixins, sendCaptcha],\n props: {\n value: {\n type: String,\n default: ''\n },\n handler:{\n type: String,\n default: ''\n },\n clickable:{ // if clickable then not use autocomplete with url but rather emit click event to parent\n type: Boolean,\n default: false\n },\n useCaptcha: { \n type: Boolean,\n default: false\n },\n greReady: false,\n captchaSiteKey: \"\",\n captchaAction: \"\"\n },\n data() {\n return {\n loading: false,\n records: [],\n errorMsgs: [],\n }\n },\n template: \n `
\n \n \n \n
`,\n mounted() {\n\n jQuery(window).on('click.autocomplete', (e) => {\n this.close()\n })\n },\n computed: {\n isActive(){\n return this.loading || this.records.length > 0\n },\n activeClass(){\n return ''\n }\n },\n beforeUnmount: function () {\n jQuery(window).off('click.autocomplete')\n },\n methods: {\n async doSearch() {\n\n if (this.handler !== '' && this.value !== '') {\n this.loading = true\n this.reset() \n \n try {\n\n var token = \"\";\n if (this.useCaptcha) {\n token = await this.callCaptcha()\n if (token) {\n this.updateToken(token)\n }\n }\n\n axios\n .post(this.handler, { value: this.value, recaptchaResponse: token })\n .then((response) => {\n var { hasError, errorMessages, data } = response.data;\n\n if (hasError) {\n this.handleError(errorMessages);\n return false;\n }\n\n this.handleSuccess(data);\n\n })\n .catch((errors) => {\n this.handleError([this.globalerror]);\n })\n .then(() => {\n this.loading = false;\n });\n } catch (err) {\n this.loading = false;\n this.handleError(JSON.parse(err));\n }\n\n }\n },\n stopSearch(){\n this.reset() \n this.loading = false\n this.close()\n },\n close(){\n this.$emit(\"closeAutocomplete\")\n },\n handleError(messages) {\n this.loading = false\n this.errorMsgs = this.hasValue(messages) ? messages : [];\n this.$emit(\"searchFailed\", this.errorMsgs)\n },\n handleSuccess(data) {\n \n if(data.length){\n this.records.push(...data);\n this.$emit(\"searchCompleted\")\n } else {\n this.$emit(\"noData\")\n }\n },\n reset(){\n this.records = []\n },\n itemTypeClass(item){\n if(!item.type)\n return 'b-auto-completer__item-li'\n\n if(item.type==='group'){\n return 'b-auto-completer__item-more'\n }\n return 'b-auto-completer__item-li'\n },\n stopPropagate(e){\n e.stopPropagation()\n },\n clicked(item){\n this.$emit(\"clicked\", item)\n }\n }\n}\n","const bTabs = {\n props: {\n activeTab:{\n type: String,\n default: ''\n },\n tabs: {\n type: Array,\n default(){\n return []\n }\n },\n customIcons: {\n default(){\n return []\n }\n }\n },\n data(){\n return {\n tab: null,\n }\n },\n template:\n `
\n
    \n
  • \n \n
  • \n
\n
`,\n mounted(){\n this.iniTabs();\n \n },\n methods:{\n iniTabs(){\n if(this.activeTab!==''){\n this.tab = this.activeTab \n } else {\n if(this.tabs.length && this.tabs[0].id)\n this.tab = this.tabs[0].id\n }\n this.$emit(\"onTabInit\", this.tab)\n },\n changeTab(newTab){\n this.tab = newTab\n this.$emit(\"onTabChanged\", this.tab)\n },\n activeClass(tab){\n if(this.tab === tab){\n return 'ui-tabs-active'\n }\n return ''\n }\n }\n}","const bPagination = {\n name: \"pagination\", \n props: {\n maxVisibleButtons: {\n type: Number,\n required: false,\n default: 5,\n },\n totalRecords:{\n type: Number,\n required: true,\n },\n perPage: {\n type: Number,\n default: 10\n },\n currentPage: {\n type: Number,\n default: 1,\n required: true,\n },\n },\n template: \n ``,\n computed: {\n inactiveClass(){\n if(this.totalPages<=1){\n return 'b-pagination--inactive'\n }\n return ''\n },\n totalPages() {\n return Math.ceil(this.totalRecords/ this.perPage)\n },\n startPage() {\n if (this.currentPage === 1) {\n return 1;\n }\n\n if (this.currentPage === 2) {\n return 1;\n }\n\n if (this.currentPage === this.totalPages) {\n return Math.max(this.totalPages - this.maxVisibleButtons + 1, 1);\n }\n \n return this.currentPage - 2;\n },\n endPage() {\n return Math.min(\n this.startPage + this.maxVisibleButtons - 1,\n this.totalPages\n );\n },\n pages() {\n const range = [];\n\n for (let i = Math.min(this.startPage, Math.max(this.endPage - (this.maxVisibleButtons - 1), 1)); i <= this.endPage; i += 1) {\n range.push({\n name: i,\n isDisabled: i === this.currentPage,\n });\n }\n\n return range;\n },\n isInFirstPage() {\n return this.currentPage === 1;\n },\n isInLastPage() {\n return this.currentPage === this.totalPages;\n },\n },\n methods: {\n onClickFirstPage() {\n this.$emit(\"pagechanged\", 1);\n },\n onClickPreviousPage() {\n this.$emit(\"pagechanged\", this.currentPage - 1);\n },\n onClickPage(page) {\n this.$emit(\"pagechanged\", page);\n },\n onClickNextPage() {\n this.$emit(\"pagechanged\", this.currentPage + 1);\n },\n onClickLastPage() {\n this.$emit(\"pagechanged\", this.totalPages);\n },\n isPageActive(page) {\n return this.currentPage === page;\n },\n },\n};\n","const photoItem = {\n props: {\n card: {\n type: Object,\n default() {\n return null;\n },\n }\n },\n template: \n ``,\n computed: {\n cardBg() {\n if (this.card !== null && this.card.thumb && this.card.thumb !== \"\") {\n return this.card.thumb;\n }\n return \"\";\n }\n }\n};\n","const mediaItem = {\n props: {\n card: {\n type: Object,\n default() {\n return null;\n },\n }\n },\n template: \n `
\n \n \n \n
`,\n computed: {\n cardBg() {\n if (this.card !== null && this.card.thumb && this.card.thumb !== \"\") {\n return this.card.thumb;\n }\n return \"\";\n }\n },\n methods:{\n clicked(e){\n this.$emit(\"clicked\", e, this.card)\n }\n }\n};\n","const customLightbox = {\n props: {\n galleryImages: {\n type: Array,\n default() {\n return [];\n }\n }\n ,\n mainTitle: {\n type: String,\n default: \"\"\n },\n prevTitle: '',\n nextTitle: '',\n infinite: false\n },\n data: () => {\n return {\n imageLoaded: false,\n selectedItem: null,\n selectedIndex: -1,\n imgUrl: \"\",\n loadMore: false\n }\n\n },\n template: `
\n
\n
\n

{{mainTitle}}

\n \n
\n
=0 && showWhenLoadMore\" class=\"b-lightbox__conts\">\n\n
\n \n \"\"\n \n
\n \n \n
\n
\n
\n \n
\n
\n
\n \n
\n \n
\n \n \n
\n
\n\n
\n
\n \n \n
\n \n \n
\n
\n
\n\n
\n
\n\n
\n\n \n
\n
`,\n mounted() {\n jQuery(($) => {\n\n $(document).keyup((e) => {\n if (e.key === \"Escape\") { // escape key maps to keycode `27`\n this.closeLayer()\n } else if (e.key === 37 || e.key === \"ArrowLeft\") { // left \n this.prevItem();\n } else if (e.key === 39 || e.key === \"ArrowRight\") { // right \n this.nextItem();\n }\n });\n })\n },\n methods: {\n showItem(e, index) {\n this.selectedIndex = -1;\n //e.preventDefault()\n this.selectedIndex = index;\n jQuery('html, body').addClass('lightbox-opened')\n \n this.$el.classList.add(\"opened\")\n this.setSelectedItem();\n },\n setSelectedItem() {\n this.imageLoaded = false\n if (this.selectedIndex >= 0 && this.selectedIndex < this.galleryImages.length) {\n this.selectedItem = this.galleryImages[this.selectedIndex]\n this.loadImg()\n }\n },\n closeLayer() {\n jQuery('html, body').removeClass('lightbox-opened')\n this.$el.classList.remove(\"opened\")\n this.imgUrl = \"\"\n this.selectedIndex = -1;\n },\n nextItem() {\n if(this.infinite && this.selectedIndex === this.galleryImages.length - 1){\n this.loadMore = true\n this.$emit(\"onloadMore\")\n return\n }\n if (this.selectedIndex >= 0 && this.selectedIndex < this.galleryImages.length - 1) {\n this.selectedIndex++\n this.setSelectedItem();\n }\n },\n prevItem() {\n if (this.selectedIndex > 0) {\n this.selectedIndex--\n this.setSelectedItem();\n }\n },\n onImgLoad() {\n this.imageLoaded = true\n },\n loadImg() {\n this.imageLoaded = false\n this.$nextTick(() => {\n if (this.selectedItem.image)\n this.imgUrl = this.selectedItem.image;\n })\n },\n loadMoreComplete(){\n this.loadMore = false\n }\n },\n computed: {\n showPrev() {\n return this.selectedIndex > 0\n },\n showNext() {\n if(this.infinite){\n return true\n }\n return this.selectedIndex < this.galleryImages.length - 1\n },\n isImageLoaded() {\n return this.imageLoaded\n },\n showWhenLoadMore(){\n if(this.infinite && this.loadMore){\n return false\n }\n return true\n }\n }\n}\n","const searchInput = {\n props: {\n value: {\n type: String,\n default: \"\",\n },\n label: {\n type: String,\n default: \"Search...\",\n },\n inputId: {\n type: String,\n default: \"search-input\",\n },\n placeholder: {\n type: String,\n default: \"Search...\",\n },\n minCharacters: {\n type: Number,\n default: 3,\n },\n maxCharacters: {\n type: Number,\n default: 50,\n },\n delaytime: {\n type: Number,\n default: 500,\n },\n autocompleteHandler: {\n type: String,\n default: \"\",\n },\n buttonType: {\n type: String,\n default: \"submit\",\n },\n buttonText: {\n type: String,\n default: \"search\",\n },\n clearText: {\n type: String,\n default: \"clear search\",\n },\n name: {\n type: String,\n default: \"search-input-field\",\n },\n errorLength:{\n type: String,\n default: 'Error'\n },\n errorRequired:{\n type: String,\n default: 'Error'\n }\n },\n data() {\n return {\n search: \"\",\n debounceTimer: 0,\n startSearch: false,\n };\n },\n template: `
\n
\n \n \n
\n\n \n\n \n\n
\n\n \n \n\n
\n \n
\n \n
\n
`,\n mounted() {\n this.search = this.value\n\n // this.$slots.default().forEach(vnode => { \n // console.log(vnode.tag)\n // })\n\n //console.log(this.$slots.default()[0].el)\n\n \n },\n computed: {\n activeClass() {\n if (this.search.length) {\n return \"input-search--active\";\n }\n return \"\";\n },\n searchBtnDisabled() {\n if (this.search.length > 0) {\n return false;\n }\n return true;\n },\n },\n methods: {\n onFocus(){\n this.checkToSearch()\n },\n triggerOnInput() {\n this.$emit(\"change\", this.search);\n\n clearTimeout(this.debounceTimer);\n\n this.debounceTimer = setTimeout(() => {\n this.checkToSearch()\n }, this.delaytime);\n\n },\n checkToSearch(){\n if (this.search.length >= this.minCharacters) {\n this.doSearch();\n }\n },\n stopSearch() {\n this.startSearch = false;\n this.$emit(\"searchStopped\", this.search);\n },\n doSearch() {\n this.startSearch = true;\n \n this.$emit(\"searching\", this.search);\n\n this.$nextTick(() => this.$refs[\"autocompleter\"].doSearch() )\n },\n clearInput() {\n this.search = \"\";\n this.stopSearch();\n this.$emit(\"clear\");\n },\n setFocus() {\n this.$nextTick(() => this.$refs.searchInput.focus());\n },\n searchFailed(messages) {\n this.$emit(\"searchFailed\", messages)\n },\n searchCompleted() {\n \n },\n closeAutocomplete(){\n this.startSearch = false;\n },\n stopPropagate(e){\n e.stopPropagation()\n }\n },\n};\n","const bOffice = {\n props: {\n item: {\n type: Object,\n default() {\n return null;\n },\n },\n tags: {\n type: Object,\n default() {\n return null;\n },\n },\n dictionary: {\n type: Object,\n default() {\n return {\n address: \"\",\n openingHours: \"\",\n payments: \"\",\n eAppointment: \"\",\n navigation: \"\",\n filters: \"\",\n };\n },\n },\n dismissible: {\n type: Boolean,\n default: false,\n },\n showAppointment: {\n type: Boolean,\n default: true,\n },\n userPosition: {\n type: Object,\n default() {\n return null;\n },\n },\n },\n data() {\n return {};\n },\n template: `\n\n\t
\t\t\n\t\t\n\t\t
\n\n\t\t\t
\n\t\t\t\t{{ item.title }}\n\t\t\t
\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t
\n\n\t\t\n\t\t\n\n\t\t
\n\n\t\t\t
    \n\t\t\t\t
  • \n\t\t\t\t\t
    {{dictionary.filters}}
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
  • \n\t\t\t\t
  • \n\t\t\t\t\t
    {{dictionary.address}}
    \n\t\t\t\t\t
    {{ item.address }}
    \n\t\t\t\t
  • \n\t\t\t\t
  • \n\t\t\t\t\t
    \n\t\t\t\t\t\t{{dictionary.openingHours}}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t{{i}}\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
  • \n\t\t\t\t
  • \n\t\t\t\t\t
    \n\t\t\t\t\t\t{{dictionary.payments}}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t{{i}}\n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
  • \n\t\t\t
\n\t\t
\n\n\t\t
\n\t\t\t\n\t\t
\n\t
`,\n mounted() {\n var tooltipTriggerList = [].slice.call(\n this.$el.querySelectorAll('[data-bs-toggle=\"tooltip\"]')\n );\n var tooltipList = tooltipTriggerList.map(function (tooltipTriggerEl) {\n return new bootstrap.Tooltip(tooltipTriggerEl);\n });\n },\n methods: {\n navigateToMap: function () {\n if (this.userPosition) {\n return `//www.google.com/maps/dir/?api=1&origin=${this.userPosition.lat},${this.userPosition.lng}&destination=${this.item.lat},${this.item.lng}`;\n }\n return `//www.google.com/maps/dir/?api=1&destination=${this.item.lat},${this.item.lng}`;\n },\n },\n computed: {\n availTags() {\n if (\n !this.item ||\n !this.tags ||\n !this.tags.length ||\n !this.item.tags.length\n )\n return [];\n\n return this.tags.filter((tag) => {\n if (this.item.tags.indexOf(tag.value) >= 0) return true;\n });\n },\n },\n};\n","const headerCard = {\n props: {\n card: {\n type: Object,\n default() {\n return null;\n },\n },\n },\n template: `\n `,\n data() {\n return {\n enableCache: false,\n };\n },\n mounted() {\n jQuery(document).on(\"ini-ready\", () => {\n this.checkToEnable()\n });\n jQuery(document).on(\"window-resized\", ()=>{\n this.checkToEnable()\n })\n },\n methods:{\n checkToEnable(){\n if (api.vars.windW >= 1185) {\n this.enableCache = true;\n }\n }\n },\n computed: {\n cardBg() {\n if (this.card !== null && this.card.bg && this.card.bg !== \"\") {\n return this.card.bg;\n }\n return \"\";\n }\n },\n};\n","const comparisonFooter = {\n props: {\n label:{\n type: String,\n default: 'Compare'\n },\n name:{\n type: String,\n default: 'hdncompare'\n },\n button:{\n type: String,\n default: 'Compare'\n },\n items: {\n type: Array,\n default() {\n return [];\n },\n },\n },\n template:\n `
\n \n \n \n \n \n
`,\n methods:{\n cardBg(item){\n if (item !== null && item.bg && item.bg !== \"\") {\n return item.bg;\n }\n return \"\";\n },\n removeItem(item){\n this.$emit('removeItem', item)\n },\n removeAll(){\n this.$emit('removeAll')\n }\n },\n computed:{\n restItems(){\n let arr = [].concat(...this.items)\n if(arr.length<3){\n for(var i=arr.length; i<3; i++){\n arr.push(null)\n }\n }\n return arr\n },\n ids(){\n return this.items.map((item)=> {\n return item.id\n })\n }\n }\n};\n","const compareCard = {\n props: {\n slim: {\n type: Boolean,\n default: false\n },\n card: {\n type: Object,\n default() {\n return null;\n },\n },\n availableProducts: {\n type: Array,\n default() {\n return [];\n },\n },\n index: {\n type: Number,\n default: 0\n },\n choose: {\n type: String,\n default: ''\n },\n labelClass: {\n type: String,\n },\n labelText: {\n type: String,\n }\n },\n data(){\n return {\n select: \"\"\n }\n },\n template: \n `
\n
\n
\n
\n \n
\n
\n
{{card.tl}}
\n
\n
\n {{\n card.prNotifText }}\n
`,\n computed: {\n emptyClass(){\n return !this.card ? 'b-product-card--empty' : ''\n },\n slimClass(){\n if(this.slim){\n return \"b-product-card--no-height\"\n }\n return ''\n },\n cardBg() {\n if(!this.slim){\n if (this.card !== null && this.card.bg && this.card.bg !== \"\") {\n return this.card.bg;\n }\n }\n return \"\";\n },\n productChanged(){\n if(this.select!=='')\n this.$emit(\"productChanged\", this.select, this.card, this.index)\n }\n }\n}","const compareTable = {\n props: {\n records: null\n },\n data(){\n return{\n tooltips: []\n }\n },\n template:\n `
\n \n
`,\n created(){\n this.$watch(\n () => this.records,\n (newVal, oldVal) => {\n this.showTooltips()\n }\n )\n },\n mounted () {\n this.showTooltips()\n \n\t},\n methods:{\n showTooltips(){\n \n if(this.records){\n this.$nextTick(()=>{\n\n jQuery('[data-bs-toggle=\"tooltip\"]', jQuery(this.$el)).each((index, item) =>{ \n new bootstrap.Tooltip(jQuery(item)[0], {\n container: jQuery(item).parent()\n })\n })\n })\n \n }\n },\n tooltipClass(item){\n if(item && item.tltp){\n return 'e-tooltip'\n }\n return ''\n }\n },\n computed:{\n }\n}","const compareHeader = {\n props: {\n watchSelector:{\n type: String,\n default: ''\n }\n },\n data(){\n return {\n show: false\n }\n },\n template: \n `
\n \n
\n
\n
\n \n
\n
\n
\n
\n
`,\n mounted(){\n this.handleScroll()\n jQuery(window).on('scroll.compare-header', (e)=> {\n this.handleScroll()\n })\n },\n methods:{\n handleScroll(){\n this.show = false\n //var scroll = jQuery(window).scrollTop();\n let element = document.querySelector(this.watchSelector) \n\t\t\tif ( element.getBoundingClientRect().top < 0) {\n this.show = true\n\t\t\t}\n }\n },\n computed: {\n }\n}","\nconst eLoader = {\n\tprops: {\n\t\tabsolute: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tmounted: function () {\n\t},\n\ttemplate: `
`,\n}\n\n","// \n\nconst vueDatepicker = {\n props: [\n 'placeholder',\n 'mindate',\n 'maxdate',\n 'id',\n 'custom-class',\n 'icon'\n \n ],\n data: function () {\n return {\n $this: null,\n isOpen: false,\n datepickerLoaded: false,\n date: \"\",\n left: 0\n }\n },\n template: `\n
\n
\n \n \n
\n\n
\n
\n
\n
\n `,\n mounted: function () {\n this.$this = jQuery(this.$el);\n this.datepickerDiv = jQuery('.datepickerDiv', this.$this)\n\n const targetElems = jQuery(\".date-input, .date-picker\", this.$this);\n document.addEventListener(\"click\", e => {\n if (!jQuery(e.target).closest(targetElems).length && !e.target.closest(\".ui-datepicker-prev\") && !e.target.closest(\".ui-datepicker-next\")) {\n this.close();\n } \n })\n\n docReady(($) => {\n this.iniDatepicker()\n\n $(document).on(\"window-resized\", (event) =>{\n this.setPosition()\n })\n\n $(document).on(\"layer-opened\", (event) => {\n this.close()\n })\n })\n },\n computed: {\n formattedDate: function () {\n if (this.datepickerLoaded) {\n const format = this.datepickerDiv.datepicker('option', 'dateFormat')\n\n if (this.date != \"\") {\n let str = jQuery.datepicker.formatDate(format, this.date)\n return str\n }\n return \"\"//placeholder\n }\n return \"\"//placeholder\n },\n inputClass: function () {\n return this.isOpen ? \"active\" : \"\"\n }\n },\n methods: {\n iniDatepicker: function () {\n const self = this\n\n this.datepickerDiv.datepicker({\n showOtherMonths: true,\n maxDate: this.maxdate,\n minDate: this.mindate,\n showButtonPanel: false, \n onSelect: (dateText, obj) => {\n this.date = this.datepickerDiv.datepicker(\"getDate\")\n this.close()\n }\n })\n\n this.datepickerLoaded = true\n\n },\n toggle() {\n this.isOpen = !this.isOpen;\n\n \n this.$nextTick(()=>{\n this.setPosition()\n })\n \n },\n open() {\n this.isOpen = true;\n },\n close() {\n this.isOpen = false\n },\n clear() {\n this.date = \"\"\n this.datepickerDiv.datepicker(\"refresh\");\n this.close()\n },\n setPosition(){\n if(this.isOpen){\n this.left = 0\n\n this.$nextTick(()=>{\n this.datepickerDiv.css(\"left\", 'auto');\n\n var w = this.datepickerDiv.outerWidth()\n var l = this.datepickerDiv.offset().left\n var dif = api.vars.windW - (w + l)\n if(dif<0){\n this.left = (dif - 20) + \"px\"\n }\n })\n }\n },\n },\n watch: {\n date: {\n immediate: false,\n handler() {\n this.$emit(\"change\", this.date)\n }\n },\n mindate(value) {\n this.datepickerDiv.datepicker('option', 'minDate', new Date(value));\n },\n maxdate(value) {\n this.datepickerDiv.datepicker('option', 'maxDate', new Date(value));\n },\n currentDate() {\n const date = new Date();\n const day = date.getDate();\n return day\n }\n }\n};\n","/// \n\nconst tableAccordion = {\n props: {\n records: {\n type: Array,\n default: []\n }\n },\n data: function () {\n return {\n $this: null,\n }\n },\n template: `\n
\n \n
\n `,\n mounted: function () {\n this.$this = jQuery(this.$el);\n\n this._iniAccordion()\n },\n methods: {\n _iniAccordion() {\n this.$this.accordionSection({\n header: '.b-table-accordion__head'\n })\n }\n },\n computed: {\n },\n watch: {\n }\n};\n","const bPrintBillView = {\n\tprops: {\n\t\titem: {\n\t\t\ttype: Object,\n\t\t\tdefault() {\n\t\t\t\treturn null;\n\t\t\t},\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tactiveIndex: null,\n\t\t\tactiveId: null,\n\t\t\tisMobile: false,\n\t\t}\n\t},\n\ttemplate: `\n\t
\n\n\t\t
\n\n\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\t{{index + 1}}\n\t\t\t\t\t\t\t
  • \n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\n\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t{{index + 1}}\n\t\t\t\t\t\t\t\t{{bullet.title}}\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t
\n\t
`,\n\tmounted() {\n\n\t\tthis.$nextTick(() => {\n\n\t\t\tthis.iniAccordion()\n\t\t\tthis.iniTooltips()\n\t\t})\n\n\t\tthis.checkMobileScreen()\n\n\t\tjQuery(document).on(\"window-resized\", () => {\n\t\t\tthis.checkMobileScreen()\n\t\t})\n\t},\n\tmethods: {\n\n\t\tgetWidth: function (left, right) {\n\t\t\treturn right - left\n\t\t},\n\n\t\tiniTooltips: function () {\n\t\t\tjQuery('[data-bs-toggle=\"tooltip\"]', jQuery(this.$el)).each((index, item) => {\n\n\t\t\t\tvar tooltipEl = document.getElementById(jQuery(item).attr('id'))\n\n\t\t\t\tnew bootstrap.Tooltip(tooltipEl, {\n\t\t\t\t\tcontainer: jQuery(item).parent()\n\t\t\t\t})\n\t\t\t})\n\t\t},\n\n\t\tiniAccordion: function () {\n\t\t\tvar self = this // do not remove\n\n\t\t\tvar headerDevicesH = jQuery(\".header-devices\").outerHeight()\n\n\t\t\tthis.accordionElem.accordion({\n\t\t\t\t//heightStyle: \"panel\",\n\t\t\t\theightStyle: \"content\",\n\t\t\t\tcollapsible: true,\n\t\t\t\tactive: false,\n\t\t\t\tactivate: function (event, ui) {\n\n\t\t\t\t\tself.activeIndex = self.accordionElem.accordion('option', 'active')\n\t\t\t\t\tself.activeId = self.accordionElem.find('li').eq(self.activeIndex).attr('id')\n\n\t\t\t\t\tif (typeof ui.newPanel[0] === 'undefined') {\n\t\t\t\t\t\treturn false\n\t\t\t\t\t}\n\n\t\t\t\t\tif (self.isMobile) {\n\n\t\t\t\t\t\tif (!jQuery.isEmptyObject(ui.newHeader.offset())) {\n\n\t\t\t\t\t\t\tconsole.log(1, headerDevicesH)\n\n\t\t\t\t\t\t\tjQuery('html, body').animate({\n\t\t\t\t\t\t\t\tscrollTop: ui.newHeader.offset().top - headerDevicesH\n\t\t\t\t\t\t\t}, 'fast');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tself.scrollContent()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\tonClickBullet: function (index, id) {\n\t\t\tthis.activeIndex = index\n\t\t\tthis.accordionElem.accordion(\"option\", \"active\", index)\n\t\t},\n\n\t\tscrollContent: function () {\n\n\t\t\tvar el = document.getElementById(this.activeId)\n\t\t\tvar viewportOffset = el.getBoundingClientRect()\n\t\t\t// these are relative to the viewport, i.e. the window\n\t\t\tvar top = viewportOffset.top\n\t\t\tvar headerH = api.fn.getHeaderHeight()\n\n\t\t\t// top viewport\n\t\t\tif (top < 0) {\n\t\t\t\tjQuery(\"html, body\").animate({\n\t\t\t\t\tscrollTop: jQuery(el).offset().top - headerH\n\t\t\t\t}, \"fast\")\n\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\t// under viewport\n\t\t\tif (top - api.vars.windH > -100) {\n\n\t\t\t\tjQuery(\"html, body\").animate({\n\t\t\t\t\tscrollTop: jQuery(el).offset().top - (api.vars.windH / 2) + (el.clientHeight / 2)\n\t\t\t\t}, \"fast\")\n\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\n\t\tcheckMobileScreen() {\n\t\t\tthis.isMobile = api.vars.windW < api.vars.scr.tablet - 1;\n\t\t},\n\t},\n\n\tcomputed: {\n\t\taccordionElem: function () {\n\t\t\treturn jQuery(`#${this.item.id}`)\n\t\t}\n\t}\n}","const expandableText = {\n props: {\n maxHeight: {\n type: String,\n default: 0,\n },\n btnClassName: {\n type: String,\n default: 'btn--outline-black btn--block'\n }\n },\n template: `
\n
\n \n
\n
\n \n \n
\n
`,\n data: function () {\n return {\n expanded: false,\n showToggleButton: false,\n scrollHeight: 0,\n $this: null,\n maxH: 0,\n };\n },\n mounted() {\n this.ini();\n },\n methods: {\n ini() {\n this.container = this.$el.querySelector(\".b-expandable-text__conts\");\n\n if (this.maxHeight) {\n this.$el.style.setProperty(\"--max-height\", this.maxHeight + \"px\");\n }\n\n this.maxH = parseInt(getComputedStyle(this.container).getPropertyValue(\"--max-height\"));\n\n this.scrollHeight = this.container.scrollHeight + 80;\n\n if (this.scrollHeight > this.maxH) {\n this.showToggleButton = true;\n }\n },\n open() {\n this.expanded = true;\n this.container.style.maxHeight = `${this.scrollHeight}px`;\n },\n close() {\n this.expanded = false;\n this.container.style.maxHeight = `${this.maxH}px`;\n },\n },\n computed: {\n expandedClass() {\n return this.expanded ? \"active\" : \"\";\n },\n disabledClass() {\n return this.showToggleButton ? \"\" : \"disabled\";\n },\n },\n};\n","const customTabs = {\n props: { \n active:{\n type: Number,\n default: 0\n },\n items: {\n type: Array,\n default(){\n return []\n }\n },\n disabled: { // set disabled tabs with value 1 or enabled with value 0\n type: Array,\n default(){\n return []\n }\n },\n top: { // tabs to be top instead of bottom from horz line\n type: Boolean,\n default: false\n },\n wrapTextOnMultiple: {\n default: 0\n },\n hideNav: { // hide nav if true\n type: Boolean,\n default: false\n },\n miniTabClass: {\n type: String,\n default: ''\n }\n },\n template: \n `
\n
    \n
  • \n \n
  • \n
\n \n \n \n
`,\n data: function () {\n\t\treturn {\n selected: this.active\n }\n },\n mounted(){\n\n api.fn.getSvgSource() \n\n this.changeTab(this.active)\n },\n methods:{\n changeTab(index){\n this.selected = index\n this.$emit(\"tabChanged\", index, this.items[index])\n },\n isOpened(index){\n return this.selected === index\n },\n activeClass(index){ \n if(this.selected === index && this.items.length > 1){\n return 'ui-tabs-active'\n }\n return ''\n },\n isDisabled(index){\n if(this.disabled[index] && this.disabled[index]>0){\n return true\n }\n return false\n }\n },\n computed:{\n manyTabs(){\n if(this.items.length>2){\n return 'b-tabs__nav--multiple'\n } else if (this.items.length === 1) {\n return 'b-tabs__nav--single'\n }\n return ''\n },\n topClass(){\n if(this.top)\n return 'b-tabs--top'\n\n return ''\n },\n wrapTabClass(){\n if(this.wrapTextOnMultiple && this.wrapTextOnMultiple >= this.items.length){\n return 'b-tabs__nav--wrap-text'\n }\n },\n hideNavClass(){\n if(this.hideNav && this.items.length<2) return 'b-tabs--hide-nav'\n return ''\n }\n },\n watch: {\n active(newVal) {\n this.changeTab(newVal)\n }\n },\n}\n","const accordionTabComponet = {\n props: { \n btnMoreTxt: \"\",\n btnHelpTxt: \"\",\n viewAccordionLimit: {\n type: Number,\n default: 5\n }, \n interactDiv: {\n type: String,\n default: \"\"\n },\n handler: {\n type: String,\n default: \"\"\n },\n }, \n template:\n `
\n
\n\n
1\">\n \n
\n
\n
\n \n
\n \n
\n
\n
\n \n
\n \n
\n
\n \n\n \n
\n
\n
\n
\n
`,\n mixins: [mixins],\n\tdata: function () {\n\t\treturn {\n\t\t\t$this: [],\n\t\t\tdata: [],\n\t\t\tselectedTab: null,\n\t\t\tselectedGroup: null\n\t\t};\n\t},\n\n\tmounted () {\t\t\n\t\tthis.loadData()\t\t\t\n\n\t},\n\tmethods: {\n\n\t\tloadData(){\n this.loading = true;\n\n this.ajax(this.handler, { page: this.page, sort: this.sort })\n\n },\n\n\t\thandleError(errorMessages) {\n this.errorMsgs = this.hasValue(messages) ? messages : [];\n },\n\n handleAjaxSuccess(data) { \n this.data.push(...data);\n \n\t\t\tthis.selectedTab = this.tabs[0].value\n\t\t\tthis.selectedGroup = this.groups[0].value\n\n\t\t\tthis.$nextTick(function () {\t\n\t\t\t\t\n\t\t\t\tthis.refreshAccordion()\n\t\t\t})\n },\n\t\t\n\n\t\tonClickTab: function (value) {\n\t\t\tthis.selectedTab = value\n\t\t\tthis.selectedGroup = this.groups[0].value\n\t\t\tthis.refreshAccordion()\n\t\t},\n\n\t\tonClickGroup: function (value) {\n\t\t\tthis.selectedGroup = value\n\n\t\t},\n\n\t\trefreshAccordion: function () {\n\n\t\t\tvar elem = jQuery(\".b-accordion\", jQuery(this.$el))\n\n\t\t\tif (!elem.hasClass('ui-accordion')) {\n\t\t\t\telem.accordionSection({\n\t\t\t\t\theader: '.b-accordion__head'\n\t\t\t\t})\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tthis.$nextTick(function () {\t\t\t\t\n\t\t\t\telem.accordion(\"refresh\")\n\t\t\t})\n\t\t},\n\n\t\tisExpaned(id){\n\n\t\t\tvar isExpanded = null\n\t\t\t\n\t\t\tthis.data.forEach(function (topNode) {\n\t\t\t\ttopNode.groups.forEach(function(groups){\n\t\t\t\t\tgroups.faqs.forEach(function(faq){\n\t\t\t\t\t\tif(faq.id=== id){\n\t\t\t\t\t\t\tisExpanded = groups.expanded\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\n\t\t\t\t})\n\t\t\t\t\n\t\t\t})\n\n\t\t\tif(isExpanded!==null){\n\t\t\t\treturn isExpanded\n\t\t\t}\n\n\t\t\treturn false\n\t\t},\n\n\t\texpandSelected(id){\n\n\t\t\tthis.data.forEach(function (item) {\n\t\t\t\titem.groups.forEach(function (groups) {\n\t\t\t\t\tgroups.faqs.forEach(function(faq){\n\t\t\t\t\t\tif(faq.id=== id){\n\t\t\t\t\t\t\tgroups.expanded = true\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t})\n\t\t\t})\n\n\t\t\tthis.refreshAccordion()\n\t\t},\n\t\tdoInteract(){\n\t\t\tif(this.interactDiv){\n\t\t\t\tvar div = jQuery(this.interactDiv)\n\t\t\t\tif(div && div.length){\n\t\t\t\t\tdiv.slideDown()\n\t\t\t\t\tapi.fn.moveWindowToObj(div)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tcomputed: {\n\t\ttabs: function () {\n\t\t\treturn this.data.map(i => ({ value: i.id, text: i.title }))\n\t\t},\n\n\t\tgroups: function () {\n\n\t\t\tif (!this.hasValue(this.selectedTab)) {\n\t\t\t\treturn []\n\t\t\t}\n\n\t\t\treturn this.data.find(i => i.id === this.selectedTab)\n\t\t\t\t.groups\n\t\t\t\t.map(i => ({ value: i.id, title: i.title, subTitle: i.subTitle }))\n\t\t},\n\n\t\tfaqs: function () {\n\n\t\t\tif (!this.hasValue(this.selectedTab)) {\n\t\t\t\treturn []\n\t\t\t}\n\n\t\t\tif (!this.hasValue(this.selectedGroup)) {\n\t\t\t\treturn []\n\t\t\t}\n\n\t\t\treturn this.data\n\t\t\t\t.find(i => i.id === this.selectedTab)\n\t\t\t\t.groups\n\t\t\t\t.find(i => i.id === this.selectedGroup)\n\t\t\t\t.faqs\n\t\t\t\t.map(i => ({ id: i.id, title: i.title, text: i.text }))\n\t\t}\n\t},\n\twatch: {\n\t\tselectedGroup: function (val) {\n\t\t\tthis.refreshAccordion()\n\t\t}\n\t}\n}\n","const slideUpDown = {\n props: {\n active: false,\n animateOnStart: false\n },\n template: `
\n \n
`,\n data: function () {\n return {\n _this: null,\n isOpen: false\n };\n },\n mounted() {\n this._this = jQuery(this.$el)\n \n this.checkToOpen(this.active, this.animateOnStart) \n\n\n this.$watch(\n () => this.active,\n (newVal, oldVal) => {\n this.$nextTick(()=>{\n this.checkToOpen(newVal, true)\n })\n \n }\n );\n },\n methods: {\n checkToOpen(active, animated){\n if(active){\n this.openSlide(animated)\n } else{\n this.closeSlide(animated)\n }\n },\n openSlide(animated){\n this.isOpen = true\n if(animated){\n this._this.slideDown()\n } else {\n this._this.show()\n }\n },\n closeSlide(animated){\n this.isOpen = false\n if(animated){\n jQuery(this.$el).slideUp() \n } else {\n this._this.hide()\n }\n }\n },\n computed:{\n activeClass(){\n return this.isOpen ? 'active' : ''\n }\n }\n};\n","const arcProgressBar = {\n props: {\n stepNumber: {\n type: String,\n default: \"1\",\n },\n strokeWidth: {\n type: Number,\n default: 2.5,\n }, \n activePerc: {\n type: Number,\n default: 0,\n }\n },\n data() {\n return {\n min: 0,\n max: 153,\n cValue: 0,\n maxLength: 251.2,\n bgDashArray: \"\"\n }\n },\n template: `
\n
\n \n\n \n \n \n \n \n \n\n \n \n \n \n \n
\n
`,\n mounted(){\n\n this.setValue(0)\n //this.cValue = `0, ${this.maxLength}`\n\n\n setTimeout(()=>{\n this.setValue(this.activePerc)\n },1000)\n \n this.bgDashArray = `${this.max}, ${this.maxLength}`\n },\n methods:{\n calcVal(perc){\n return (perc * this.max) / 100\n },\n setValue(perc){\n var num = this.calcVal(perc) \n this.cValue = `${num}, ${this.maxLength}`\n\n // jQuery({ Counter: 0 }).animate({ Counter: num }, {\n // duration: 1000,\n // easing: 'linear',\n // step: (final) => {\n // this.cValue = `${final.toFixed(2)}, ${this.maxLength}`\n // }\n // });\n\n }\n }\n};\n","const eCircleProgressStep = {\n props: {\n stepNumber: {\n default: \"1\",\n },\n activePerc: {\n type: Number,\n default: 0,\n },\n completePerc: {\n type: Number,\n default: 0,\n },\n isJump:{\n type: Boolean,\n default: false\n }\n },\n data() {\n return {\n max:120,\n activeValue: 0,\n completeValue: 0\n }\n },\n template: `\n
\n \n \n \n \n \n \n \n \n {{stepNumber}}\n \n \n
`,\n mounted(){\n this.setActiveValue(0)\n this.setCompleteValue(0) \n },\n methods:{\n calcVal(perc){\n return this.max - (perc * this.max) / 100\n },\n setActiveValue(perc){\n this.activeValue = this.calcVal(perc) \n },\n setCompleteValue(perc){\n this.completeValue = this.calcVal(perc) \n },\n \n },\n computed:{\n completedClass(){\n if(this.completePerc===100){\n return 'e-circle-progress-step--completed'\n }\n return ''\n }\n },\n watch: {\n activePerc: {\n handler(val, oldVal) {\n setTimeout(()=>{\n this.setActiveValue(this.activePerc)\n },500)\n },\n immediate: true\n },\n completePerc: {\n handler(val, oldVal) {\n setTimeout(()=>{\n this.setCompleteValue(this.completePerc)\n },500)\n },\n immediate: true\n },\n },\n};\n","\nconst eCircleProgressBar = {\n props: {\n currentStep:{\n type: Number,\n default: 1,\n },\n allSteps:{\n type: Object,\n default(){\n return []\n },\n },\n icn:\"\"\n },\n template:`\n
\n\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n\n
\n
{{currentStep}}
\n
\"\"
\n
{{currentStepLbl}}
\n
\n\n
`,\n data() {\n return {\n min: 0,\n max: 736,\n activeBlueValue: 0,\n activeRedValue: 0,\n progress:0\n }\n },\n mounted(){\n this.calcProgress(0)\n \n },\n methods:{\n calcVal(perc){\n return this.max - (perc * this.max) / 100\n },\n setValue(perc){ \n var blueVal = Math.min(perc, 50)\n var redVal = Math.max((perc) - 50, 0) \n\n this.activeBlueValue = this.calcVal(blueVal) \n this.activeRedValue = this.calcVal(redVal) \n },\n calcProgress(cstep){\n const perc = ((cstep / this.allSteps.length) * 100).toFixed(0);;\n this.progress = perc\n\n this.setValue(perc)\n }\n },\n computed:{\n isCompleted(){\n return this.progress >= 100\n },\n completedClass(){\n return this.isCompleted ? \"completed\" : \"\"\n },\n currentStepLbl(){\n let lbl = \"\"\n if(this.allSteps.length && this.allSteps[this.currentStep-1])\n lbl = this.allSteps[this.currentStep-1].lbl\n\n return lbl\n }\n },\n watch:{\n currentStep:{\n handler(newval, oldval){\n this.$nextTick(()=>{\n this.calcProgress(newval)\n })\n },\n immediate: true\n }\n }\n}","const bAccordion = {\n props: {\n active:{\n default: 0\n },\n header:{\n type: String,\n default: \"> .b-accordion__head\"\n },\n collapsible:{\n type: Boolean,\n default: true\n }\n },\n template:`
`,\n data(){\n return {\n acc: null\n }\n },\n mounted(){\n \n this.acc = jQuery(this.$refs['accordion'])\n this.iniAccordion()\n\n this.$watch(() => this.active, (newVal, oldVal) => {\n this.setActive(newVal)\n }\n )\n },\n methods:{\n iniAccordion(){\n //console.log(this.active, this.collapsible)\n this.acc.accordion({\n heightStyle: \"content\",\n collapsible: this.collapsible,\n header: this.header,\n active: this.active,\n create: function (event, ui) {\n },\n beforeActivate: function (event, ui) {\n },\n activate: function (event, ui) {\n }\n })\n },\n setActive(num){\n this.acc.accordion( \"option\", \"active\", num );\n },\n }\n}","const doiFinder = {\n props:{\n placeholder: \"\",\n injectedValue: \"\",\n minCharacters: {\n type: Number,\n default: 3,\n },\n handler: {\n type: String,\n default: \"\",\n },\n greReady: false,\n captchaSiteKey: \"\",\n captchaAction: \"\"\n },\n template:`\n
\n
\n \n \n
\n
\n
\n
\n\n \n \n \n \n \n
\n \n
\n \n
\n
\n `,\n data() {\n return {\n debounceTimer:0,\n value: \"\",\n loading: false,\n startSearch: false,\n records: [],\n errorMsgs: [],\n errorSearchData: false\n }\n },\n created(){\n this.value = this.injectedModel\n },\n methods:{\n updateInput(e){\n this.value = e.target.value\n this.errorSearchData = false\n clearTimeout(this.debounceTimer);\n\n this.debounceTimer = setTimeout(() => {\n if (this.value.length >= this.minCharacters) {\n this.loading = true\n this.startSearch = true;\n this.$refs[\"autocompleter\"].doSearch()\n } else {\n \n }\n }, 500);\n },\n autocompleteClicked(item){\n this.value = item.id\n this.$emit(\"autocompleteClicked\", item, item.id)\n this.startSearch = false;\n },\n \n noSearchData(){\n this.errorSearchData = true\n this.loading = false\n },\n searchFailed(){\n this.loading = false\n },\n searchCompleted(){\n this.loading = false\n },\n }\n}","var svgSourcePrint = {\n props: {\n src: {\n type: String,\n default: \"\",\n },\n },\n template: ``,\n data() {\n return {\n imgSrc: \"\",\n };\n },\n mounted() {\n this.getSource();\n },\n methods: {\n getSource() {\n if (this.src !== \"\") {\n fetch(this.src).then((resp) => {\n if (resp.ok) {\n resp.text().then((txt) => {\n this.imgSrc = String(txt);\n });\n }\n });\n }\n },\n },\n};\n","const namedSteps = {\n props: {\n class: { default: '' },\n steps: { default() { return [] } },\n setCurrent: { default: '' },\n iniStep: { default: '' }\n },\n template: `
\n
\n \n
\n
\n \n
\n
`,\n data() {\n return {\n current: this.iniStep ? this.iniStep : this.steps[0],\n history: []\n }\n },\n created() {\n if (this.setCurrent) {\n const indx = parseInt(this.setCurrent)\n\n if (isNaN(indx) && this.getIndex(this.setCurrent) >= 0) {\n this.current = this.setCurrent\n } else {\n if (indx >= 0) {\n this.current = this.getNameByIndex(indx)\n }\n }\n }\n },\n beforeUnmount() {\n this.$emit('unmounted', this.current)\n },\n mounted() {\n this.$emit('current', this.current)\n },\n methods: {\n is(name) {\n if (this.getIndex(name) >= 0) {\n return name === this.current\n } else {\n return false\n }\n },\n getIndex(name) {\n return this.steps.indexOf(name)\n },\n getNameByIndex(indx) {\n if (indx >= 0) {\n return this.steps[indx]\n } else {\n return false\n }\n },\n goTo(name) {\n if (this.steps.indexOf(name) >= 0) {\n if (this.current) {\n this.history.push(this.current);\n }\n this.current = name\n this.$emit('went', this.current)\n this.$emit('current', this.current)\n return this.current\n } else {\n return false\n }\n },\n prev() {\n const indx = this.steps.indexOf(this.current)\n if (indx > 0) {\n this.current = this.steps[indx - 1]\n this.$emit('back', this.current)\n this.$emit('current', this.current)\n return this.current\n } else {\n return false\n }\n },\n prevStep() {\n if (this.history.length) {\n // const previous = this.history[this.history.length - 2] more accurate code but has some bugs. Needs improvement to implement it;\n const previous = this.history.pop();\n if(previous) {\n this.current = previous;\n return this.current;\n }\n }\n return false\n },\n next() {\n const indx = this.steps.indexOf(this.current)\n if (indx < this.steps.length - 1) {\n this.current = this.steps[indx + 1]\n this.$emit('forth', this.current)\n this.$emit('current', this.current)\n return this.current\n } else {\n return false\n }\n },\n get() {\n return this.current\n },\n isFirstStep(){\n const indx = this.steps.indexOf(this.current)\n return indx === 0\n }\n },\n computed: {\n routeClass() {\n return this.class === '' ? 'named-steps' : this.class\n },\n headerClass() {\n return `${this.routeClass}__header`\n },\n bodyClass() {\n return `${this.routeClass}__body`\n }\n }\n}","const formattedNumber = {\n props:{\n lang: {default: 'el'},\n value: {default: 0, type: Number},\n float: {default: 2, type: Number},\n noFloatAtZero: {default: false} // if true, then when value is 0, will not be floated even if the float is above 0\n },\n template:`{{formattedValue}}`,\n methods:{\n stringifyPrice(value){\n return value.toLocaleString(this.lang, {\n minimumFractionDigits: this.float,\n maximumFractionDigits: this.float\n })\n }\n },\n computed:{\n formattedValue(){\n if(this.noFloatAtZero && this.value===0){\n return 0\n }\n return this.stringifyPrice(this.value)\n }\n }\n}","const addRemoveGroup = {\n mixins: [mixins],\n props: {\n min: {\n type: Number,\n default: 1,\n },\n max: {\n type: Number,\n default: 4,\n },\n initial:{\n type: Number,\n default: 1\n },\n },\n data() {\n return {\n items: Array(this.initial).fill(\"\"),\n };\n },\n template: `
\n \n
`,\n methods: {\n add() {\n if (this.items.length < this.max) {\n this.items.push(\"\");\n\n this.$nextTick(() => {\n this.update();\n });\n }\n },\n remove(index) {\n this.items.splice(index, 1);\n\n this.$emit(\"removed\", index);\n },\n update() {\n this.$emit(\"updated\", this.items);\n },\n randomKey(){\n return this.makeid()\n }\n },\n};\n","const initDirective = {\n created(el, binding, vnode, prevVnode) {\n const vm = binding.instance\n var arg = toCamelCase(binding.arg)\n vm.$data[arg] = binding.value\n }\n}\n\nfunction toCamelCase(str) {\n return str.toLowerCase().replace(/-(.)/g, function(match, group1) {\n return group1.toUpperCase();\n }); \n}","const headerMenu = {\n data() {\n return {\n selectedCard: null,\n flipped: false,\n header: null,\n headerCards: null\n }\n },\n mounted(){\n\n this.headerCards = window.headerCards;\n\n \n this.$nextTick(() => {\n \n this.header = jQuery(this.$el)\n \n this.header.parents('.header__layer').headerDesktop()\n this.header.parents('.header__layer').headerScroll()\n })\n },\n methods:{\n selectCard(id){\n if(id === false){\n this.selectedCard = null\n return;\n }\n\n if(this.headerCards && this.headerCards[id]){\n\n if(this.selectedCard && this.selectedCard.id && this.selectedCard.id !== this.headerCards[id].id)\n this.flipped = !this.flipped;\n\n this.selectedCard = this.headerCards[id];\n }\n },\n isSelectedCard(card){\n \n if(this.selectedCard && card){\n\n return this.selectedCard.id === card.id;\n }\n \n return false;\n },\n activeClass(card){\n return this.isSelectedCard(card) ? 'active' : 'inactive'; \n }\n }\n}\nconst headerMenuApp = Vue.createApp(headerMenu)\nheaderMenuApp\n .component(\"header-card\", headerCard)\n\nconst selHeader = document.querySelector('#header-app')\nif(selHeader)\n headerMenuApp.mount(selHeader)","const headerMenuDevices = {\n\tdata() {\n\t\treturn {\n\t\t\tshowMenu: false,\n\t\t\tactiveIds: [],\n\t\t\tactiveTexts: [],\n\t\t\tnoscrollClassName: 'noscroll-devices'\n\t\t}\n\t},\n\tmounted() {\n\t\tthis.$nextTick(() => {\n\t\t\tthis.header = jQuery(this.$el)\n\t\t\tthis.header.headerScroll()\n\t\t})\n\t},\n\tmethods: {\n\t\ttoggleMenu: function () {\n\n\t\t\tthis.showMenu ? this.closeMenu() : this.openMenu()\n\n\t\t},\n\n\t\topenMenu(){\n\t\t\tthis.showMenu = true\n\t\t\tthis.disableBodyScroll()\n\t\t},\n\n\t\tcloseMenu(){\n\t\t\tthis.showMenu = false\n\t\t\tthis.activeIds = []\n\t\t\tthis.activeTexts = []\n\t\t\tthis.enableBodyScroll()\n\t\t},\n\n\t\topenSubMenu: function (event) {\n\t\t\tvar element = event.target\n\n\t\t\tthis.activeIds.push(element.getAttribute('data-id'))\n\t\t\tthis.activeTexts.push(element.getAttribute('data-text'))\n\t\t},\n\n\t\tgoBack: function () {\n\t\t\tthis.activeIds.splice(-1, 1)\n\t\t\tthis.activeTexts.splice(-1, 1)\n\t\t},\n\n\t\tonClickHeader: function () {\n\t\t\treturn false\n\t\t},\n\n\t\tdisableBodyScroll: function () {\n\t\t\tjQuery('body, html').addClass(this.noscrollClassName)\n\t\t},\n\n\t\tenableBodyScroll: function () {\n\t\t\tjQuery('body, html').removeClass(this.noscrollClassName)\n\t\t},\n\n\t\tincludedInPath: function (value) {\n\t\t\treturn this.activeIds.includes(value)\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tparentId: function () {\n\t\t\treturn this.activeIds[this.activeIds.length - 1]\n\t\t},\n\n\t\tparentText: function () {\n\t\t\treturn this.activeTexts[this.activeTexts.length - 1]\n\t\t},\n\n\t\tshowBack: function () {\n\t\t\treturn this.activeIds.length\n\t\t}\n\t}\n}\nconst headerMenuDevicesApp = Vue.createApp(headerMenuDevices)\nconst selHeaderDevices = document.querySelector('#header-devices')\nlet headerMenuDevicesMounted\nif(selHeaderDevices)\n\theaderMenuDevicesMounted = headerMenuDevicesApp.mount(selHeaderDevices)","const introTabs = {\n mixins: [mixin_intro_tabs],\n data() {\n return {\n carouselitems: 1,\n slickOptions: {}\n }\n },\n mounted(){\n\n\n this.slickOptions = {\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: true,\n prevArrow: api.vars.slick.prevArrow,\n nextArrow: api.vars.slick.nextArrow,\n dots: false,\n rows: 0,\n variableWidth: true ? jQuery('body').hasClass('p-article') : false,\n slidesToShow: this.carouselitems,\n responsive: [{\n breakpoint: api.vars.scr.desktop - 1,\n settings: {\n variableWidth: true,\n slidesToShow: 1\n }\n }]\n }\n }\n}\n\nlet introTabsApp = [];\nconst introTabsDivs = document.querySelectorAll(\".s-intro-tabs\");\nif (introTabsDivs.length) {\n for (let i = 0; i < introTabsDivs.length; ++i) {\n if (introTabsDivs[i].id && introTabsDivs[i].id !== \"\") {\n introTabsApp.push(Vue.createApp({...introTabs}));\n introTabsApp[i].directive('init', initDirective);\n introTabsApp[i].component(\"slick-carousel\",slickCarousel);\n introTabsApp[i].mount(`#${introTabsDivs[i].id}`);\n }\n }\n}","const homeNews = {\n mixins: [mixins],\n data() {\n return {\n // default\n $this: [],\n isLoading: false, \n\n handler:null,\n isMobile: false,\n featuredArticles:[],\n listArticles:[],\n\n slickOptions: {\n lazyLoad: 'progressive',\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: false,\n arrows: false,\n dots: true,\n rows: 0,\n slidesToShow: 1,\n fade: true,\n cssEase: 'linear',\n autoplay: true,\n autoplaySpeed: 6000,\n responsive: [\n {\n breakpoint: api.vars.scr.tablet - 1,\n settings: {\n edgeFriction: api.vars.slick.edgeFriction, \n slidesToShow: 1, \n fade: false,\n variableWidth:true,\n autoplay: false,\n dots:false\n },\n } \n ], \n },\n\n slickListOptions: {\n responsive: [\n {\n breakpoint: api.vars.scr.tablet - 1,\n settings: {\n edgeFriction: api.vars.slick.edgeFriction,\n infinite: true,\n arrows: false,\n dots: true,\n variableWidth:true,\n rows: 0,\n slidesToShow: 1,\n autoplay: true\n },\n } \n ],\n \n },\n\n // server error dialog\n errorMsgs: [],\n }\n },\n \n mounted(){\n \n api.fn.getWindDims();\n\n this.appendDotsToSlicks()\n\n this.$nextTick(() => {\n\n this.checkMobileScreen()\n \n jQuery(document).on(\"window-resized\", ()=> {\n this.checkMobileScreen()\n })\n \n this.fetchArticles()\n });\n },\n\n methods:{\n\n appendDotsToSlicks(){\n\n this.slickOptions.responsive[0].settings.appendDots = jQuery(this.$el).find(\".feature-slick-dots\")\n \n this.slickListOptions.responsive[0].settings.appendDots = jQuery(this.$el).find(\".list-slick-dots\")\n\n },\n\n checkMobileScreen (){ \n this.isMobile = api.vars.windW < api.vars.scr.tablet - 1;\n },\n\n fetchArticles: function () {\n this.isLoading = true;\n\n axios\n .post(this.handler)\n .then((response) => { \n\n // response has error\n if (response.data.hasError) {\n this.handleError(errorMessages);\n return false;\n } \n\n this.featuredArticles = response.data.data.records.filter(i => i.isFeatured == \"true\") \n this.listArticles = response.data.data.records.filter(i => i.isFeatured == \"false\") \n\n this.$nextTick(function(){ \n this.$refs.news.reSlick() \n if(this.$refs.newslist)\n this.$refs.newslist.reSlick() \n })\n\n // Dom actions\n this.isLoading = false;\n })\n .catch((errors) => {\n this.handleError([errors]);\n // console.error(errors);\n });\n },\n\n handleError: function (messages) {\n\t\t\tthis.errorMsgs = this.hasValue(messages) ? messages : []\n\t\t\tthis.isLoading = false\n\t\t},\n \n \n }\n}\n\nlet homeNewsApp = [];\nconst homeNewsDivs = document.querySelectorAll(\".s-news-home\");\nif (homeNewsDivs.length) {\n for (let i = 0; i < homeNewsDivs.length; ++i) {\n\t\tif (homeNewsDivs[i].id && homeNewsDivs[i].id !== \"\") {\n\t\t\thomeNewsApp.push(Vue.createApp({...homeNews}));\n homeNewsApp[i].component(\"alert-danger\", alertDanger)\n homeNewsApp[i].component(\"slick-carousel\", slickCarousel)\n\t\t\thomeNewsApp[i].directive('init', initDirective);\n\t\t\thomeNewsApp[i].mount(`#${homeNewsDivs[i].id}`);\n\t\t}\n\t}\n}\n// const newsApp = Vue.createApp(homeNews)\n// newsApp.directive('init', initDirective);\n// if(document.querySelector(\"#home-news\"))\n// newsApp.mount('#home-news')","const searchModal = {\n data () {\n\t\treturn {\n isOpened: false,\n errorMsgs:[]\n }\n },\n\tmounted () {\n\t},\n methods: {\n toggleSearch(){\n this.isOpened ? this.closeSearch() : this.openSearch()\n },\n openSearch(){\n if(headerMenuDevicesMounted)\n headerMenuDevicesMounted.closeMenu()\n\n jQuery('html, body').addClass('search-modal-opened')\n this.isOpened = true\n },\n closeSearch(){\n jQuery('html, body').removeClass('search-modal-opened')\n this.isOpened = false\n },\n searchFailed(messages) {\n this.errorMsgs = [].concat(messages)\n }\n }\n}\n\nvar searchModalApp = Vue.createApp(searchModal)\nif(document.querySelector(\"#search-app\")){\n searchModalApp.directive('init', initDirective);\n searchModalApp.component(\"search-input\", searchInput);\n searchModalApp.component(\"b-auto-completer\", bAutoCompleter);\n searchModalApp.component(\"alert-danger\", alertDanger)\n searchModalApp.mount(\"#search-app\")\n}\n\n ","const searchResults = {\n mixins: [mixins],\n data() {\n return {\n value: \"\",\n tabs: [],\n tab: null,\n tabItem: null,\n handler: \"\",\n errorMsgs: [],\n records: [],\n loading: true,\n page: 1,\n allItems:0\n };\n },\n mounted() {\n \n },\n methods: {\n reset(){\n this.records = []\n this.page = 1\n },\n changeTab(newTab){\n api.fn.moveWindowToObj(jQuery('.s-search-results'), 0, ()=>{\n this.$refs[\"tabs\"].changeTab(newTab)\n })\n \n },\n tabChanged(newTab) {\n this.reset()\n\n this.tab = newTab; \n this.tabItem = this.tabs.filter(x => x.id === newTab)[0]\n \n this.setLazy()\n\n if(this.tabItem.type !== \"group\"){\n this.doSearch()\n }\n },\n doSearch(){\n this.loading = true;\n this.errorMsgs = [];\n\n\n try {\n axios\n .post(this.handler, { value: this.tab, page: this.page })\n .then((response) => {\n var { hasError, errorMessages, data, allItems } = response.data;\n\n if (hasError) {\n this.handleError(errorMessages);\n return false;\n }\n\n this.handleSuccess(data, allItems);\n })\n .catch((errors) => {\n this.handleError([this.globalerror]);\n })\n .then(() => {\n this.loading = false;\n });\n } catch (err) {\n this.loading = false;\n this.handleError(JSON.parse(err));\n }\n\n \n },\n handleError(messages) {\n this.errorMsgs = this.hasValue(messages) ? messages : [];\n },\n handleSuccess(data, allItems) {\n this.records = [];\n\n this.$nextTick(()=>{\n this.allItems = parseInt(allItems)\n this.records = [].concat(...data);\n })\n\n \n },\n pageChanged(newPage){\n this.page = newPage\n\n if(this.tabItem.type !== \"group\"){\n this.doSearch()\n this.scrollToElem(jQuery(this.$el))\n }\n },\n setLazy(){\n this.$nextTick(()=>{\n jQuery(this.$el).find('[data-src]').lazy();\n })\n },\n cardBg(card) {\n if (card !== null && card.bg && card.bg !== \"\") {\n return card.bg;\n }\n return \"\";\n }\n },\n computed:{\n }\n};\n\nvar searchResultsApp = Vue.createApp(searchResults);\nif (document.querySelector(\"#search-results\")) {\n searchResultsApp.directive(\"init\", initDirective);\n searchResultsApp.component(\"search-input\", searchInput);\n searchResultsApp.component(\"b-auto-completer\", bAutoCompleter);\n searchResultsApp.component(\"b-tabs\", bTabs);\n searchResultsApp.component('b-pagination', bPagination);\n searchResultsApp.mount(\"#search-results\");\n}\n","const appointmentForm = {\n mixins: [mixins],\n data: function () {\n\t\treturn {\n\t\t\tisLoading: false,\n\t\t\t// server error dialog\n\t\t\terrorMsgs: [],\n\t\t\tsuccessMsgs: [],\n }\n },\n\tcreated: function () {\n\t\taxios.defaults.headers.common[\"X-Requested-With\"] = \"XMLHttpRequest\"\n\t},\n\tmounted: function () {\n\t\tthis.postUrl = this.getFormAction(this.$refs.sAppointmentForm)\n\t},\n methods: {\n submitForm(){\n\n },\n openAppointment(){\n console.log(\"openAppointment\")\n }\n }\n}\n\nvar appointmentFormApp = Vue.createApp(appointmentForm)\nif(document.querySelector(\"#appointment-form-app\"))\n appointmentFormApp.mount(\"#appointment-form-app\")","const mediaLanding = {\n mixins: [mixins, mixin_viewport],\n data: function () {\n return {\n handler: \"\",\n sort: \"\",\n loading: true,\n page: 0,\n errorMsgs: [],\n hasMore: false,\n records: [],\n itemsPerRow: 2\n };\n },\n mounted() {\n this.loadMore();\n },\n methods: {\n loadMore() {\n this.loading = true;\n this.errorMsgs = [];\n this.page++;\n\n try {\n axios\n .post(this.handler, { page: this.page, sort: this.sort })\n .then((response) => {\n var { hasError, errorMessages, data, hasMore } =\n response.data;\n\n if (hasError) {\n this.handleError(errorMessages);\n return false;\n }\n\n this.handleSuccess(data, hasMore);\n })\n .catch((errors) => {\n this.handleError([errors]);\n })\n .then(() => {\n this.loading = false;\n });\n } catch (err) {\n this.loading = false;\n this.handleError(JSON.parse(err));\n }\n },\n handleError(errorMessages) {\n this.errorMsgs = this.hasValue(messages) ? messages : [];\n },\n handleSuccess(data, hasMore) {\n this.hasMore = hasMore;\n this.records.push(...data);\n \n if(this.$refs.lightbox)\n this.$refs.lightbox.loadMoreComplete()\n },\n sortChanged(){\n this.reset()\n this.loadMore();\n },\n reset(){\n this.page = 0\n this.records = []\n },\n mediaClicked(e, item){\n const index = this.records.findIndex(x => x.id === item.id)\n this.$refs.lightbox.showItem(e, index);\n }\n },\n computed:{\n itemsPerRowClass(){\n return `items-per-row--${this.itemsPerRow}`\n }\n }\n};\nconst mediaLandingApp = Vue.createApp(mediaLanding);\nconst mediaLandingDiv = document.querySelector(\"#mediaLanding\");\nif (mediaLandingDiv) {\n mediaLandingApp.directive(\"init\", initDirective);\n mediaLandingApp.component(\"infinity-scroll\", infinityScroll);\n mediaLandingApp.component(\"b-media-item--file\", bMediaItemFile);\n mediaLandingApp.component(\"photo-item\", photoItem);\n mediaLandingApp.component(\"media-item\", mediaItem);\n mediaLandingApp.component(\"custom-lightbox\", customLightbox);\n mediaLandingApp.mount(mediaLandingDiv);\n}\n","const _markers = [];\nlet _userMarker = null;\nlet _markerCluster = null;\nlet _map = null;\n\nconst offices = {\n mixins: [mixins],\n data: function () {\n return {\n // default\n $this: [],\n isMounted: false,\n isLoading: false,\n // properties\n page: 1,\n viewMode: null,\n dictionary:\n typeof window.officesDictionary !== \"undefined\"\n ? window.officesDictionary\n : null,\n tags:\n typeof window.officesTagsData !== \"undefined\"\n ? window.officesTagsData\n : [],\n resultsOriginal:\n typeof window.officesData !== \"undefined\"\n ? window.officesData\n : [],\n results: [],\n resultsInBound: [],\n selectedResult: null,\n selectedTags: [],\n // properties\n defaultZoom: 15,\n address: null,\n autocompleteObj: [],\n place: null,\n placeViewportMarkers: [],\n // Map properties\n mapId: \"map\",\n closestMarker: null,\n map: null,\n bounds: null,\n userPos: null,\n markers: [],\n markersInBound: [],\n userMapIcon: \"/imgs/icns/pinUser.png\",\n mapIcon: \"/imgs/icns/pin.svg\",\n optionsStylesMap:\n typeof window.optionsStylesMap !== \"undefined\"\n ? window.optionsStylesMap.data\n : [],\n itemsPerPage: null,\n mcOptions: {\n styles: [\n {\n url: \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAUGSURBVHgBzZkLTFNXGMdPO0uxvAoUEKmFgVIe5aHIgLWusMgSDQ5dMpURFc0WNUbDTIQFIg50zQRc5sLQRdmWbUTUTYLTGSuDIp0vhoIgMCYtHQ8rgdEX5VGg+05tSUdgrAjt/Sd/vu+ec+/lx+nl3O+cktA8pdfr6RAiwclgP2NON1oPVoI7wQpwDVhEIpFEaJ4iIQsFgHwIb4PTROK7ro1NrQgiqaGpBSmUKoOx6C7OyI/FNDg8LESfwItD8bzYQeiqAJ8G6Ea0GALAdWDh3wrlWI7g1Dh9BWcSubD0ltiXEze5a9/hiY5O2Ri+F9gXLZTgZi7gkwODg9pDGTk6S+Fm84696eOSTpkW3xv/jrk4SHNAsiBcLyw6t/JE/mmqUqW2+FH5L7GYyyePZaaP7tmxrQMON8Lj0IUsBQVIDoSrB44c9S4+9509WkQd+GDXSFFBXiukOwG2eaZzZgQFyNCBQUXF5pT3WeJ7dRRkBYWFsieqr12SurvSNwPsk+n9pBkgmRAuh8UlRjW3tlsF0iRuTNSo+OYVCaRvAWy3eR/Z/AAgnSGU7TucFWptSKzf7tdT93+Y7YMZgMXJvI887dyDZ0q+X/XV16VOyEY6+80Pzp9+VsyG9JB5+9RHD3/B8j87pLVvbtq+ortXbvXRNJezk+OktPFOh5ubSyo8AnW4zXxEP8k+XuBma0gslVpDzswVuEO639RmGFEYTXb7U8kV9tqEEEQg9Usamt3dXNNgVOtNI7o9Ky/fCxFMgsIiNwi4tpgaUaFPUPQbvfI+KiKQHB0dJtTdLdWQbiED5OqrNyqXEQ0SS6MZeqUC2CBdhT/68MrqWptNR3Op/lEjfn2/jkHDHre0OSCCqvbOA1xZeWBQ+54e+aIWHS+jtvYORwh+GNT92fO+pYigUmuGlkCgYlDqkFa7BBFUwIZfQAbQcUR8TWBQFY22dAwRVEY2JQZVOtBohAX1ZDA0EOQYtDPAz3cAEVTLPBlqCCoM2hcbvboXEVRBgQH9EFox6MOoSM5zRFCt5/PwkqSNBO96PIceo3mz04eHRwj1vocSTwWl3hko8z4iw49haLu7JWnDQ0QwcUIC8Tq/AeemerTp5MeZDxDBlJ+bXYtebLC9AIVRlTB9vJs3rE+oQwTRurjox69FRdQD2zN8bL5mqjz7uaDK3p46gmwsOt1FUZCXhQvmH01tU6BA3gl7QVUp7yZXIxtrd+rWqpjoNb8Ak8LU9q+dEpgBcLm3JzE5NaWyRsxDNlAinycWVpRegLQEQEdN7TNt6eBCdad/BC9dKuvyR1aUl5dHr/yP33MhvQiQSvO+6TslyHhCmbC89EsvT0YPspJ8Wcyn4hs/nYK0fDqkgWu2C2FkGRA2xidt3V0jvh+PFlF8bmy16PrFC0bI/pnOIc92sfGCctG1S+f3pr33rZOT44IXLnZ2dtpt7yRdBsgSOCybDdLAM9fNYGTtIKy5JRLzM44KNjU0PeGiBRA3Zu2t88WFPwcFvIrn7kfm/zjzAjUJgPEii3vz19ucjBxBskT2VzCsuxnIAlHsKFo+N0ZYVHBcyF7pL4WmBgCU/59r5/P1jSuEYDDzROEX4aLb94KkXV2+CqXaQ63WeOh0OpoBikLRUqkUrZenh4wTHNgSHRkhyz5ysAm68EZtFwBaVLG91JcHAO0JARvvW+FHhGaMWDowXjngSRtX6bhcGwRAHZqH/gG3FwPE0wLDywAAAABJRU5ErkJggg==\",\n width: 43,\n height: 43,\n textSize: 18,\n textColor: \"white\",\n },\n ],\n },\n autocompleteIsFocus: false,\n useMyLocationIsFocus: false,\n showInfoLabel: false,\n };\n },\n created: function () {\n axios.defaults.headers.common[\"X-Requested-With\"] = \"XMLHttpRequest\";\n },\n mounted() {\n this.isMounted = true;\n\n this.setViewFromUrl();\n\n jQuery(document).on(\"google-map-ready\", () => {\n if (navigator.geolocation) {\n this.getUserGeolocation();\n } else {\n this.iniGoogleApps();\n }\n });\n },\n methods: {\n setViewFromUrl: function () {\n var view = this.getUrlParam(\"view\", null);\n this.setViewMode(view);\n },\n\n iniGoogleApps() {\n this.results = this.resultsOriginal;\n\n this.iniAddressField();\n this.iniMap();\n },\n\n async getUserGeolocation() {\n await navigator.geolocation.getCurrentPosition(\n (pos) => {\n // allow\n //console.log('allow')\n this.userPos = {\n lat: pos.coords.latitude,\n lng: pos.coords.longitude,\n };\n this.iniGoogleApps();\n },\n () => {\n // block\n //console.log('block')\n this.iniGoogleApps();\n this.showInfoLabel = true;\n }\n );\n },\n\n removeUserMarker: function () {\n if (!this.hasValue(_userMarker)) {\n return false;\n }\n _userMarker.setMap(null);\n },\n\n addUserMarker: function (position) {\n if (!this.hasValue(position)) {\n return false;\n }\n\n _userMarker = new google.maps.Marker({\n position: position,\n map: this.map,\n icon: this.userMapIcon,\n });\n\n _userMarker.addListener(\"click\", () => {\n this.map.setCenter(position);\n this.map.setZoom(this.defaultZoom);\n });\n },\n\n //onChangeTag: function () {\n\n //\tthis.selectedResult = null\n\n //\t// no tags selected\n //\tif (!this.selectedTags.length) {\n //\t\tthis.results = this.resultsOriginal;\n //\t}\n //\telse {\n //\t\tthis.results = [];\n\n //\t\tthis.selectedTags.forEach((item, index) => {\n //\t\t\tvar elems = this.resultsOriginal.filter((i) =>\n //\t\t\t\ti.tags.includes(item)\n //\t\t\t);\n //\t\t\tthis.results.push(elems);\n //\t\t});\n\n //\t\tthis.results = this.results.flat();\n //\t\t// remove duplicates by id\n //\t\tthis.results = this.results.filter(\n //\t\t\t(v, i, a) => a.findIndex((t) => t.id === v.id) === i\n //\t\t);\n //\t}\n //\tthis.iniMap()\n //},\n\n onChangeTag: function () {\n this.selectedResult = null;\n\n // no tags selected\n if (!this.selectedTags.length) {\n this.results = this.resultsOriginal;\n } else {\n this.results = [];\n\n this.selectedTags.forEach((item, index) => {\n var elems = this.resultsOriginal.filter((i) =>\n i.tags.includes(item)\n );\n this.results.push(elems);\n });\n\n this.results = this.results.flat();\n // remove duplicates by id\n this.results = this.results.filter(\n (v, i, a) => a.findIndex((t) => t.id === v.id) === i\n );\n }\n\n this.iniPage();\n this.hideMarkers();\n this.getMarkersInBound();\n this.scrollToElem(jQuery(this.$refs.tags));\n },\n\n hideMarkers: function () {\n _markerCluster.clearMarkers();\n\n _markers.forEach((i) => {\n var index = this.results.findIndex((x) => x.id === i.id);\n if (index === -1) {\n i.setMap(null);\n } else {\n i.setMap(this.map);\n _markerCluster.addMarker(i);\n }\n });\n },\n\n iniAddressField: function () {\n var options = {\n componentRestrictions: { country: \"gr\" },\n types: [\"geocode\"],\n };\n\n const autocomplete = new google.maps.places.Autocomplete(\n this.$refs.address,\n options\n );\n\n autocomplete.addListener(\"place_changed\", () => {\n this.place = autocomplete.getPlace();\n\n if (!this.place.geometry || !this.place.geometry.location) {\n // User entered the name of a Place that was not suggested and\n // pressed the Enter key, or the Place Details request failed.\n console.warn(\n \"No details available for input: '\" +\n this.place.name +\n \"'\"\n );\n this.results = [];\n return;\n }\n\n this.iniPage();\n this.selectedResult = null;\n\n this.removeUserMarker();\n this.addUserMarker(this.place.geometry.location);\n\n var lat = this.place.geometry.location.lat();\n var lng = this.place.geometry.location.lng();\n this.setLocationsRad(lat, lng);\n\n this.scrollToElem(jQuery(this.$refs.tabs), 50);\n this.$refs.address.blur();\n\n this.placeViewportMarkers = this.markers.filter((i) =>\n this.place.geometry.viewport.contains(i.getPosition())\n );\n\n switch (this.placeViewportMarkers.length) {\n case 0:\n console.log(\"no markers in place viewport\");\n this.findClosestMarker();\n this.fitBoundsToPlaceClosestMarker();\n break;\n default:\n console.log(\"some markers in place viewport\");\n this.fitBoundsToPlaceViewport();\n }\n });\n },\n\n createViewportRectangle: function () {\n const rectangle = new google.maps.Rectangle();\n\n // Get the current bounds, which reflect the bounds before the zoom.\n rectangle.setOptions({\n strokeColor: \"#FF0000\",\n strokeOpacity: 0.8,\n strokeWeight: 2,\n fillColor: \"#FF0000\",\n fillOpacity: 0.35,\n map: this.map,\n bounds: this.place.geometry.viewport,\n });\n },\n\n fitBoundsToPlaceViewport: function () {\n this.map.fitBounds(this.place.geometry.viewport);\n },\n\n fitBoundsToPlaceClosestMarker: function () {\n var bounds = new google.maps.LatLngBounds();\n\n bounds.extend(this.closestMarker.getPosition());\n bounds.extend(this.place.geometry.location);\n\n this.map.fitBounds(bounds);\n },\n\n fitBoundsByUserLocationToClosestMarker(userPos) {\n var bounds = new google.maps.LatLngBounds();\n\n bounds.extend(this.closestMarker.getPosition());\n bounds.extend(userPos);\n\n this.map.fitBounds(bounds);\n },\n\n iniMap: function () {\n var element = document.getElementById(this.mapId);\n\n if (element === null) {\n return false;\n }\n\n var options = {\n mapTypeControl: false,\n fullScreenControl: false,\n styles: this.optionsStylesMap,\n };\n this.map = _map = new google.maps.Map(element, options);\n\n this.results.forEach((i, index) => {\n var _position = new google.maps.LatLng(i.lat, i.lng);\n\n var marker = new google.maps.Marker({\n position: _position,\n map: this.map,\n icon: this.mapIcon,\n id: i.id,\n title: i.title,\n });\n\n // DO NOT REMOVE helping variable 'markers'\n // new MarkerClusterer method does not accept a vue.js data property as a parameter\n _markers.push(marker);\n this.markers.push(marker);\n\n google.maps.event.addListener(\n marker,\n \"click\",\n ((marker, index) => {\n return () => {\n this.map.setZoom(\n this.map.getZoom() > this.defaultZoom\n ? this.map.getZoom()\n : this.defaultZoom\n );\n\n if (api.vars.windW < api.vars.scr.tablet) {\n this.scrollToElem(\n jQuery(\".s-offices__selected\"),\n 200\n );\n }\n\n this.map.setCenter(marker.getPosition());\n this.selectedResult = this.results.find(\n (i) => i.id === marker.id\n );\n };\n })(marker, index)\n );\n });\n\n this.bounds = new google.maps.LatLngBounds();\n\n if (!this.userPos) {\n this.markers.forEach((i) => {\n this.bounds.extend(i.position);\n });\n this.map.fitBounds(this.bounds);\n } else {\n this.map.setCenter(this.userPos);\n this.map.setZoom(this.defaultZoom);\n }\n\n // Add a marker clusterer to manage the markers.\n _markerCluster = new MarkerClusterer(\n _map,\n _markers,\n this.mcOptions\n );\n\n google.maps.event.addListener(\n this.map,\n \"bounds_changed\",\n function (event) {\n // some handling code here\n this.getMarkersInBound();\n }.bind(this)\n );\n\n this.removeUserMarker();\n this.addUserMarker(this.userPos);\n },\n\n getMarkersInBound: function () {\n this.markersInBound = this.markers.filter((i) =>\n this.map.getBounds().contains(i.getPosition())\n );\n\n this.resultsInBound = this.results.filter((i) =>\n this.markersInBound.find((j) => j.id === i.id)\n );\n },\n\n setViewMode: function (value) {\n if (!this.hasValue(value)) {\n return false;\n }\n\n this.viewMode = value;\n this.appendUrlParams([\"view\"], [value]);\n },\n\n clearSelectedResult: function () {\n this.selectedResult = null;\n },\n\n iniPage: function () {\n this.page = 1;\n },\n\n pageChanged(value) {\n this.scrollToElem(jQuery(this.$refs.viewList), 150);\n this.page = value;\n },\n\n setLocationsRad: function (lat, lng) {\n if (!this.hasValue(lat) || !this.hasValue(lng)) {\n return false;\n }\n\n var R = 6371; // radius of earth in km\n\n this.resultsOriginal.forEach((i) => {\n var mlat = i.lat;\n var mlng = i.lng;\n var dLat = this.rad(mlat - lat);\n var dLong = this.rad(mlng - lng);\n var a =\n Math.sin(dLat / 2) * Math.sin(dLat / 2) +\n Math.cos(this.rad(lat)) *\n Math.cos(this.rad(lat)) *\n Math.sin(dLong / 2) *\n Math.sin(dLong / 2);\n var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n var d = R * c;\n i.rad = d;\n });\n },\n\n findClosestMarker: function () {\n var lat = this.place.geometry.location.lat();\n var lng = this.place.geometry.location.lng();\n this.findClosestMarkerFN(lat, lng);\n },\n\n findClosestMarkerFN(lat, lng) {\n var R = 6371; // radius of earth in km\n var distances = [];\n var closest = -1;\n\n for (i = 0; i < _markers.length; i++) {\n // check only visible markers\n var index = _markerCluster.markers_.findIndex(\n (x) => x.id === _markers[i].id\n );\n\n if (index < 0) {\n continue;\n }\n\n var mlat = _markers[i].position.lat();\n var mlng = _markers[i].position.lng();\n var dLat = this.rad(mlat - lat);\n var dLong = this.rad(mlng - lng);\n var a =\n Math.sin(dLat / 2) * Math.sin(dLat / 2) +\n Math.cos(this.rad(lat)) *\n Math.cos(this.rad(lat)) *\n Math.sin(dLong / 2) *\n Math.sin(dLong / 2);\n var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n var d = R * c;\n distances[i] = d;\n if (closest == -1 || d < distances[closest]) {\n closest = i;\n }\n }\n\n this.closestMarker = _markers[closest];\n\n console.log(\"closestMarker:\", this.closestMarker);\n },\n\n rad: function (x) {\n return (x * Math.PI) / 180;\n },\n\n isFocusAutocomplete(focus) {\n setTimeout(() => {\n this.autocompleteIsFocus = focus;\n }, 50);\n },\n\n onClickMyLocation: function () {\n this.removeUserMarker();\n this.addUserMarker(this.userPos);\n this.map.setCenter(this.userPos);\n //this.map.setZoom(this.defaultZoom);\n this.scrollToElem(jQuery(this.$refs.map), 50);\n this.$refs.useMyLocationButton.blur();\n this.$refs.address.value = \"\";\n\n this.findClosestMarkerFN(this.userPos.lat, this.userPos.lng);\n this.fitBoundsByUserLocationToClosestMarker(this.userPos);\n },\n\n //moveMapToLocation: function () {\n\n //\tif (!this.place) {\n //\t\treturn false\n //\t}\n\n //\tif (!this.place.geometry) {\n //\t\treturn false\n //\t}\n //\tthis.map.fitBounds(this.place.geometry.viewport)\n //},\n },\n computed: {\n showUseMyLocation: function () {\n // if (!this.hasValue(this.userPos)) {\n // \treturn false\n // }\n\n if (this.useMyLocationIsFocus || this.autocompleteIsFocus) {\n return true;\n }\n\n return false;\n },\n\n resultsByRad: function () {\n numArray = numArray.sort(function (a, b) {\n return a - b;\n });\n },\n\n showMyLocationButton: function () {\n return this.hasValue(this.userPos);\n },\n\n resultsInBoundPaged: function () {\n var start = (this.page - 1) * this.itemsPerPage;\n var end = this.page * this.itemsPerPage;\n\n return this.resultsInBound.slice(start, end);\n },\n\n noResults: function () {\n return !!(\n !this.resultsInBound.length &&\n this.place &&\n this.mapIdle\n );\n },\n },\n};\n\nvar officesApp = Vue.createApp(offices);\nofficesApp.directive(\"init\", initDirective);\nofficesApp.component(\"e-loader\", eLoader);\nofficesApp.component(\"b-office\", bOffice);\nofficesApp.component(\"b-pagination\", bPagination);\n\nconst selOffices = document.querySelector(\"#v-offices\");\nif (selOffices) officesApp.mount(selOffices);\n","const pressReleases = {\n mixins: [mixins, mixin_intro_tabs],\n data () {\n\t\treturn {\n handler: \"\",\n records: [],\n allItems:0,\n page: 1,\n year: \"\",\n month: \"\",\n iniTabData: null,\n roots: [],\n tags: [],\n tabOutTimer: 0\n }\n },\n created(){\n \n },\n\tmounted () {\n\n this.setIniTabData()\n\n setTimeout(()=>{\n this.loadData()\n })\n\n this.$watch(\n () => this.tab,\n (newVal, oldVal) => {\n this.setIniTabData()\n this.filterChanged()\n }\n )\n\t},\n methods:{\n setIniTabData(){\n if(this.iniTabData){\n this.month = this.iniTabData[this.tab].month\n this.year = this.iniTabData[this.tab].year\n }\n },\n beforeLoad(){\n api.fn.moveWindowToObj(jQuery(this.$el).find('.strip-conts'))\n this.loadData()\n },\n loadData(){\n this.loading = true;\n this.ajax(this.handler, \n {\n \"year\": this.year, \n \"month\": this.month, \n \"page\": this.page, \n \"roots\": this.iniTabData[this.tab].roots, \n \"tags\": this.iniTabData[this.tab].tags\n })\n \n },\n handleAjaxSuccess(data, obj) {\n this.allItems = parseInt(obj.allItems)\n this.records = []\n this.$nextTick(()=>{\n this.records = [].concat(...data)\n })\n },\n pageChanged(newPage){\n this.page = newPage\n this.beforeLoad()\n },\n filterChanged(){\n this.page = 1\n this.records = []\n this.loading = true;\n clearTimeout(this.tabOutTimer)\n\n this.tabOutTimer = setTimeout(()=>{\n this.beforeLoad()\n }, 500)\n \n }\n }\n}\n\nlet pressReleasesApp = [];\nconst pressReleasesDiv = document.querySelectorAll(\".s-press-releases\");\nif (pressReleasesDiv.length) {\n for (let i = 0; i < pressReleasesDiv.length; ++i) {\n if (pressReleasesDiv[i].id && pressReleasesDiv[i].id !== \"\") {\n pressReleasesApp.push(Vue.createApp({...pressReleases}));\n pressReleasesApp[i].directive('init', initDirective);\n pressReleasesApp[i].component('b-pagination', bPagination);\n pressReleasesApp[i].mount(`#${pressReleasesDiv[i].id}`);\n }\n }\n}\n","/// \n\nconst board = {\n mixins: [mixin_viewport],\n data: function () {\n return {\n myModal: null,\n boardData: typeof window.boardData !== 'undefined' ? window.boardData : null,\n selectedBoard: null\n };\n },\n mounted() {\n var myModalEl = document.getElementById(\"boardModal\");\n this.myModal = new bootstrap.Modal(myModalEl, {});\n\n myModalEl.addEventListener(\"hidden.bs.modal\", (event) => {\n this.removeBoard()\n });\n\n \n\n this.$watch(() => this.screen, (newVal, oldVal) => {\n if(newVal==='phone'){\n if(this.selectedBoard){\n this.myModal.hide();\n }\n }\n }\n )\n \n \n },\n methods: {\n setBoard(index) {\n\n this.selectedBoard = this.boardData[index]\n\n \n\n if(this.screen==='phone'){\n api.fn.moveWindowToObj(jQuery(this.$el))\n\n } else if(this.screen==='table' || this.screen==='desktop') {\n this.myModal.show();\n }\n },\n \n removeBoard(){\n this.selectedBoard = null\n }\n },\n};\n\nvar boardApp = Vue.createApp(board);\nif (document.querySelector(\"#s-board\")) boardApp.mount(\"#s-board\");\n","const access_international_files = {\n mixins: [mixins],\n data() {\n return {\n terms: false,\n modal: \"\",\n model: {},\n\t\t\t\ttouched: false\n };\n },\n created() {\n axios.defaults.headers.common[\"X-Requested-With\"] = \"XMLHttpRequest\";\n },\n mounted() {\n\n this.resetForm();\n this.loading = false;\n\n this.handler = this.getFormAction(this.$refs.form);\n\n jQuery(document).on(\"modal-triggered\", (ev, data) => {\n\t\t\t \n if (this.modal === data.modalId)\n this.model.MediaNodeId = data.lnk.attr(\"data-id\");\n });\n\n var myModalEl = document.getElementById(this.modal);\n myModalEl.addEventListener(\"hide.bs.modal\", (event) => {\n\t\t\tthis.resetForm();\n \n });\n },\n methods: {\n resetUnobstrusive() {\n var form = jQuery(this.$refs.form)\n .removeData(\n \"validator\"\n ) /* added by the raw jquery.validate plugin */\n .removeData(\n \"unobtrusiveValidation\"\n ); /* added by the jquery unobtrusive plugin*/\n jQuery.validator.unobtrusive.parse(form);\n\n\t\t\t\tvar validator = jQuery(this.$refs.form).validate();\n console.log(validator)\n validator.resetForm();\n\n\t\t\t\tform.find('.field-validation-error:not(.not-unobstrusive)').removeClass('field-validation-error').addClass('field-validation-valid').html(\"\")\n },\n\n resetForm() {\n\t\t\t\tthis.touched = false\n\t\t\t\tthis.terms = false\n \n\t\t\t\tthis.model = {\n\t\t\t\t\tCountry: \"\",\n\t\t\t\t\tMediaNodeId: \"\",\n PostalCode: \"\"\n\t\t\t\t}\n\n this.$nextTick(() => {\n this.resetUnobstrusive();\n });\n },\n\n async submitForm() {\n\t\t\t\tthis.touched = true\n\n\t\t\t\t\n\t\t\t\tconsole.log(this.model.MediaNodeId)\n\n if (!jQuery(this.$refs.form).valid()) {\n return false;\n }\n\n this.errorMsgs = [];\n this.loading = true;\n\n\n try {\n var response = await axios.post(this.handler, {\n ...this.model,\n });\n if (!response.data.hasError) {\n this.handleSuccess(response.data.url);\n } else {\n this.handleError(response.data.errorMessages);\n }\n } catch (errors) {\n this.loading = false;\n this.handleError([errors.message]);\n }\n\n return false;\n },\n handleSuccess: function (url) {\n this.loading = false;\n\n this.errorMsgs = [];\n\n api.fn.downloadFile(url);\n\n this.$nextTick(() => {\n this.$refs.form.reset(); // This will clear that form\n api.fn.modal(this.modal, false);\n });\n },\n handleError: function (messages) {\n this.loading = false;\n\n this.errorMsgs = this.hasValue(messages) ? messages : [];\n },\n },\n watch: {\n \"model.Country\": {\n handler(val, oldVal) {\n this.errorMsgs = [];\n },\n //deep: true\n },\n },\n};\n\nconst accessInternationalFilesApp = Vue.createApp(access_international_files);\nconst accessInternationalFilesAppSelector = \"#access-international-files-app\";\n\nif (document.querySelector(accessInternationalFilesAppSelector)) {\n accessInternationalFilesApp\n .directive(\"init\", initDirective)\n .component(\"alert-danger\", alertDanger)\n .mount(accessInternationalFilesAppSelector);\n}\n"],"sourceRoot":"/source/"}