{"version":3,"file":"slider-controller-AwBhGTaA.js","sources":["../../../node_modules/swiper/modules/grid.mjs","../../../app/frontend/src/jobseeker/main/js/controllers/slider-controller.ts"],"sourcesContent":["function Grid(_ref) {\n let {\n swiper,\n extendParams,\n on\n } = _ref;\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n let slidesNumberEvenToRows;\n let slidesPerRow;\n let numFullColumns;\n let wasMultiRow;\n const getSpaceBetween = () => {\n let spaceBetween = swiper.params.spaceBetween;\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n } else if (typeof spaceBetween === 'string') {\n spaceBetween = parseFloat(spaceBetween);\n }\n return spaceBetween;\n };\n const initSlides = slides => {\n const {\n slidesPerView\n } = swiper.params;\n const {\n rows,\n fill\n } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n numFullColumns = Math.floor(slidesLength / rows);\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n slidesPerRow = slidesNumberEvenToRows / rows;\n };\n const unsetSlides = () => {\n if (swiper.slides) {\n swiper.slides.forEach(slide => {\n if (slide.swiperSlideGridSet) {\n slide.style.height = '';\n slide.style[swiper.getDirectionLabel('margin-top')] = '';\n }\n });\n }\n };\n const updateSlide = (i, slide, slides) => {\n const {\n slidesPerGroup\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows,\n fill\n } = swiper.params.grid;\n const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : slides.length;\n // Set slides order\n let newSlideOrderIndex;\n let column;\n let row;\n if (fill === 'row' && slidesPerGroup > 1) {\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n const columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.style.order = newSlideOrderIndex;\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n if (row >= rows) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n slide.row = row;\n slide.column = column;\n slide.style.height = `calc((100% - ${(rows - 1) * spaceBetween}px) / ${rows})`;\n slide.style[swiper.getDirectionLabel('margin-top')] = row !== 0 ? spaceBetween && `${spaceBetween}px` : '';\n slide.swiperSlideGridSet = true;\n };\n const updateWrapperSize = (slideSize, snapGrid) => {\n const {\n centeredSlides,\n roundLengths\n } = swiper.params;\n const spaceBetween = getSpaceBetween();\n const {\n rows\n } = swiper.params.grid;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n if (!swiper.params.cssMode) {\n swiper.wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n }\n if (centeredSlides) {\n const newSlidesGrid = [];\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n snapGrid.splice(0, snapGrid.length);\n snapGrid.push(...newSlidesGrid);\n }\n };\n const onInit = () => {\n wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;\n };\n const onUpdate = () => {\n const {\n params,\n el\n } = swiper;\n const isMultiRow = params.grid && params.grid.rows > 1;\n if (wasMultiRow && !isMultiRow) {\n el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n numFullColumns = 1;\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n el.classList.add(`${params.containerModifierClass}grid`);\n if (params.grid.fill === 'column') {\n el.classList.add(`${params.containerModifierClass}grid-column`);\n }\n swiper.emitContainerClasses();\n }\n wasMultiRow = isMultiRow;\n };\n on('init', onInit);\n on('update', onUpdate);\n swiper.grid = {\n initSlides,\n unsetSlides,\n updateSlide,\n updateWrapperSize\n };\n}\n\nexport { Grid as default };\n","import { Controller } from '@hotwired/stimulus';\nimport Swiper from 'swiper';\nimport { SwiperOptions } from 'swiper/types';\nimport { Navigation, Scrollbar, FreeMode, Autoplay, Grid } from 'swiper/modules';\nimport 'swiper/css';\nimport 'swiper/css/free-mode';\nimport 'swiper/css/scrollbar';\nimport 'swiper/css/grid';\nimport 'swiper/css/autoplay';\n\nexport default class extends Controller {\n static targets = ['slider', 'progress', 'prev', 'next'];\n static values = {\n options: Object\n };\n\n declare sliderTarget: HTMLElement;\n declare hasProgressTarget: boolean;\n declare progressTarget: HTMLElement;\n declare hasPrevTarget: boolean;\n declare hasNextTarget: boolean;\n declare prevTarget: HTMLElement;\n declare nextTarget: HTMLElement;\n declare optionsValue: SwiperOptions;\n\n connect() {\n const swiperParams: SwiperOptions = {\n ...this.defaultOptions,\n ...this.optionsValue,\n navigation: {\n ...this.defaultOptions.navigation,\n ...this.optionsValue.navigation\n },\n scrollbar: {\n ...this.defaultOptions.scrollbar,\n ...this.optionsValue.scrollbar\n }\n };\n\n this.instance = new Swiper(this.sliderTarget, swiperParams);\n }\n\n get hasNavigation() {\n return this.hasPrevTarget && this.hasNextTarget;\n }\n\n get defaultOptions(): SwiperOptions {\n return {\n cssMode: false,\n resistanceRatio: 0.65,\n slidesPerView: 1.3,\n slidesOffsetBefore: 24,\n slidesOffsetAfter: 24,\n spaceBetween: 12,\n modules: [Navigation, Scrollbar, FreeMode, Autoplay, Grid],\n navigation: {\n enabled: this.hasNavigation,\n nextEl: this.hasNextTarget ? this.nextTarget : undefined,\n prevEl: this.hasPrevTarget ? this.prevTarget : undefined\n },\n scrollbar: {\n enabled: this.hasProgressTarget,\n el: this.hasProgressTarget ? this.progressTarget : undefined,\n hide: false\n }\n };\n }\n}\n"],"names":["Grid","_ref","swiper","extendParams","on","slidesNumberEvenToRows","slidesPerRow","numFullColumns","wasMultiRow","getSpaceBetween","spaceBetween","initSlides","slides","slidesPerView","rows","fill","slidesLength","unsetSlides","slide","updateSlide","i","slidesPerGroup","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","updateWrapperSize","slideSize","snapGrid","centeredSlides","roundLengths","newSlidesGrid","slidesGridItem","onInit","onUpdate","params","el","isMultiRow","SliderController","Controller","swiperParams","Swiper","Navigation","Scrollbar","FreeMode","Autoplay","__publicField"],"mappings":"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","x_google_ignoreList":[0]}