{"version":3,"file":"carousel.min.js?v=9b27f94c83253094ce3c","mappings":"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","sources":["webpack://ui-toolkit/./node_modules/lodash/castArray.js","webpack://ui-toolkit/./node_modules/lodash/_Symbol.js","webpack://ui-toolkit/./node_modules/lodash/_apply.js","webpack://ui-toolkit/./node_modules/lodash/_arrayIncludes.js","webpack://ui-toolkit/./node_modules/lodash/_arrayIncludesWith.js","webpack://ui-toolkit/./node_modules/lodash/_arrayMap.js","webpack://ui-toolkit/./node_modules/lodash/_arrayPush.js","webpack://ui-toolkit/./node_modules/lodash/_baseDifference.js","webpack://ui-toolkit/./node_modules/lodash/_baseFlatten.js","webpack://ui-toolkit/./node_modules/lodash/_strictIndexOf.js","webpack://ui-toolkit/./node_modules/lodash/_baseRest.js","webpack://ui-toolkit/./node_modules/lodash/_baseUnary.js","webpack://ui-toolkit/./node_modules/lodash/_isFlattenable.js","webpack://ui-toolkit/./node_modules/lodash/_overRest.js","webpack://ui-toolkit/./node_modules/lodash/identity.js","webpack://ui-toolkit/./node_modules/lodash/difference.js","webpack://ui-toolkit/./node_modules/lodash/stubFalse.js","webpack://ui-toolkit/./node_modules/lodash/isArrayLikeObject.js","webpack://ui-toolkit/./sass/blocks/carousel.js"],"sourcesContent":["var isArray = require('./isArray');\n\n/**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\nfunction castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n}\n\nmodule.exports = castArray;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nmodule.exports = difference;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var $ = require('jquery');\r\nvar _find = require('lodash/find');\r\nvar _difference = require('lodash/difference');\r\nvar Modernizr = require('../../vendors/modernizr.min');\r\nvar WS = require('../../scripts/ws');\r\nrequire('jquery-match-height');\r\n\r\n$(function () {\r\n let $carousel = $(\".ws-carousel:not(.lazyload)\");\r\n let carouselSelector = \".ws-carousel\";\r\n let carouselItemSelector = \".ws-carousel__item\";\r\n\r\n // Carousel Themes\r\n let carouselHeroImageClass = \"ws-carousel--theme_hero-image\";\r\n let carouselHeroSpotlightClass = \"ws-carousel--theme_hero-spotlight\";\r\n let carouselFilmStripClass = \"ws-carousel--theme_film-strip\";\r\n let carouselTestimonialsClass = \"ws-carousel--theme_testimonials\";\r\n let carouselAgentDetailClass = \"ws-carousel--theme_agent-detail\";\r\n\r\n let breakpointMappings = {\r\n xs: 374,\r\n sm: 767,\r\n md: 991,\r\n lg: 1400\r\n };\r\n\r\n let listSelector = '.slick-list';\r\n let trackSelector = '.slick-track';\r\n let isTouchDevice = Modernizr.browsertouch;\r\n let isEnterOrSpace;\r\n let carouselTriggeredManually = false;\r\n\r\n // Logic or checks to perform prior to carousel initialization\r\n function carouselPreInit($targetCarousel) {\r\n let itemCount = $targetCarousel.children(carouselItemSelector).length;\r\n\r\n if ($targetCarousel.data('disabled') === true ||\r\n (itemCount < 2 && !$targetCarousel.hasClass(carouselFilmStripClass)) ||\r\n (itemCount < 1 && $targetCarousel.hasClass(carouselFilmStripClass))) {\r\n return;\r\n }\r\n\r\n carouselInit($targetCarousel);\r\n\r\n }\r\n\r\n // Initialize carousel instance based on theme ($target = carousel element)\r\n var carouselInit = function CarouselInit($target) {\r\n // autoplay defaults to true, autoplayMobile defaults to false\r\n var autoplay = $target.data('autoplay') === undefined ? true : $target.data('autoplay');\r\n var autoplayMobile = !!$target.data('autoplayMobile');\r\n var disableBreakpoint = $target.data('disableAtBreakpoint');\r\n var centerPadding = $target.data('centerPadding') === undefined ? '35px' : $target.data('centerPadding');\r\n var variableWidth = $target.data('variableWidth') === undefined ? true : $target.data('variableWidth');\r\n var arrows = $target.data('arrows') === undefined ? false : $target.data('arrows');\r\n var asNavFor = $target.data('asNavFor') === undefined ? null : $target.data('asNavFor');\r\n\r\n // if the match height plugin is being used to keep heights of elements in\r\n // the carousel consistent, then as slick clones elements we need to keep\r\n // the match height element groups updated accordingly\r\n var matchHeightSelectorString = $target.data('ws-mh');\r\n\r\n if (matchHeightSelectorString) {\r\n var selectors = matchHeightSelectorString.split('|'),\r\n groupIndexes = [];\r\n\r\n if (!$target.hasClass(carouselFilmStripClass)) {\r\n $target.on('setPosition', function (event, slick) {\r\n matchCarouselItemHeights($target, groupIndexes, selectors);\r\n });\r\n }\r\n }\r\n\r\n if ($target.hasClass(carouselHeroImageClass)) {\r\n $target.slick({\r\n arrows: false,\r\n asNavFor: asNavFor,\r\n autoplay: !WS.isExperienceEditor(),\r\n autoplaySpeed: 7000,\r\n dots: false,\r\n edgeFriction: 0,\r\n infinite: false,\r\n mobileFirst: true,\r\n speed: 500,\r\n waitForAnimate: false,\r\n responsive: [\r\n {\r\n breakpoint: 992,\r\n settings: {\r\n arrows: true,\r\n speed: 700\r\n }\r\n }\r\n ]\r\n });\r\n\r\n // override the default slick autoPlayIterator to rewind to the first slide after moving past the last slide. this\r\n // edit is based on version 1.6.0 of slick slider. may need to be updated if the plugin version is changed.\r\n var slick = $target[0].slick;\r\n slick.autoPlayIterator = function () {\r\n\r\n var _ = slick, // originally was var _ = this, but this was being set to window in the edited code\r\n slideTo = _.currentSlide + _.options.slidesToScroll;\r\n\r\n if (!_.paused && !_.interrupted && !_.focussed) {\r\n\r\n if (_.options.infinite === false) {\r\n\r\n if (_.direction === 1 && (_.currentSlide + 1) === (_.slideCount - 1)) {\r\n _.direction = 0;\r\n }\r\n\r\n else if (_.direction === 0) {\r\n\r\n /* begin edited code */\r\n\r\n slideTo = 0;\r\n _.direction = 1;\r\n\r\n /* end edited code */\r\n\r\n }\r\n\r\n }\r\n\r\n _.slideHandler(slideTo);\r\n\r\n }\r\n\r\n };\r\n\r\n setSwipeSyncEvents($target, $(asNavFor));\r\n\r\n $target.on('click', function () {\r\n $target\r\n .slick('slickSetOption', 'autoplay', false)\r\n .slick('slickPause');\r\n });\r\n\r\n if (WS.isExperienceEditor()) {\r\n $target.on('afterChange', function (event, slick, currentSlide) {\r\n WS.resetChromes();\r\n });\r\n }\r\n } else if ($target.hasClass(carouselHeroSpotlightClass)) {\r\n var $asNavFor = $(asNavFor);\r\n\r\n $target.slick({\r\n arrows: false,\r\n asNavFor: asNavFor,\r\n dots: true,\r\n dotsClass: 'ws-carousel__navigation ws-carousel__navigation--theme_light',\r\n customPaging: function (slider, i) {\r\n return $('').text('Slide ' + (i + 1));\r\n },\r\n edgeFriction: 0,\r\n infinite: false,\r\n mobileFirst: true,\r\n speed: 500,\r\n variableWidth: true,\r\n waitForAnimate: false,\r\n responsive: [\r\n {\r\n breakpoint: 992,\r\n settings: {\r\n speed: 700\r\n }\r\n }\r\n ]\r\n });\r\n\r\n setSwipeSyncEvents($target, $asNavFor);\r\n\r\n $target.on('click', function () {\r\n $asNavFor\r\n .slick('slickSetOption', 'autoplay', false)\r\n .slick('slickPause');;\r\n });\r\n\r\n $target.on('mouseenter.slick', function () {\r\n $asNavFor.slick('slickPause');\r\n });\r\n\r\n $target.on('mouseleave.slick', function () {\r\n if ($asNavFor.slick('slickGetOption', 'autoplay')) {\r\n $asNavFor.slick('slickPlay');\r\n }\r\n });\r\n\r\n // Handler to scroll carousel nav dots into view on focus via keyboard\r\n var $navDotButtons = $target.find('.ws-carousel__navigation button');\r\n if ($navDotButtons.length) {\r\n $navDotButtons.on('keydown', function (event) {\r\n const key = event.which || event.keyCode;\r\n\r\n if (key == 9) { // TAB key\r\n event.target.scrollIntoView(false);\r\n }\r\n });\r\n }\r\n } else if ($target.hasClass(carouselFilmStripClass)) {\r\n // Need different breakpoints based on:\r\n // - viewport < 768px || viewport >= 768px\r\n // - number of active cards to show (n)\r\n // - carousel container padding\r\n // Breakpoint formula:\r\n // padding + n(10px margins) + n(272px widths) + 5px peek margin + 40px interactive area +/- 17px scrollbar\r\n let isArticlePage = $target.hasClass('ws-carousel--article');\r\n let responsiveSettings, responsiveMobileSettings;\r\n\r\n if (isArticlePage) {\r\n responsiveSettings = [\r\n {\r\n breakpoint: 1462,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 3\r\n }\r\n },\r\n {\r\n breakpoint: 636,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2\r\n }\r\n }\r\n ];\r\n }\r\n else {\r\n responsiveSettings = [\r\n {\r\n breakpoint: 1524,\r\n settings: {\r\n slidesToShow: 5,\r\n slidesToScroll: 5\r\n }\r\n },\r\n {\r\n breakpoint: 1240,\r\n settings: {\r\n slidesToShow: 4,\r\n slidesToScroll: 4,\r\n }\r\n },\r\n {\r\n breakpoint: 958,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 3\r\n }\r\n },\r\n {\r\n breakpoint: 651,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2\r\n }\r\n }\r\n ];\r\n }\r\n\r\n if (isArticlePage) {\r\n responsiveMobileSettings = [\r\n {\r\n breakpoint: 1462,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 3\r\n }\r\n },\r\n {\r\n breakpoint: 636,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2\r\n }\r\n }\r\n ];\r\n }\r\n else {\r\n responsiveMobileSettings = [\r\n {\r\n breakpoint: 1490,\r\n settings: {\r\n slidesToShow: 5,\r\n slidesToScroll: 5\r\n }\r\n },\r\n {\r\n breakpoint: 1206,\r\n settings: {\r\n slidesToShow: 4,\r\n slidesToScroll: 4,\r\n }\r\n },\r\n {\r\n breakpoint: 924,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 3\r\n }\r\n },\r\n {\r\n breakpoint: 617,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2\r\n }\r\n }\r\n ];\r\n }\r\n\r\n if (breakpointMappings.hasOwnProperty(disableBreakpoint)) {\r\n let breakpoint = breakpointMappings[disableBreakpoint];\r\n let breakpointSetting = _find(responsiveSettings, function (setting) {\r\n return setting.breakpoint === breakpoint;\r\n });\r\n\r\n if (typeof breakpointSetting === 'undefined' || !breakpointSetting) {\r\n responsiveSettings.push({\r\n breakpoint: breakpoint,\r\n settings: 'unslick'\r\n });\r\n } else {\r\n breakpointSetting.settings = 'unslick';\r\n }\r\n }\r\n\r\n /* START Slick Event Listener Setup, which must be bound BEFORE initialization */\r\n $target.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n // Check if navigating to the last set of cards\r\n if (slick.slideCount <= (nextSlide + slick.options.slidesToScroll)) {\r\n // If total number of cards not evenly divisible by viewport's slidesToShow,\r\n // Then \"Peek\" card will not appear to navigate back.\r\n // Must manually set slidesToShow based on # extra slides.\r\n let extraSlides = slick.slideCount % slick.options.slidesToShow;\r\n if (extraSlides) {\r\n $target.slick('slickSetOption', 'slidesToShow', extraSlides);\r\n }\r\n } else if (slick.options.slidesToShow != slick.options.slidesToScroll) {\r\n // If these don't match, they need to be restored to normal viewport settings after leaving last slide\r\n // NOTE: These will automatically revert if viewport is resized\r\n $target.slick('slickSetOption', 'slidesToShow', slick.options.slidesToScroll);\r\n }\r\n });\r\n\r\n if (!isTouchDevice) {\r\n $target.on('afterChange', function (event, slick, currentSlide) {\r\n // Check if the slide change was from ENTER or SPACE to retain focus styling.\r\n if (isEnterOrSpace) {\r\n $('body').removeClass('ws-click');\r\n\r\n // When ends of carousel reached via keyboard navigation, return focus to opposite arrow button\r\n if (slick.$nextArrow.hasClass('slick-disabled')) {\r\n slick.$prevArrow.focus();\r\n }\r\n else if (slick.$prevArrow.hasClass('slick-disabled')) {\r\n slick.$nextArrow.focus();\r\n }\r\n\r\n isEnterOrSpace = false;\r\n }\r\n });\r\n }\r\n\r\n $target.on('setPosition', function () {\r\n if (!isTouchDevice) {\r\n // Padding between Page Edge and Content is set dynamically.\r\n // Need this horizontal distance to move the carousel arrows onto page edges.\r\n // Update arrow positions when carousel (i.e. viewport) is resized.\r\n let paddingValue = $('.ws-section__item.ws-section__item--overflow_hidden').css('padding-right');\r\n\r\n $('.ws-carousel--theme_film-strip .slick-next').css('right', '-' + paddingValue);\r\n $('.ws-carousel--theme_film-strip .slick-prev').css('left', '-' + paddingValue);\r\n }\r\n\r\n if (matchHeightSelectorString) {\r\n matchCarouselItemHeights($target, groupIndexes, selectors);\r\n }\r\n });\r\n /* END Slick Event Listener Setup */\r\n\r\n // Only show full carousel content immediately prior to initialization.\r\n // Avoids long vertical display issues, esp. for multiple film strips & EE.\r\n $target.css({\r\n 'height': 'auto',\r\n 'overflow-y': 'visible'\r\n });\r\n\r\n $target.slick({\r\n arrows: (!isTouchDevice),\r\n autoplay: false,\r\n dots: false,\r\n dotsClass: 'ws-carousel__navigation',\r\n customPaging: function (slider, i) {\r\n return $('').text('Slide ' + (i + 1));\r\n },\r\n infinite: false,\r\n mobileFirst: true,\r\n variableWidth: true,\r\n responsive: (Modernizr.mq('(max-width: 767px)') ? responsiveMobileSettings : responsiveSettings),\r\n slidesToScroll: 1,\r\n slidesToShow: 1,\r\n touchMove: isTouchDevice,\r\n waitForAnimate: false\r\n });\r\n\r\n if (!isTouchDevice) {\r\n // Can only be added AFTER slick initialization\r\n $target.find('.slick-arrow').addClass('ws-carousel__slick-arrow--theme_film-strip');\r\n\r\n // Set flag for ENTER or SPACE keypresses on ARROW and DOT buttons\r\n $('.ws-carousel__slick-arrow--theme_film-strip, .ws-carousel__navigation button').on('keydown', function (event) {\r\n const key = event.which || event.keyCode;\r\n\r\n if (key == 13 || key == 32) { // SPACE or ENTER key\r\n isEnterOrSpace = true;\r\n } else {\r\n isEnterOrSpace = false;\r\n }\r\n });\r\n }\r\n } else if ($target.hasClass(carouselTestimonialsClass)) {\r\n let responsiveSettings, responsiveMobileSettings;\r\n \r\n responsiveSettings = [\r\n {\r\n breakpoint: 1425,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 3\r\n }\r\n },\r\n {\r\n breakpoint: 965,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2\r\n }\r\n },\r\n {\r\n breakpoint: 767,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 610,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2\r\n }\r\n }\r\n ];\r\n \r\n responsiveMobileSettings = [\r\n {\r\n breakpoint: 1410,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 3\r\n }\r\n },\r\n {\r\n breakpoint: 950,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2\r\n }\r\n },\r\n {\r\n breakpoint: 767,\r\n settings: {\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n },\r\n {\r\n breakpoint: 594,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2\r\n }\r\n }\r\n ];\r\n\r\n if (breakpointMappings.hasOwnProperty(disableBreakpoint)) {\r\n let breakpoint = breakpointMappings[disableBreakpoint];\r\n let breakpointSetting = _find(responsiveSettings, function (setting) {\r\n return setting.breakpoint === breakpoint;\r\n });\r\n\r\n if (typeof breakpointSetting === 'undefined' || !breakpointSetting) {\r\n responsiveSettings.push({\r\n breakpoint: breakpoint,\r\n settings: 'unslick'\r\n });\r\n } else {\r\n breakpointSetting.settings = 'unslick';\r\n }\r\n }\r\n\r\n /* START Slick Event Listener Setup, which must be bound BEFORE initialization */\r\n $target.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n // Check if navigating to the last set of cards\r\n if (slick.slideCount <= (nextSlide + slick.options.slidesToScroll)) {\r\n // If total number of cards not evenly divisible by viewport's slidesToShow,\r\n // Then \"Peek\" card will not appear to navigate back.\r\n // Must manually set slidesToShow based on # extra slides.\r\n let extraSlides = slick.slideCount % slick.options.slidesToShow;\r\n if (extraSlides) {\r\n $target.slick('slickSetOption', 'slidesToShow', extraSlides);\r\n }\r\n } else if (slick.options.slidesToShow != slick.options.slidesToScroll) {\r\n // If these don't match, they need to be restored to normal viewport settings after leaving last slide\r\n // NOTE: These will automatically revert if viewport is resized\r\n $target.slick('slickSetOption', 'slidesToShow', slick.options.slidesToScroll);\r\n }\r\n });\r\n\r\n if (!isTouchDevice) {\r\n $target.on('afterChange', function (event, slick, currentSlide) {\r\n // Check if the slide change was from ENTER or SPACE to retain focus styling.\r\n if (isEnterOrSpace) {\r\n $('body').removeClass('ws-click');\r\n\r\n // When ends of carousel reached via keyboard navigation, return focus to opposite arrow button\r\n if (slick.$nextArrow.hasClass('slick-disabled')) {\r\n slick.$prevArrow.focus();\r\n }\r\n else if (slick.$prevArrow.hasClass('slick-disabled')) {\r\n slick.$nextArrow.focus();\r\n }\r\n\r\n isEnterOrSpace = false;\r\n }\r\n });\r\n }\r\n\r\n $target.on('setPosition', function () {\r\n if (!isTouchDevice) {\r\n // Padding between Page Edge and Content is set dynamically.\r\n // Need this horizontal distance to move the carousel arrows onto page edges.\r\n // Update arrow positions when carousel (i.e. viewport) is resized.\r\n let paddingValue = $('.ws-section__item.ws-section__item--overflow_hidden').css('padding-right');\r\n\r\n $('.ws-carousel--theme_testimonials .slick-next').css('right', '-' + paddingValue);\r\n $('.ws-carousel--theme_testimonials .slick-prev').css('left', '-' + paddingValue);\r\n }\r\n\r\n if (matchHeightSelectorString) {\r\n matchCarouselItemHeights($target, groupIndexes, selectors);\r\n }\r\n });\r\n /* END Slick Event Listener Setup */\r\n\r\n // Only show full carousel content immediately prior to initialization.\r\n // Avoids long vertical display issues, esp. for multiple film strips & EE.\r\n $target.css({\r\n 'height': 'auto',\r\n 'overflow-y': 'visible'\r\n });\r\n\r\n $target.slick({\r\n arrows: (!isTouchDevice),\r\n autoplay: false,\r\n dots: false,\r\n dotsClass: 'ws-carousel__navigation',\r\n customPaging: function (slider, i) {\r\n return $('').text('Slide ' + (i + 1));\r\n },\r\n infinite: false,\r\n mobileFirst: true,\r\n variableWidth: true,\r\n responsive: (Modernizr.mq('(max-width: 767px)') ? responsiveMobileSettings : responsiveSettings),\r\n slidesToScroll: 1,\r\n slidesToShow: 1,\r\n touchMove: isTouchDevice,\r\n waitForAnimate: false\r\n });\r\n\r\n if (!isTouchDevice) {\r\n // Can only be added AFTER slick initialization\r\n $target.find('.slick-arrow').addClass('ws-carousel__slick-arrow--theme_testimonials');\r\n\r\n // Set flag for ENTER or SPACE keypresses on ARROW and DOT buttons\r\n $('.ws-carousel__slick-arrow--theme_testimonials, .ws-carousel__navigation button').on('keydown', function (event) {\r\n const key = event.which || event.keyCode;\r\n\r\n if (key == 13 || key == 32) { // SPACE or ENTER key\r\n isEnterOrSpace = true;\r\n } else {\r\n isEnterOrSpace = false;\r\n }\r\n });\r\n }\r\n } else {\r\n var responsiveSettings = [\r\n {\r\n breakpoint: breakpointMappings['sm'],\r\n settings: {\r\n autoplay: autoplay,\r\n variableWidth: variableWidth\r\n }\r\n }\r\n ];\r\n\r\n if (breakpointMappings.hasOwnProperty(disableBreakpoint)) {\r\n var breakpoint = breakpointMappings[disableBreakpoint];\r\n var breakpointSetting = _find(responsiveSettings, function (setting) {\r\n return setting.breakpoint === breakpoint;\r\n });\r\n\r\n if (typeof breakpointSetting === 'undefined' || !breakpointSetting) {\r\n responsiveSettings.push({\r\n breakpoint: breakpoint,\r\n settings: 'unslick'\r\n });\r\n } else {\r\n breakpointSetting.settings = 'unslick';\r\n }\r\n }\r\n\r\n /* Slick Event Listener Setup, which must be bound BEFORE initialization */\r\n if ($target.hasClass(carouselAgentDetailClass)) {\r\n // Screen readers should announce Agent Detail carousel slides only on manual navigation\r\n // After user selects slide, update hidden aria-live element with callout card content \r\n $target.on('afterChange', function (event, slick, currentSlide) {\r\n if (carouselTriggeredManually) {\r\n var slideHeading = $(slick.$slides[currentSlide]).find('.ws-heading').html();\r\n var slideContent = $(slick.$slides[currentSlide]).find('.ws-content').html();\r\n $('.ws-carousel__screen-reader-content').html('
' + slideHeading + '...' + '
' + slideContent);\r\n\r\n carouselTriggeredManually = false;\r\n }\r\n });\r\n }\r\n\r\n $target.slick({\r\n arrows: arrows,\r\n asNavFor: asNavFor,\r\n autoplay: autoplayMobile,\r\n centerMode: true,\r\n centerPadding: centerPadding,\r\n dots: true,\r\n dotsClass: 'ws-carousel__navigation',\r\n customPaging: function (slider, i) {\r\n return $('').text('Slide ' + (i + 1));\r\n },\r\n mobileFirst: true,\r\n variableWidth: false,\r\n responsive: responsiveSettings,\r\n waitForAnimate: false\r\n });\r\n\r\n matchHeight($target);\r\n\r\n if ($target.hasClass(carouselAgentDetailClass)) {\r\n // For consistent behavior, select any element user could interact with to manually change carousel\r\n var $carouselNavElements = $('.ws-carousel--theme_agent-detail .ws-carousel__item')\r\n .add($target.get(0).slick.$dots.find('button'));\r\n\r\n $carouselNavElements.on('click', function () {\r\n // Only an inactive \"peek\" card or navigation dot should trigger carousel\r\n // Can ignore interactions with active card, as this will cause duplicate screen readings\r\n if (\r\n $(this).is('.ws-carousel__item:not(.slick-active)') ||\r\n $(this).is('button')\r\n ) {\r\n carouselTriggeredManually = true;\r\n }\r\n });\r\n }\r\n\r\n // Handler to scroll carousel elements dots into view on focus via keyboard\r\n var $navElements = $target.find('.ws-carousel__navigation button, button.slick-arrow');\r\n if ($navElements.length) {\r\n $navElements.on('keydown', function (event) {\r\n const key = event.which || event.keyCode;\r\n\r\n if (key == 9) { // TAB key\r\n event.target.scrollIntoView(false);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n function matchCarouselItemHeights($target, groupIndexes, selectors) {\r\n if (groupIndexes.length === 0) {\r\n // the ws-mh-group-indexes data attribute is set when match height\r\n // gets initialized. since the carousel might be created before then,\r\n // we wait until the setPosition callback fires to try to read the\r\n // value. once things have been successfully initialized, we stop\r\n // parsing the DOM element and use the previously read value\r\n var matchHeightGroupString = $target.data('ws-mh-group-indexes');\r\n\r\n if (matchHeightGroupString) {\r\n groupIndexes = matchHeightGroupString.split('|');\r\n }\r\n }\r\n\r\n if (selectors.length === groupIndexes.length) {\r\n for (var i = 0; i < selectors.length; ++i) {\r\n var $selectedElements = $target.find(selectors[i].trim());\r\n var matchHeightGroup = $.fn.matchHeight._groups[groupIndexes[i]];\r\n if (matchHeightGroup && matchHeightGroup.elements) {\r\n var $diff = _difference($selectedElements, matchHeightGroup.elements);\r\n\r\n if ($diff.length > 0) {\r\n matchHeightGroup.elements = $selectedElements;\r\n matchHeight($target);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n function matchHeight($target) {\r\n var $matchHeightTarget = $target.find('.ws-mh-target');\r\n if ($matchHeightTarget.length && $matchHeightTarget.matchHeight) {\r\n $matchHeightTarget.matchHeight._update();\r\n }\r\n }\r\n\r\n function setSwipeSyncEvents($target, $asNavFor) {\r\n var $track,\r\n $otherTrack,\r\n startingX,\r\n otherStartingX,\r\n isActive = false,\r\n isSlideChanging = false;\r\n\r\n $target.on('beforeChange', function (event, slick, currentSlide, nextSlide) {\r\n isSlideChanging = currentSlide !== nextSlide;\r\n });\r\n\r\n $target.on('touchstart.slick mousedown.slick', listSelector, function () {\r\n isActive = true;\r\n\r\n if (!$track || !$.contains(document, $track[0])) {\r\n $track = $target.find(trackSelector);\r\n }\r\n\r\n if (!$otherTrack || !$.contains(document, $otherTrack[0])) {\r\n $otherTrack = $asNavFor.find(trackSelector);\r\n }\r\n\r\n startingX = getTranslateX($track);\r\n otherStartingX = getTranslateX($otherTrack);\r\n });\r\n\r\n $target.on('touchmove.slick mousemove.slick', listSelector, function () {\r\n if ($otherTrack && isActive) {\r\n var deltaX = getTranslateX($track) - startingX;\r\n $otherTrack.css({ 'transform': 'translate3d(' + (otherStartingX + deltaX) + 'px, 0, 0)' });\r\n }\r\n });\r\n\r\n $target.on('touchend.slick mouseup.slick touchcancel.slick mouseleave.slick', listSelector, function () {\r\n if ($otherTrack && isActive && !isSlideChanging) {\r\n $otherTrack.css({ 'transform': 'translate3d(' + otherStartingX + 'px, 0, 0)' });\r\n }\r\n\r\n isActive = false;\r\n });\r\n }\r\n\r\n function getTranslateX($element) {\r\n var matrix = $element.css('transform').replace(/[^0-9\\-.,]/g, '').split(',');\r\n return parseInt(matrix[12] || matrix[4]);\r\n }\r\n\r\n // Begin initializing immediate carousels on page\r\n $carousel.each(function () {\r\n carouselPreInit($(this));\r\n });\r\n\r\n // Begin initializing lazy loaded carousels\r\n $(document).on('lazyloaded', carouselSelector, function (event) {\r\n if (event.currentTarget === event.target) {\r\n carouselPreInit($(event.target));\r\n }\r\n });\r\n\r\n // Prevent \"peek\" film strip cards from acting as links\r\n $('.ws-carousel--theme_film-strip .ws-carousel__item').on('click', function (event) {\r\n if (!$(this).hasClass('slick-active')) {\r\n event.preventDefault();\r\n }\r\n });\r\n\r\n // Prevent \"peek\" agent callout links from acting as links\r\n $('.ws-carousel--theme_agent-detail .ws-carousel__item .ws-icon-link').on('click', function (event) {\r\n if (!$(this).parents(carouselItemSelector).hasClass('slick-active')) {\r\n event.preventDefault();\r\n }\r\n });\r\n\r\n // Handle carousel navigation via card clicks.\r\n // Lazy loading will postpone needed carousel content from being created via slick initialization,\r\n // so this event handler needs to be delegated to containing section.\r\n $(\".ws-section--carousel[class*='lazyload']\").on('click', '[data-slick-index]', function () {\r\n var $this = $(this);\r\n var $thisSlick = $this.parents(carouselSelector).slick('getSlick');\r\n var slickIndex = $this.data('slickIndex');\r\n var $prevSlide = $this.siblings('[data-slick-index=\"' + (slickIndex - 1) + '\"]');\r\n var $nextSlide = $this.siblings('[data-slick-index=\"' + (slickIndex + 1) + '\"]');\r\n\r\n var isFilmStrip = $this.parents(carouselSelector).hasClass(carouselFilmStripClass);\r\n var isActiveCard = $this.hasClass('slick-active');\r\n\r\n if ($prevSlide.length && $prevSlide.hasClass('slick-active')) {\r\n if (!isFilmStrip || (isFilmStrip && !isActiveCard)) {\r\n $thisSlick.slickNext();\r\n }\r\n } else if ($nextSlide.length && $nextSlide.hasClass('slick-active')) {\r\n if (!isFilmStrip || (isFilmStrip && !isActiveCard)) {\r\n $thisSlick.slickPrev();\r\n }\r\n }\r\n });\r\n});\r\n"],"names":["isArray","require","module","exports","arguments","length","value","Symbol","func","thisArg","args","call","apply","baseIndexOf","array","comparator","index","iteratee","result","Array","values","offset","SetCache","arrayIncludes","arrayIncludesWith","arrayMap","baseUnary","cacheHas","includes","isCommon","valuesLength","outer","computed","valuesIndex","push","arrayPush","isFlattenable","baseFlatten","depth","predicate","isStrict","fromIndex","identity","overRest","setToString","start","isArguments","spreadableSymbol","isConcatSpreadable","undefined","nativeMax","Math","max","transform","otherArgs","this","baseDifference","baseRest","isArrayLikeObject","difference","isArrayLike","isObjectLike","$","_find","_difference","Modernizr","WS","isEnterOrSpace","$carousel","carouselSelector","carouselItemSelector","carouselFilmStripClass","carouselAgentDetailClass","breakpointMappings","xs","sm","md","lg","listSelector","trackSelector","isTouchDevice","browsertouch","carouselTriggeredManually","carouselPreInit","$targetCarousel","itemCount","children","data","hasClass","carouselInit","$target","autoplay","autoplayMobile","disableBreakpoint","centerPadding","variableWidth","arrows","asNavFor","matchHeightSelectorString","selectors","split","groupIndexes","on","event","slick","matchCarouselItemHeights","isExperienceEditor","autoplaySpeed","dots","edgeFriction","infinite","mobileFirst","speed","waitForAnimate","responsive","breakpoint","settings","autoPlayIterator","_","slideTo","currentSlide","options","slidesToScroll","paused","interrupted","focussed","direction","slideCount","slideHandler","setSwipeSyncEvents","resetChromes","$asNavFor","dotsClass","customPaging","slider","i","text","$navDotButtons","find","which","keyCode","target","scrollIntoView","responsiveSettings","responsiveMobileSettings","isArticlePage","slidesToShow","hasOwnProperty","breakpointSetting","setting","nextSlide","extraSlides","removeClass","$nextArrow","$prevArrow","focus","paddingValue","css","mq","touchMove","addClass","key","slideHeading","$slides","html","slideContent","centerMode","matchHeight","add","get","$dots","is","$navElements","matchHeightGroupString","$selectedElements","trim","matchHeightGroup","fn","_groups","elements","$matchHeightTarget","_update","$track","$otherTrack","startingX","otherStartingX","isActive","isSlideChanging","contains","document","getTranslateX","deltaX","$element","matrix","replace","parseInt","each","currentTarget","preventDefault","parents","$this","$thisSlick","slickIndex","$prevSlide","siblings","$nextSlide","isFilmStrip","isActiveCard","slickNext","slickPrev"],"sourceRoot":""}