diff --git a/resources/assets/js/mixins/global.js b/resources/assets/js/mixins/global.js index a6f2307db..88aeb957f 100644 --- a/resources/assets/js/mixins/global.js +++ b/resources/assets/js/mixins/global.js @@ -38,6 +38,8 @@ import GLightbox from 'glightbox'; Swiper.use([Navigation, Pagination]); +var BreakException = {}; + export default { components: { AkauntingDropzoneFileUpload, @@ -165,15 +167,28 @@ export default { if (item.clientWidth < item.querySelector('[data-tabs-swiper-wrapper]').clientWidth) { let initial_slide = 0; let hash_split = window.location.hash.split('#')[1]; + let loop = 0; + let slides_view; + + try { + item.querySelectorAll('[data-tabs-slide]').forEach((slide, index, arr) => { + loop += slide.clientWidth; - item.querySelectorAll('[data-tabs-slide]').forEach((item, index) => { - item.classList.add('swiper-slide'); - - if (item.getAttribute('data-tabs') == hash_split) { - initial_slide = index; - } - }); + slide.classList.add('swiper-slide'); + + if (slide.getAttribute('data-tabs') == hash_split) { + initial_slide = index; + } + if (loop > item.clientWidth) { + slides_view = index; + throw BreakException; + } + }); + } catch (e) { + if (e !== BreakException) throw e; + } + item.querySelector('[data-tabs-swiper]').classList.add('swiper', 'swiper-links'); item.querySelector('[data-tabs-swiper-wrapper]').classList.add('swiper-wrapper'); @@ -190,11 +205,11 @@ export default { `; - item.querySelector('[data-tabs-swiper]').innerHTML = html; - + item.querySelector('[data-tabs-swiper]').innerHTML = html; + new Swiper('.swiper-tabs-container', { loop: false, - slidesPerView: Number(item.getAttribute('data-swiper')), + slidesPerView: Number(item.getAttribute('data-swiper')) != 0 ? Number(item.getAttribute('data-swiper')) : slides_view, pagination: { el: '.swiper-pagination', clickable: true diff --git a/resources/views/components/tabs/index.blade.php b/resources/views/components/tabs/index.blade.php index 5813169f4..aaa39d25f 100644 --- a/resources/views/components/tabs/index.blade.php +++ b/resources/views/components/tabs/index.blade.php @@ -4,19 +4,13 @@ if (! empty($attributes['slides'])) { $slides = $attributes['slides']; } else { - $slides = '3'; - } - - if (! empty($attributes['is_slider'])) { - $is_slider = true; - } else { - $is_slider = false; + $slides = null; } @endphp -
+
-
    has('override')) || ($attributes->has('override') && ! in_array('class', explode(',', $attributes->get('override'))))) ? $attributes->merge(['class' => 'inline-flex overflow-x-scroll lg:overflow-visible']) : $attributes }}> +
      has('override')) || ($attributes->has('override') && ! in_array('class', explode(',', $attributes->get('override'))))) ? $attributes->merge(['class' => 'inline-flex']) : $attributes }}> {!! $navs !!}