{"version":3,"sources":["webpack://frontendplaceholder/./Src/Scripts/components/search.js","webpack://frontendplaceholder/./Src/Scripts/components/vue-component-loader.js","webpack://frontendplaceholder/./node_modules/lodash/_Symbol.js","webpack://frontendplaceholder/./node_modules/lodash/_baseGetTag.js","webpack://frontendplaceholder/./node_modules/lodash/_baseTrim.js","webpack://frontendplaceholder/./node_modules/lodash/_freeGlobal.js","webpack://frontendplaceholder/./node_modules/lodash/_getRawTag.js","webpack://frontendplaceholder/./node_modules/lodash/_objectToString.js","webpack://frontendplaceholder/./node_modules/lodash/_root.js","webpack://frontendplaceholder/./node_modules/lodash/_trimmedEndIndex.js","webpack://frontendplaceholder/./node_modules/lodash/debounce.js","webpack://frontendplaceholder/./node_modules/lodash/isObject.js","webpack://frontendplaceholder/./node_modules/lodash/isObjectLike.js","webpack://frontendplaceholder/./node_modules/lodash/isSymbol.js","webpack://frontendplaceholder/./node_modules/lodash/now.js","webpack://frontendplaceholder/./node_modules/lodash/throttle.js","webpack://frontendplaceholder/./node_modules/lodash/toNumber.js","webpack://frontendplaceholder/./node_modules/minimasonry/build/minimasonry.esm.js","webpack://frontendplaceholder/./node_modules/vue-masonry-css/dist/vue-masonry.es2015.js"],"names":["window","visualViewport","height","constructor","elm","input","querySelector","resultsContainer","toggle","allResultsLink","results","setVisualViewportHeight","document","body","style","setProperty","offsetTop","Math","max","innerHeight","addEventListener","classList","contains","focus","value","innerHTML","remove","e","target","closest","throttledSearch","throttle","length","lastSearch","calendarHref","dataset","href","clearSearch","curSearch","fetch","then","x","json","add","forEach","result","div","createElement","setAttribute","appendChild","listView","inSearch","VueComponentLoader","scrollTo","elem","args","callback","this","appInstance","state","reactive","vueComponent","getAttribute","vuecr","loadComponentClass","VueComponent","props","createApp","use","VueMasonry","mount","createUntypedApp","deps","data","components","depsAttr","componentDependencies","split","map","cd","trim","loadComponentClasses","i","replace","_maskedHelpers","getAppInstance","setData","key","Symbol","module","exports","getRawTag","objectToString","symToStringTag","toStringTag","undefined","Object","trimmedEndIndex","reTrimStart","string","slice","freeGlobal","g","objectProto","prototype","hasOwnProperty","nativeObjectToString","toString","isOwn","call","tag","unmasked","freeSelf","self","root","Function","reWhitespace","index","test","charAt","isObject","now","toNumber","nativeMax","nativeMin","min","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","thisArg","apply","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","arguments","clearTimeout","cancel","flush","type","baseGetTag","isObjectLike","Date","debounce","baseTrim","isSymbol","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","isBinary","MiniMasonry","conf","_sizes","_columns","_container","_count","_width","_removeListener","_resizeTimeout","baseWidth","gutterX","gutterY","gutter","container","minify","ultimateGutter","surroundingGutter","direction","wedge","init","nodeName","Error","onResize","resizeThrottler","bind","removeEventListener","layout","reset","clientWidth","minWidth","getCount","floor","computeWidth","width","Number","parseFloat","toFixed","colWidth","startX","children","k","clientHeight","occupiedSpace","nextColumn","getShortest","getNextColumn","childrenGutter","y","transform","round","getLongest","console","error","shortest","longest","destroy","removeProperty","String","default","cols","css","Boolean","columnTag","columnClass","Array","columnAttr","breakpointValue","mixed","windowWidth","matchedBreakpoint","Infinity","matchedValue","breakpoint","breakpointValRaw","breakpointVal","isNaN","component","displayColumns","displayGutter","mounted","this$1","$nextTick","reCalculate","updated","beforeDestroy","methods","previousWindowWidth","innerWidth","_reCalculateColumnCount","_reCalculateGutterSize","newColumns","_getChildItemsInColumnsArray","columns","childItems","$slots","componentOptions","visibleItemI","columnIndex","push","render","columnsContainingChildren","gutterSizeWithUnit","columnStyle","boxSizing","backgroundClip","border","borderLeftWidth","class","attrs","containerStyle","display","marginLeft","Plugin","install","Vue","installed","name"],"mappings":"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","file":"4501.39d14c1e95070f3aa58a.js","sourcesContent":["import VueComponentLoader from '../components/vue-component-loader';\nimport MiniMasonry from 'minimasonry';\nimport { Swiper, Freemode, Direction } from 'swiper';\nimport { first, throttle } from 'lodash';\nimport { forEach } from 'lodash';\nimport Throttle from 'lodash/throttle'\nconst height = window.visualViewport.height;\nconst viewport = window.visualViewport;\n\nexport default class Search {\n constructor(elm) {\n const input = elm.querySelector('[data-search-input]');\n const resultsContainer = elm.querySelector('[data-search-results]');\n const toggle = elm.querySelector('[data-search-toggle]');\n const allResultsLink = elm.querySelector('[data-results-link]');\n const results = elm.querySelector('.search-bar__results')\n const toolbar = document.querySelector('.top-navigation__toolbar')\n\n function setVisualViewportHeight() {\n // For the rare legacy browsers that don't support it\n if (!window.visualViewport) {\n return\n }\n\n document.body.style.setProperty('--actual-height', window.visualViewport.height + 'px');\n if (window.visualViewport.offsetTop >= 0) {\n //document.querySelector('[data-stickto=\"bottom\"]').style.transform = `translateY(-${Math.max(0, window.innerHeight - window.visualViewport.height - window.visualViewport.offsetTop)}px)`;\n document.body.style.setProperty('--transform-from-bottom', `-${Math.max(0, window.innerHeight - window.visualViewport.height - window.visualViewport.offsetTop)}px`);\n }\n }\n\n if (window.visualViewport) {\n window.visualViewport.addEventListener(\"resize\", () => {\n setVisualViewportHeight();\n });\n\n window.visualViewport.addEventListener(\"scroll\", () => {\n setVisualViewportHeight();\n });\n }\n\n setVisualViewportHeight();\n\n toggle.addEventListener('click', () => {\n document.body.classList.toggle('search-bar-open')\n if (document.body.classList.contains('search-bar-open')) {\n input.focus()\n } else {\n input.value = '';\n resultsContainer.innerHTML = '';\n elm.classList.remove('search-bar--no-results')\n elm.classList.remove('search-bar--results')\n document.body.classList.remove('search-results-open')\n }\n })\n\n\n window.addEventListener('click', e => {\n var closest = e.target.closest('.search-bar')\n if (!closest) {\n document.body.classList.remove('search-bar-open')\n }\n });\n\n var throttledSearch = throttle(updateSearch, 300);\n let lastSearch = '';\n\n function updateSearch() {\n if (input.value.length > 2) {\n if (lastSearch != input.value) {\n const calendarHref = allResultsLink.dataset.calendarHref;\n allResultsLink.href = `${calendarHref}?Query=${input.value}`;\n clearSearch();\n lastSearch = input.value;\n var curSearch = input.value;\n fetch(`/umbraco/api/events/fetch?query=${input.value}&pageSize=5`).then(x => x.json())\n .then(json => {\n if (curSearch == lastSearch) {\n if (!json.results || json.results?.length == 0) {\n elm.classList.add('search-bar--no-more-results')\n elm.classList.add('search-bar--no-results')\n elm.classList.remove('search-bar--results')\n document.body.classList.remove('search-results-open')\n } else {\n elm.classList.remove('search-bar--no-results')\n elm.classList.add('search-bar--results')\n document.body.classList.add('search-results-open')\n elm.classList.toggle('search-bar--no-more-results', json.results.length < 5)\n\n json.results.forEach(result => {\n var div = document.createElement('div');\n div.setAttribute('data-vue-component', 'vue-event-card')\n resultsContainer.appendChild(div);\n result.listView = true;\n result.inSearch = true;\n new VueComponentLoader(div, result)\n })\n\n results.scrollTo(0, 0)\n }\n }\n })\n }\n } else {\n clearSearch();\n }\n }\n\n function clearSearch() {\n resultsContainer.innerHTML = '';\n elm.classList.remove('search-bar--no-results')\n elm.classList.remove('search-bar--results')\n document.body.classList.remove('search-results-open')\n }\n\n input.addEventListener('input', () => {\n throttledSearch();\n });\n }\n}\n","/**\n *\n * DESCRIPTION:\n * A helper class to load and instantiate Vue Components. It can be used in two ways either as a \"typed-component\" or an \"untyped-component\".\n * \n * A typed-component is instantiated by supplying a data-vue-component attribute with ONE (and only one) key to a vue-component from the window.vuecr.\n * This vue-component will then be loaded and instantiated as the root Vue app. This is used when the markup of the vue-component determines the markup to be rendered.\n *\n * An untyped-component is instantiated by NOT supplying a data-vue-component attribute. An untyped component is used\n * when you want to create an empty vue app that applies to some markup rendered from the backend. This markup can then utilize Vue syntax to render data,\n * as well as Vue component tags to instantiate any vue components supplied in the data-vue-component-dependencies attribute.\n * \n * ARGS:\n * No specific args, but any arguments will be passed directly to the instantiated app.\n * */\nimport { createApp, reactive } from 'vue';\nimport VueMasonry from 'vue-masonry-css';\n\nexport default class VueComponentLoader {\n constructor(elem, args, callback) {\n this.appInstance = null;\n this.state = reactive(args); // make state reactive\n\n const vueComponent = elem.getAttribute('data-vue-component');\n let state = this.state;\n if (vueComponent) {\n window.vuecr.loadComponentClass(vueComponent)\n .then((VueComponent) => {\n VueComponent.props = ['state']; // Define the prop\n this.appInstance = createApp(VueComponent, { state }); // Pass the prop when creating the app\n this.appInstance.use(VueMasonry);\n this.appInstance.mount(elem);\n if (callback) callback();\n });\n } else {\n const createUntypedApp = (deps = {}) => {\n this.appInstance = createApp({\n data() { return { state: this.state }; },\n components: deps,\n });\n this.appInstance.mount(elem);\n };\n\n const depsAttr = elem.getAttribute('data-vue-component-dependencies');\n let componentDependencies = depsAttr ? depsAttr.split(',').map((cd) => cd.trim()) : [];\n\n if (componentDependencies.length > 0) {\n window.vuecr.loadComponentClasses(componentDependencies)\n .then((result) => {\n const deps = {};\n componentDependencies.forEach((cd, i) => {\n deps[cd.replace('-', '')] = result[i];\n });\n createUntypedApp(deps);\n });\n } else {\n createUntypedApp();\n }\n }\n\n this._maskedHelpers = {\n getAppInstance: () => this.appInstance,\n setData: (data) => {\n for (let key in data) {\n this.state[key] = data[key]; // Vue automatically triggers re-render\n }\n },\n };\n }\n\n getAppInstance() {\n return this._maskedHelpers.getAppInstance();\n }\n\n setData(data) {\n this._maskedHelpers.setData(data);\n }\n}\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 trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\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 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","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\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","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"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 object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or 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 a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var MiniMasonry = function(conf) {\n this._sizes = [];\n this._columns = [];\n this._container = null;\n this._count = null;\n this._width = 0;\n this._removeListener = null;\n\n this._resizeTimeout = null,\n\n this.conf = {\n baseWidth: 255,\n gutterX: null,\n gutterY: null,\n gutter: 10,\n container: null,\n minify: true,\n ultimateGutter: 5,\n surroundingGutter: true,\n direction: 'ltr',\n wedge: false\n };\n\n this.init(conf);\n\n return this;\n};\n\nMiniMasonry.prototype.init = function(conf) {\n for (var i in this.conf) {\n if (conf[i] != undefined) {\n this.conf[i] = conf[i];\n }\n }\n if (this.conf.gutterX == null || this.conf.gutterY == null) {\n this.conf.gutterX = this.conf.gutterY = this.conf.gutter;\n }\n\n this._container = typeof this.conf.container == 'object' && this.conf.container.nodeName ?\n this.conf.container :\n document.querySelector(this.conf.container);\n\n if (!this._container) {\n throw new Error('Container not found or missing');\n }\n\n var onResize = this.resizeThrottler.bind(this);\n window.addEventListener(\"resize\", onResize);\n this._removeListener = function() {\n window.removeEventListener(\"resize\", onResize);\n };\n\n this.layout();\n};\n\nMiniMasonry.prototype.reset = function() {\n this._sizes = [];\n this._columns = [];\n this._count = null;\n this._width = this._container.clientWidth;\n var minWidth = this.conf.baseWidth;\n if (this._width < minWidth) {\n this._width = minWidth;\n this._container.style.minWidth = minWidth + 'px';\n }\n\n if (this.getCount() == 1) {\n // Set ultimate gutter when only one column is displayed\n this.conf.gutterX = this.conf.ultimateGutter;\n // As gutters are reduced, two column may fit, forcing to 1\n this._count = 1;\n }\n\n if (this._width < (this.conf.baseWidth + (2 * this.conf.gutterX))) {\n // Remove gutter when screen is to low\n this.conf.gutterX = 0;\n }\n};\n\nMiniMasonry.prototype.getCount = function() {\n if (this.conf.surroundingGutter) {\n return Math.floor((this._width - this.conf.gutterX) / (this.conf.baseWidth + this.conf.gutterX));\n }\n\n return Math.floor((this._width + this.conf.gutterX) / (this.conf.baseWidth + this.conf.gutterX));\n};\n\nMiniMasonry.prototype.computeWidth = function() {\n var width;\n if (this.conf.surroundingGutter) {\n width = ((this._width - this.conf.gutterX) / this._count) - this.conf.gutterX;\n } else {\n width = ((this._width + this.conf.gutterX) / this._count) - this.conf.gutterX;\n }\n width = Number.parseFloat(width.toFixed(2));\n\n return width;\n};\n\nMiniMasonry.prototype.layout = function() {\n if (!this._container) {\n console.error('Container not found');\n return;\n }\n this.reset();\n\n //Computing columns count\n if (this._count == null) {\n this._count = this.getCount();\n }\n //Computing columns width\n var colWidth = this.computeWidth();\n\n for (var i = 0; i < this._count; i++) {\n this._columns[i] = 0;\n }\n\n //Saving children real heights\n var children = this._container.children;\n for (var k = 0;k< children.length; k++) {\n // Set colWidth before retrieving element height if content is proportional\n children[k].style.width = colWidth + 'px';\n this._sizes[k] = children[k].clientHeight;\n }\n\n var startX;\n if (this.conf.direction == 'ltr') {\n startX = this.conf.surroundingGutter ? this.conf.gutterX : 0;\n } else {\n startX = this._width - (this.conf.surroundingGutter ? this.conf.gutterX : 0);\n }\n if (this._count > this._sizes.length) {\n //If more columns than children\n var occupiedSpace = (this._sizes.length * (colWidth + this.conf.gutterX)) - this.conf.gutterX;\n if (this.conf.wedge === false) {\n if (this.conf.direction == 'ltr') {\n startX = ((this._width - occupiedSpace) / 2);\n } else {\n startX = this._width - ((this._width - occupiedSpace) / 2);\n }\n } else {\n if (this.conf.direction == 'ltr') ; else {\n startX = this._width - this.conf.gutterX;\n }\n }\n }\n\n //Computing position of children\n for (var index = 0;index < children.length; index++) {\n var nextColumn = this.conf.minify ? this.getShortest() : this.getNextColumn(index);\n\n var childrenGutter = 0;\n if (this.conf.surroundingGutter || nextColumn != this._columns.length) {\n childrenGutter = this.conf.gutterX;\n }\n var x;\n if (this.conf.direction == 'ltr') {\n x = startX + ((colWidth + childrenGutter) * (nextColumn));\n } else {\n x = startX - ((colWidth + childrenGutter) * (nextColumn)) - colWidth;\n }\n var y = this._columns[nextColumn];\n\n\n children[index].style.transform = 'translate3d(' + Math.round(x) + 'px,' + Math.round(y) + 'px,0)';\n\n this._columns[nextColumn] += this._sizes[index] + (this._count > 1 ? this.conf.gutterY : this.conf.ultimateGutter);//margin-bottom\n }\n\n this._container.style.height = (this._columns[this.getLongest()] - this.conf.gutterY) + 'px';\n};\n\nMiniMasonry.prototype.getNextColumn = function(index) {\n return index % this._columns.length;\n};\n\nMiniMasonry.prototype.getShortest = function() {\n var shortest = 0;\n for (var i = 0; i < this._count; i++) {\n if (this._columns[i] < this._columns[shortest]) {\n shortest = i;\n }\n }\n\n return shortest;\n};\n\nMiniMasonry.prototype.getLongest = function() {\n var longest = 0;\n for (var i = 0; i < this._count; i++) {\n if (this._columns[i] > this._columns[longest]) {\n longest = i;\n }\n }\n\n return longest;\n};\n\nMiniMasonry.prototype.resizeThrottler = function() {\n // ignore resize events as long as an actualResizeHandler execution is in the queue\n if ( !this._resizeTimeout ) {\n\n this._resizeTimeout = setTimeout(function() {\n this._resizeTimeout = null;\n //IOS Safari throw random resize event on scroll, call layout only if size has changed\n if (this._container.clientWidth != this._width) {\n this.layout();\n }\n // The actualResizeHandler will execute at a rate of 30fps\n }.bind(this), 33);\n }\n};\n\nMiniMasonry.prototype.destroy = function() {\n if (typeof this._removeListener == \"function\") {\n this._removeListener();\n }\n\n var children = this._container.children;\n for (var k = 0;k< children.length; k++) {\n children[k].style.removeProperty('width');\n children[k].style.removeProperty('transform');\n }\n this._container.style.removeProperty('height');\n this._container.style.removeProperty('min-width');\n};\n\nexport { MiniMasonry as default };\n","/*!\n * vue-masonry-css v1.0.3\n * https://github.com/paulcollett/vue-masonry-css\n * Released under the MIT License.\n */\n\n// the component name ``\n// can be overridden with `Vue.use(Masonry, { name: 'the-masonry' });`\nvar componentName = 'masonry';\n\nvar props = {\n tag: {\n type: [String],\n default: 'div'\n },\n cols: {\n type: [Object, Number, String],\n default: 2\n },\n gutter: {\n type: [Object, Number, String],\n default: 0\n },\n css: {\n type: [Boolean],\n default: true\n },\n columnTag: {\n type: [String],\n default: 'div'\n },\n columnClass: {\n type: [String, Array, Object],\n default: function () { return []; }\n },\n columnAttr: {\n type: [Object],\n default: function () { return ({}); }\n }\n};\n\n// Get the resulting value from `:col=` prop\n// based on the window width\nvar breakpointValue = function (mixed, windowWidth) {\n var valueAsNum = parseInt(mixed);\n\n if(valueAsNum > -1) {\n return mixed;\n }else if(typeof mixed !== 'object') {\n return 0;\n }\n\n var matchedBreakpoint = Infinity;\n var matchedValue = mixed.default || 0;\n\n for(var k in mixed) {\n var breakpoint = parseInt(k);\n var breakpointValRaw = mixed[breakpoint];\n var breakpointVal = parseInt(breakpointValRaw);\n\n if(isNaN(breakpoint) || isNaN(breakpointVal)) {\n continue;\n }\n\n var isNewBreakpoint = windowWidth <= breakpoint && breakpoint < matchedBreakpoint;\n\n if(isNewBreakpoint) {\n matchedBreakpoint = breakpoint;\n matchedValue = breakpointValRaw;\n }\n }\n\n return matchedValue;\n};\n\nvar component = {\n props: props,\n\n data: function data() {\n return {\n displayColumns: 2,\n displayGutter: 0\n }\n },\n\n mounted: function mounted() {\n var this$1 = this;\n\n this.$nextTick(function () {\n this$1.reCalculate();\n });\n\n // Bind resize handler to page\n if(window) {\n window.addEventListener('resize', this.reCalculate);\n }\n },\n\n updated: function updated() {\n var this$1 = this;\n\n this.$nextTick(function () {\n this$1.reCalculate();\n });\n },\n\n beforeDestroy: function beforeDestroy() {\n if(window) {\n window.removeEventListener('resize', this.reCalculate);\n }\n },\n\n methods: {\n // Recalculate how many columns to display based on window width\n // and the value of the passed `:cols=` prop\n reCalculate: function reCalculate() {\n var previousWindowWidth = this.windowWidth;\n\n this.windowWidth = (window ? window.innerWidth : null) || Infinity;\n\n // Window resize events get triggered on page height\n // change which when loading the page can result in multiple\n // needless calculations. We prevent this here.\n if(previousWindowWidth === this.windowWidth) {\n return;\n }\n\n this._reCalculateColumnCount(this.windowWidth);\n\n this._reCalculateGutterSize(this.windowWidth);\n },\n\n _reCalculateGutterSize: function _reCalculateGutterSize(windowWidth) {\n this.displayGutter = breakpointValue(this.gutter, windowWidth);\n },\n\n _reCalculateColumnCount: function _reCalculateColumnCount(windowWidth) {\n var newColumns = breakpointValue(this.cols, windowWidth);\n\n // Make sure we can return a valid value\n newColumns = Math.max(1, Number(newColumns) || 0);\n\n this.displayColumns = newColumns;\n },\n\n _getChildItemsInColumnsArray: function _getChildItemsInColumnsArray() {\n var this$1 = this;\n\n var columns = [];\n var childItems = this.$slots.default || [];\n\n // This component does not work with a child ..yet,\n // so for now we think it may be helpful to ignore until we can find a way for support\n if(childItems.length === 1 && childItems[0].componentOptions && childItems[0].componentOptions.tag == 'transition-group') {\n childItems = childItems[0].componentOptions.children;\n }\n\n // Loop through child elements\n for (var i = 0, visibleItemI = 0; i < childItems.length; i++, visibleItemI++) {\n // skip Vue elements without tags, which includes\n // whitespace elements and also plain text\n if(!childItems[i].tag) {\n visibleItemI--;\n\n continue;\n }\n\n // Get the column index the child item will end up in\n var columnIndex = visibleItemI % this$1.displayColumns;\n\n if(!columns[columnIndex]) {\n columns[columnIndex] = [];\n }\n\n columns[columnIndex].push(childItems[i]);\n }\n\n return columns;\n }\n },\n\n render: function render(createElement) {\n var this$1 = this;\n\n var columnsContainingChildren = this._getChildItemsInColumnsArray();\n var isGutterSizeUnitless = parseInt(this.displayGutter) === this.displayGutter * 1;\n var gutterSizeWithUnit = isGutterSizeUnitless ? ((this.displayGutter) + \"px\") : this.displayGutter;\n\n var columnStyle = {\n boxSizing: 'border-box',\n backgroundClip: 'padding-box',\n width: ((100 / this.displayColumns) + \"%\"),\n border: '0 solid transparent',\n borderLeftWidth: gutterSizeWithUnit\n };\n\n var columns = columnsContainingChildren.map(function (children, index) {\n /// Create column element and inject the children\n return createElement(this$1.columnTag, {\n key: index + '-' + columnsContainingChildren.length,\n style: this$1.css ? columnStyle : null,\n class: this$1.columnClass,\n attrs: this$1.columnAttr\n }, children); // specify child items here\n });\n\n var containerStyle = {\n display: ['-webkit-box', '-ms-flexbox', 'flex'],\n marginLeft: (\"-\" + gutterSizeWithUnit)\n };\n\n // Return wrapper with columns\n return createElement(\n this.tag, // tag name\n this.css ? { style: containerStyle } : null, // element options\n columns // column vue elements\n );\n }\n};\n\nvar Plugin = function () {};\n\nPlugin.install = function (Vue, options) {\n if (Plugin.installed) {\n return;\n }\n\n if(options && options.name) {\n Vue.component(options.name, component);\n } else {\n Vue.component(componentName, component);\n }\n};\n\nif (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(Plugin);\n}\n\nexport default Plugin;\n"],"sourceRoot":""}