{"version":3,"sources":["js/vendor/polyfills.js","js/vendor/qs-6.9.4.js","js/shared/filterable-list.js","js/shared/image-slider.js","js/main/main.js"],"names":["window","NodeList","prototype","forEach","callback","thisArg","i","this","length","call","f","exports","_typeof","module","define","amd","global","self","Qs","r","e","n","t","o","c","require","u","a","Error","code","p","1","replace","String","percentTwenties","util","Format","RFC1738","RFC3986","assign","default","formatters","value","./utils","2","stringify","parse","formats","./formats","./parse","./stringify","3","parseArrayValue","val","options","comma","indexOf","split","parseValues","str","part","key","obj","cleanStr","ignoreQueryPrefix","limit","parameterLimit","Infinity","undefined","parts","delimiter","skipIndex","charset","charsetSentinel","pos","bracketEqualsPos","decoder","defaults","strictNullHandling","slice","utils","maybeMap","encodedVal","interpretNumericEntities","$0","numberStr","fromCharCode","parseInt","isArray","has","combine","parseKeys","givenKey","valuesParsed","allowDots","child","segment","depth","exec","parent","index","keys","plainObjects","Object","allowPrototypes","push","chain","leaf","cleanRoot","root","parseArrays","concat","create","charAt","isNaN","arrayLimit","0","parseObject","hasOwnProperty","Array","decode","opts","TypeError","isRegExp","normalizeParseOptions","tempObj","newObj","merge","compact","4","pushToArray","arr","valueOrArray","apply","object","prefix","generateArrayPrefix","skipNulls","encoder","filter","sort","serializeDate","formatter","encodeValuesOnly","Date","join","v","isBuffer","objKeys","values","keyPrefix","arrayPrefixGenerators","brackets","indices","repeat","toISO","toISOString","defaultFormat","addQueryPrefix","encode","format","date","normalizeStringifyOptions","arrayFormat","joined","5","arrayToObject","source","target","mergeTarget","item","targetItem","reduce","acc","hexTable","array","toString","toUpperCase","b","queue","prop","refs","j","pop","compacted","compactQueue","strWithoutPlus","unescape","decodeURIComponent","defaultEncoder","string","Symbol","escape","out","charCodeAt","constructor","fn","mapped","document","querySelectorAll","trifilter","noResultMsg","theList","displayedCounter","totalCounter","moreButton","pageSize","alwaysShowVw","displayedCount","matchCount","tableId","dataset","filterFor","targetList","getElementById","applyFilter","selectedDimension","isOdd","select","row","isMatch","every","dimension","dimensions","includes","classList","remove","add","style","display","liElems","liElem","params","location","hash","substring","history","replaceState","applyPagination","innerWidth","maxHeight","querySelector","clientHeight","overflow","innerHTML","paramsOnLoad","option","selected","addEventListener","navigator","maxTouchPoints","msMaxTouchPoints","selects","getElementsByClassName","possibleWidth","toFixed","el","dropdownHtml","selectedIndex","text","children","tagName","label","subchildren","matchedLength","toggle","searchString","trim","toLowerCase","hit","k","innerText","hiddenCount","parentNode","contains","selectedvalue","selectedindex","dispatchEvent","Event","console","log","initSelect","width","body","slider","doPositioning","func","wait","immediate","timeout","swipedir","startX","startY","distX","distY","startTime","handleswipe","centerFrame","slides","prevArrow","nextArrow","activeSlide","prevPage","nextPage","arrowTop","offsetHeight","top","slide","transform","offsetLeft","context","args","arguments","callNow","clearTimeout","setTimeout","touchsurface","touchobj","changedTouches","pageX","pageY","getTime","preventDefault","Math","abs","img","hamburgerButton","hamburger","ev","videoPopup","videoPopupIframe","elem","youtubeId","youtubePopupId","src","easeInOutQuad","d","element","to","duration","start","scrollTop","change","currentTime","animateScroll","smoothScrollTo","documentElement","go"],"mappings":"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","file":"main-f23ee9e283.min.js","sourcesContent":["// https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach#polyfill\r\nif (window.NodeList && !NodeList.prototype.forEach) {\r\n NodeList.prototype.forEach = function (callback, thisArg) {\r\n thisArg = thisArg || window;\r\n for (var i = 0; i < this.length; i++) {\r\n callback.call(thisArg, this[i], i, this);\r\n }\r\n };\r\n}\r\n","// https://github.com/ljharb/qs/blob/v6.9.4/dist/qs.js\r\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Qs = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i -1) {\r\n return val.split(',');\r\n }\r\n\r\n return val;\r\n};\r\n\r\n// This is what browsers will submit when the ✓ character occurs in an\r\n// application/x-www-form-urlencoded body and the encoding of the page containing\r\n// the form is iso-8859-1, or when the submitted form has an accept-charset\r\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\r\n// the ✓ character, such as us-ascii.\r\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\r\n\r\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\r\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\r\n\r\nvar parseValues = function parseQueryStringValues(str, options) {\r\n var obj = {};\r\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\r\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\r\n var parts = cleanStr.split(options.delimiter, limit);\r\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\r\n var i;\r\n\r\n var charset = options.charset;\r\n if (options.charsetSentinel) {\r\n for (i = 0; i < parts.length; ++i) {\r\n if (parts[i].indexOf('utf8=') === 0) {\r\n if (parts[i] === charsetSentinel) {\r\n charset = 'utf-8';\r\n } else if (parts[i] === isoSentinel) {\r\n charset = 'iso-8859-1';\r\n }\r\n skipIndex = i;\r\n i = parts.length; // The eslint settings do not allow break;\r\n }\r\n }\r\n }\r\n\r\n for (i = 0; i < parts.length; ++i) {\r\n if (i === skipIndex) {\r\n continue;\r\n }\r\n var part = parts[i];\r\n\r\n var bracketEqualsPos = part.indexOf(']=');\r\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\r\n\r\n var key, val;\r\n if (pos === -1) {\r\n key = options.decoder(part, defaults.decoder, charset, 'key');\r\n val = options.strictNullHandling ? null : '';\r\n } else {\r\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\r\n val = utils.maybeMap(\r\n parseArrayValue(part.slice(pos + 1), options),\r\n function (encodedVal) {\r\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\r\n }\r\n );\r\n }\r\n\r\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\r\n val = interpretNumericEntities(val);\r\n }\r\n\r\n if (part.indexOf('[]=') > -1) {\r\n val = isArray(val) ? [val] : val;\r\n }\r\n\r\n if (has.call(obj, key)) {\r\n obj[key] = utils.combine(obj[key], val);\r\n } else {\r\n obj[key] = val;\r\n }\r\n }\r\n\r\n return obj;\r\n};\r\n\r\nvar parseObject = function (chain, val, options, valuesParsed) {\r\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\r\n\r\n for (var i = chain.length - 1; i >= 0; --i) {\r\n var obj;\r\n var root = chain[i];\r\n\r\n if (root === '[]' && options.parseArrays) {\r\n obj = [].concat(leaf);\r\n } else {\r\n obj = options.plainObjects ? Object.create(null) : {};\r\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\r\n var index = parseInt(cleanRoot, 10);\r\n if (!options.parseArrays && cleanRoot === '') {\r\n obj = { 0: leaf };\r\n } else if (\r\n !isNaN(index)\r\n && root !== cleanRoot\r\n && String(index) === cleanRoot\r\n && index >= 0\r\n && (options.parseArrays && index <= options.arrayLimit)\r\n ) {\r\n obj = [];\r\n obj[index] = leaf;\r\n } else {\r\n obj[cleanRoot] = leaf;\r\n }\r\n }\r\n\r\n leaf = obj; // eslint-disable-line no-param-reassign\r\n }\r\n\r\n return leaf;\r\n};\r\n\r\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\r\n if (!givenKey) {\r\n return;\r\n }\r\n\r\n // Transform dot notation to bracket notation\r\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\r\n\r\n // The regex chunks\r\n\r\n var brackets = /(\\[[^[\\]]*])/;\r\n var child = /(\\[[^[\\]]*])/g;\r\n\r\n // Get the parent\r\n\r\n var segment = options.depth > 0 && brackets.exec(key);\r\n var parent = segment ? key.slice(0, segment.index) : key;\r\n\r\n // Stash the parent if it exists\r\n\r\n var keys = [];\r\n if (parent) {\r\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\r\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\r\n if (!options.allowPrototypes) {\r\n return;\r\n }\r\n }\r\n\r\n keys.push(parent);\r\n }\r\n\r\n // Loop through children appending to the array until we hit depth\r\n\r\n var i = 0;\r\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\r\n i += 1;\r\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\r\n if (!options.allowPrototypes) {\r\n return;\r\n }\r\n }\r\n keys.push(segment[1]);\r\n }\r\n\r\n // If there's a remainder, just add whatever is left\r\n\r\n if (segment) {\r\n keys.push('[' + key.slice(segment.index) + ']');\r\n }\r\n\r\n return parseObject(keys, val, options, valuesParsed);\r\n};\r\n\r\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\r\n if (!opts) {\r\n return defaults;\r\n }\r\n\r\n if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') {\r\n throw new TypeError('Decoder has to be a function.');\r\n }\r\n\r\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\r\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\r\n }\r\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\r\n\r\n return {\r\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\r\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\r\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\r\n charset: charset,\r\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\r\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\r\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\r\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\r\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\r\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\r\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\r\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\r\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\r\n parseArrays: opts.parseArrays !== false,\r\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\r\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\r\n };\r\n};\r\n\r\nmodule.exports = function (str, opts) {\r\n var options = normalizeParseOptions(opts);\r\n\r\n if (str === '' || str === null || typeof str === 'undefined') {\r\n return options.plainObjects ? Object.create(null) : {};\r\n }\r\n\r\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\r\n var obj = options.plainObjects ? Object.create(null) : {};\r\n\r\n // Iterate over the keys and setup the new object\r\n\r\n var keys = Object.keys(tempObj);\r\n for (var i = 0; i < keys.length; ++i) {\r\n var key = keys[i];\r\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\r\n obj = utils.merge(obj, newObj, options);\r\n }\r\n\r\n return utils.compact(obj);\r\n};\r\n\r\n},{\"./utils\":5}],4:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar utils = require('./utils');\r\nvar formats = require('./formats');\r\nvar has = Object.prototype.hasOwnProperty;\r\n\r\nvar arrayPrefixGenerators = {\r\n brackets: function brackets(prefix) {\r\n return prefix + '[]';\r\n },\r\n comma: 'comma',\r\n indices: function indices(prefix, key) {\r\n return prefix + '[' + key + ']';\r\n },\r\n repeat: function repeat(prefix) {\r\n return prefix;\r\n }\r\n};\r\n\r\nvar isArray = Array.isArray;\r\nvar push = Array.prototype.push;\r\nvar pushToArray = function (arr, valueOrArray) {\r\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\r\n};\r\n\r\nvar toISO = Date.prototype.toISOString;\r\n\r\nvar defaultFormat = formats['default'];\r\nvar defaults = {\r\n addQueryPrefix: false,\r\n allowDots: false,\r\n charset: 'utf-8',\r\n charsetSentinel: false,\r\n delimiter: '&',\r\n encode: true,\r\n encoder: utils.encode,\r\n encodeValuesOnly: false,\r\n format: defaultFormat,\r\n formatter: formats.formatters[defaultFormat],\r\n // deprecated\r\n indices: false,\r\n serializeDate: function serializeDate(date) {\r\n return toISO.call(date);\r\n },\r\n skipNulls: false,\r\n strictNullHandling: false\r\n};\r\n\r\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\r\n return typeof v === 'string'\r\n || typeof v === 'number'\r\n || typeof v === 'boolean'\r\n || typeof v === 'symbol'\r\n || typeof v === 'bigint';\r\n};\r\n\r\nvar stringify = function stringify(\r\n object,\r\n prefix,\r\n generateArrayPrefix,\r\n strictNullHandling,\r\n skipNulls,\r\n encoder,\r\n filter,\r\n sort,\r\n allowDots,\r\n serializeDate,\r\n formatter,\r\n encodeValuesOnly,\r\n charset\r\n) {\r\n var obj = object;\r\n if (typeof filter === 'function') {\r\n obj = filter(prefix, obj);\r\n } else if (obj instanceof Date) {\r\n obj = serializeDate(obj);\r\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\r\n obj = utils.maybeMap(obj, function (value) {\r\n if (value instanceof Date) {\r\n return serializeDate(value);\r\n }\r\n return value;\r\n }).join(',');\r\n }\r\n\r\n if (obj === null) {\r\n if (strictNullHandling) {\r\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key') : prefix;\r\n }\r\n\r\n obj = '';\r\n }\r\n\r\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\r\n if (encoder) {\r\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key');\r\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value'))];\r\n }\r\n return [formatter(prefix) + '=' + formatter(String(obj))];\r\n }\r\n\r\n var values = [];\r\n\r\n if (typeof obj === 'undefined') {\r\n return values;\r\n }\r\n\r\n var objKeys;\r\n if (isArray(filter)) {\r\n objKeys = filter;\r\n } else {\r\n var keys = Object.keys(obj);\r\n objKeys = sort ? keys.sort(sort) : keys;\r\n }\r\n\r\n for (var i = 0; i < objKeys.length; ++i) {\r\n var key = objKeys[i];\r\n var value = obj[key];\r\n\r\n if (skipNulls && value === null) {\r\n continue;\r\n }\r\n\r\n var keyPrefix = isArray(obj)\r\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix\r\n : prefix + (allowDots ? '.' + key : '[' + key + ']');\r\n\r\n pushToArray(values, stringify(\r\n value,\r\n keyPrefix,\r\n generateArrayPrefix,\r\n strictNullHandling,\r\n skipNulls,\r\n encoder,\r\n filter,\r\n sort,\r\n allowDots,\r\n serializeDate,\r\n formatter,\r\n encodeValuesOnly,\r\n charset\r\n ));\r\n }\r\n\r\n return values;\r\n};\r\n\r\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\r\n if (!opts) {\r\n return defaults;\r\n }\r\n\r\n if (opts.encoder !== null && opts.encoder !== undefined && typeof opts.encoder !== 'function') {\r\n throw new TypeError('Encoder has to be a function.');\r\n }\r\n\r\n var charset = opts.charset || defaults.charset;\r\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\r\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\r\n }\r\n\r\n var format = formats['default'];\r\n if (typeof opts.format !== 'undefined') {\r\n if (!has.call(formats.formatters, opts.format)) {\r\n throw new TypeError('Unknown format option provided.');\r\n }\r\n format = opts.format;\r\n }\r\n var formatter = formats.formatters[format];\r\n\r\n var filter = defaults.filter;\r\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\r\n filter = opts.filter;\r\n }\r\n\r\n return {\r\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\r\n allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots,\r\n charset: charset,\r\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\r\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\r\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\r\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\r\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\r\n filter: filter,\r\n formatter: formatter,\r\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\r\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\r\n sort: typeof opts.sort === 'function' ? opts.sort : null,\r\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\r\n };\r\n};\r\n\r\nmodule.exports = function (object, opts) {\r\n var obj = object;\r\n var options = normalizeStringifyOptions(opts);\r\n\r\n var objKeys;\r\n var filter;\r\n\r\n if (typeof options.filter === 'function') {\r\n filter = options.filter;\r\n obj = filter('', obj);\r\n } else if (isArray(options.filter)) {\r\n filter = options.filter;\r\n objKeys = filter;\r\n }\r\n\r\n var keys = [];\r\n\r\n if (typeof obj !== 'object' || obj === null) {\r\n return '';\r\n }\r\n\r\n var arrayFormat;\r\n if (opts && opts.arrayFormat in arrayPrefixGenerators) {\r\n arrayFormat = opts.arrayFormat;\r\n } else if (opts && 'indices' in opts) {\r\n arrayFormat = opts.indices ? 'indices' : 'repeat';\r\n } else {\r\n arrayFormat = 'indices';\r\n }\r\n\r\n var generateArrayPrefix = arrayPrefixGenerators[arrayFormat];\r\n\r\n if (!objKeys) {\r\n objKeys = Object.keys(obj);\r\n }\r\n\r\n if (options.sort) {\r\n objKeys.sort(options.sort);\r\n }\r\n\r\n for (var i = 0; i < objKeys.length; ++i) {\r\n var key = objKeys[i];\r\n\r\n if (options.skipNulls && obj[key] === null) {\r\n continue;\r\n }\r\n pushToArray(keys, stringify(\r\n obj[key],\r\n key,\r\n generateArrayPrefix,\r\n options.strictNullHandling,\r\n options.skipNulls,\r\n options.encode ? options.encoder : null,\r\n options.filter,\r\n options.sort,\r\n options.allowDots,\r\n options.serializeDate,\r\n options.formatter,\r\n options.encodeValuesOnly,\r\n options.charset\r\n ));\r\n }\r\n\r\n var joined = keys.join(options.delimiter);\r\n var prefix = options.addQueryPrefix === true ? '?' : '';\r\n\r\n if (options.charsetSentinel) {\r\n if (options.charset === 'iso-8859-1') {\r\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\r\n prefix += 'utf8=%26%2310003%3B&';\r\n } else {\r\n // encodeURIComponent('✓')\r\n prefix += 'utf8=%E2%9C%93&';\r\n }\r\n }\r\n\r\n return joined.length > 0 ? prefix + joined : '';\r\n};\r\n\r\n},{\"./formats\":1,\"./utils\":5}],5:[function(require,module,exports){\r\n'use strict';\r\n\r\nvar has = Object.prototype.hasOwnProperty;\r\nvar isArray = Array.isArray;\r\n\r\nvar hexTable = (function () {\r\n var array = [];\r\n for (var i = 0; i < 256; ++i) {\r\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\r\n }\r\n\r\n return array;\r\n}());\r\n\r\nvar compactQueue = function compactQueue(queue) {\r\n while (queue.length > 1) {\r\n var item = queue.pop();\r\n var obj = item.obj[item.prop];\r\n\r\n if (isArray(obj)) {\r\n var compacted = [];\r\n\r\n for (var j = 0; j < obj.length; ++j) {\r\n if (typeof obj[j] !== 'undefined') {\r\n compacted.push(obj[j]);\r\n }\r\n }\r\n\r\n item.obj[item.prop] = compacted;\r\n }\r\n }\r\n};\r\n\r\nvar arrayToObject = function arrayToObject(source, options) {\r\n var obj = options && options.plainObjects ? Object.create(null) : {};\r\n for (var i = 0; i < source.length; ++i) {\r\n if (typeof source[i] !== 'undefined') {\r\n obj[i] = source[i];\r\n }\r\n }\r\n\r\n return obj;\r\n};\r\n\r\nvar merge = function merge(target, source, options) {\r\n /* eslint no-param-reassign: 0 */\r\n if (!source) {\r\n return target;\r\n }\r\n\r\n if (typeof source !== 'object') {\r\n if (isArray(target)) {\r\n target.push(source);\r\n } else if (target && typeof target === 'object') {\r\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\r\n target[source] = true;\r\n }\r\n } else {\r\n return [target, source];\r\n }\r\n\r\n return target;\r\n }\r\n\r\n if (!target || typeof target !== 'object') {\r\n return [target].concat(source);\r\n }\r\n\r\n var mergeTarget = target;\r\n if (isArray(target) && !isArray(source)) {\r\n mergeTarget = arrayToObject(target, options);\r\n }\r\n\r\n if (isArray(target) && isArray(source)) {\r\n source.forEach(function (item, i) {\r\n if (has.call(target, i)) {\r\n var targetItem = target[i];\r\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\r\n target[i] = merge(targetItem, item, options);\r\n } else {\r\n target.push(item);\r\n }\r\n } else {\r\n target[i] = item;\r\n }\r\n });\r\n return target;\r\n }\r\n\r\n return Object.keys(source).reduce(function (acc, key) {\r\n var value = source[key];\r\n\r\n if (has.call(acc, key)) {\r\n acc[key] = merge(acc[key], value, options);\r\n } else {\r\n acc[key] = value;\r\n }\r\n return acc;\r\n }, mergeTarget);\r\n};\r\n\r\nvar assign = function assignSingleSource(target, source) {\r\n return Object.keys(source).reduce(function (acc, key) {\r\n acc[key] = source[key];\r\n return acc;\r\n }, target);\r\n};\r\n\r\nvar decode = function (str, decoder, charset) {\r\n var strWithoutPlus = str.replace(/\\+/g, ' ');\r\n if (charset === 'iso-8859-1') {\r\n // unescape never throws, no try...catch needed:\r\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\r\n }\r\n // utf-8\r\n try {\r\n return decodeURIComponent(strWithoutPlus);\r\n } catch (e) {\r\n return strWithoutPlus;\r\n }\r\n};\r\n\r\nvar encode = function encode(str, defaultEncoder, charset) {\r\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\r\n // It has been adapted here for stricter adherence to RFC 3986\r\n if (str.length === 0) {\r\n return str;\r\n }\r\n\r\n var string = str;\r\n if (typeof str === 'symbol') {\r\n string = Symbol.prototype.toString.call(str);\r\n } else if (typeof str !== 'string') {\r\n string = String(str);\r\n }\r\n\r\n if (charset === 'iso-8859-1') {\r\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\r\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\r\n });\r\n }\r\n\r\n var out = '';\r\n for (var i = 0; i < string.length; ++i) {\r\n var c = string.charCodeAt(i);\r\n\r\n if (\r\n c === 0x2D // -\r\n || c === 0x2E // .\r\n || c === 0x5F // _\r\n || c === 0x7E // ~\r\n || (c >= 0x30 && c <= 0x39) // 0-9\r\n || (c >= 0x41 && c <= 0x5A) // a-z\r\n || (c >= 0x61 && c <= 0x7A) // A-Z\r\n ) {\r\n out += string.charAt(i);\r\n continue;\r\n }\r\n\r\n if (c < 0x80) {\r\n out = out + hexTable[c];\r\n continue;\r\n }\r\n\r\n if (c < 0x800) {\r\n out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);\r\n continue;\r\n }\r\n\r\n if (c < 0xD800 || c >= 0xE000) {\r\n out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);\r\n continue;\r\n }\r\n\r\n i += 1;\r\n c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));\r\n out += hexTable[0xF0 | (c >> 18)]\r\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\r\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\r\n + hexTable[0x80 | (c & 0x3F)];\r\n }\r\n\r\n return out;\r\n};\r\n\r\nvar compact = function compact(value) {\r\n var queue = [{ obj: { o: value }, prop: 'o' }];\r\n var refs = [];\r\n\r\n for (var i = 0; i < queue.length; ++i) {\r\n var item = queue[i];\r\n var obj = item.obj[item.prop];\r\n\r\n var keys = Object.keys(obj);\r\n for (var j = 0; j < keys.length; ++j) {\r\n var key = keys[j];\r\n var val = obj[key];\r\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\r\n queue.push({ obj: obj, prop: key });\r\n refs.push(val);\r\n }\r\n }\r\n }\r\n\r\n compactQueue(queue);\r\n\r\n return value;\r\n};\r\n\r\nvar isRegExp = function isRegExp(obj) {\r\n return Object.prototype.toString.call(obj) === '[object RegExp]';\r\n};\r\n\r\nvar isBuffer = function isBuffer(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n return false;\r\n }\r\n\r\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\r\n};\r\n\r\nvar combine = function combine(a, b) {\r\n return [].concat(a, b);\r\n};\r\n\r\nvar maybeMap = function maybeMap(val, fn) {\r\n if (isArray(val)) {\r\n var mapped = [];\r\n for (var i = 0; i < val.length; i += 1) {\r\n mapped.push(fn(val[i]));\r\n }\r\n return mapped;\r\n }\r\n return fn(val);\r\n};\r\n\r\nmodule.exports = {\r\n arrayToObject: arrayToObject,\r\n assign: assign,\r\n combine: combine,\r\n compact: compact,\r\n decode: decode,\r\n encode: encode,\r\n isBuffer: isBuffer,\r\n isRegExp: isRegExp,\r\n maybeMap: maybeMap,\r\n merge: merge\r\n};\r\n\r\n},{}]},{},[2])(2)\r\n});","(function () {\r\n\r\n function sortSelect(selElem) {\r\n var tmpAry = new Array();\r\n for (var i=0;i 0) {\r\n selElem.options[0] = null;\r\n }\r\n for (var i=0;i {\r\n let rowDimensions = row.dataset.dimensions.split('|');\r\n let isMatched = rowDimensions.includes(dimension);\r\n return isMatched;\r\n });\r\n\r\n row.classList.remove('odd');\r\n row.classList.remove('even');\r\n row.classList.remove('match');\r\n row.classList.remove('mismatch');\r\n\r\n if (isMatch) {\r\n row.classList.add('match');\r\n row.classList.add(isOdd ? 'odd' : 'even');\r\n isOdd = !isOdd;\r\n matchCount++;\r\n } else {\r\n row.classList.add('mismatch');\r\n }\r\n });\r\n\r\n if (matchCount > 0) {\r\n theList.style.display = '';\r\n if (noResultMsg) {\r\n noResultMsg.style.display = 'none';\r\n }\r\n } else {\r\n theList.style.display = 'none';\r\n if (noResultMsg) {\r\n noResultMsg.style.display = '';\r\n }\r\n }\r\n trifilter.querySelectorAll('select').forEach(function (select) {\r\n for (var i=0;i 0) {\r\n var liElems = document.querySelectorAll('[data-selectedvalue=\"' + select.options[i].value + '\"]');\r\n if(liElems.length > 0){\r\n liElems.forEach(function(liElem){\r\n liElem.classList.remove('no-match');\r\n });\r\n }\r\n }else{\r\n var liElems = document.querySelectorAll('[data-selectedvalue=\"' + select.options[i].value + '\"]');\r\n if(liElems.length > 0){\r\n liElems.forEach(function(liElem){\r\n liElem.classList.add('no-match');\r\n });\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n let params = Qs.parse(location.hash.substring(1));\r\n if (selectedDimension.length == 0) {\r\n delete params[`filter-${tableId}`];\r\n } else {\r\n params[`filter-${tableId}`] = selectedDimension.join(',');\r\n }\r\n if(Qs.stringify(params) !== ''){\r\n history.replaceState(null, null, '#' + Qs.stringify(params));\r\n }else{\r\n history.replaceState(null, null, '');\r\n }\r\n\r\n displayedCount = pageSize;\r\n applyPagination();\r\n }\r\n\r\n function applyPagination() {\r\n if (window.innerWidth >= alwaysShowVw) {\r\n // desktop: always show all\r\n moreButton.style.display = 'none';\r\n theList.style.maxHeight = theList.querySelector('.match') ?\r\n theList.querySelector('.match').clientHeight * pageSize + 'px' :\r\n '';\r\n theList.style.overflow = 'auto';\r\n\r\n theList.querySelectorAll('.match').forEach(function (item, i) {\r\n item.style.display = ''; // undo display: none from mobile\r\n });\r\n\r\n } else {\r\n // mobile: click to show more\r\n displayedCounter.innerHTML = displayedCount;\r\n totalCounter.innerHTML = matchCount;\r\n\r\n moreButton.style.display = (displayedCount < matchCount) ? '' : 'none';\r\n theList.style.maxHeight = '';\r\n theList.style.overflow = '';\r\n\r\n theList.querySelectorAll('.match').forEach(function (item, i) {\r\n item.style.display = (i < displayedCount) ? '' : 'none';\r\n });\r\n }\r\n }\r\n\r\n // load filter params\r\n const paramsOnLoad = Qs.parse(location.hash.substring(1));\r\n if (paramsOnLoad[`filter-${tableId}`]) {\r\n const preappliedDimensions = paramsOnLoad[`filter-${tableId}`].split(',');\r\n preappliedDimensions.forEach((dimension) => {\r\n const option = trifilter.querySelector(`option[value=\"${dimension}\"]`);\r\n if (option) option.selected = true;\r\n });\r\n }\r\n\r\n // apply default processing\r\n applyFilter();\r\n applyPagination();\r\n\r\n // event handlers\r\n trifilter.querySelectorAll('select').forEach(function (select, index) {\r\n select.addEventListener('change', applyFilter);\r\n });\r\n\r\n moreButton.addEventListener('click', function () {\r\n displayedCount += pageSize;\r\n applyPagination();\r\n });\r\n\r\n window.addEventListener('resize', applyPagination);\r\n\r\n });\r\n\r\n function initSelect(el){\r\n var select = el.querySelector('select');\r\n var dropdownHtml = '
';\r\n dropdownHtml += '
';\r\n dropdownHtml += select[select.selectedIndex].text;\r\n dropdownHtml += '
';\r\n dropdownHtml += '
';\r\n dropdownHtml += '
';\r\n dropdownHtml += '';\r\n dropdownHtml += '
';\r\n dropdownHtml += '
    ';\r\n for(var i = 0 ; i < select.children.length; i++){\r\n switch(select.children[i].tagName){\r\n case 'OPTGROUP':\r\n dropdownHtml += '
  • ';\r\n dropdownHtml += '' + select.children[i].label + '';\r\n var subchildren = select.children[i];\r\n if(subchildren.children.length > 0){\r\n dropdownHtml += '
      ';\r\n for(var j = 0; j < subchildren.children.length; j++){\r\n var matchedLength = document.querySelectorAll('[data-dimensions*=\"|' + subchildren.children[j].value + '|\"].match').length;\r\n dropdownHtml += '
    • ';\r\n }\r\n dropdownHtml += '
    ';\r\n }\r\n dropdownHtml += '
  • ';\r\n break;\r\n case 'OPTION':\r\n var matchedLength = document.querySelectorAll('[data-dimensions*=\"|' + select.children[i].value + '|\"].match').length;\r\n dropdownHtml += '
  • ';\r\n break;\r\n }\r\n }\r\n dropdownHtml += '
';\r\n dropdownHtml += '
';\r\n dropdownHtml += '
';\r\n el.classList.add(\"dropdown-select-inited\");\r\n el.innerHTML += dropdownHtml;\r\n\r\n el.querySelector('.trifilter__dropdown-selected').addEventListener('click', function(e){\r\n el.classList.toggle('trifilter__dropdown-select-opened');\r\n });\r\n\r\n el.querySelector('.trifilter__dropdown-search').addEventListener('keyup', function(e){\r\n var searchString = e.target.value;\r\n searchString = searchString.trim();\r\n el.querySelectorAll('.optgroup-wrapper').forEach(function(item, i){\r\n item.classList.remove('hidden');\r\n });\r\n if(searchString === ''){\r\n el.querySelectorAll('.option-title').forEach(function (item, i) {\r\n item.classList.remove('hidden');\r\n });\r\n }else{\r\n searchString = searchString.toLowerCase();\r\n searchString = searchString.replace(/\\s\\s+/g, ' ');\r\n searchString = searchString.split(' ');\r\n el.querySelectorAll('.option-title').forEach(function (item, i) {\r\n var hit = false;\r\n for(var k = 0; k < searchString.length; k++){\r\n if(item.innerText.toLowerCase().indexOf(searchString[k]) !== -1){\r\n hit = true;\r\n break;\r\n }\r\n }\r\n if(hit){\r\n item.classList.remove('hidden');\r\n }else{\r\n item.classList.add('hidden');\r\n }\r\n });\r\n el.querySelectorAll('.optgroup-wrapper').forEach(function(item, i){\r\n var hiddenCount = item.querySelectorAll('.option-title.hidden').length;\r\n var normalCount = item.querySelectorAll('.option-title').length;\r\n if(normalCount === hiddenCount){\r\n item.classList.add('hidden');\r\n }else{\r\n item.classList.remove('hidden');\r\n }\r\n });\r\n }\r\n });\r\n\r\n el.querySelectorAll('.option-title').forEach(function (item, i) {\r\n item.addEventListener('click', function(e){\r\n if(item.parentNode.classList.contains('no-match')) return;\r\n try{\r\n el.querySelector('select').value = item.parentNode.dataset.selectedvalue;\r\n el.querySelector('select').selectedIndex = item.parentNode.dataset.selectedindex;\r\n select.dispatchEvent(new Event('change'));\r\n }catch(e){\r\n console.log(e);\r\n }\r\n el.classList.toggle('trifilter__dropdown-select-opened');\r\n el.querySelector('.trifilter__dropdown-selected').innerHTML = item.innerText;\r\n });\r\n });\r\n }\r\n\r\n function isTouchDevice() {\r\n return (('ontouchstart' in window) ||\r\n (navigator.maxTouchPoints > 0) ||\r\n (navigator.msMaxTouchPoints > 0));\r\n }\r\n\r\n if(!isTouchDevice()){\r\n var selects = document.getElementsByClassName('trifilter__group');\r\n if (selects.length === 0) return;\r\n var possibleWidth = 100 / selects.length;\r\n possibleWidth = possibleWidth.toFixed(2);\r\n for(var i = 0; i < selects.length; i++){\r\n initSelect(selects[i]);\r\n selects[i].style.width = possibleWidth + '%';\r\n }\r\n document.body.addEventListener('click', function(e){\r\n try{\r\n if(!e.target.classList.contains('trifilter__dropdown-selected') && !e.target.classList.contains('trifilter__dropdown-search')){\r\n document.querySelectorAll('.trifilter__dropdown-select-opened').forEach(function(item, i){\r\n item.classList.remove('trifilter__dropdown-select-opened');\r\n });\r\n }\r\n }catch(e){\r\n console.log(e);\r\n }\r\n });\r\n }\r\n\r\n})();","(function () {\r\n // REF: https://davidwalsh.name/javascript-debounce-function\r\n function debounce(func, wait, immediate) {\r\n var timeout;\r\n return function () {\r\n var context = this,\r\n args = arguments;\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n var callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n };\r\n\r\n // REF: http://www.javascriptkit.com/javatutors/touchevents2.shtml\r\n function swipedetect(el, callback) {\r\n var touchsurface = el,\r\n swipedir,\r\n startX,\r\n startY,\r\n distX,\r\n distY,\r\n threshold = 150, //required min distance traveled to be considered swipe\r\n restraint = 100, // maximum distance allowed at the same time in perpendicular direction\r\n allowedTime = 300, // maximum time allowed to travel that distance\r\n elapsedTime,\r\n startTime,\r\n handleswipe = callback || function (swipedir) {}\r\n\r\n touchsurface.addEventListener('touchstart', function (e) {\r\n var touchobj = e.changedTouches[0]\r\n swipedir = 'none'\r\n distX = 0\r\n distY = 0\r\n startX = touchobj.pageX\r\n startY = touchobj.pageY\r\n startTime = new Date().getTime() // record time when finger first makes contact with surface\r\n e.preventDefault()\r\n }, false)\r\n\r\n touchsurface.addEventListener('touchmove', function (e) {\r\n e.preventDefault() // prevent scrolling when inside DIV\r\n }, false)\r\n\r\n touchsurface.addEventListener('touchend', function (e) {\r\n var touchobj = e.changedTouches[0]\r\n distX = touchobj.pageX - startX // get horizontal dist traveled by finger while in contact with surface\r\n distY = touchobj.pageY - startY // get vertical dist traveled by finger while in contact with surface\r\n elapsedTime = new Date().getTime() - startTime // get time elapsed\r\n if (elapsedTime <= allowedTime) { // first condition for awipe met\r\n if (Math.abs(distX) >= threshold && Math.abs(distY) <= restraint) { // 2nd condition for horizontal swipe met\r\n swipedir = (distX < 0) ? 'left' : 'right' // if dist traveled is negative, it indicates left swipe\r\n } else if (Math.abs(distY) >= threshold && Math.abs(distX) <= restraint) { // 2nd condition for vertical swipe met\r\n swipedir = (distY < 0) ? 'up' : 'down' // if dist traveled is negative, it indicates up swipe\r\n }\r\n }\r\n handleswipe(swipedir)\r\n e.preventDefault()\r\n }, false)\r\n }\r\n\r\n document.querySelectorAll('.image-slider').forEach(function (slider) {\r\n // remove spaces between elements\r\n slider.innerHTML = slider.innerHTML.replace(/>\\s+<');\r\n\r\n const centerFrame = slider.querySelector('.image-slider__center-frame');\r\n const slides = slider.querySelectorAll('.image-slider__slide');\r\n const prevArrow = slider.querySelector('.image-slider__arrow--prev');\r\n const nextArrow = slider.querySelector('.image-slider__arrow--next');\r\n let activeSlide = 0;\r\n\r\n if (!centerFrame || slides.length === 0) return;\r\n\r\n var doPositioning = debounce(function () {\r\n // CSS has translateY -50% so no need to care about the button height\r\n const arrowTop = (slides[activeSlide].querySelector('img') || slides[activeSlide]).offsetHeight / 2;\r\n prevArrow.style.top = `${arrowTop}px`;\r\n nextArrow.style.top = `${arrowTop}px`;\r\n\r\n prevArrow.style.display = (activeSlide == 0 ? 'none' : '');\r\n nextArrow.style.display = (activeSlide == slides.length - 1 ? 'none' : '');\r\n\r\n slides.forEach((slide) => {\r\n slide.classList.remove('active');\r\n });\r\n slides[activeSlide].classList.add('active');\r\n\r\n centerFrame.style.transform = `translate(-${slides[activeSlide].offsetLeft}px, 0)`;\r\n\r\n }, 50);\r\n\r\n function prevPage() {\r\n if (activeSlide === 0) return;\r\n activeSlide--;\r\n doPositioning();\r\n }\r\n\r\n function nextPage() {\r\n if (activeSlide === slides.length - 1) return;\r\n activeSlide++;\r\n doPositioning();\r\n }\r\n\r\n prevArrow.addEventListener('click', prevPage);\r\n nextArrow.addEventListener('click', nextPage);\r\n\r\n swipedetect(centerFrame, (swipedir) => {\r\n if (swipedir === 'left') {\r\n nextPage();\r\n } else if (swipedir === 'right') {\r\n prevPage();\r\n }\r\n })\r\n\r\n doPositioning();\r\n window.addEventListener('resize', doPositioning);\r\n slider.querySelectorAll('img').forEach((img) => {\r\n img.addEventListener('load', doPositioning);\r\n });\r\n\r\n });\r\n})();","(function () {\r\n // --- Hamburger Menu --- //\r\n var hamburgerButton = document.getElementById('hamburger-button');\r\n var hamburger = document.getElementById('hamburger');\r\n\r\n hamburgerButton.addEventListener('click', (ev) => {\r\n hamburgerButton.classList.toggle('closed');\r\n hamburger.classList.toggle('closed');\r\n });\r\n\r\n // --- Video Popup --- //\r\n const videoPopup = document.getElementById('video-popup');\r\n const videoPopupIframe = document.getElementById('video-popup-iframe');\r\n\r\n document.querySelectorAll('[data-youtube-popup-id]').forEach(function (elem) {\r\n elem.addEventListener('click', function (ev) {\r\n ev.preventDefault();\r\n const youtubeId = this.dataset.youtubePopupId;\r\n videoPopup.classList.add('show');\r\n videoPopupIframe.src = `https://www.youtube.com/embed/${youtubeId}`;\r\n });\r\n });\r\n\r\n videoPopup.addEventListener('click', function (ev) {\r\n if (ev.target !== videoPopupIframe) {\r\n videoPopup.classList.remove('show');\r\n videoPopupIframe.src = '';\r\n }\r\n });\r\n\r\n // --- Smooth Scroll function --- //\r\n // REF: https://gist.github.com/andjosh/6764939#gistcomment-2553779\r\n function smoothScrollTo(element, to = 0, duration = 600) {\r\n const start = element.scrollTop;\r\n const change = to - start;\r\n const increment = 20;\r\n let currentTime = 0;\r\n\r\n const animateScroll = (() => {\r\n currentTime += increment;\r\n const val = Math.easeInOutQuad(currentTime, start, change, duration);\r\n element.scrollTop = val;\r\n if (currentTime < duration) {\r\n setTimeout(animateScroll, increment);\r\n }\r\n });\r\n\r\n animateScroll();\r\n };\r\n\r\n Math.easeInOutQuad = function (t, b, c, d) {\r\n t /= d / 2;\r\n if (t < 1) return c / 2 * t * t + b;\r\n t--;\r\n return -c / 2 * (t * (t - 2) - 1) + b;\r\n };\r\n\r\n // --- Footer Controls --- //\r\n document.getElementById('back-to-top').addEventListener('click', function (ev) {\r\n ev.preventDefault();\r\n smoothScrollTo(document.documentElement);\r\n });\r\n\r\n document.getElementById('back-to-prev').addEventListener('click', function (ev) {\r\n ev.preventDefault();\r\n history.go(-1);\r\n });\r\n\r\n})();"]}