{"version":3,"sources":["webpack:///./src/js/modules/caseStudiesTabLogos.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_setToArray.js","webpack:///./node_modules/lodash/uniq.js","webpack:///./node_modules/lodash/_baseUniq.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/lodash/_arrayIncludes.js","webpack:///./node_modules/lodash/_baseIndexOf.js","webpack:///./node_modules/lodash/_baseFindIndex.js","webpack:///./node_modules/lodash/_baseIsNaN.js","webpack:///./node_modules/lodash/_strictIndexOf.js","webpack:///./node_modules/lodash/_arrayIncludesWith.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/lodash/_createSet.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/lodash/noop.js","webpack:///./src/js/modules/case-studies/utils.js"],"names":["Module","this","dom","nav","el","querySelector","grid","marker","anchors","querySelectorAll","logos","window","CASE_STUDIES","filters","compileFiltersLogo","animationOn","initGrid","getLiElements","forEach","element","addEventListener","handleClick","setFilter","setElements","event","preventDefault","target","currentTarget","closest","scrollIntoViewIfNeeded","classList","contains","lastLogos","filterElements","dataset","set","card","index","add","remove","style","setProperty","getDelay","setMarker","setTimeout","setActiveElements","display","currentTab","bodyRect","getBoundingClientRect","clientRect","width","marginLeft","x","sort","a","b","client","localeCompare","innerHTML","getLogoCard","dataSet","getLogosCard","filter","image","image_alt","industry","alt","convertToSlug","getLi","Component","freeGlobal","freeSelf","self","Object","root","Function","module","exports","value","type","Symbol","getRawTag","objectToString","symToStringTag","toStringTag","undefined","nativeCreate","getNative","eq","array","key","length","isKeyable","map","data","__data__","global","objectProto","prototype","hasOwnProperty","nativeObjectToString","toString","isOwn","call","tag","unmasked","e","result","baseIsNative","getValue","object","Array","size","baseUniq","SetCache","arrayIncludes","arrayIncludesWith","cacheHas","createSet","setToArray","iteratee","comparator","includes","isCommon","seen","outer","computed","seenIndex","push","MapCache","setCacheAdd","setCacheHas","values","has","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","entries","clear","entry","get","Hash","ListCache","Map","hashClear","hashDelete","hashGet","hashHas","hashSet","isFunction","isMasked","isObject","toSource","reIsHostCtor","funcProto","funcToString","reIsNative","RegExp","replace","test","baseGetTag","uid","coreJsData","maskSrcKey","exec","keys","IE_PROTO","func","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","assocIndexOf","splice","pop","other","getMapData","baseIndexOf","baseFindIndex","baseIsNaN","strictIndexOf","fromIndex","predicate","fromRight","cache","Set","noop","hasCommon","arr1","arr2","every","item","updateSelectedFilters","compileFilters","allItems","items","reduce","acc","current","solutions","technology","selected","checked","name","filterItems","hasSolutions","hasIndustry","hasTechnology","getCounts","category","tags","newlySelectedFilters","all","filteredLogos","filteredItems","count","getFilteredItemsWithCount","areAllSelectedFiltersDefault","hasNonDefault","i","j","DEFAULT_FILTERS","cardPattern","Math","floor","random"],"mappings":"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","file":"10.75c776be26191463325f.js","sourcesContent":["import { Component } from '@verndale/core';\nimport { compileFiltersLogo } from './case-studies/utils';\nimport { convertToSlug } from '../helpers';\n\nclass Module extends Component {\n setupDefaults() {\n this.dom = {\n nav: this.el.querySelector('nav > ul'),\n grid: this.el.querySelector('.case-studies-logos__grid'),\n marker: this.el.querySelector('.marker-industry'),\n anchors: this.el.querySelectorAll('a')\n };\n\n this.logos = window.CASE_STUDIES.logos;\n this.filters = compileFiltersLogo();\n this.animationOn = false;\n this.initGrid();\n }\n\n addListeners() {\n this.getLiElements().forEach(element =>\n element.addEventListener('click', ::this.handleClick)\n );\n }\n\n getLiElements() {\n return [...this.el.querySelectorAll('a')];\n }\n\n initGrid() {\n this.setFilter();\n this.setElements();\n }\n\n handleClick(event) {\n event.preventDefault();\n const target = event.currentTarget.closest('li');\n\n if (target) target.scrollIntoViewIfNeeded(true);\n\n if (target.classList.contains('active')) return;\n\n const lastLogos = this.filterElements(\n this.el.querySelector('.active').dataset.set\n );\n\n if (!this.animationOn) {\n lastLogos.forEach((card, index) => {\n card.classList.add('slide-bottom');\n card.classList.remove('active');\n card.style.setProperty('--animation-delay', this.getDelay(index));\n });\n }\n\n this.getLiElements().forEach(element => {\n element.closest('li').classList.remove('active');\n });\n\n target.classList.add('active');\n\n this.setMarker(target);\n\n this.animationOn = true;\n\n setTimeout(() => {\n this.setActiveElements(target.dataset.set, lastLogos);\n }, 1000);\n }\n\n getDelay(index) {\n return `${(index + 1) * 50}ms`;\n }\n\n setActiveElements(set, lastLogos) {\n lastLogos.forEach(card => {\n card.style.display = 'none';\n });\n\n this.filterElements(set).forEach((card, index) => {\n card.classList.add('active');\n card.classList.remove('slide-bottom');\n card.style.setProperty('--animation-delay', this.getDelay(index));\n card.style.display = 'flex';\n });\n\n setTimeout(() => {\n this.animationOn = false;\n }, 1000);\n }\n\n setMarker(currentTab) {\n const bodyRect = this.el\n .querySelector('.case-studies-tab__logos ul')\n .getBoundingClientRect();\n\n const clientRect = currentTab.getBoundingClientRect();\n this.dom.marker.style.width = `${clientRect.width}px`;\n this.dom.marker.style.marginLeft = `${clientRect.x - bodyRect.x}px`;\n }\n\n setElements() {\n this.logos\n .sort((a, b) => a.client.localeCompare(b.client))\n .forEach(\n element => (this.dom.grid.innerHTML += this.getLogoCard(element))\n );\n }\n\n filterElements(dataSet) {\n return this.getLogosCard().filter(card => {\n if (card.dataset.set === dataSet) return true;\n if (dataSet === 'all') return true;\n });\n }\n\n getLogosCard() {\n return [...this.el.querySelectorAll('.case-studies-logo-card')];\n }\n\n getLogoCard({ image, image_alt, industry }) {\n const alt = image_alt || '';\n return `
\n \"${alt}\"\n
`;\n }\n\n setFilter() {\n this.filters.industry\n .sort()\n .forEach(element => (this.dom.nav.innerHTML += this.getLi(element)));\n }\n\n getLi(element) {\n return `
  • ${element}
  • `;\n }\n}\n\nexport default Module;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\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","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\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 baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\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","/**\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 * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","import uniq from 'lodash/uniq';\n\nconst hasCommon = (arr1, arr2) => {\n return arr2.every(item => arr1.includes(item));\n};\n\nexport const compileFilters = () => {\n const allItems = [...window.CASE_STUDIES.logos, ...window.CASE_STUDIES.items];\n\n return allItems.reduce(\n (acc, current) => {\n return {\n solutions: uniq([...acc.solutions, ...current.solutions]),\n industry: uniq([...acc.industry, ...current.industry]),\n technology: uniq([...acc.technology, ...current.technology])\n };\n },\n {\n solutions: [],\n industry: [],\n technology: []\n }\n );\n};\n\nexport const compileFiltersLogo = () => {\n const allItems = [...window.CASE_STUDIES.logos];\n\n return allItems.reduce(\n (acc, current) => {\n return {\n solutions: uniq([...acc.solutions, ...current.solutions]),\n industry: uniq([...acc.industry, ...current.industry]),\n technology: uniq([...acc.technology, ...current.technology])\n };\n },\n {\n solutions: [],\n industry: [],\n technology: []\n }\n );\n};\n\nconst updateSelectedFilters = (e, selected) => {\n if (!e || !e.target) return selected;\n const { checked, value, name } = e.target;\n let filter = selected[name];\n if (checked) {\n filter.push(value);\n } else {\n filter = filter.filter(x => x !== value);\n }\n\n return {\n ...selected,\n [name]: filter\n };\n};\n\nconst filterItems = (items, selected) => {\n return items.filter(x => {\n const hasSolutions = selected.solutions.length\n ? hasCommon(x.solutions, selected.solutions)\n : true;\n const hasIndustry = selected.industry.length\n ? hasCommon(x.industry, selected.industry)\n : true;\n const hasTechnology = selected.technology.length\n ? hasCommon(x.technology, selected.technology)\n : true;\n\n return hasSolutions && hasIndustry && hasTechnology;\n });\n};\n\nexport const getCounts = (filters, items) => {\n return Object.entries(filters).reduce((acc, [category, tags]) => {\n if (!acc[category]) {\n acc[category] = {};\n }\n\n tags.forEach(tag => {\n if (!acc[category][tag]) {\n acc[category][tag] = 0;\n }\n\n acc[category][tag] += items.filter(item =>\n item[category].includes(tag)\n ).length;\n });\n\n return acc;\n }, {});\n};\n\nconst getFilteredItemsWithCount = (selected, all) => {\n const filteredLogos = filterItems(window.CASE_STUDIES.logos, selected);\n const filteredItems = filterItems(window.CASE_STUDIES.items, selected);\n const allItems = [...filteredLogos, ...filteredItems];\n\n return {\n count: getCounts(all, allItems),\n logos: filteredLogos,\n items: filteredItems\n };\n};\n\nexport const filter = (e, filters, selected) => {\n const newlySelectedFilters = updateSelectedFilters(e, selected);\n const data = getFilteredItemsWithCount(newlySelectedFilters, filters);\n\n return { selected: newlySelectedFilters, ...data };\n};\n\nexport const areAllSelectedFiltersDefault = selected => {\n let hasNonDefault = false;\n const keys = Object.keys(selected);\n\n for (let i = 0; i < keys.length; i++) {\n const el = keys[i];\n for (let j = 0; j < selected[el].length; j++) {\n const filter = selected[el][j];\n if (!window.DEFAULT_FILTERS[el].includes(filter)) {\n hasNonDefault = true;\n break;\n }\n }\n }\n\n return !hasNonDefault;\n};\n\nexport const cardPattern = () => `\n\n
    \n \n \n \n \n\n \n \n \n\n \n \n \n
    \n \n `;\n"],"sourceRoot":""}