').parent();\n\n _.$slideTrack.css('opacity', 0);\n\n if (_.options.centerMode === true || _.options.swipeToSlide === true) {\n _.options.slidesToScroll = 1;\n }\n\n $('img[data-lazy]', _.$slider).not('[src]').addClass('slick-loading');\n\n _.setupInfinite();\n\n _.buildArrows();\n\n _.buildDots();\n\n _.updateDots();\n\n _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);\n\n if (_.options.draggable === true) {\n _.$list.addClass('draggable');\n }\n };\n\n Slick.prototype.buildRows = function () {\n var _ = this,\n a,\n b,\n c,\n newSlides,\n numOfSlides,\n originalSlides,\n slidesPerSection;\n\n newSlides = document.createDocumentFragment();\n originalSlides = _.$slider.children();\n\n if (_.options.rows > 0) {\n slidesPerSection = _.options.slidesPerRow * _.options.rows;\n numOfSlides = Math.ceil(originalSlides.length / slidesPerSection);\n\n for (a = 0; a < numOfSlides; a++) {\n var slide = document.createElement('div');\n\n for (b = 0; b < _.options.rows; b++) {\n var row = document.createElement('div');\n\n for (c = 0; c < _.options.slidesPerRow; c++) {\n var target = a * slidesPerSection + (b * _.options.slidesPerRow + c);\n\n if (originalSlides.get(target)) {\n row.appendChild(originalSlides.get(target));\n }\n }\n\n slide.appendChild(row);\n }\n\n newSlides.appendChild(slide);\n }\n\n _.$slider.empty().append(newSlides);\n\n _.$slider.children().children().children().css({\n 'width': 100 / _.options.slidesPerRow + '%',\n 'display': 'inline-block'\n });\n }\n };\n\n Slick.prototype.checkResponsive = function (initial, forceUpdate) {\n var _ = this,\n breakpoint,\n targetBreakpoint,\n respondToWidth,\n triggerBreakpoint = false;\n\n var sliderWidth = _.$slider.width();\n\n var windowWidth = window.innerWidth || $(window).width();\n\n if (_.respondTo === 'window') {\n respondToWidth = windowWidth;\n } else if (_.respondTo === 'slider') {\n respondToWidth = sliderWidth;\n } else if (_.respondTo === 'min') {\n respondToWidth = Math.min(windowWidth, sliderWidth);\n }\n\n if (_.options.responsive && _.options.responsive.length && _.options.responsive !== null) {\n targetBreakpoint = null;\n\n for (breakpoint in _.breakpoints) {\n if (_.breakpoints.hasOwnProperty(breakpoint)) {\n if (_.originalSettings.mobileFirst === false) {\n if (respondToWidth < _.breakpoints[breakpoint]) {\n targetBreakpoint = _.breakpoints[breakpoint];\n }\n } else {\n if (respondToWidth > _.breakpoints[breakpoint]) {\n targetBreakpoint = _.breakpoints[breakpoint];\n }\n }\n }\n }\n\n if (targetBreakpoint !== null) {\n if (_.activeBreakpoint !== null) {\n if (targetBreakpoint !== _.activeBreakpoint || forceUpdate) {\n _.activeBreakpoint = targetBreakpoint;\n\n if (_.breakpointSettings[targetBreakpoint] === 'unslick') {\n _.unslick(targetBreakpoint);\n } else {\n _.options = $.extend({}, _.originalSettings, _.breakpointSettings[targetBreakpoint]);\n\n if (initial === true) {\n _.currentSlide = _.options.initialSlide;\n }\n\n _.refresh(initial);\n }\n\n triggerBreakpoint = targetBreakpoint;\n }\n } else {\n _.activeBreakpoint = targetBreakpoint;\n\n if (_.breakpointSettings[targetBreakpoint] === 'unslick') {\n _.unslick(targetBreakpoint);\n } else {\n _.options = $.extend({}, _.originalSettings, _.breakpointSettings[targetBreakpoint]);\n\n if (initial === true) {\n _.currentSlide = _.options.initialSlide;\n }\n\n _.refresh(initial);\n }\n\n triggerBreakpoint = targetBreakpoint;\n }\n } else {\n if (_.activeBreakpoint !== null) {\n _.activeBreakpoint = null;\n _.options = _.originalSettings;\n\n if (initial === true) {\n _.currentSlide = _.options.initialSlide;\n }\n\n _.refresh(initial);\n\n triggerBreakpoint = targetBreakpoint;\n }\n } // only trigger breakpoints during an actual break. not on initialize.\n\n\n if (!initial && triggerBreakpoint !== false) {\n _.$slider.trigger('breakpoint', [_, triggerBreakpoint]);\n }\n }\n };\n\n Slick.prototype.changeSlide = function (event, dontAnimate) {\n var _ = this,\n $target = $(event.currentTarget),\n indexOffset,\n slideOffset,\n unevenOffset; // If target is a link, prevent default action.\n\n\n if ($target.is('a')) {\n event.preventDefault();\n } // If target is not the
element (ie: a child), find the .\n\n\n if (!$target.is('li')) {\n $target = $target.closest('li');\n }\n\n unevenOffset = _.slideCount % _.options.slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (_.slideCount - _.currentSlide) % _.options.slidesToScroll;\n\n switch (event.data.message) {\n case 'previous':\n slideOffset = indexOffset === 0 ? _.options.slidesToScroll : _.options.slidesToShow - indexOffset;\n\n if (_.slideCount > _.options.slidesToShow) {\n _.slideHandler(_.currentSlide - slideOffset, false, dontAnimate);\n }\n\n break;\n\n case 'next':\n slideOffset = indexOffset === 0 ? _.options.slidesToScroll : indexOffset;\n\n if (_.slideCount > _.options.slidesToShow) {\n _.slideHandler(_.currentSlide + slideOffset, false, dontAnimate);\n }\n\n break;\n\n case 'index':\n var index = event.data.index === 0 ? 0 : event.data.index || $target.index() * _.options.slidesToScroll;\n\n _.slideHandler(_.checkNavigable(index), false, dontAnimate);\n\n $target.children().trigger('focus');\n break;\n\n default:\n return;\n }\n };\n\n Slick.prototype.checkNavigable = function (index) {\n var _ = this,\n navigables,\n prevNavigable;\n\n navigables = _.getNavigableIndexes();\n prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n };\n\n Slick.prototype.cleanUpEvents = function () {\n var _ = this;\n\n if (_.options.dots && _.$dots !== null) {\n $('li', _.$dots).off('click.slick', _.changeSlide).off('mouseenter.slick', $.proxy(_.interrupt, _, true)).off('mouseleave.slick', $.proxy(_.interrupt, _, false));\n\n if (_.options.accessibility === true) {\n _.$dots.off('keydown.slick', _.keyHandler);\n }\n }\n\n _.$slider.off('focus.slick blur.slick');\n\n if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {\n _.$prevArrow && _.$prevArrow.off('click.slick', _.changeSlide);\n _.$nextArrow && _.$nextArrow.off('click.slick', _.changeSlide);\n\n if (_.options.accessibility === true) {\n _.$prevArrow && _.$prevArrow.off('keydown.slick', _.keyHandler);\n _.$nextArrow && _.$nextArrow.off('keydown.slick', _.keyHandler);\n }\n }\n\n _.$list.off('touchstart.slick mousedown.slick', _.swipeHandler);\n\n _.$list.off('touchmove.slick mousemove.slick', _.swipeHandler);\n\n _.$list.off('touchend.slick mouseup.slick', _.swipeHandler);\n\n _.$list.off('touchcancel.slick mouseleave.slick', _.swipeHandler);\n\n _.$list.off('click.slick', _.clickHandler);\n\n $(document).off(_.visibilityChange, _.visibility);\n\n _.cleanUpSlideEvents();\n\n if (_.options.accessibility === true) {\n _.$list.off('keydown.slick', _.keyHandler);\n }\n\n if (_.options.focusOnSelect === true) {\n $(_.$slideTrack).children().off('click.slick', _.selectHandler);\n }\n\n $(window).off('orientationchange.slick.slick-' + _.instanceUid, _.orientationChange);\n $(window).off('resize.slick.slick-' + _.instanceUid, _.resize);\n $('[draggable!=true]', _.$slideTrack).off('dragstart', _.preventDefault);\n $(window).off('load.slick.slick-' + _.instanceUid, _.setPosition);\n };\n\n Slick.prototype.cleanUpSlideEvents = function () {\n var _ = this;\n\n _.$list.off('mouseenter.slick', $.proxy(_.interrupt, _, true));\n\n _.$list.off('mouseleave.slick', $.proxy(_.interrupt, _, false));\n };\n\n Slick.prototype.cleanUpRows = function () {\n var _ = this,\n originalSlides;\n\n if (_.options.rows > 0) {\n originalSlides = _.$slides.children().children();\n originalSlides.removeAttr('style');\n\n _.$slider.empty().append(originalSlides);\n }\n };\n\n Slick.prototype.clickHandler = function (event) {\n var _ = this;\n\n if (_.shouldClick === false) {\n event.stopImmediatePropagation();\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n Slick.prototype.destroy = function (refresh) {\n var _ = this;\n\n _.autoPlayClear();\n\n _.touchObject = {};\n\n _.cleanUpEvents();\n\n $('.slick-cloned', _.$slider).detach();\n\n if (_.$dots) {\n _.$dots.remove();\n }\n\n if (_.$prevArrow && _.$prevArrow.length) {\n _.$prevArrow.removeClass('slick-disabled slick-arrow slick-hidden').removeAttr('aria-hidden aria-disabled tabindex').css('display', '');\n\n if (_.htmlExpr.test(_.options.prevArrow)) {\n _.$prevArrow.remove();\n }\n }\n\n if (_.$nextArrow && _.$nextArrow.length) {\n _.$nextArrow.removeClass('slick-disabled slick-arrow slick-hidden').removeAttr('aria-hidden aria-disabled tabindex').css('display', '');\n\n if (_.htmlExpr.test(_.options.nextArrow)) {\n _.$nextArrow.remove();\n }\n }\n\n if (_.$slides) {\n _.$slides.removeClass('slick-slide slick-active slick-center slick-visible slick-current').removeAttr('aria-hidden').removeAttr('data-slick-index').each(function () {\n $(this).attr('style', $(this).data('originalStyling'));\n });\n\n _.$slideTrack.children(this.options.slide).detach();\n\n _.$slideTrack.detach();\n\n _.$list.detach();\n\n _.$slider.append(_.$slides);\n }\n\n _.cleanUpRows();\n\n _.$slider.removeClass('slick-slider');\n\n _.$slider.removeClass('slick-initialized');\n\n _.$slider.removeClass('slick-dotted');\n\n _.unslicked = true;\n\n if (!refresh) {\n _.$slider.trigger('destroy', [_]);\n }\n };\n\n Slick.prototype.disableTransition = function (slide) {\n var _ = this,\n transition = {};\n\n transition[_.transitionType] = '';\n\n if (_.options.fade === false) {\n _.$slideTrack.css(transition);\n } else {\n _.$slides.eq(slide).css(transition);\n }\n };\n\n Slick.prototype.fadeSlide = function (slideIndex, callback) {\n var _ = this;\n\n if (_.cssTransitions === false) {\n _.$slides.eq(slideIndex).css({\n zIndex: _.options.zIndex\n });\n\n _.$slides.eq(slideIndex).animate({\n opacity: 1\n }, _.options.speed, _.options.easing, callback);\n } else {\n _.applyTransition(slideIndex);\n\n _.$slides.eq(slideIndex).css({\n opacity: 1,\n zIndex: _.options.zIndex\n });\n\n if (callback) {\n setTimeout(function () {\n _.disableTransition(slideIndex);\n\n callback.call();\n }, _.options.speed);\n }\n }\n };\n\n Slick.prototype.fadeSlideOut = function (slideIndex) {\n var _ = this;\n\n if (_.cssTransitions === false) {\n _.$slides.eq(slideIndex).animate({\n opacity: 0,\n zIndex: _.options.zIndex - 2\n }, _.options.speed, _.options.easing);\n } else {\n _.applyTransition(slideIndex);\n\n _.$slides.eq(slideIndex).css({\n opacity: 0,\n zIndex: _.options.zIndex - 2\n });\n }\n };\n\n Slick.prototype.filterSlides = Slick.prototype.slickFilter = function (filter) {\n var _ = this;\n\n if (filter !== null) {\n _.$slidesCache = _.$slides;\n\n _.unload();\n\n _.$slideTrack.children(this.options.slide).detach();\n\n _.$slidesCache.filter(filter).appendTo(_.$slideTrack);\n\n _.reinit();\n }\n };\n\n Slick.prototype.focusHandler = function () {\n var _ = this; // If any child element receives focus within the slider we need to pause the autoplay\n\n\n _.$slider.off('focus.slick blur.slick').on('focus.slick', '*', function (event) {\n var $sf = $(this);\n setTimeout(function () {\n if (_.options.pauseOnFocus) {\n if ($sf.is(':focus')) {\n _.focussed = true;\n\n _.autoPlay();\n }\n }\n }, 0);\n }).on('blur.slick', '*', function (event) {\n var $sf = $(this); // When a blur occurs on any elements within the slider we become unfocused\n\n if (_.options.pauseOnFocus) {\n _.focussed = false;\n\n _.autoPlay();\n }\n });\n };\n\n Slick.prototype.getCurrent = Slick.prototype.slickCurrentSlide = function () {\n var _ = this;\n\n return _.currentSlide;\n };\n\n Slick.prototype.getDotCount = function () {\n var _ = this;\n\n var breakPoint = 0;\n var counter = 0;\n var pagerQty = 0;\n\n if (_.options.infinite === true) {\n if (_.slideCount <= _.options.slidesToShow) {\n ++pagerQty;\n } else {\n while (breakPoint < _.slideCount) {\n ++pagerQty;\n breakPoint = counter + _.options.slidesToScroll;\n counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;\n }\n }\n } else if (_.options.centerMode === true) {\n pagerQty = _.slideCount;\n } else if (!_.options.asNavFor) {\n pagerQty = 1 + Math.ceil((_.slideCount - _.options.slidesToShow) / _.options.slidesToScroll);\n } else {\n while (breakPoint < _.slideCount) {\n ++pagerQty;\n breakPoint = counter + _.options.slidesToScroll;\n counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;\n }\n }\n\n return pagerQty - 1;\n };\n\n Slick.prototype.getLeft = function (slideIndex) {\n var _ = this,\n targetLeft,\n verticalHeight,\n verticalOffset = 0,\n targetSlide,\n coef;\n\n _.slideOffset = 0;\n verticalHeight = _.$slides.first().outerHeight(true);\n\n if (_.options.infinite === true) {\n if (_.slideCount > _.options.slidesToShow) {\n _.slideOffset = _.slideWidth * _.options.slidesToShow * -1;\n coef = -1;\n\n if (_.options.vertical === true && _.options.centerMode === true) {\n if (_.options.slidesToShow === 2) {\n coef = -1.5;\n } else if (_.options.slidesToShow === 1) {\n coef = -2;\n }\n }\n\n verticalOffset = verticalHeight * _.options.slidesToShow * coef;\n }\n\n if (_.slideCount % _.options.slidesToScroll !== 0) {\n if (slideIndex + _.options.slidesToScroll > _.slideCount && _.slideCount > _.options.slidesToShow) {\n if (slideIndex > _.slideCount) {\n _.slideOffset = (_.options.slidesToShow - (slideIndex - _.slideCount)) * _.slideWidth * -1;\n verticalOffset = (_.options.slidesToShow - (slideIndex - _.slideCount)) * verticalHeight * -1;\n } else {\n _.slideOffset = _.slideCount % _.options.slidesToScroll * _.slideWidth * -1;\n verticalOffset = _.slideCount % _.options.slidesToScroll * verticalHeight * -1;\n }\n }\n }\n } else {\n if (slideIndex + _.options.slidesToShow > _.slideCount) {\n _.slideOffset = (slideIndex + _.options.slidesToShow - _.slideCount) * _.slideWidth;\n verticalOffset = (slideIndex + _.options.slidesToShow - _.slideCount) * verticalHeight;\n }\n }\n\n if (_.slideCount <= _.options.slidesToShow) {\n _.slideOffset = 0;\n verticalOffset = 0;\n }\n\n if (_.options.centerMode === true && _.slideCount <= _.options.slidesToShow) {\n _.slideOffset = _.slideWidth * Math.floor(_.options.slidesToShow) / 2 - _.slideWidth * _.slideCount / 2;\n } else if (_.options.centerMode === true && _.options.infinite === true) {\n _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2) - _.slideWidth;\n } else if (_.options.centerMode === true) {\n _.slideOffset = 0;\n _.slideOffset += _.slideWidth * Math.floor(_.options.slidesToShow / 2);\n }\n\n if (_.options.vertical === false) {\n targetLeft = slideIndex * _.slideWidth * -1 + _.slideOffset;\n } else {\n targetLeft = slideIndex * verticalHeight * -1 + verticalOffset;\n }\n\n if (_.options.variableWidth === true) {\n if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {\n targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);\n } else {\n targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow);\n }\n\n if (_.options.rtl === true) {\n if (targetSlide[0]) {\n targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;\n } else {\n targetLeft = 0;\n }\n } else {\n targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;\n }\n\n if (_.options.centerMode === true) {\n if (_.slideCount <= _.options.slidesToShow || _.options.infinite === false) {\n targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex);\n } else {\n targetSlide = _.$slideTrack.children('.slick-slide').eq(slideIndex + _.options.slidesToShow + 1);\n }\n\n if (_.options.rtl === true) {\n if (targetSlide[0]) {\n targetLeft = (_.$slideTrack.width() - targetSlide[0].offsetLeft - targetSlide.width()) * -1;\n } else {\n targetLeft = 0;\n }\n } else {\n targetLeft = targetSlide[0] ? targetSlide[0].offsetLeft * -1 : 0;\n }\n\n targetLeft += (_.$list.width() - targetSlide.outerWidth()) / 2;\n }\n }\n\n return targetLeft;\n };\n\n Slick.prototype.getOption = Slick.prototype.slickGetOption = function (option) {\n var _ = this;\n\n return _.options[option];\n };\n\n Slick.prototype.getNavigableIndexes = function () {\n var _ = this,\n breakPoint = 0,\n counter = 0,\n indexes = [],\n max;\n\n if (_.options.infinite === false) {\n max = _.slideCount;\n } else {\n breakPoint = _.options.slidesToScroll * -1;\n counter = _.options.slidesToScroll * -1;\n max = _.slideCount * 2;\n }\n\n while (breakPoint < max) {\n indexes.push(breakPoint);\n breakPoint = counter + _.options.slidesToScroll;\n counter += _.options.slidesToScroll <= _.options.slidesToShow ? _.options.slidesToScroll : _.options.slidesToShow;\n }\n\n return indexes;\n };\n\n Slick.prototype.getSlick = function () {\n return this;\n };\n\n Slick.prototype.getSlideCount = function () {\n var _ = this,\n slidesTraversed,\n swipedSlide,\n swipeTarget,\n centerOffset;\n\n centerOffset = _.options.centerMode === true ? Math.floor(_.$list.width() / 2) : 0;\n swipeTarget = _.swipeLeft * -1 + centerOffset;\n\n if (_.options.swipeToSlide === true) {\n _.$slideTrack.find('.slick-slide').each(function (index, slide) {\n var slideOuterWidth, slideOffset, slideRightBoundary;\n slideOuterWidth = $(slide).outerWidth();\n slideOffset = slide.offsetLeft;\n\n if (_.options.centerMode !== true) {\n slideOffset += slideOuterWidth / 2;\n }\n\n slideRightBoundary = slideOffset + slideOuterWidth;\n\n if (swipeTarget < slideRightBoundary) {\n swipedSlide = slide;\n return false;\n }\n });\n\n slidesTraversed = Math.abs($(swipedSlide).attr('data-slick-index') - _.currentSlide) || 1;\n return slidesTraversed;\n } else {\n return _.options.slidesToScroll;\n }\n };\n\n Slick.prototype.goTo = Slick.prototype.slickGoTo = function (slide, dontAnimate) {\n var _ = this;\n\n _.changeSlide({\n data: {\n message: 'index',\n index: parseInt(slide)\n }\n }, dontAnimate);\n };\n\n Slick.prototype.init = function (creation) {\n var _ = this;\n\n if (!$(_.$slider).hasClass('slick-initialized')) {\n $(_.$slider).addClass('slick-initialized');\n\n _.buildRows();\n\n _.buildOut();\n\n _.setProps();\n\n _.startLoad();\n\n _.loadSlider();\n\n _.initializeEvents();\n\n _.updateArrows();\n\n _.updateDots();\n\n _.checkResponsive(true);\n\n _.focusHandler();\n }\n\n if (creation) {\n _.$slider.trigger('init', [_]);\n }\n\n if (_.options.accessibility === true) {\n _.initADA();\n }\n\n if (_.options.autoplay) {\n _.paused = false;\n\n _.autoPlay();\n }\n };\n\n Slick.prototype.initADA = function () {\n var _ = this,\n numDotGroups = Math.ceil(_.slideCount / _.options.slidesToShow),\n tabControlIndexes = _.getNavigableIndexes().filter(function (val) {\n return val >= 0 && val < _.slideCount;\n });\n\n _.$slides.add(_.$slideTrack.find('.slick-cloned')).attr({\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n }).find('a, input, button, select').attr({\n 'tabindex': '-1'\n });\n\n if (_.$dots !== null) {\n _.$slides.not(_.$slideTrack.find('.slick-cloned')).each(function (i) {\n var slideControlIndex = tabControlIndexes.indexOf(i);\n $(this).attr({\n 'role': 'tabpanel',\n 'id': 'slick-slide' + _.instanceUid + i,\n 'tabindex': -1\n });\n\n if (slideControlIndex !== -1) {\n var ariaButtonControl = 'slick-slide-control' + _.instanceUid + slideControlIndex;\n\n if ($('#' + ariaButtonControl).length) {\n $(this).attr({\n 'aria-describedby': ariaButtonControl\n });\n }\n }\n });\n\n _.$dots.attr('role', 'tablist').find('li').each(function (i) {\n var mappedSlideIndex = tabControlIndexes[i];\n $(this).attr({\n 'role': 'presentation'\n });\n $(this).find('button').first().attr({\n 'role': 'tab',\n 'id': 'slick-slide-control' + _.instanceUid + i,\n 'aria-controls': 'slick-slide' + _.instanceUid + mappedSlideIndex,\n 'aria-label': i + 1 + ' of ' + numDotGroups,\n 'aria-selected': null,\n 'tabindex': '-1'\n });\n }).eq(_.currentSlide).find('button').attr({\n 'aria-selected': 'true',\n 'tabindex': '0'\n }).end();\n }\n\n for (var i = _.currentSlide, max = i + _.options.slidesToShow; i < max; i++) {\n if (_.options.focusOnChange) {\n _.$slides.eq(i).attr({\n 'tabindex': '0'\n });\n } else {\n _.$slides.eq(i).removeAttr('tabindex');\n }\n }\n\n _.activateADA();\n };\n\n Slick.prototype.initArrowEvents = function () {\n var _ = this;\n\n if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {\n _.$prevArrow.off('click.slick').on('click.slick', {\n message: 'previous'\n }, _.changeSlide);\n\n _.$nextArrow.off('click.slick').on('click.slick', {\n message: 'next'\n }, _.changeSlide);\n\n if (_.options.accessibility === true) {\n _.$prevArrow.on('keydown.slick', _.keyHandler);\n\n _.$nextArrow.on('keydown.slick', _.keyHandler);\n }\n }\n };\n\n Slick.prototype.initDotEvents = function () {\n var _ = this;\n\n if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {\n $('li', _.$dots).on('click.slick', {\n message: 'index'\n }, _.changeSlide);\n\n if (_.options.accessibility === true) {\n _.$dots.on('keydown.slick', _.keyHandler);\n }\n }\n\n if (_.options.dots === true && _.options.pauseOnDotsHover === true && _.slideCount > _.options.slidesToShow) {\n $('li', _.$dots).on('mouseenter.slick', $.proxy(_.interrupt, _, true)).on('mouseleave.slick', $.proxy(_.interrupt, _, false));\n }\n };\n\n Slick.prototype.initSlideEvents = function () {\n var _ = this;\n\n if (_.options.pauseOnHover) {\n _.$list.on('mouseenter.slick', $.proxy(_.interrupt, _, true));\n\n _.$list.on('mouseleave.slick', $.proxy(_.interrupt, _, false));\n }\n };\n\n Slick.prototype.initializeEvents = function () {\n var _ = this;\n\n _.initArrowEvents();\n\n _.initDotEvents();\n\n _.initSlideEvents();\n\n _.$list.on('touchstart.slick mousedown.slick', {\n action: 'start'\n }, _.swipeHandler);\n\n _.$list.on('touchmove.slick mousemove.slick', {\n action: 'move'\n }, _.swipeHandler);\n\n _.$list.on('touchend.slick mouseup.slick', {\n action: 'end'\n }, _.swipeHandler);\n\n _.$list.on('touchcancel.slick mouseleave.slick', {\n action: 'end'\n }, _.swipeHandler);\n\n _.$list.on('click.slick', _.clickHandler);\n\n $(document).on(_.visibilityChange, $.proxy(_.visibility, _));\n\n if (_.options.accessibility === true) {\n _.$list.on('keydown.slick', _.keyHandler);\n }\n\n if (_.options.focusOnSelect === true) {\n $(_.$slideTrack).children().on('click.slick', _.selectHandler);\n }\n\n $(window).on('orientationchange.slick.slick-' + _.instanceUid, $.proxy(_.orientationChange, _));\n $(window).on('resize.slick.slick-' + _.instanceUid, $.proxy(_.resize, _));\n $('[draggable!=true]', _.$slideTrack).on('dragstart', _.preventDefault);\n $(window).on('load.slick.slick-' + _.instanceUid, _.setPosition);\n $(_.setPosition);\n };\n\n Slick.prototype.initUI = function () {\n var _ = this;\n\n if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {\n _.$prevArrow.show();\n\n _.$nextArrow.show();\n }\n\n if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {\n _.$dots.show();\n }\n };\n\n Slick.prototype.keyHandler = function (event) {\n var _ = this; //Dont slide if the cursor is inside the form fields and arrow keys are pressed\n\n\n if (!event.target.tagName.match('TEXTAREA|INPUT|SELECT')) {\n if (event.keyCode === 37 && _.options.accessibility === true) {\n _.changeSlide({\n data: {\n message: _.options.rtl === true ? 'next' : 'previous'\n }\n });\n } else if (event.keyCode === 39 && _.options.accessibility === true) {\n _.changeSlide({\n data: {\n message: _.options.rtl === true ? 'previous' : 'next'\n }\n });\n }\n }\n };\n\n Slick.prototype.lazyLoad = function () {\n var _ = this,\n loadRange,\n cloneRange,\n rangeStart,\n rangeEnd;\n\n function loadImages(imagesScope) {\n $('img[data-lazy]', imagesScope).each(function () {\n var image = $(this),\n imageSource = $(this).attr('data-lazy'),\n imageSrcSet = $(this).attr('data-srcset'),\n imageSizes = $(this).attr('data-sizes') || _.$slider.attr('data-sizes'),\n imageToLoad = document.createElement('img');\n\n imageToLoad.onload = function () {\n image.animate({\n opacity: 0\n }, 100, function () {\n if (imageSrcSet) {\n image.attr('srcset', imageSrcSet);\n\n if (imageSizes) {\n image.attr('sizes', imageSizes);\n }\n }\n\n image.attr('src', imageSource).animate({\n opacity: 1\n }, 200, function () {\n image.removeAttr('data-lazy data-srcset data-sizes').removeClass('slick-loading');\n });\n\n _.$slider.trigger('lazyLoaded', [_, image, imageSource]);\n });\n };\n\n imageToLoad.onerror = function () {\n image.removeAttr('data-lazy').removeClass('slick-loading').addClass('slick-lazyload-error');\n\n _.$slider.trigger('lazyLoadError', [_, image, imageSource]);\n };\n\n imageToLoad.src = imageSource;\n });\n }\n\n if (_.options.centerMode === true) {\n if (_.options.infinite === true) {\n rangeStart = _.currentSlide + (_.options.slidesToShow / 2 + 1);\n rangeEnd = rangeStart + _.options.slidesToShow + 2;\n } else {\n rangeStart = Math.max(0, _.currentSlide - (_.options.slidesToShow / 2 + 1));\n rangeEnd = 2 + (_.options.slidesToShow / 2 + 1) + _.currentSlide;\n }\n } else {\n rangeStart = _.options.infinite ? _.options.slidesToShow + _.currentSlide : _.currentSlide;\n rangeEnd = Math.ceil(rangeStart + _.options.slidesToShow);\n\n if (_.options.fade === true) {\n if (rangeStart > 0) rangeStart--;\n if (rangeEnd <= _.slideCount) rangeEnd++;\n }\n }\n\n loadRange = _.$slider.find('.slick-slide').slice(rangeStart, rangeEnd);\n\n if (_.options.lazyLoad === 'anticipated') {\n var prevSlide = rangeStart - 1,\n nextSlide = rangeEnd,\n $slides = _.$slider.find('.slick-slide');\n\n for (var i = 0; i < _.options.slidesToScroll; i++) {\n if (prevSlide < 0) prevSlide = _.slideCount - 1;\n loadRange = loadRange.add($slides.eq(prevSlide));\n loadRange = loadRange.add($slides.eq(nextSlide));\n prevSlide--;\n nextSlide++;\n }\n }\n\n loadImages(loadRange);\n\n if (_.slideCount <= _.options.slidesToShow) {\n cloneRange = _.$slider.find('.slick-slide');\n loadImages(cloneRange);\n } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow) {\n cloneRange = _.$slider.find('.slick-cloned').slice(0, _.options.slidesToShow);\n loadImages(cloneRange);\n } else if (_.currentSlide === 0) {\n cloneRange = _.$slider.find('.slick-cloned').slice(_.options.slidesToShow * -1);\n loadImages(cloneRange);\n }\n };\n\n Slick.prototype.loadSlider = function () {\n var _ = this;\n\n _.setPosition();\n\n _.$slideTrack.css({\n opacity: 1\n });\n\n _.$slider.removeClass('slick-loading');\n\n _.initUI();\n\n if (_.options.lazyLoad === 'progressive') {\n _.progressiveLazyLoad();\n }\n };\n\n Slick.prototype.next = Slick.prototype.slickNext = function () {\n var _ = this;\n\n _.changeSlide({\n data: {\n message: 'next'\n }\n });\n };\n\n Slick.prototype.orientationChange = function () {\n var _ = this;\n\n _.checkResponsive();\n\n _.setPosition();\n };\n\n Slick.prototype.pause = Slick.prototype.slickPause = function () {\n var _ = this;\n\n _.autoPlayClear();\n\n _.paused = true;\n };\n\n Slick.prototype.play = Slick.prototype.slickPlay = function () {\n var _ = this;\n\n _.autoPlay();\n\n _.options.autoplay = true;\n _.paused = false;\n _.focussed = false;\n _.interrupted = false;\n };\n\n Slick.prototype.postSlide = function (index) {\n var _ = this;\n\n if (!_.unslicked) {\n _.$slider.trigger('afterChange', [_, index]);\n\n _.animating = false;\n\n if (_.slideCount > _.options.slidesToShow) {\n _.setPosition();\n }\n\n _.swipeLeft = null;\n\n if (_.options.autoplay) {\n _.autoPlay();\n }\n\n if (_.options.accessibility === true) {\n _.initADA();\n\n if (_.options.focusOnChange) {\n var $currentSlide = $(_.$slides.get(_.currentSlide));\n $currentSlide.attr('tabindex', 0).focus();\n }\n }\n }\n };\n\n Slick.prototype.prev = Slick.prototype.slickPrev = function () {\n var _ = this;\n\n _.changeSlide({\n data: {\n message: 'previous'\n }\n });\n };\n\n Slick.prototype.preventDefault = function (event) {\n event.preventDefault();\n };\n\n Slick.prototype.progressiveLazyLoad = function (tryCount) {\n tryCount = tryCount || 1;\n\n var _ = this,\n $imgsToLoad = $('img[data-lazy]', _.$slider),\n image,\n imageSource,\n imageSrcSet,\n imageSizes,\n imageToLoad;\n\n if ($imgsToLoad.length) {\n image = $imgsToLoad.first();\n imageSource = image.attr('data-lazy');\n imageSrcSet = image.attr('data-srcset');\n imageSizes = image.attr('data-sizes') || _.$slider.attr('data-sizes');\n imageToLoad = document.createElement('img');\n\n imageToLoad.onload = function () {\n if (imageSrcSet) {\n image.attr('srcset', imageSrcSet);\n\n if (imageSizes) {\n image.attr('sizes', imageSizes);\n }\n }\n\n image.attr('src', imageSource).removeAttr('data-lazy data-srcset data-sizes').removeClass('slick-loading');\n\n if (_.options.adaptiveHeight === true) {\n _.setPosition();\n }\n\n _.$slider.trigger('lazyLoaded', [_, image, imageSource]);\n\n _.progressiveLazyLoad();\n };\n\n imageToLoad.onerror = function () {\n if (tryCount < 3) {\n /**\n * try to load the image 3 times,\n * leave a slight delay so we don't get\n * servers blocking the request.\n */\n setTimeout(function () {\n _.progressiveLazyLoad(tryCount + 1);\n }, 500);\n } else {\n image.removeAttr('data-lazy').removeClass('slick-loading').addClass('slick-lazyload-error');\n\n _.$slider.trigger('lazyLoadError', [_, image, imageSource]);\n\n _.progressiveLazyLoad();\n }\n };\n\n imageToLoad.src = imageSource;\n } else {\n _.$slider.trigger('allImagesLoaded', [_]);\n }\n };\n\n Slick.prototype.refresh = function (initializing) {\n var _ = this,\n currentSlide,\n lastVisibleIndex;\n\n lastVisibleIndex = _.slideCount - _.options.slidesToShow; // in non-infinite sliders, we don't want to go past the\n // last visible index.\n\n if (!_.options.infinite && _.currentSlide > lastVisibleIndex) {\n _.currentSlide = lastVisibleIndex;\n } // if less slides than to show, go to start.\n\n\n if (_.slideCount <= _.options.slidesToShow) {\n _.currentSlide = 0;\n }\n\n currentSlide = _.currentSlide;\n\n _.destroy(true);\n\n $.extend(_, _.initials, {\n currentSlide: currentSlide\n });\n\n _.init();\n\n if (!initializing) {\n _.changeSlide({\n data: {\n message: 'index',\n index: currentSlide\n }\n }, false);\n }\n };\n\n Slick.prototype.registerBreakpoints = function () {\n var _ = this,\n breakpoint,\n currentBreakpoint,\n l,\n responsiveSettings = _.options.responsive || null;\n\n if ($.type(responsiveSettings) === 'array' && responsiveSettings.length) {\n _.respondTo = _.options.respondTo || 'window';\n\n for (breakpoint in responsiveSettings) {\n l = _.breakpoints.length - 1;\n\n if (responsiveSettings.hasOwnProperty(breakpoint)) {\n currentBreakpoint = responsiveSettings[breakpoint].breakpoint; // loop through the breakpoints and cut out any existing\n // ones with the same breakpoint number, we don't want dupes.\n\n while (l >= 0) {\n if (_.breakpoints[l] && _.breakpoints[l] === currentBreakpoint) {\n _.breakpoints.splice(l, 1);\n }\n\n l--;\n }\n\n _.breakpoints.push(currentBreakpoint);\n\n _.breakpointSettings[currentBreakpoint] = responsiveSettings[breakpoint].settings;\n }\n }\n\n _.breakpoints.sort(function (a, b) {\n return _.options.mobileFirst ? a - b : b - a;\n });\n }\n };\n\n Slick.prototype.reinit = function () {\n var _ = this;\n\n _.$slides = _.$slideTrack.children(_.options.slide).addClass('slick-slide');\n _.slideCount = _.$slides.length;\n\n if (_.currentSlide >= _.slideCount && _.currentSlide !== 0) {\n _.currentSlide = _.currentSlide - _.options.slidesToScroll;\n }\n\n if (_.slideCount <= _.options.slidesToShow) {\n _.currentSlide = 0;\n }\n\n _.registerBreakpoints();\n\n _.setProps();\n\n _.setupInfinite();\n\n _.buildArrows();\n\n _.updateArrows();\n\n _.initArrowEvents();\n\n _.buildDots();\n\n _.updateDots();\n\n _.initDotEvents();\n\n _.cleanUpSlideEvents();\n\n _.initSlideEvents();\n\n _.checkResponsive(false, true);\n\n if (_.options.focusOnSelect === true) {\n $(_.$slideTrack).children().on('click.slick', _.selectHandler);\n }\n\n _.setSlideClasses(typeof _.currentSlide === 'number' ? _.currentSlide : 0);\n\n _.setPosition();\n\n _.focusHandler();\n\n _.paused = !_.options.autoplay;\n\n _.autoPlay();\n\n _.$slider.trigger('reInit', [_]);\n };\n\n Slick.prototype.resize = function () {\n var _ = this;\n\n if ($(window).width() !== _.windowWidth) {\n clearTimeout(_.windowDelay);\n _.windowDelay = window.setTimeout(function () {\n _.windowWidth = $(window).width();\n\n _.checkResponsive();\n\n if (!_.unslicked) {\n _.setPosition();\n }\n }, 50);\n }\n };\n\n Slick.prototype.removeSlide = Slick.prototype.slickRemove = function (index, removeBefore, removeAll) {\n var _ = this;\n\n if (typeof index === 'boolean') {\n removeBefore = index;\n index = removeBefore === true ? 0 : _.slideCount - 1;\n } else {\n index = removeBefore === true ? --index : index;\n }\n\n if (_.slideCount < 1 || index < 0 || index > _.slideCount - 1) {\n return false;\n }\n\n _.unload();\n\n if (removeAll === true) {\n _.$slideTrack.children().remove();\n } else {\n _.$slideTrack.children(this.options.slide).eq(index).remove();\n }\n\n _.$slides = _.$slideTrack.children(this.options.slide);\n\n _.$slideTrack.children(this.options.slide).detach();\n\n _.$slideTrack.append(_.$slides);\n\n _.$slidesCache = _.$slides;\n\n _.reinit();\n };\n\n Slick.prototype.setCSS = function (position) {\n var _ = this,\n positionProps = {},\n x,\n y;\n\n if (_.options.rtl === true) {\n position = -position;\n }\n\n x = _.positionProp == 'left' ? Math.ceil(position) + 'px' : '0px';\n y = _.positionProp == 'top' ? Math.ceil(position) + 'px' : '0px';\n positionProps[_.positionProp] = position;\n\n if (_.transformsEnabled === false) {\n _.$slideTrack.css(positionProps);\n } else {\n positionProps = {};\n\n if (_.cssTransitions === false) {\n positionProps[_.animType] = 'translate(' + x + ', ' + y + ')';\n\n _.$slideTrack.css(positionProps);\n } else {\n positionProps[_.animType] = 'translate3d(' + x + ', ' + y + ', 0px)';\n\n _.$slideTrack.css(positionProps);\n }\n }\n };\n\n Slick.prototype.setDimensions = function () {\n var _ = this;\n\n if (_.options.vertical === false) {\n if (_.options.centerMode === true) {\n _.$list.css({\n padding: '0px ' + _.options.centerPadding\n });\n }\n } else {\n _.$list.height(_.$slides.first().outerHeight(true) * _.options.slidesToShow);\n\n if (_.options.centerMode === true) {\n _.$list.css({\n padding: _.options.centerPadding + ' 0px'\n });\n }\n }\n\n _.listWidth = _.$list.width();\n _.listHeight = _.$list.height();\n\n if (_.options.vertical === false && _.options.variableWidth === false) {\n _.slideWidth = Math.ceil(_.listWidth / _.options.slidesToShow);\n\n _.$slideTrack.width(Math.ceil(_.slideWidth * _.$slideTrack.children('.slick-slide').length));\n } else if (_.options.variableWidth === true) {\n _.$slideTrack.width(5000 * _.slideCount);\n } else {\n _.slideWidth = Math.ceil(_.listWidth);\n\n _.$slideTrack.height(Math.ceil(_.$slides.first().outerHeight(true) * _.$slideTrack.children('.slick-slide').length));\n }\n\n var offset = _.$slides.first().outerWidth(true) - _.$slides.first().width();\n\n if (_.options.variableWidth === false) _.$slideTrack.children('.slick-slide').width(_.slideWidth - offset);\n };\n\n Slick.prototype.setFade = function () {\n var _ = this,\n targetLeft;\n\n _.$slides.each(function (index, element) {\n targetLeft = _.slideWidth * index * -1;\n\n if (_.options.rtl === true) {\n $(element).css({\n position: 'relative',\n right: targetLeft,\n top: 0,\n zIndex: _.options.zIndex - 2,\n opacity: 0\n });\n } else {\n $(element).css({\n position: 'relative',\n left: targetLeft,\n top: 0,\n zIndex: _.options.zIndex - 2,\n opacity: 0\n });\n }\n });\n\n _.$slides.eq(_.currentSlide).css({\n zIndex: _.options.zIndex - 1,\n opacity: 1\n });\n };\n\n Slick.prototype.setHeight = function () {\n var _ = this;\n\n if (_.options.slidesToShow === 1 && _.options.adaptiveHeight === true && _.options.vertical === false) {\n var targetHeight = _.$slides.eq(_.currentSlide).outerHeight(true);\n\n _.$list.css('height', targetHeight);\n }\n };\n\n Slick.prototype.setOption = Slick.prototype.slickSetOption = function () {\n /**\n * accepts arguments in format of:\n *\n * - for changing a single option's value:\n * .slick(\"setOption\", option, value, refresh )\n *\n * - for changing a set of responsive options:\n * .slick(\"setOption\", 'responsive', [{}, ...], refresh )\n *\n * - for updating multiple values at once (not responsive)\n * .slick(\"setOption\", { 'option': value, ... }, refresh )\n */\n var _ = this,\n l,\n item,\n option,\n value,\n refresh = false,\n type;\n\n if ($.type(arguments[0]) === 'object') {\n option = arguments[0];\n refresh = arguments[1];\n type = 'multiple';\n } else if ($.type(arguments[0]) === 'string') {\n option = arguments[0];\n value = arguments[1];\n refresh = arguments[2];\n\n if (arguments[0] === 'responsive' && $.type(arguments[1]) === 'array') {\n type = 'responsive';\n } else if (typeof arguments[1] !== 'undefined') {\n type = 'single';\n }\n }\n\n if (type === 'single') {\n _.options[option] = value;\n } else if (type === 'multiple') {\n $.each(option, function (opt, val) {\n _.options[opt] = val;\n });\n } else if (type === 'responsive') {\n for (item in value) {\n if ($.type(_.options.responsive) !== 'array') {\n _.options.responsive = [value[item]];\n } else {\n l = _.options.responsive.length - 1; // loop through the responsive object and splice out duplicates.\n\n while (l >= 0) {\n if (_.options.responsive[l].breakpoint === value[item].breakpoint) {\n _.options.responsive.splice(l, 1);\n }\n\n l--;\n }\n\n _.options.responsive.push(value[item]);\n }\n }\n }\n\n if (refresh) {\n _.unload();\n\n _.reinit();\n }\n };\n\n Slick.prototype.setPosition = function () {\n var _ = this;\n\n _.setDimensions();\n\n _.setHeight();\n\n if (_.options.fade === false) {\n _.setCSS(_.getLeft(_.currentSlide));\n } else {\n _.setFade();\n }\n\n _.$slider.trigger('setPosition', [_]);\n };\n\n Slick.prototype.setProps = function () {\n var _ = this,\n bodyStyle = document.body.style;\n\n _.positionProp = _.options.vertical === true ? 'top' : 'left';\n\n if (_.positionProp === 'top') {\n _.$slider.addClass('slick-vertical');\n } else {\n _.$slider.removeClass('slick-vertical');\n }\n\n if (bodyStyle.WebkitTransition !== undefined || bodyStyle.MozTransition !== undefined || bodyStyle.msTransition !== undefined) {\n if (_.options.useCSS === true) {\n _.cssTransitions = true;\n }\n }\n\n if (_.options.fade) {\n if (typeof _.options.zIndex === 'number') {\n if (_.options.zIndex < 3) {\n _.options.zIndex = 3;\n }\n } else {\n _.options.zIndex = _.defaults.zIndex;\n }\n }\n\n if (bodyStyle.OTransform !== undefined) {\n _.animType = 'OTransform';\n _.transformType = '-o-transform';\n _.transitionType = 'OTransition';\n if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;\n }\n\n if (bodyStyle.MozTransform !== undefined) {\n _.animType = 'MozTransform';\n _.transformType = '-moz-transform';\n _.transitionType = 'MozTransition';\n if (bodyStyle.perspectiveProperty === undefined && bodyStyle.MozPerspective === undefined) _.animType = false;\n }\n\n if (bodyStyle.webkitTransform !== undefined) {\n _.animType = 'webkitTransform';\n _.transformType = '-webkit-transform';\n _.transitionType = 'webkitTransition';\n if (bodyStyle.perspectiveProperty === undefined && bodyStyle.webkitPerspective === undefined) _.animType = false;\n }\n\n if (bodyStyle.msTransform !== undefined) {\n _.animType = 'msTransform';\n _.transformType = '-ms-transform';\n _.transitionType = 'msTransition';\n if (bodyStyle.msTransform === undefined) _.animType = false;\n }\n\n if (bodyStyle.transform !== undefined && _.animType !== false) {\n _.animType = 'transform';\n _.transformType = 'transform';\n _.transitionType = 'transition';\n }\n\n _.transformsEnabled = _.options.useTransform && _.animType !== null && _.animType !== false;\n };\n\n Slick.prototype.setSlideClasses = function (index) {\n var _ = this,\n centerOffset,\n allSlides,\n indexOffset,\n remainder;\n\n allSlides = _.$slider.find('.slick-slide').removeClass('slick-active slick-center slick-current').attr('aria-hidden', 'true');\n\n _.$slides.eq(index).addClass('slick-current');\n\n if (_.options.centerMode === true) {\n var evenCoef = _.options.slidesToShow % 2 === 0 ? 1 : 0;\n centerOffset = Math.floor(_.options.slidesToShow / 2);\n\n if (_.options.infinite === true) {\n if (index >= centerOffset && index <= _.slideCount - 1 - centerOffset) {\n _.$slides.slice(index - centerOffset + evenCoef, index + centerOffset + 1).addClass('slick-active').attr('aria-hidden', 'false');\n } else {\n indexOffset = _.options.slidesToShow + index;\n allSlides.slice(indexOffset - centerOffset + 1 + evenCoef, indexOffset + centerOffset + 2).addClass('slick-active').attr('aria-hidden', 'false');\n }\n\n if (index === 0) {\n allSlides.eq(allSlides.length - 1 - _.options.slidesToShow).addClass('slick-center');\n } else if (index === _.slideCount - 1) {\n allSlides.eq(_.options.slidesToShow).addClass('slick-center');\n }\n }\n\n _.$slides.eq(index).addClass('slick-center');\n } else {\n if (index >= 0 && index <= _.slideCount - _.options.slidesToShow) {\n _.$slides.slice(index, index + _.options.slidesToShow).addClass('slick-active').attr('aria-hidden', 'false');\n } else if (allSlides.length <= _.options.slidesToShow) {\n allSlides.addClass('slick-active').attr('aria-hidden', 'false');\n } else {\n remainder = _.slideCount % _.options.slidesToShow;\n indexOffset = _.options.infinite === true ? _.options.slidesToShow + index : index;\n\n if (_.options.slidesToShow == _.options.slidesToScroll && _.slideCount - index < _.options.slidesToShow) {\n allSlides.slice(indexOffset - (_.options.slidesToShow - remainder), indexOffset + remainder).addClass('slick-active').attr('aria-hidden', 'false');\n } else {\n allSlides.slice(indexOffset, indexOffset + _.options.slidesToShow).addClass('slick-active').attr('aria-hidden', 'false');\n }\n }\n }\n\n if (_.options.lazyLoad === 'ondemand' || _.options.lazyLoad === 'anticipated') {\n _.lazyLoad();\n }\n };\n\n Slick.prototype.setupInfinite = function () {\n var _ = this,\n i,\n slideIndex,\n infiniteCount;\n\n if (_.options.fade === true) {\n _.options.centerMode = false;\n }\n\n if (_.options.infinite === true && _.options.fade === false) {\n slideIndex = null;\n\n if (_.slideCount > _.options.slidesToShow) {\n if (_.options.centerMode === true) {\n infiniteCount = _.options.slidesToShow + 1;\n } else {\n infiniteCount = _.options.slidesToShow;\n }\n\n for (i = _.slideCount; i > _.slideCount - infiniteCount; i -= 1) {\n slideIndex = i - 1;\n $(_.$slides[slideIndex]).clone(true).attr('id', '').attr('data-slick-index', slideIndex - _.slideCount).prependTo(_.$slideTrack).addClass('slick-cloned');\n }\n\n for (i = 0; i < infiniteCount + _.slideCount; i += 1) {\n slideIndex = i;\n $(_.$slides[slideIndex]).clone(true).attr('id', '').attr('data-slick-index', slideIndex + _.slideCount).appendTo(_.$slideTrack).addClass('slick-cloned');\n }\n\n _.$slideTrack.find('.slick-cloned').find('[id]').each(function () {\n $(this).attr('id', '');\n });\n }\n }\n };\n\n Slick.prototype.interrupt = function (toggle) {\n var _ = this;\n\n if (!toggle) {\n _.autoPlay();\n }\n\n _.interrupted = toggle;\n };\n\n Slick.prototype.selectHandler = function (event) {\n var _ = this;\n\n var targetElement = $(event.target).is('.slick-slide') ? $(event.target) : $(event.target).parents('.slick-slide');\n var index = parseInt(targetElement.attr('data-slick-index'));\n if (!index) index = 0;\n\n if (_.slideCount <= _.options.slidesToShow) {\n _.slideHandler(index, false, true);\n\n return;\n }\n\n _.slideHandler(index);\n };\n\n Slick.prototype.slideHandler = function (index, sync, dontAnimate) {\n var targetSlide,\n animSlide,\n oldSlide,\n slideLeft,\n targetLeft = null,\n _ = this,\n navTarget;\n\n sync = sync || false;\n\n if (_.animating === true && _.options.waitForAnimate === true) {\n return;\n }\n\n if (_.options.fade === true && _.currentSlide === index) {\n return;\n }\n\n if (sync === false) {\n _.asNavFor(index);\n }\n\n targetSlide = index;\n targetLeft = _.getLeft(targetSlide);\n slideLeft = _.getLeft(_.currentSlide);\n _.currentLeft = _.swipeLeft === null ? slideLeft : _.swipeLeft;\n\n if (_.options.infinite === false && _.options.centerMode === false && (index < 0 || index > _.getDotCount() * _.options.slidesToScroll)) {\n if (_.options.fade === false) {\n targetSlide = _.currentSlide;\n\n if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {\n _.animateSlide(slideLeft, function () {\n _.postSlide(targetSlide);\n });\n } else {\n _.postSlide(targetSlide);\n }\n }\n\n return;\n } else if (_.options.infinite === false && _.options.centerMode === true && (index < 0 || index > _.slideCount - _.options.slidesToScroll)) {\n if (_.options.fade === false) {\n targetSlide = _.currentSlide;\n\n if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {\n _.animateSlide(slideLeft, function () {\n _.postSlide(targetSlide);\n });\n } else {\n _.postSlide(targetSlide);\n }\n }\n\n return;\n }\n\n if (_.options.autoplay) {\n clearInterval(_.autoPlayTimer);\n }\n\n if (targetSlide < 0) {\n if (_.slideCount % _.options.slidesToScroll !== 0) {\n animSlide = _.slideCount - _.slideCount % _.options.slidesToScroll;\n } else {\n animSlide = _.slideCount + targetSlide;\n }\n } else if (targetSlide >= _.slideCount) {\n if (_.slideCount % _.options.slidesToScroll !== 0) {\n animSlide = 0;\n } else {\n animSlide = targetSlide - _.slideCount;\n }\n } else {\n animSlide = targetSlide;\n }\n\n _.animating = true;\n\n _.$slider.trigger('beforeChange', [_, _.currentSlide, animSlide]);\n\n oldSlide = _.currentSlide;\n _.currentSlide = animSlide;\n\n _.setSlideClasses(_.currentSlide);\n\n if (_.options.asNavFor) {\n navTarget = _.getNavTarget();\n navTarget = navTarget.slick('getSlick');\n\n if (navTarget.slideCount <= navTarget.options.slidesToShow) {\n navTarget.setSlideClasses(_.currentSlide);\n }\n }\n\n _.updateDots();\n\n _.updateArrows();\n\n if (_.options.fade === true) {\n if (dontAnimate !== true) {\n _.fadeSlideOut(oldSlide);\n\n _.fadeSlide(animSlide, function () {\n _.postSlide(animSlide);\n });\n } else {\n _.postSlide(animSlide);\n }\n\n _.animateHeight();\n\n return;\n }\n\n if (dontAnimate !== true && _.slideCount > _.options.slidesToShow) {\n _.animateSlide(targetLeft, function () {\n _.postSlide(animSlide);\n });\n } else {\n _.postSlide(animSlide);\n }\n };\n\n Slick.prototype.startLoad = function () {\n var _ = this;\n\n if (_.options.arrows === true && _.slideCount > _.options.slidesToShow) {\n _.$prevArrow.hide();\n\n _.$nextArrow.hide();\n }\n\n if (_.options.dots === true && _.slideCount > _.options.slidesToShow) {\n _.$dots.hide();\n }\n\n _.$slider.addClass('slick-loading');\n };\n\n Slick.prototype.swipeDirection = function () {\n var xDist,\n yDist,\n r,\n swipeAngle,\n _ = this;\n\n xDist = _.touchObject.startX - _.touchObject.curX;\n yDist = _.touchObject.startY - _.touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0) {\n return _.options.rtl === false ? 'left' : 'right';\n }\n\n if (swipeAngle <= 360 && swipeAngle >= 315) {\n return _.options.rtl === false ? 'left' : 'right';\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return _.options.rtl === false ? 'right' : 'left';\n }\n\n if (_.options.verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return 'down';\n } else {\n return 'up';\n }\n }\n\n return 'vertical';\n };\n\n Slick.prototype.swipeEnd = function (event) {\n var _ = this,\n slideCount,\n direction;\n\n _.dragging = false;\n _.swiping = false;\n\n if (_.scrolling) {\n _.scrolling = false;\n return false;\n }\n\n _.interrupted = false;\n _.shouldClick = _.touchObject.swipeLength > 10 ? false : true;\n\n if (_.touchObject.curX === undefined) {\n return false;\n }\n\n if (_.touchObject.edgeHit === true) {\n _.$slider.trigger('edge', [_, _.swipeDirection()]);\n }\n\n if (_.touchObject.swipeLength >= _.touchObject.minSwipe) {\n direction = _.swipeDirection();\n\n switch (direction) {\n case 'left':\n case 'down':\n slideCount = _.options.swipeToSlide ? _.checkNavigable(_.currentSlide + _.getSlideCount()) : _.currentSlide + _.getSlideCount();\n _.currentDirection = 0;\n break;\n\n case 'right':\n case 'up':\n slideCount = _.options.swipeToSlide ? _.checkNavigable(_.currentSlide - _.getSlideCount()) : _.currentSlide - _.getSlideCount();\n _.currentDirection = 1;\n break;\n\n default:\n }\n\n if (direction != 'vertical') {\n _.slideHandler(slideCount);\n\n _.touchObject = {};\n\n _.$slider.trigger('swipe', [_, direction]);\n }\n } else {\n if (_.touchObject.startX !== _.touchObject.curX) {\n _.slideHandler(_.currentSlide);\n\n _.touchObject = {};\n }\n }\n };\n\n Slick.prototype.swipeHandler = function (event) {\n var _ = this;\n\n if (_.options.swipe === false || 'ontouchend' in document && _.options.swipe === false) {\n return;\n } else if (_.options.draggable === false && event.type.indexOf('mouse') !== -1) {\n return;\n }\n\n _.touchObject.fingerCount = event.originalEvent && event.originalEvent.touches !== undefined ? event.originalEvent.touches.length : 1;\n _.touchObject.minSwipe = _.listWidth / _.options.touchThreshold;\n\n if (_.options.verticalSwiping === true) {\n _.touchObject.minSwipe = _.listHeight / _.options.touchThreshold;\n }\n\n switch (event.data.action) {\n case 'start':\n _.swipeStart(event);\n\n break;\n\n case 'move':\n _.swipeMove(event);\n\n break;\n\n case 'end':\n _.swipeEnd(event);\n\n break;\n }\n };\n\n Slick.prototype.swipeMove = function (event) {\n var _ = this,\n edgeWasHit = false,\n curLeft,\n swipeDirection,\n swipeLength,\n positionOffset,\n touches,\n verticalSwipeLength;\n\n touches = event.originalEvent !== undefined ? event.originalEvent.touches : null;\n\n if (!_.dragging || _.scrolling || touches && touches.length !== 1) {\n return false;\n }\n\n curLeft = _.getLeft(_.currentSlide);\n _.touchObject.curX = touches !== undefined ? touches[0].pageX : event.clientX;\n _.touchObject.curY = touches !== undefined ? touches[0].pageY : event.clientY;\n _.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(_.touchObject.curX - _.touchObject.startX, 2)));\n verticalSwipeLength = Math.round(Math.sqrt(Math.pow(_.touchObject.curY - _.touchObject.startY, 2)));\n\n if (!_.options.verticalSwiping && !_.swiping && verticalSwipeLength > 4) {\n _.scrolling = true;\n return false;\n }\n\n if (_.options.verticalSwiping === true) {\n _.touchObject.swipeLength = verticalSwipeLength;\n }\n\n swipeDirection = _.swipeDirection();\n\n if (event.originalEvent !== undefined && _.touchObject.swipeLength > 4) {\n _.swiping = true;\n event.preventDefault();\n }\n\n positionOffset = (_.options.rtl === false ? 1 : -1) * (_.touchObject.curX > _.touchObject.startX ? 1 : -1);\n\n if (_.options.verticalSwiping === true) {\n positionOffset = _.touchObject.curY > _.touchObject.startY ? 1 : -1;\n }\n\n swipeLength = _.touchObject.swipeLength;\n _.touchObject.edgeHit = false;\n\n if (_.options.infinite === false) {\n if (_.currentSlide === 0 && swipeDirection === 'right' || _.currentSlide >= _.getDotCount() && swipeDirection === 'left') {\n swipeLength = _.touchObject.swipeLength * _.options.edgeFriction;\n _.touchObject.edgeHit = true;\n }\n }\n\n if (_.options.vertical === false) {\n _.swipeLeft = curLeft + swipeLength * positionOffset;\n } else {\n _.swipeLeft = curLeft + swipeLength * (_.$list.height() / _.listWidth) * positionOffset;\n }\n\n if (_.options.verticalSwiping === true) {\n _.swipeLeft = curLeft + swipeLength * positionOffset;\n }\n\n if (_.options.fade === true || _.options.touchMove === false) {\n return false;\n }\n\n if (_.animating === true) {\n _.swipeLeft = null;\n return false;\n }\n\n _.setCSS(_.swipeLeft);\n };\n\n Slick.prototype.swipeStart = function (event) {\n var _ = this,\n touches;\n\n _.interrupted = true;\n\n if (_.touchObject.fingerCount !== 1 || _.slideCount <= _.options.slidesToShow) {\n _.touchObject = {};\n return false;\n }\n\n if (event.originalEvent !== undefined && event.originalEvent.touches !== undefined) {\n touches = event.originalEvent.touches[0];\n }\n\n _.touchObject.startX = _.touchObject.curX = touches !== undefined ? touches.pageX : event.clientX;\n _.touchObject.startY = _.touchObject.curY = touches !== undefined ? touches.pageY : event.clientY;\n _.dragging = true;\n };\n\n Slick.prototype.unfilterSlides = Slick.prototype.slickUnfilter = function () {\n var _ = this;\n\n if (_.$slidesCache !== null) {\n _.unload();\n\n _.$slideTrack.children(this.options.slide).detach();\n\n _.$slidesCache.appendTo(_.$slideTrack);\n\n _.reinit();\n }\n };\n\n Slick.prototype.unload = function () {\n var _ = this;\n\n $('.slick-cloned', _.$slider).remove();\n\n if (_.$dots) {\n _.$dots.remove();\n }\n\n if (_.$prevArrow && _.htmlExpr.test(_.options.prevArrow)) {\n _.$prevArrow.remove();\n }\n\n if (_.$nextArrow && _.htmlExpr.test(_.options.nextArrow)) {\n _.$nextArrow.remove();\n }\n\n _.$slides.removeClass('slick-slide slick-active slick-visible slick-current').attr('aria-hidden', 'true').css('width', '');\n };\n\n Slick.prototype.unslick = function (fromBreakpoint) {\n var _ = this;\n\n _.$slider.trigger('unslick', [_, fromBreakpoint]);\n\n _.destroy();\n };\n\n Slick.prototype.updateArrows = function () {\n var _ = this,\n centerOffset;\n\n centerOffset = Math.floor(_.options.slidesToShow / 2);\n\n if (_.options.arrows === true && _.slideCount > _.options.slidesToShow && !_.options.infinite) {\n _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');\n\n _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');\n\n if (_.currentSlide === 0) {\n _.$prevArrow.addClass('slick-disabled').attr('aria-disabled', 'true');\n\n _.$nextArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');\n } else if (_.currentSlide >= _.slideCount - _.options.slidesToShow && _.options.centerMode === false) {\n _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');\n\n _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');\n } else if (_.currentSlide >= _.slideCount - 1 && _.options.centerMode === true) {\n _.$nextArrow.addClass('slick-disabled').attr('aria-disabled', 'true');\n\n _.$prevArrow.removeClass('slick-disabled').attr('aria-disabled', 'false');\n }\n }\n };\n\n Slick.prototype.updateDots = function () {\n var _ = this;\n\n if (_.$dots !== null) {\n _.$dots.find('li').removeClass('slick-active').end();\n\n _.$dots.find('li').eq(Math.floor(_.currentSlide / _.options.slidesToScroll)).addClass('slick-active');\n }\n };\n\n Slick.prototype.visibility = function () {\n var _ = this;\n\n if (_.options.autoplay) {\n if (document[_.hidden]) {\n _.interrupted = true;\n } else {\n _.interrupted = false;\n }\n }\n };\n\n $.fn.slick = function () {\n var _ = this,\n opt = arguments[0],\n args = Array.prototype.slice.call(arguments, 1),\n l = _.length,\n i,\n ret;\n\n for (i = 0; i < l; i++) {\n if (_typeof(opt) == 'object' || typeof opt == 'undefined') _[i].slick = new Slick(_[i], opt);else ret = _[i].slick[opt].apply(_[i].slick, args);\n if (typeof ret != 'undefined') return ret;\n }\n\n return _;\n };\n});","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a \n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BackButton.vue?vue&type=template&id=b87f35f2&scoped=true&\"\nimport script from \"./BackButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./BackButton.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BackButton.vue?vue&type=style&index=0&id=b87f35f2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b87f35f2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.to && !_vm.disabled ? 'router-link' : 'div',{tag:\"component\",staticClass:\"card border-dashed c-dashed-button\",class:Object.assign({}, _vm.variantClasses,\n {'c-dashed-button--disabled': _vm.disabled}),attrs:{\"to\":_vm.disabled ? undefined : _vm.to},on:{\"click\":function($event){return _vm.$emit('click')}}},[_c('div',{staticClass:\"d-flex p-3 justify-content-center align-items-center\"},[(_vm.icon)?_c('i',{class:(_vm.iconStyle + \" mr-3 fa-\" + _vm.icon + \" text-primary\")}):_vm._e(),_vm._v(\" \"),_c('span',[_vm._t(\"default\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n
\n \n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashedButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DashedButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DashedButton.vue?vue&type=template&id=375ed9ff&\"\nimport script from \"./DashedButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./DashedButton.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":_vm.transition}},[(_vm.show)?_c('div',[_vm._t(\"default\")],2):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n
\n \n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DelayedRender.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DelayedRender.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DelayedRender.vue?vue&type=template&id=237a38e9&\"\nimport script from \"./DelayedRender.vue?vue&type=script&lang=ts&\"\nexport * from \"./DelayedRender.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-wizard accordion\",attrs:{\"id\":_vm.wizardId}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component, Provide, Prop, Watch, ProvideReactive } from 'vue-property-decorator';\n\nimport FormWizardStep from '../FormWizardStep/FormWizardStep';\n\n@Component({\n inject: [],\n})\nexport default class FormWizard extends Vue {\n /**\n * Component model\n */\n @Prop(Number)\n value!: number;\n\n /**\n * If enabled, visited steps will be ignored\n */\n @Prop(Boolean)\n @ProvideReactive()\n editMode!: boolean;\n\n /**\n * Final validation\n */\n @Prop(Function)\n beforeCompleted!: () => Promise;\n\n /**\n * Current active wizard step\n */\n @ProvideReactive()\n wizardActiveStep = 0;\n\n /**\n * Number of steps which have been visited\n */\n @ProvideReactive()\n wizardVisitedSteps = 0;\n\n /**\n * List of wizard step components\n */\n stepComponents: FormWizardStep[] = [];\n\n /**\n * Prevent changes on active collapse animation\n */\n locked = false;\n\n /**\n * If wizard is completed\n */\n isCompleted = false;\n\n /**\n * List of validation errors\n */\n validationErrors = [];\n\n mounted() {\n if (this.editMode)\n this.wizardVisitedSteps = this.stepComponents.length;\n\n // Get initial step\n this.onValueUpdated(this.value)\n // Emit event to parent when done\n .then(() => this.$emit('loaded'));\n }\n\n /**\n * Unique wizard id\n */\n @Provide()\n private get wizardId() {\n // @ts-ignore\n return `form-wizard-${this._uid}`;\n }\n\n /**\n * Provide step registration method\n * @param component Wizard step component\n */\n @Provide()\n public registerWizardStep(component: FormWizardStep) {\n this.stepComponents.push(component);\n // Return added step number\n return this.stepComponents.length;\n }\n\n /**\n * Watch model changes from parent\n * @param value New value\n * @param previousValue Previous value\n */\n @Watch('value')\n private onValueUpdated(value: number, previousValue?: number) {\n // Don't fast forward if edit mode\n if (this.editMode)\n return this.goToStep(value, false, previousValue);\n\n // Use fast-forward mode if new value is larger than the previous value\n const fastForward = !previousValue || value >= previousValue;\n return this.goToStep(value, fastForward, previousValue);\n }\n\n /**\n * Visit wizard step\n * @param requestedStep Step to visit\n * @param fastForward Skip previously visited and validating steps\n * @param previousStep Previous step (optional)\n */\n @Provide()\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public async goToStep(requestedStep: number, fastForward = false, previousStep?: number) {\n // If requested step is already active\n let nextStep = requestedStep;\n if (!nextStep || nextStep === this.wizardActiveStep)\n return this.wizardActiveStep;\n\n // Prevent any changes if locked state\n if (this.locked) {\n this.$emit('input', this.wizardActiveStep);\n return this.wizardActiveStep;\n }\n\n // Prevent steps with audit mode enabled to be skipped\n for (let i = this.wizardActiveStep + 1; i < nextStep; i++)\n if (this.getStepComponent(i).audit && process.env.NODE_ENV === 'development') {\n console.warn(`FormWizard prevented to go from step ${this.wizardActiveStep} to ${requestedStep} as step ${i} requires audit`);\n nextStep = i;\n break;\n }\n\n // Validate subsequent steps until failing\n const numValidatingSteps = await this.checkNumValidatingSteps();\n const totalNumSteps = this.stepComponents.length;\n\n // Prevent fast-forward submission of form\n if (requestedStep > totalNumSteps && requestedStep !== this.wizardActiveStep + 1)\n requestedStep = this.wizardVisitedSteps;\n\n // Check if all steps are completed\n if (requestedStep > totalNumSteps && numValidatingSteps === totalNumSteps) {\n const activeStepComponent = this.getStepComponent(this.wizardActiveStep);\n const canLeave = await Promise.resolve(activeStepComponent.beforeLeave()).then(d => !!d).catch(() => false);\n if (!canLeave)\n return this.wizardActiveStep;\n\n if (!this.isCompleted) {\n let completionValidates = true;\n // If completed callback is provided\n if (this.beforeCompleted)\n completionValidates = await this.beforeCompleted().then(v => v !== false).catch(() => false);\n\n if (!completionValidates)\n return this.wizardActiveStep;\n\n activeStepComponent.$emit('leave');\n this.$emit('completed');\n this.isCompleted = true;\n } else {\n activeStepComponent.$emit('leave');\n }\n\n return this.wizardActiveStep;\n }\n\n // Skip previously visited and validating steps if fast-forward mode\n if (fastForward)\n while (nextStep < numValidatingSteps)\n if (nextStep < this.wizardVisitedSteps || this.getStepComponent(nextStep).forwards)\n nextStep++;\n else\n break;\n\n // Emit validation error if not validating requested step\n if (nextStep - 1 > numValidatingSteps) {\n nextStep = numValidatingSteps + 1;\n this.getStepComponent(nextStep).$emit('error', this.validationErrors);\n }\n\n // If calculated next step is already active\n if (nextStep === this.wizardActiveStep)\n return this.wizardActiveStep;\n\n // Emit events\n if (this.wizardActiveStep) {\n const activeStepComponent = this.getStepComponent(this.wizardActiveStep);\n const canLeave = await Promise.resolve(activeStepComponent.beforeLeave()).then(d => !!d).catch(() => false);\n if (!canLeave)\n return this.wizardActiveStep;\n\n this.getStepComponent(this.wizardActiveStep).$emit('leave');\n }\n this.getStepComponent(nextStep).$emit('enter');\n\n // Set active step\n this.wizardActiveStep = nextStep;\n this.$emit('input', nextStep);\n\n this.locked = true;\n this.getStepComponent(nextStep)\n .expandStep()\n .then(() => { this.locked = false });\n\n // Update number of visited steps\n if (nextStep > this.wizardVisitedSteps)\n this.wizardVisitedSteps = nextStep;\n\n return this.wizardActiveStep;\n }\n\n /**\n * Go to next step\n */\n @Provide()\n public async nextStep() {\n if (this.editMode)\n return this.goToStep(this.wizardActiveStep + 1);\n\n if (this.wizardActiveStep < this.wizardVisitedSteps)\n return this.goToStep(this.wizardVisitedSteps);\n\n return await this.goToStep(this.wizardVisitedSteps + 1);\n }\n\n /**\n * Go to previous step\n */\n @Provide()\n public previousStep() {\n this.goToStep(this.value - 1);\n }\n\n /**\n * Get wizard step component instance\n * @param step Wizard step number\n */\n private getStepComponent(step: number) {\n return this.stepComponents[step - 1];\n }\n\n /**\n * Validate all steps in chronological order until failing\n */\n private async checkNumValidatingSteps() {\n let i = 0;\n\n while (i < this.stepComponents.length) {\n const validates = await Promise.resolve(this.getStepComponent(i + 1).validate())\n .catch((errors) => {\n this.validationErrors = errors;\n return false;\n });\n\n if (!validates)\n break;\n\n i++;\n }\n\n // Last validating step\n return i;\n }\n}\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./FormWizard.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./FormWizard.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormWizard.vue?vue&type=template&id=cdda6388&\"\nimport script from \"./FormWizard.ts?vue&type=script&lang=ts&\"\nexport * from \"./FormWizard.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row justify-content-center\"},[_c('div',{staticClass:\"col-lg-9 col-xl-8 pt-4\"},[_c('button',_vm._g(_vm._b({staticClass:\"btn btn-lg btn-block btn-primary\",attrs:{\"data-test-id\":\"wizard-next-step\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onClick.apply(null, arguments)}}},'button',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"default\",function(){return [_vm._v(\"Fortsätt\")]})],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n
\n \n
\n
\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormWizardNextButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FormWizardNextButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormWizardNextButton.vue?vue&type=template&id=10b58ca4&\"\nimport script from \"./FormWizardNextButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./FormWizardNextButton.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form-wizard-step',{attrs:{\"title\":\"Välj deltagare\",\"completed-title\":_vm.completedTitle,\"validate\":function () { return !!_vm.value; }},on:{\"error\":function () { return _vm.error = true; }}},[(_vm.$apollo.loading)?_c('loading'):_c('form',{ref:\"form\",class:{ 'was-validated': _vm.error }},[(_vm.registrationsOptions.length > 0)?_c('div',{staticClass:\"form-group\"},[_c('span',{staticClass:\"d-block mb-2 font-size-sm\"},[_vm._v(\"Välj deltagare\")]),_vm._v(\" \"),_c('radio-group',{attrs:{\"name\":\"registration\",\"variant\":\"primary\",\"lg\":\"\",\"required\":\"\",\"options\":_vm.registrationsOptions,\"value\":_vm.value},on:{\"input\":function (v) { return _vm.$emit('input', parseInt(v)); }},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar option = ref.option;\nreturn [_c('div',{staticStyle:{\"line-height\":\"1em\"}},[_vm._v(\"\\n \"+_vm._s(option.text)+\"\\n \")]),_vm._v(\" \"),_c('small',[_vm._v(_vm._s(option.timetable.title))]),_vm._v(\" \"),_vm._t(\"registration\",null,{\"registration\":option.registration})]}}],null,true)})],1):_c('div',[_c('p',[_vm._v(\"Det finns inga antagna deltagare registrerade på ditt konto.\")])]),_vm._v(\" \"),_c('form-wizard-next-button',{attrs:{\"disabled\":!_vm.value}})],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Mixins } from 'vue-property-decorator';\n\nimport { LoadUserRegistrationsMixin } from '@/mixins/LoadUserRegistrationsMixin';\n\n@Component\nexport default class ChooseRegistrationStep extends Mixins(LoadUserRegistrationsMixin) {\n @Prop()\n value;\n\n error = false;\n\n get registrationsOptions() {\n return this.userRegistrations\n .filter(registration => !registration.isReserve)\n .map(registration => ({\n text: `${registration.firstName} ${registration.lastName}`,\n value: `${registration.id}`,\n timetable: registration.timetable,\n registration,\n }));\n }\n\n get completedTitle() {\n const registration = this.userRegistrations.find(r => r.id === this.value);\n\n if (registration)\n return () => `Deltagare: ${registration.firstName} ${registration.lastName}`;\n }\n}\n","import mod from \"-!../../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./ChooseRegistrationStep.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./ChooseRegistrationStep.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ChooseRegistrationStep.vue?vue&type=template&id=1f955688&\"\nimport script from \"./ChooseRegistrationStep.ts?vue&type=script&lang=ts&\"\nexport * from \"./ChooseRegistrationStep.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form-wizard-step',{attrs:{\"title\":\"Deltagarens uppgifter\",\"completed-title\":function () { return _vm.registration.fullname; },\"validate\":_vm.validate},on:{\"error\":_vm.onValidationError,\"leave\":_vm.onLeave}},[_c('form',{ref:\"form\",class:{ 'was-validated': _vm.error }},[_c('cities-select',{attrs:{\"required\":\"\"},model:{value:(_vm.registration.cityId),callback:function ($$v) {_vm.$set(_vm.registration, \"cityId\", $$v)},expression:\"registration.cityId\"}}),_vm._v(\" \"),_c('custom-input',{attrs:{\"required\":\"\",\"label\":\"Förnamn\",\"name\":\"firstname\",\"autofocus\":\"\",\"autocomplete\":\"given-name\"},model:{value:(_vm.registration.firstName),callback:function ($$v) {_vm.$set(_vm.registration, \"firstName\", $$v)},expression:\"registration.firstName\"}}),_vm._v(\" \"),_c('custom-input',{attrs:{\"required\":\"\",\"label\":\"Efternamn\",\"name\":\"lastname\",\"autocomplete\":\"family-name\"},model:{value:(_vm.registration.lastName),callback:function ($$v) {_vm.$set(_vm.registration, \"lastName\", $$v)},expression:\"registration.lastName\"}}),_vm._v(\" \"),_c('custom-input',{directives:[{name:\"mask\",rawName:\"v-mask\",value:('#### - ## - ##'),expression:\"'#### - ## - ##'\"}],attrs:{\"required\":\"\",\"label\":\"Födelsedatum\",\"placeholder\":\"ÅÅÅÅ - MM - DD\",\"pattern\":\"^[0-9]{4} - (0[1-9]|1[0-2]) - (0[1-9]|1[0-9]|2[0-9]|3[0-1])$\",\"invalid-feedback\":\"Vänligen ange enligt formatet ÅÅÅÅ - MM - DD.\",\"name\":\"birthday\"},on:{\"blur\":_vm.formatBirthday},model:{value:(_vm.registration.formattedBirthday),callback:function ($$v) {_vm.$set(_vm.registration, \"formattedBirthday\", $$v)},expression:\"registration.formattedBirthday\"}}),_vm._v(\" \"),_c('div',{staticClass:\"form-group\"},[_c('span',{staticClass:\"d-block mb-2 font-size-sm\"},[_vm._v(\"Kön\")]),_vm._v(\" \"),_c('radio-group',{attrs:{\"name\":\"gender\",\"variant\":\"primary\",\"lg\":\"\",\"required\":\"\",\"options\":_vm.genderOptions},model:{value:(_vm.registration.gender),callback:function ($$v) {_vm.$set(_vm.registration, \"gender\", $$v)},expression:\"registration.gender\"}})],1),_vm._v(\" \"),(_vm.otherRegistrations.length > 0)?_c('div',{staticClass:\"form-group\"},[_c('span',{staticClass:\"d-block mb-2 font-size-sm\"},[_vm._v(\"Syskon\")]),_vm._v(\" \"),_c('checkbox-input',{attrs:{\"help-label\":\"Ange om personen är syskon med någon av de övriga deltagarna som är registrerade på ditt konto.\",\"variant\":\"primary\",\"lg\":\"\",\"block\":\"\"},model:{value:(_vm.registration.isSibling),callback:function ($$v) {_vm.$set(_vm.registration, \"isSibling\", $$v)},expression:\"registration.isSibling\"}},[_vm._v(\"\\n Deltagaren är syskon med\\n \"),_vm._v(\" \"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.arrayToSentence(_vm.siblings.map(function (reg) { return (\"\" + (reg.firstName) + \"\"); })))}})])],1):_vm._e(),_vm._v(\" \"),_c('custom-input',{attrs:{\"formatter\":function (v) { return v.toUpperCase(); },\"block\":\"\",\"name\":\"promocode\",\"label\":\"Kampanjkod (valfritt)\",\"placeholder\":\"Ingen kampanjkod\",\"invalid-feedback\":\"Kampanjkoden kan inte appliceras på dina val eller har löpt ut.\",\"state\":_vm.invalidPromoCode ? false : undefined},on:{\"input\":function($event){_vm.invalidPromoCode = false}},model:{value:(_vm.cartItem.promoCode),callback:function ($$v) {_vm.$set(_vm.cartItem, \"promoCode\", $$v)},expression:\"cartItem.promoCode\"}}),_vm._v(\" \"),_c('form-wizard-next-button')],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component, Inject } from 'vue-property-decorator';\nimport { getModule } from 'vuex-module-decorators';\n\nimport registrationsQuery from '@/graphql/queries/registrations.graphql';\nimport { Registration } from '@/store/models/orderables/registration/Registration.model';\nimport { Cart } from '@/store/modules/Cart';\nimport { CartItem } from '@/store/models/CartItem.model';\n\n@Component({\n apollo: {\n user: {\n query: registrationsQuery,\n result({ data }: { data: GQL.RegistrationsQuery }) {\n this.previousRegistrations = data.user!.registrations!;\n },\n },\n },\n})\nexport default class RegistrationInfoStep extends Vue {\n /**\n * Inject from parent page component\n */\n @Inject()\n cartItem!: CartItem;\n\n previousRegistrations: GQL.Registration[] = [];\n error = false;\n invalidPromoCode = false;\n\n genderOptions = [\n { text: 'Kille', value: 'male' },\n { text: 'Tjej', value: 'female' },\n ];\n\n created() {\n this.$on('invalid-promocode', () => {\n this.invalidPromoCode = true;\n });\n }\n\n mounted() {\n if (!this.registration.city) {\n this.registration.city = this.$route.params.city;\n this.$forceUpdate();\n }\n }\n\n get registration() {\n return this.cartItem.orderable;\n }\n\n get cart() {\n return getModule(Cart);\n }\n\n /**\n * Get other registrations in cart + other user registrations\n */\n get otherRegistrations() {\n const { cart, registration } = this;\n\n const otherCartRegistrations = cart\n .articlesByOrderableType(Registration)\n .filter(a => !registration.cartItem || a.id !== registration.cartItem.id)\n .map(a => a.orderable as Registration);\n\n const otherUserRegistrations = this.previousRegistrations;\n return [\n ...otherUserRegistrations,\n ...otherCartRegistrations,\n ];\n }\n\n get siblings() {\n return this.otherRegistrations\n // Group registrations of same person\n .map(p => ({ ...p, $id: [p.firstName, p.lastName, p.birthday].join('/') }))\n .filter((name, index, all) => all.findIndex(p => p.$id === name.$id) === index);\n }\n\n /**\n * Convert array to sentence\n */\n arrayToSentence(arr: string[]) {\n if (arr.length === 1)\n return arr[0];\n\n const last = arr.pop();\n return arr.join(', ') + ' eller ' + last;\n }\n\n /**\n * Validate step\n */\n validate() {\n const form = this.$refs.form as HTMLFormElement;\n return form.checkValidity();\n }\n\n onValidationError() {\n this.error = true;\n }\n\n onLeave() {\n this.error = false;\n }\n\n formatBirthday() {\n this.registration.formattedBirthday = this.registration.formattedBirthday.replace(/^([0-9]{4}).*([0-9]{2}).*([0-9]{2})$/, '$1 - $2 - $3');\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./RegistrationInfoStep.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./RegistrationInfoStep.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RegistrationInfoStep.vue?vue&type=template&id=990d37a0&\"\nimport script from \"./RegistrationInfoStep.ts?vue&type=script&lang=ts&\"\nexport * from \"./RegistrationInfoStep.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form-wizard-step',{attrs:{\"title\":\"Välj sport och vecka\"},on:{\"enter\":_vm.onEnter},scopedSlots:_vm._u([{key:\"default\",fn:function(wizardStep){return [(_vm.loading)?_c('loading'):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.loading),expression:\"!loading\"}]},[(_vm.editMode && _vm.oldTimetableIsRelevant)?[_c('info-box',{attrs:{\"title\":\"Information vid omreservation\",\"variant\":\"warning\"}},[_vm._v(\"\\n Om du vill göra ändringar i val av sport eller vecka så kommer vi att skapa en ny reservation åt dig.\\n Din gamla reservation kommer då automatiskt att tas bort.\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"mb-3\"},[_c('h5',[_vm._v(\"Nuvarande reservation\")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.currentCity.name)+\": \"+_vm._s(_vm.selectedTimetable))]),_vm._v(\" -\\n \"),(_vm.registration.isReserve)?_c('span',{staticClass:\"font-weight-bold text-danger\"},[_vm._v(\"Reservplats\")]):_c('span',{staticClass:\"font-weight-bold text-success\"},[_vm._v(\"Reserverad plats\")])]),_vm._v(\" \"),_c('checkbox-input',{attrs:{\"variant\":\"primary\",\"lg\":\"\",\"block\":\"\"},model:{value:(_vm.showList),callback:function ($$v) {_vm.showList=$$v},expression:\"showList\"}},[_vm._v(\"\\n Visa lista på tillgängliga sporter och veckor\\n \")])]:_vm._e(),_vm._v(\" \"),(wizardStep.isActive)?_c('available-timetables-list',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showTimetablesList),expression:\"showTimetablesList\"}],attrs:{\"registration\":_vm.registration},on:{\"input\":_vm.onTimetableSelected,\"ready\":function($event){_vm.loading = false}},model:{value:(_vm.selectedTimetable),callback:function ($$v) {_vm.selectedTimetable=$$v},expression:\"selectedTimetable\"}}):_vm._e(),_vm._v(\" \"),(_vm.editMode && _vm.selectedTimetable)?_c('form-wizard-next-button',{on:{\"click\":function($event){_vm.loading = true}}},[_vm._v(\"\\n Behåll reservation och fortsätt\\n \")]):_vm._e()],2)]}}])})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue, Inject } from 'vue-property-decorator';\nimport { getModule } from 'vuex-module-decorators';\n\nimport { Timetable } from '@/store/models/orderables/registration/Timetable.model';\nimport { Registration } from '@/store/models/orderables/registration/Registration.model';\nimport { Cart } from '@/store/modules/Cart';\nimport { Site } from '@/store/modules/Site';\nimport { CartItem } from '@/store/models/CartItem.model';\n\n@Component\nexport default class SportsWeekStep extends Vue {\n /**\n * Inject from parent page component\n */\n @Inject()\n cartItem!: CartItem;\n\n /**\n * Currently selected seat reservation\n */\n selectedTimetable: Timetable | null = null;\n\n /**\n * Inject from FormWizard\n */\n @Inject()\n editMode!: boolean;\n\n loading = true;\n showList = false;\n\n get registration() {\n return this.cartItem.orderable;\n }\n\n get currentCity() {\n return getModule(Site).cityById(this.registration.cityId)!;\n }\n\n // Toggle seat list visibility\n get showTimetablesList() {\n return this.showList || !this.editMode || !this.oldTimetableIsRelevant;\n }\n\n /**\n * Check if timetable should be invalidated\n */\n get oldTimetableIsRelevant() {\n const isRelevant = getModule(Cart).articles\n .some(a => (\n a.orderable instanceof Registration &&\n a.orderable.id === this.registration.id &&\n // If changed gender, old seat is probably not so relevant\n a.orderable.gender === this.registration.gender\n ));\n\n if (!isRelevant)\n this.selectedTimetable = null;\n\n return isRelevant && this.selectedTimetable;\n }\n\n onEnter() {\n this.selectedTimetable = this.registration.timetable;\n this.loading = true;\n }\n\n onTimetableSelected() {\n if (!this.selectedTimetable)\n return;\n\n this.loading = true;\n this.$emit('seat-selected', this.selectedTimetable);\n }\n}\n","import mod from \"-!../../../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./SportsWeekStep.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./SportsWeekStep.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SportsWeekStep.vue?vue&type=template&id=08a68cc8&\"\nimport script from \"./SportsWeekStep.ts?vue&type=script&lang=ts&\"\nexport * from \"./SportsWeekStep.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form-wizard-step',{staticClass:\"supplement-health\",attrs:{\"title\":\"Deltagarens hälsa\",\"validate\":_vm.validate,\"before-leave\":_vm.onBeforeLeave},on:{\"error\":_vm.onValidationError,\"leave\":_vm.onLeave}},[_c('form',{ref:\"form\",class:{ 'was-validated': _vm.error }},[_c('radio-group',{attrs:{\"label\":\"Har deltagaren matallergi och/eller specialkost?\",\"variant\":\"primary\",\"lg\":\"\",\"options\":_vm.yesNoOptions,\"state\":_vm.hasFoodAllergyInvalid ? false : null,\"required\":\"\"},model:{value:(_vm.hasFoodAllergy),callback:function ($$v) {_vm.hasFoodAllergy=$$v},expression:\"hasFoodAllergy\"}}),_vm._v(\" \"),(_vm.hasFoodAllergy)?_c('fieldset',[_c('legend',[_vm._v(\"Allergier eller specialkost\")]),_vm._v(\" \"),_vm._l((_vm.registration.details.foodAllergyListRaw),function(allergy,index){return _c('radio-group',{key:index,attrs:{\"label\":allergy.name,\"options\":_vm.yesNoOptions,\"variant\":\"primary\"},model:{value:(allergy.value),callback:function ($$v) {_vm.$set(allergy, \"value\", $$v)},expression:\"allergy.value\"}})}),_vm._v(\" \"),_c('custom-input',{attrs:{\"label\":\"Övriga matallergier eller specialkost\",\"variant\":\"primary\",\"placeholder\":\"Ange eventuell allergi/specialkost som inte nämns ovan...\",\"lg\":\"\"},model:{value:(_vm.registration.details.foodAllergyDescription),callback:function ($$v) {_vm.$set(_vm.registration.details, \"foodAllergyDescription\", $$v)},expression:\"registration.details.foodAllergyDescription\"}}),_vm._v(\" \"),_c('div',{staticClass:\"alert alert-info font-size-sm\"},[_c('strong',[_vm._v(\"Är ditt barn känslig för viss mat?\")]),_vm._v(\" \"),_c('p',{staticClass:\"mb-0\"},[_vm._v(\"\\n Vi gör alltid vårt bästa för att anpassa maten efter de kostpreferenser som anges.\\n Det kan dock vara utmanande att tillgodose alla önskemål och vi kan därför inte garantera att\\n ditt barn får exakt den mat som den gillar.\\n Tack för din förståelse!\\n \")])])],2):_vm._e(),_vm._v(\" \"),_c('radio-group',{attrs:{\"label\":\"Har deltagaren övrig allergi, sjukdom eller diagnos som är bra att känna till?\",\"variant\":\"primary\",\"lg\":\"\",\"options\":_vm.yesNoOptions,\"required\":\"\"},model:{value:(_vm.hasDisorder),callback:function ($$v) {_vm.hasDisorder=$$v},expression:\"hasDisorder\"}}),_vm._v(\" \"),(_vm.hasDisorder)?_c('custom-input',{attrs:{\"label\":\"Beskriv övrig allergi, sjukdom eller diagnos\",\"variant\":\"primary\",\"required\":_vm.hasDisorder,\"lg\":\"\",\"autofocus\":\"\"},model:{value:(_vm.registration.details.disorderDescription),callback:function ($$v) {_vm.$set(_vm.registration.details, \"disorderDescription\", $$v)},expression:\"registration.details.disorderDescription\"}}):_vm._e(),_vm._v(\" \"),_c('radio-group',{attrs:{\"label\":\"Tar deltagaren några mediciner som är bra att känna till?\",\"variant\":\"primary\",\"lg\":\"\",\"options\":_vm.yesNoOptions,\"required\":\"\"},model:{value:(_vm.hasMedication),callback:function ($$v) {_vm.hasMedication=$$v},expression:\"hasMedication\"}}),_vm._v(\" \"),(_vm.hasMedication)?_c('custom-input',{attrs:{\"label\":\"Mediciner som intas innan och/eller under lägervistelse\",\"variant\":\"primary\",\"required\":_vm.hasMedication,\"lg\":\"\",\"autofocus\":\"\"},model:{value:(_vm.registration.details.medicationDescription),callback:function ($$v) {_vm.$set(_vm.registration.details, \"medicationDescription\", $$v)},expression:\"registration.details.medicationDescription\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasDisorder || _vm.hasMedication)?_c('div',{staticClass:\"alert alert-info font-size-sm\"},[_c('strong',[_vm._v(\"Behöver ditt barn extra stöttning?\")]),_vm._v(\" \"),_c('p',{staticClass:\"mb-0\"},[_vm._v(\"\\n Vi gör alltid vårt bästa för att anpassa aktiviteter och rutiner efter deltagarens behov.\\n Ibland kan ledare ha mycket att göra och det är därför viktigt att ditt barn kan sköta medicinering och\\n rutiner på egen hand.\\n Om du känner dig osäker, kontakta oss gärna för att diskutera möjligheter.\\n \")])]):_vm._e(),_vm._v(\" \"),_c('form-wizard-next-button')],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HealthStep.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./HealthStep.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./HealthStep.vue?vue&type=template&id=7cccbb66&\"\nimport script from \"./HealthStep.vue?vue&type=script&lang=ts&\"\nexport * from \"./HealthStep.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form-wizard-step',{attrs:{\"title\":\"Övrig information\",\"before-leave\":_vm.onBeforeLeave}},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"for\":\"exampleFormControlTextarea1\"}},[_vm._v(\"Övrig information (valfritt)\")]),_vm._v(\" \"),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.registration.details.otherInfo),expression:\"registration.details.otherInfo\"}],staticClass:\"form-control\",attrs:{\"id\":\"exampleFormControlTextarea1\",\"rows\":\"3\"},domProps:{\"value\":(_vm.registration.details.otherInfo)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.$set(_vm.registration.details, \"otherInfo\", $event.target.value)}}}),_vm._v(\" \"),_c('small',{staticClass:\"text-muted\"},[_vm._v(\"Finns det något mer vi behöver veta om deltagaren eller något som du vill\\n förmedla?\")])]),_vm._v(\" \"),_c('form-wizard-next-button',[_vm._v(\"Slutför\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n Finns det något mer vi behöver veta om deltagaren eller något som du vill\n förmedla?\n
\n Slutför\n \n\n\n\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OtherInfoStep.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./OtherInfoStep.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./OtherInfoStep.vue?vue&type=template&id=24fac9a0&\"\nimport script from \"./OtherInfoStep.vue?vue&type=script&lang=ts&\"\nexport * from \"./OtherInfoStep.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form-wizard-step',{attrs:{\"title\":\"Kontaktuppgifter\",\"validate\":_vm.validate,\"before-leave\":_vm.onBeforeLeave},on:{\"error\":_vm.onValidationError,\"leave\":_vm.onLeave}},[_c('form',{ref:\"form\",class:{ 'was-validated': _vm.error }},[_c('custom-input',{attrs:{\"id\":\"streetAddress\",\"label\":\"Adress\",\"autocomplete\":\"address-line1\",\"required\":\"\",\"autofocus\":\"\"},model:{value:(_vm.registration.details.address.street),callback:function ($$v) {_vm.$set(_vm.registration.details.address, \"street\", $$v)},expression:\"registration.details.address.street\"}}),_vm._v(\" \"),_c('custom-input',{directives:[{name:\"mask\",rawName:\"v-mask\",value:('### ##'),expression:\"'### ##'\"}],attrs:{\"id\":\"postalCode\",\"label\":\"Postnummer\",\"autocomplete\":\"postal-code\",\"required\":\"\"},model:{value:(_vm.registration.details.address.zipcode),callback:function ($$v) {_vm.$set(_vm.registration.details.address, \"zipcode\", $$v)},expression:\"registration.details.address.zipcode\"}}),_vm._v(\" \"),_c('custom-input',{attrs:{\"id\":\"city\",\"label\":\"Stad\",\"autocomplete\":\"address-level2\",\"required\":\"\"},model:{value:(_vm.registration.details.address.city),callback:function ($$v) {_vm.$set(_vm.registration.details.address, \"city\", $$v)},expression:\"registration.details.address.city\"}}),_vm._v(\" \"),_c('country-select',{attrs:{\"id\":\"country\",\"label\":\"Land\",\"placeholder\":\"Välj ett land\",\"required\":\"\"},model:{value:(_vm.registration.details.address.country),callback:function ($$v) {_vm.$set(_vm.registration.details.address, \"country\", $$v)},expression:\"registration.details.address.country\"}}),_vm._v(\" \"),_c('custom-input',{attrs:{\"id\":\"mobilePhoneNumber\",\"label\":\"Mobilnummer till deltagare\",\"autocomplete\":\"tel\",\"required\":\"\"},model:{value:(_vm.registration.details.phone),callback:function ($$v) {_vm.$set(_vm.registration.details, \"phone\", $$v)},expression:\"registration.details.phone\"}}),_vm._v(\" \"),_c('checkbox-input',{attrs:{\"variant\":\"primary\",\"lg\":\"\",\"block\":\"\"},model:{value:(_vm.registration.details.previousEnrollment),callback:function ($$v) {_vm.$set(_vm.registration.details, \"previousEnrollment\", $$v)},expression:\"registration.details.previousEnrollment\"}},[_vm._v(\"\\n Deltagaren har deltagit förut på Stadium Sports Camp.\\n \")]),_vm._v(\" \"),_c('form-wizard-next-button')],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegistrationAddressStep.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegistrationAddressStep.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RegistrationAddressStep.vue?vue&type=template&id=165fa87c&\"\nimport script from \"./RegistrationAddressStep.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegistrationAddressStep.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form-wizard-step',{attrs:{\"title\":\"Val av sport\",\"validate\":_vm.validate,\"before-leave\":_vm.onBeforeLeave},on:{\"error\":_vm.onValidationError,\"leave\":_vm.onLeave}},[_c('form',{ref:\"form\",class:{ 'was-validated': _vm.error }},[_c('div',{staticClass:\"mb-4\"},[_c('strong',{staticClass:\"font-size-sm\"},[_vm._v(\"Vald sport\")]),_c('br'),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.registration.timetable))])]),_vm._v(\" \"),(_vm.positionsExistsOnSport)?_c('custom-select',{attrs:{\"id\":\"positionPreferences\",\"label\":\"Önskemål om position/inriktning\",\"grouped-options\":_vm.sportPositions,\"required\":\"\"},model:{value:(_vm.registration.details.sportPosition),callback:function ($$v) {_vm.$set(_vm.registration.details, \"sportPosition\", $$v)},expression:\"registration.details.sportPosition\"}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"alert alert-info font-size-sm\"},[_c('strong',[_vm._v(\"Varför behöver ni de här uppgifterna?\")]),_vm._v(\" \"),_c('p',{staticClass:\"mb-0\"},[_vm._v(\"\\n Genom att ange önskad position/inriktning hjälper du oss att planera grupperna så att ditt barn får en så bra\\n upplevelse som möjligt på campet. Fråga ditt barn om du känner dig osäker.\\n \")])]),_vm._v(\" \"),_c('custom-select',{attrs:{\"id\":\"shirtSize\",\"label\":\"T-shirtstorlek\",\"options\":_vm.tshirtSizes,\"required\":\"\"},model:{value:(_vm.registration.details.tshirtId),callback:function ($$v) {_vm.$set(_vm.registration.details, \"tshirtId\", $$v)},expression:\"registration.details.tshirtId\"}}),_vm._v(\" \"),_c('custom-input',{attrs:{\"id\":\"sportsClub\",\"label\":\"Klubb/förening\",\"help-label\":\"Utövar deltagaren den valda sporten i någon klubb eller förening?\",\"optional\":\"\",\"autocomplete\":\"off\"},model:{value:(_vm.registration.details.club),callback:function ($$v) {_vm.$set(_vm.registration.details, \"club\", $$v)},expression:\"registration.details.club\"}}),_vm._v(\" \"),_c('form-wizard-next-button')],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SportDetailsStep.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SportDetailsStep.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SportDetailsStep.vue?vue&type=template&id=42749977&\"\nimport script from \"./SportDetailsStep.vue?vue&type=script&lang=ts&\"\nexport * from \"./SportDetailsStep.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('form-wizard-step',{attrs:{\"title\":\"Information om vistelsen\",\"validate\":_vm.validate,\"before-leave\":_vm.onBeforeLeave},on:{\"error\":_vm.onValidationError,\"leave\":_vm.onLeave}},[_c('form',{ref:\"form\",class:{ 'was-validated': _vm.error }},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-6 pt-2\"},[_c('h5',[_vm._v(\"Kontaktperson 1\")]),_vm._v(\" \"),_c('custom-input',{attrs:{\"id\":\"contactPerson\",\"label\":\"För- och efternamn\",\"autocomplete\":\"off\",\"required\":\"\"},model:{value:(_vm.registration.details.relativeName),callback:function ($$v) {_vm.$set(_vm.registration.details, \"relativeName\", $$v)},expression:\"registration.details.relativeName\"}}),_vm._v(\" \"),_c('custom-input',{attrs:{\"id\":\"contactPersonRelation\",\"label\":\"Personens relation till deltagaren\",\"help-label\":\"Exempelvis mamma, målsman eller farbror.\",\"autocomplete\":\"off\",\"required\":\"\"},model:{value:(_vm.registration.details.relativeRelation),callback:function ($$v) {_vm.$set(_vm.registration.details, \"relativeRelation\", $$v)},expression:\"registration.details.relativeRelation\"}}),_vm._v(\" \"),_c('custom-input',{attrs:{\"id\":\"contactPersonPhone\",\"label\":\"Telefonnummer\",\"autocomplete\":\"off\",\"required\":\"\"},model:{value:(_vm.registration.details.relativePhone),callback:function ($$v) {_vm.$set(_vm.registration.details, \"relativePhone\", $$v)},expression:\"registration.details.relativePhone\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"col-md-6 pt-2\"},[_c('h5',[_vm._v(\"Kontaktperson 2 (frivillig)\")]),_vm._v(\" \"),_c('custom-input',{attrs:{\"id\":\"contactPerson\",\"label\":\"För- och efternamn\",\"autocomplete\":\"off\"},model:{value:(_vm.registration.details.relative2Name),callback:function ($$v) {_vm.$set(_vm.registration.details, \"relative2Name\", $$v)},expression:\"registration.details.relative2Name\"}}),_vm._v(\" \"),_c('custom-input',{attrs:{\"id\":\"contactPersonRelation\",\"label\":\"Personens relation till deltagaren\",\"help-label\":\"Exempelvis mamma, målsman eller farbror.\",\"autocomplete\":\"off\"},model:{value:(_vm.registration.details.relative2Relation),callback:function ($$v) {_vm.$set(_vm.registration.details, \"relative2Relation\", $$v)},expression:\"registration.details.relative2Relation\"}}),_vm._v(\" \"),_c('custom-input',{attrs:{\"id\":\"contactPersonPhone\",\"label\":\"Telefonnummer\"},model:{value:(_vm.registration.details.relative2Phone),callback:function ($$v) {_vm.$set(_vm.registration.details, \"relative2Phone\", $$v)},expression:\"registration.details.relative2Phone\"}})],1)]),_vm._v(\" \"),_c('hr'),_vm._v(\" \"),_c('custom-input',{attrs:{\"id\":\"registrationFriends\",\"label\":\"Kompisar som deltagaren vill träna med inom samma idrott\",\"help-label\":\"Max tre (3) stycken. Ange både för- och efternamn. Separera namn med kommatecken.\",\"autocomplete\":\"off\",\"optional\":\"\"},model:{value:(_vm.registration.details.friends),callback:function ($$v) {_vm.$set(_vm.registration.details, \"friends\", $$v)},expression:\"registration.details.friends\"}}),_vm._v(\" \"),_c('div',{staticClass:\"pt-2\"},[_c('h6',{staticClass:\"font-size-sm\"},[_vm._v(\"\\n Godkännande av fotografering\\n \")]),_vm._v(\" \"),_c('p',{staticClass:\"mb-3 font-size-xs\"},[_vm._v(\"\\n Jag godkänner att mitt barn fotograferas under Stadium Sports Camp.\\n \"),_c('a',{staticClass:\"font-weight-bold\",attrs:{\"target\":\"_blank\",\"href\":\"/villkor-fotografering/fotovillkor\"}},[_vm._v(\"Läs fullständiga villkor\\n här\")]),_vm._v(\".\\n \")]),_vm._v(\" \"),_c('radio-group',{attrs:{\"variant\":\"primary\",\"lg\":\"\",\"required\":\"\",\"options\":_vm.allowPhotoOptions},model:{value:(_vm.registration.details.allowPhoto),callback:function ($$v) {_vm.$set(_vm.registration.details, \"allowPhoto\", $$v)},expression:\"registration.details.allowPhoto\"}})],1),_vm._v(\" \"),_c('form-wizard-next-button')],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n\n\n\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VisitDetailsStep.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VisitDetailsStep.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VisitDetailsStep.vue?vue&type=template&id=6d85c5da&\"\nimport script from \"./VisitDetailsStep.vue?vue&type=script&lang=ts&\"\nexport * from \"./VisitDetailsStep.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.show)?_c('div',[_vm._t(\"default\")],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n
\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IE11Render.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IE11Render.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IE11Render.vue?vue&type=template&id=45bff5bf&\"\nimport script from \"./IE11Render.vue?vue&type=script&lang=ts&\"\nexport * from \"./IE11Render.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"border p-3 mb-4\",class:(\"border-\" + _vm.variant)},[_c('h6',{class:(\"text-\" + _vm.variant)},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")]),_vm._v(\" \"),_c('p',{staticClass:\"mb-0 font-size-sm\"},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n
\n {{ title }}\n
\n
\n \n
\n
\n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoBox.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./InfoBox.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./InfoBox.vue?vue&type=template&id=4f588df6&\"\nimport script from \"./InfoBox.vue?vue&type=script&lang=ts&\"\nexport * from \"./InfoBox.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"spinner\"})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n\n\n\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Loading.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Loading.vue?vue&type=template&id=2dd589d2&\"\nimport script from \"./Loading.vue?vue&type=script&lang=ts&\"\nexport * from \"./Loading.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Loading.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card border border-light mb-2\",class:{ 'bg-light': _vm.completed }},[_c('div',{staticClass:\"d-flex p-3 flex-wrap justify-content-between align-items-sm-center\"},[_c('div',[_c('h5',{staticClass:\"mb-1\"},[_c('span',{staticClass:\"mr-1\",domProps:{\"textContent\":_vm._s(_vm.registration.fullname)}}),_vm._v(\" \"),_c('span',{staticClass:\"text-muted d-inline-block\",domProps:{\"textContent\":_vm._s(_vm.registration.birthday)}})]),_vm._v(\" \"),_c('strong',{staticClass:\"d-block font-size-sm text-muted\",domProps:{\"textContent\":_vm._s(_vm.registration.timetable.campType)}}),_vm._v(\" \"),_c('span',{staticClass:\"font-size-sm\"},[(_vm.registration.isReserve)?_c('strong',{staticClass:\"text-danger d-inline-block mr-1\"},[_vm._v(\"Reservplats\")]):_vm._e(),_vm._v(\" \"),(_vm.registration.reservePaymentPending)?_c('strong',{staticClass:\"d-block text-primary d-inline-block mr-1\"},[_vm._v(\"\\n Erbjuden plats (gäller till \"+_vm._s(_vm.validUntil)+\")\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.registration.timetable)?_c('span',{staticClass:\"d-block d-lg-inline mb-2 mb-lg-0\"},[_vm._v(_vm._s(_vm.registration.timetable.extendedDescription))]):_vm._e()])]),_vm._v(\" \"),_c('div',{staticClass:\"mb-sm-2\"},[_vm._t(\"default\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n
\n
\n
\n \n \n
\n \n \n Reservplats\n \n Erbjuden plats (gäller till {{ validUntil }})\n \n {{\n registration.timetable.extendedDescription }}\n \n \n
\n \n
\n
\n
\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegistrationCard.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./RegistrationCard.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RegistrationCard.vue?vue&type=template&id=4e3ac448&\"\nimport script from \"./RegistrationCard.vue?vue&type=script&lang=ts&\"\nexport * from \"./RegistrationCard.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.label)?_c('label',{staticClass:\"font-size-sm\",class:{ 'font-weight-bold': _vm.important },attrs:{\"for\":_vm.$attrs.id || _vm.cid}},[_vm._v(_vm._s(_vm.label))]):_vm._e(),_vm._v(\" \"),_c('label',{staticClass:\"custom-box-checkbox\",class:Object.assign({}, _vm.variantClasses,\n _vm.sizingClasses)},[_c('input',_vm._g(_vm._b({class:_vm.stateClasses,attrs:{\"name\":_vm.cid,\"type\":\"checkbox\"},domProps:{\"value\":_vm.value,\"checked\":_vm.checked},on:{\"change\":function($event){return _vm.$emit('change', $event.target.checked)}}},'input',_vm.$attrs,false),_vm.listeners)),_vm._v(\" \"),_c('span',{staticClass:\"custom-label\"},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('span',{staticClass:\"checkbox-input\"})]),_vm._v(\" \"),_c('input',_vm._b({staticClass:\"custom-control-input d-none\",attrs:{\"name\":(_vm.cid + \"-hidden\"),\"type\":\"checkbox\"},domProps:{\"checked\":_vm.checked}},'input',_vm.$attrs,false)),_vm._v(\" \"),(_vm.invalidFeedback)?_c('div',{staticClass:\"invalid-feedback mt-0\"},[_vm._v(\"\\n \"+_vm._s(_vm.invalidFeedback)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.helpLabel)?_c('small',{staticClass:\"form-text text-muted mt-0\"},[_vm._v(_vm._s(_vm.helpLabel))]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component, Prop, Model } from 'vue-property-decorator';\n\nimport { VariantMixin, SizingMixin, StateMixin } from '@/mixins/ClassHelperMixins';\n\n@Component({\n inheritAttrs: false,\n mixins: [\n VariantMixin('custom-box-checkbox'),\n SizingMixin('custom-box-checkbox'),\n StateMixin,\n ],\n})\nexport default class CheckboxInput extends Vue {\n /**\n * Checkbox model\n */\n @Model('change')\n @Prop()\n checked!: boolean;\n\n /**\n * Checkbox checked value\n */\n @Prop({ default: true })\n value!: any;\n\n /**\n * Input label\n */\n @Prop(String)\n label!: string;\n\n /**\n * Input label\n */\n @Prop({ type: Boolean, default: false })\n important!: boolean;\n\n /**\n * Bottom help text\n */\n @Prop(String)\n helpLabel!: string;\n\n /**\n * Message to display on validation error\n */\n @Prop(String)\n invalidFeedback!: string;\n\n /**\n * Unique component id\n */\n get cid() {\n // @ts-ignore\n return this.$attrs.name || `checkbox-input-${this._uid}`;\n }\n\n /**\n * Get all listeners except change\n */\n get listeners() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { change, ...other } = this.$listeners;\n return other;\n }\n}\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./CheckboxInput.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./CheckboxInput.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CheckboxInput.vue?vue&type=template&id=80ae5188&\"\nimport script from \"./CheckboxInput.ts?vue&type=script&lang=ts&\"\nexport * from \"./CheckboxInput.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('custom-select',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.options.length > 1),expression:\"options.length > 1\"}],attrs:{\"value\":_vm.value,\"options\":_vm.options,\"required\":\"\",\"label\":\"Stad\",\"name\":\"city\",\"placeholder\":\"Välj en stad\"},on:{\"input\":function (v) { return _vm.$emit('input', v); }}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n 1\" :value=\"value\" :options=\"options\" required label=\"Stad\" name=\"city\"\n placeholder=\"Välj en stad\" @input=\"v => $emit('input', v)\" />\n\n\n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CitiesSelect.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CitiesSelect.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CitiesSelect.vue?vue&type=template&id=6246c3a4&\"\nimport script from \"./CitiesSelect.vue?vue&type=script&lang=ts&\"\nexport * from \"./CitiesSelect.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('custom-select',_vm._g(_vm._b({attrs:{\"value\":_vm.value,\"options\":_vm.countries},on:{\"input\":function (v) { return _vm.$emit('input', v); }}},'custom-select',_vm.$attrs,false),_vm.listeners))}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop } from 'vue-property-decorator';\nimport Vue from 'vue';\nimport * as countries from 'i18n-iso-countries';\nimport svLocale from 'i18n-iso-countries/langs/sv.json';\n\nimport { CustomSelectOption } from '../CustomSelect/CustomSelect';\n\n// Use swedish locale\ncountries.registerLocale(svLocale);\n\n@Component\nexport default class CountrySelect extends Vue {\n /**\n * Input model\n */\n @Prop()\n value!: string;\n\n /**\n * Given countries will be placed first\n */\n @Prop({ type: Array, default: () => ['SE', 'DK', 'FI', 'NO'] })\n priorityCountries!: string[];\n\n /**\n * List of countries\n */\n countries: CustomSelectOption[] = [];\n\n created() {\n // Create list of countries\n const countryObj = countries.getNames('sv');\n this.countries = Object.entries(countryObj)\n .map(([value, text]) => ({\n value,\n text: Array.isArray(text) ? text[0] : text,\n }))\n .sort((a, b) => {\n // Place priority countries first\n let sortRes = this.getPriorityIndex(a.value) - this.getPriorityIndex(b.value);\n\n // Fallback to country name order\n if (sortRes === 0)\n sortRes = a.text.localeCompare(b.text);\n\n return sortRes;\n });\n\n // Add separator after priority countries\n if (this.priorityCountries.length > 0)\n this.countries.splice(this.priorityCountries.length, 0, {\n text: '',\n value: null,\n disabled: true,\n });\n }\n\n getPriorityIndex(code: string) {\n let index = this.priorityCountries.indexOf(code);\n if (index < 0)\n index = this.priorityCountries.length;\n\n return index;\n };\n\n /**\n * Get all listeners except input\n */\n get listeners() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { input, ...other } = this.$listeners;\n return other;\n }\n}\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./CountrySelect.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./CountrySelect.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CountrySelect.vue?vue&type=template&id=f512e5c0&\"\nimport script from \"./CountrySelect.ts?vue&type=script&lang=ts&\"\nexport * from \"./CountrySelect.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-group\"},[(_vm.label)?_c('label',{staticClass:\"font-size-sm\",attrs:{\"for\":_vm.$attrs.id || _vm.cid}},[_vm._v(\"\\n \"+_vm._s(_vm.label)+\"\\n \"),(_vm.optional)?_c('span',[_vm._v(\"(valfritt)\")]):_vm._e()]):_vm._e(),_vm._v(\" \"),_c('input',_vm._g(_vm._b({ref:\"input\",staticClass:\"form-control\",class:Object.assign({}, _vm.variantClasses,\n _vm.stateClasses,\n _vm.inputClassObject),attrs:{\"id\":_vm.$attrs.id || _vm.cid,\"type\":_vm.type,\"name\":_vm.cid},domProps:{\"value\":_vm.value},on:{\"input\":function($event){_vm.$emit('input', _vm.formatter($event.target.value))},\"keypress\":_vm.checkValidCharacters,\"paste\":_vm.checkValidCharacters}},'input',_vm.$attrs,false),_vm.listeners)),_vm._v(\" \"),(_vm.invalidFeedback)?_c('div',{staticClass:\"invalid-feedback\"},[_vm._v(\"\\n \"+_vm._s(_vm.invalidFeedback)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._v(\"\\n \"+_vm._s(_vm.helpLabel)+\"\\n \"),_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component, Prop } from 'vue-property-decorator';\n\nimport { VariantMixin, StateMixin } from '@/mixins/ClassHelperMixins';\n\n@Component({\n inheritAttrs: false,\n mixins: [\n VariantMixin('custom-box-input'),\n StateMixin,\n ],\n})\nexport default class CustomInput extends Vue {\n /**\n * Input model\n */\n @Prop(String)\n value!: string;\n\n /**\n * Custom input type\n */\n @Prop({ type: String, default: 'text' })\n type!: string;\n\n /**\n * Optional formatter function\n */\n @Prop({ type: Function, default: v => v })\n formatter!: (v: string) => string;\n\n /**\n * Input label\n */\n @Prop(String)\n label!: string;\n\n /**\n * Bottom help text\n */\n @Prop(String)\n helpLabel!: string;\n\n /**\n * Message to display on validation error\n */\n @Prop(String)\n invalidFeedback!: string;\n\n /**\n * Whether input is optional\n */\n @Prop(Boolean)\n optional!: boolean;\n\n /**\n * Additional classes to add on input\n */\n @Prop()\n inputClass!: any;\n\n /**\n * Filter input characters\n */\n @Prop(RegExp)\n allowedCharacters?: RegExp;\n\n mounted() {\n // Autofocus if requested\n if (this.$attrs.autofocus !== undefined)\n (this.$refs.input as HTMLInputElement).focus();\n }\n\n /**\n * Unique component id\n */\n get cid() {\n // @ts-ignore\n return this.$attrs.id || `custom-input-${this._uid}`;\n }\n\n get input() {\n return this.$refs.input as HTMLInputElement;\n }\n\n /**\n * Get all listeners except input\n */\n get listeners() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { input, ...other } = this.$listeners;\n return other;\n }\n\n get inputClassObject() {\n const c = this.inputClass;\n\n // If string\n if (typeof c === 'string')\n return { [c]: true };\n\n // If array\n if (Array.isArray(c))\n return c.reduce((list, className) => { list[className] = true }, {});\n\n // If object\n return c;\n }\n\n /**\n * Validate characters from keypress or clipboard paste\n * @param event Keyboard or cliboard event\n */\n checkValidCharacters(event: KeyboardEvent & ClipboardEvent) {\n if (!this.allowedCharacters)\n return true;\n\n let character;\n if (event.type === 'paste' && event.clipboardData)\n character = event.clipboardData.getData('text/plain');\n else\n character = event.key || String.fromCharCode(event.keyCode || event.which);\n\n if (this.allowedCharacters.test(character))\n return true;\n\n event.preventDefault();\n return false;\n }\n}\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./CustomInput.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./CustomInput.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CustomInput.vue?vue&type=template&id=1c623789&\"\nimport script from \"./CustomInput.ts?vue&type=script&lang=ts&\"\nexport * from \"./CustomInput.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-group\"},[(_vm.label)?_c('label',{staticClass:\"font-size-sm\",attrs:{\"for\":_vm.$attrs.id}},[_vm._v(_vm._s(_vm.label))]):_vm._e(),_vm._v(\" \"),_c('select',_vm._g(_vm._b({staticClass:\"custom-select\",class:Object.assign({}, _vm.variantClasses,\n _vm.stateClasses),domProps:{\"value\":_vm.value},on:{\"change\":_vm.onChange}},'select',_vm.$attrs,false),_vm.listeners),[(_vm.placeholder)?_c('option',{attrs:{\"disabled\":\"\",\"value\":\"\"},domProps:{\"selected\":!_vm.value}},[_vm._v(\"\\n \"+_vm._s(_vm.placeholder)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.selectOptions.length > 0)?_vm._l((_vm.selectOptions),function(option,i){return _c('option',{key:i,attrs:{\"disabled\":option.disabled},domProps:{\"value\":option.value,\"selected\":option.value === _vm.value}},[_vm._v(\"\\n \"+_vm._s(option.text)+\"\\n \")])}):_vm._e(),_vm._v(\" \"),(_vm.groupedSelectOptions.length > 0)?_vm._l((_vm.groupedSelectOptions),function(group,j){return _c('optgroup',{key:j,attrs:{\"label\":group.text}},_vm._l((group.options),function(option,index){return _c('option',{key:index,attrs:{\"disabled\":option.disabled},domProps:{\"value\":option.value,\"selected\":option.value === _vm.value}},[_vm._v(\"\\n \"+_vm._s(option.text)+\"\\n \")])}),0)}):_vm._e()],2),_vm._v(\" \"),_c('small',{staticClass:\"form-text text-muted\"},[_vm._t(\"default\")],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component, Prop } from 'vue-property-decorator';\n\nimport { VariantMixin, StateMixin } from '@/mixins/ClassHelperMixins';\n\nexport interface CustomSelectOption {\n text: string;\n value: any;\n disabled?: boolean;\n}\n\nexport interface CustomSelectOptionGroup {\n text: string\n options: (CustomSelectOption | string)[]\n}\n\n@Component({\n inheritAttrs: false,\n mixins: [\n VariantMixin('custom-box-input'),\n StateMixin,\n ],\n})\nexport default class CustomSelect extends Vue {\n /**\n * Input model\n */\n @Prop(String)\n value!: string;\n\n /**\n * Input label\n */\n @Prop(String)\n label!: string;\n\n /**\n * Select options\n */\n @Prop({ type: Array, default: () => [] })\n options!: CustomSelectOption[] | string[];\n\n /**\n * Select options\n */\n @Prop({ type: Array, default: () => [] })\n groupedOptions!: CustomSelectOptionGroup[];\n\n /**\n * Placeholder option text\n */\n @Prop({ type: String, default: 'Välj ett alternativ' })\n placeholder!: string;\n\n // Get all listeners except input\n get listeners() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { input, ...other } = this.$listeners;\n return other;\n }\n\n get selectOptions() {\n return this.options.map(option => this.optionToObject(option));\n }\n\n get groupedSelectOptions() {\n return this.groupedOptions.map(group => ({\n text: group.text,\n options: group.options.map(option => this.optionToObject(option)),\n }));\n }\n\n onChange(e) {\n this.$emit('input', e.target.value);\n this.$emit('change', e.target.value);\n this.$emit('update:state', null);\n }\n\n private optionToObject(option: string | CustomSelectOption) {\n if (typeof option === 'string')\n option = {\n text: option,\n value: option,\n };\n\n return option;\n }\n}\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./CustomSelect.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./CustomSelect.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CustomSelect.vue?vue&type=template&id=b2792086&\"\nimport script from \"./CustomSelect.ts?vue&type=script&lang=ts&\"\nexport * from \"./CustomSelect.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"c-radio-group form-group\"},[(_vm.label)?_c('span',{staticClass:\"d-block mb-2 font-size-sm\"},[_vm._v(_vm._s(_vm.label))]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"form-row\"},_vm._l((_vm.options),function(option,index){return _c('div',{key:index,staticClass:\"col-md-6 d-flex\"},[_c('label',{staticClass:\"custom-box-radio custom-box-radio-block flex-grow-1\",class:Object.assign({}, _vm.variantClasses,\n _vm.sizingClasses,\n {'custom-box-radio--disabled': option.disabled})},[_c('input',_vm._g(_vm._b({class:_vm.stateClasses,attrs:{\"name\":_vm.cid,\"type\":\"radio\",\"disabled\":option.disabled},domProps:{\"value\":option.value,\"checked\":option.value === _vm.value},on:{\"change\":function () { return _vm.$emit('input', option.value); }}},'input',_vm.$attrs,false),_vm.listeners)),_vm._v(\" \"),_c('span',{staticClass:\"custom-label h-100 d-flex flex-column\"},[_vm._t(\"default\",function(){return [_vm._v(\"\\n \"+_vm._s(option.text)+\"\\n \")]},{\"option\":option})],2),_vm._v(\" \"),_c('span',{staticClass:\"radio-input\"})])])}),0),_vm._v(\" \"),_c('input',_vm._b({staticClass:\"custom-control-input d-none\",class:_vm.stateClasses,attrs:{\"name\":_vm.cid,\"type\":\"radio\"}},'input',_vm.$attrs,false)),_vm._v(\" \"),_c('div',{staticClass:\"invalid-feedback mt-0\"},[_vm._v(\"\\n \"+_vm._s(_vm.invalidFeedback)+\"\\n \")]),_vm._v(\" \"),(_vm.helpLabel)?_c('small',{staticClass:\"form-text text-muted mt-0\"},[_vm._v(_vm._s(_vm.helpLabel))]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component, Prop } from 'vue-property-decorator';\n\nimport { VariantMixin, SizingMixin, StateMixin } from '@/mixins/ClassHelperMixins';\n\ninterface Options {\n text: string;\n value: string;\n disabled: boolean;\n}\n\n@Component({\n inheritAttrs: false,\n mixins: [\n VariantMixin('custom-box-radio'),\n SizingMixin('custom-box-radio'),\n StateMixin,\n ],\n})\nexport default class RadioGroup extends Vue {\n /**\n * Radio model\n */\n @Prop()\n value!: any;\n\n /**\n * Radio group options\n */\n @Prop({ default: [] })\n options!: Options[];\n\n /**\n * Radio group label\n */\n @Prop(String)\n label!: string;\n\n /**\n * Bottom help text\n */\n @Prop(String)\n helpLabel!: string;\n\n /**\n * Message to display on validation errors\n */\n @Prop(String)\n invalidFeedback!: string;\n\n /**\n * Unique component id\n */\n get cid() {\n // @ts-ignore\n return this.$attrs.name || `radio-group-${this._uid}`;\n }\n\n /**\n * Get all listeners except input\n */\n get listeners() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { input, ...other } = this.$listeners;\n return other;\n }\n}\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./RadioGroup.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./RadioGroup.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./RadioGroup.vue?vue&type=template&id=2240e512&\"\nimport script from \"./RadioGroup.ts?vue&type=script&lang=ts&\"\nexport * from \"./RadioGroup.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"form-wizard-step card card-box-shadow mb-2\",class:{ 'form-wizard-step--disabled': _vm.isDisabled },attrs:{\"id\":(\"steg-\" + _vm.stepNum)}},[_c('div',{staticClass:\"px-4 py-3 d-flex align-items-center\"},[_c('div',{staticClass:\"form-wizard-step__number\"},[_c('span',{staticClass:\"h5 font-stadium-numbers\"},[_vm._v(_vm._s(_vm.stepNum))])]),_vm._v(\" \"),_c('h4',{staticClass:\"ml-3 my-0\"},[(_vm.isEditable)?[_vm._v(\"\\n \"+_vm._s(_vm.completedTitle() || _vm.title)+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")]],2),_vm._v(\" \"),_c('a',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isEditable),expression:\"isEditable\"}],staticClass:\"text-link-primary ml-auto pt-0\",attrs:{\"role\":\"button\",\"aria-expanded\":_vm.isActive,\"href\":\"#\",\"aria-controls\":_vm.wizardStepId},on:{\"click\":function($event){$event.preventDefault();return _vm.goToStep(_vm.stepNum)}}},[_vm._v(_vm._s(_vm.editLabel))])]),_vm._v(\" \"),_c('div',{ref:\"collapse\",staticClass:\"collapse border-top border-light\",attrs:{\"id\":_vm.wizardStepId,\"data-parent\":(\"#\" + _vm.wizardId)}},[_c('div',{staticClass:\"card-body\"},[_vm._t(\"default\",null,null,{\n isActive: _vm.isActive,\n goToStep: _vm.goToStep,\n nextStep: _vm.nextStep,\n prevStep: _vm.prevStep\n })],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./FormWizardStep.ts?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--8-0!./FormWizardStep.ts?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FormWizardStep.vue?vue&type=template&id=7b0b5755&\"\nimport script from \"./FormWizardStep.ts?vue&type=script&lang=ts&\"\nexport * from \"./FormWizardStep.ts?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import unfetch from '../src/index.mjs';\nif (!self.fetch) self.fetch = unfetch;","export default function (url, options) {\n options = options || {};\n return new Promise(function (resolve, reject) {\n var request = new XMLHttpRequest();\n var _keys = [];\n var all = [];\n var headers = {};\n\n var response = function response() {\n return {\n ok: (request.status / 100 | 0) == 2,\n // 200-299\n statusText: request.statusText,\n status: request.status,\n url: request.responseURL,\n text: function text() {\n return Promise.resolve(request.responseText);\n },\n json: function json() {\n return Promise.resolve(JSON.parse(request.responseText));\n },\n blob: function blob() {\n return Promise.resolve(new Blob([request.response]));\n },\n clone: response,\n headers: {\n keys: function keys() {\n return _keys;\n },\n entries: function entries() {\n return all;\n },\n get: function get(n) {\n return headers[n.toLowerCase()];\n },\n has: function has(n) {\n return n.toLowerCase() in headers;\n }\n }\n };\n };\n\n request.open(options.method || 'get', url, true);\n\n request.onload = function () {\n request.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm, function (m, key, value) {\n _keys.push(key = key.toLowerCase());\n\n all.push([key, value]);\n headers[key] = headers[key] ? \"\".concat(headers[key], \",\").concat(value) : value;\n });\n resolve(response());\n };\n\n request.onerror = reject;\n request.withCredentials = options.credentials == 'include';\n\n for (var i in options.headers) {\n request.setRequestHeader(i, options.headers[i]);\n }\n\n request.send(options.body || null);\n });\n}"],"sourceRoot":""}