{"version":3,"file":"main.bundle.js","mappings":"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","sources":["webpack://kirkland/./node_modules/axios/index.js","webpack://kirkland/./node_modules/axios/lib/adapters/xhr.js","webpack://kirkland/./node_modules/axios/lib/axios.js","webpack://kirkland/./node_modules/axios/lib/cancel/Cancel.js","webpack://kirkland/./node_modules/axios/lib/cancel/CancelToken.js","webpack://kirkland/./node_modules/axios/lib/cancel/isCancel.js","webpack://kirkland/./node_modules/axios/lib/core/Axios.js","webpack://kirkland/./node_modules/axios/lib/core/InterceptorManager.js","webpack://kirkland/./node_modules/axios/lib/core/createError.js","webpack://kirkland/./node_modules/axios/lib/core/dispatchRequest.js","webpack://kirkland/./node_modules/axios/lib/core/enhanceError.js","webpack://kirkland/./node_modules/axios/lib/core/settle.js","webpack://kirkland/./node_modules/axios/lib/core/transformData.js","webpack://kirkland/./node_modules/axios/lib/defaults.js","webpack://kirkland/./node_modules/axios/lib/helpers/bind.js","webpack://kirkland/./node_modules/axios/lib/helpers/btoa.js","webpack://kirkland/./node_modules/axios/lib/helpers/buildURL.js","webpack://kirkland/./node_modules/axios/lib/helpers/combineURLs.js","webpack://kirkland/./node_modules/axios/lib/helpers/cookies.js","webpack://kirkland/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://kirkland/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://kirkland/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://kirkland/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://kirkland/./node_modules/axios/lib/helpers/spread.js","webpack://kirkland/./node_modules/axios/lib/utils.js","webpack://kirkland/./src/scripts/mixins/headroom.vue.js","webpack://kirkland/./src/scripts/mixins/siteSearchTypeahead.vue.js","webpack://kirkland/./src/scripts/mixins/collapsibleSections.vue.js","webpack://kirkland/./src/scripts/mixins/searchLanding.vue.js","webpack://kirkland/./src/scripts/mixins/peopleSearchMixin.vue.js","webpack://kirkland/./src/scripts/apps/people-search.vue.js","webpack://kirkland/./src/scripts/apps/staff-search.vue.js","webpack://kirkland/./src/scripts/apps/site-search-page.vue.js","webpack://kirkland/./src/scripts/apps/insights-search.vue.js","webpack://kirkland/./src/scripts/mixins/podcast.vue.js","webpack://kirkland/./src/scripts/apps/site-header.vue.js","webpack://kirkland/./src/scripts/apps/site-overlay.vue.js","webpack://kirkland/./src/scripts/apps/homepage.vue.js","webpack://kirkland/./src/scripts/apps/marquee-story.vue.js","webpack://kirkland/./src/scripts/apps/people-detail.vue.js","webpack://kirkland/./src/scripts/apps/manifest.js","webpack://kirkland/./src/scripts/apps/services-detail.vue.js","webpack://kirkland/./src/scripts/apps/services-landing.vue.js","webpack://kirkland/./src/scripts/apps/articles-detail.vue.js","webpack://kirkland/./src/scripts/apps/locations-detail.vue.js","webpack://kirkland/./src/scripts/apps/locations-landing.vue.js","webpack://kirkland/./src/scripts/apps/careers-detail.vue.js","webpack://kirkland/./src/scripts/apps/careers-landing.vue.js","webpack://kirkland/./src/scripts/apps/general-content.vue.js","webpack://kirkland/./src/scripts/apps/language-index.vue.js","webpack://kirkland/./src/scripts/apps/testimonial-detail.vue.js","webpack://kirkland/./src/scripts/apps/testimonial-landing.vue.js","webpack://kirkland/./src/scripts/apps/topic-landing.vue.js","webpack://kirkland/./src/scripts/apps/back-to-top.vue.js","webpack://kirkland/./src/scripts/auxillary/polyfill-DOMWheel.js","webpack://kirkland/./src/scripts/auxillary/polyfill-array-from.js","webpack://kirkland/./src/scripts/auxillary/polyfill-custom-event.js","webpack://kirkland/./src/scripts/auxillary/polyfill-findIndex.js","webpack://kirkland/./src/scripts/auxillary/polyfill-object-assign.js","webpack://kirkland/./src/scripts/auxillary/polyfill-requestAnimationFrame.js","webpack://kirkland/./src/scripts/components/Showcase.vue.js","webpack://kirkland/./src/scripts/components/team-card.vue.js","webpack://kirkland/./src/scripts/components/team-carousel.vue.js","webpack://kirkland/./src/scripts/components/ShowcaseQuote.vue.js","webpack://kirkland/./src/scripts/components/accordion.vue.js","webpack://kirkland/./node_modules/jump.js/dist/jump.module.js","webpack://kirkland/./src/scripts/components/profile-bar.vue.js","webpack://kirkland/./src/scripts/components/expandable-services.vue.js","webpack://kirkland/./src/scripts/components/services-areas.vue.js","webpack://kirkland/./src/scripts/components/person-result.vue.js","webpack://kirkland/./src/scripts/components/InsightCardResult.vue.js","webpack://kirkland/./src/scripts/components/InsightCardResultLi.vue.js","webpack://kirkland/./src/scripts/components/ProminentCardResult.vue.js","webpack://kirkland/./src/scripts/components/SiteSearchResult.vue.js","webpack://kirkland/./src/scripts/components/read-more.vue.js","webpack://kirkland/./src/scripts/components/LanguageDropdown.vue.js","webpack://kirkland/./src/scripts/components/CarouselHighlights.vue.js","webpack://kirkland/./src/scripts/components/LocationCard.vue.js","webpack://kirkland/./src/scripts/components/JumptoNav.vue.js","webpack://kirkland/./src/scripts/components/LandingShowcase.vue.js","webpack://kirkland/./src/scripts/components/LandingShowcaseNav.vue.js","webpack://kirkland/./src/scripts/components/CareersBriefs.vue.js","webpack://kirkland/./src/scripts/components/PhotoGallery.vue.js","webpack://kirkland/./src/scripts/components/LawyerStories.vue.js","webpack://kirkland/./src/scripts/components/RelatedEntities.vue.js","webpack://kirkland/./src/scripts/components/ShowcaseInsights.vue.js","webpack://kirkland/./node_modules/micromodal/dist/micromodal.es.js","webpack://kirkland/./src/scripts/components/TabbyArea.vue.js","webpack://kirkland/./src/scripts/components/TestimonialResult.vue.js","webpack://kirkland/./src/scripts/components/video-card.vue.js","webpack://kirkland/./src/scripts/components/video-modal.vue.js","webpack://kirkland/./src/scripts/components/video-grid.vue.js","webpack://kirkland/./src/scripts/directives/scroll.js","webpack://kirkland/./src/scripts/directives/scroll-watch.js","webpack://kirkland/./src/scripts/directives/wave-card.js","webpack://kirkland/./src/scripts/directives/remove-initial-class.js","webpack://kirkland/./src/scripts/directives/v-expand.js","webpack://kirkland/./src/scripts/mixins/window-resize.vue.js","webpack://kirkland/./src/scripts/store/modules/showcase.js","webpack://kirkland/./src/scripts/store/vuex-store.js","webpack://kirkland/./src/scripts/store/modules/careers-landing.js","webpack://kirkland/./node_modules/es6-promise/dist/es6-promise.js","webpack://kirkland/./node_modules/gsap/ScrollToPlugin.js","webpack://kirkland/./node_modules/gsap/TweenLite.js","webpack://kirkland/./node_modules/gsap/TweenMax.js","webpack://kirkland/./node_modules/hammerjs/hammer.js","webpack://kirkland/./node_modules/is-buffer/index.js","webpack://kirkland/./node_modules/vue/dist/vue.esm.js","webpack://kirkland/./node_modules/vuex/dist/vuex.esm.js","webpack://kirkland/webpack/bootstrap","webpack://kirkland/webpack/runtime/compat get default export","webpack://kirkland/webpack/runtime/define property getters","webpack://kirkland/webpack/runtime/global","webpack://kirkland/webpack/runtime/hasOwnProperty shorthand","webpack://kirkland/webpack/runtime/make namespace object","webpack://kirkland/./src/scripts/main.js"],"sourcesContent":["module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n var loadEvent = 'onreadystatechange';\n var xDomain = false;\n\n // For IE 8/9 CORS support\n // Only supports POST and GET calls and doesn't returns the response headers.\n // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.\n if (process.env.NODE_ENV !== 'test' &&\n typeof window !== 'undefined' &&\n window.XDomainRequest && !('withCredentials' in request) &&\n !isURLSameOrigin(config.url)) {\n request = new window.XDomainRequest();\n loadEvent = 'onload';\n xDomain = true;\n request.onprogress = function handleProgress() {};\n request.ontimeout = function handleTimeout() {};\n }\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request[loadEvent] = function handleLoad() {\n if (!request || (request.readyState !== 4 && !xDomain)) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n // IE sends 1223 instead of 204 (https://github.com/axios/axios/issues/201)\n status: request.status === 1223 ? 204 : request.status,\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, this.defaults, { method: 'get' }, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n }\n\n if (!utils.isArray(val)) {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n","import Vue from 'vue'\r\n\r\nexport default {\r\n data: function () {\r\n return {\r\n // headroom variables props\r\n offset: 100,\r\n offsetTidy: 150,\r\n tolerance: {\r\n 'down': 20,\r\n 'up': 20\r\n },\r\n enabled: true,\r\n isTop: false,\r\n isNotTop: false,\r\n isBottom: false,\r\n isNotBottom: false,\r\n isPinned: false,\r\n isUnpinned: false,\r\n currentScrollY: 0,\r\n lastKnownScrollY: 0,\r\n state: '',\r\n translate: 0,\r\n initialised: false // todo,\r\n }\r\n },\r\n mounted: function () {\r\n window.setTimeout(this.attachEvent, 100)\r\n if (window.json && window.json.headroom) {\r\n this.enabled = window.json.headroom.enabled\r\n console.log('headroom enabled: ' + this.enabled)\r\n }\r\n },\r\n computed: {\r\n headroomStyles () {\r\n return {\r\n 'headroom--not-top': this.isNotTop,\r\n 'headroom--top': this.isTop,\r\n 'headroom--unpinned': (this.isTop) ? false : this.isUnpinned,\r\n 'headroom--pinned': (this.isTop) ? false : this.isPinned,\r\n 'headroom--bottom': this.isBottom,\r\n 'headroom--not-bottom': this.isNotBottom\r\n }\r\n }\r\n },\r\n methods: {\r\n attachEvent () {\r\n if (!this.initialised) {\r\n this.lastKnownScrollY = this.getScrollY()\r\n this.initialised = true\r\n }\r\n },\r\n getScrollY () {\r\n return window.pageYOffset\r\n },\r\n update () {\r\n if(!this.enabled) {\r\n return;\r\n }\r\n\r\n this.currentScrollY = this.getScrollY()\r\n\r\n if (this.isOutOfBounds(this.currentScrollY)) { // Ignore bouncy scrolling in OSX\r\n return\r\n }\r\n\r\n if (this.currentScrollY <= this.offset) {\r\n this.top()\r\n } else {\r\n this.notTop()\r\n }\r\n\r\n if (this.currentScrollY + this.getViewportHeight() >= this.getScrollerHeight()) {\r\n this.bottom()\r\n } else {\r\n this.notBottom()\r\n }\r\n\r\n const scrollAction = this.checkToleranceAndDirection(this.currentScrollY)\r\n\r\n if (scrollAction === 'pinned') {\r\n this.pin()\r\n } else if (scrollAction === 'unpinned' || this.currentScrollY < this.offsetTidy) {\r\n this.unpin()\r\n }\r\n\r\n this.lastKnownScrollY = this.currentScrollY\r\n },\r\n // * determines if the tolerance has been exceeded\r\n // * @param {int} currentScrollY the current scroll y position\r\n // * @return {bool} true if tolerance exceeded, false otherwise\r\n isOutOfBounds (currentScrollY) {\r\n let pastTop = currentScrollY < 0\r\n let pastBottom = currentScrollY + this.getScrollerPhysicalHeight() > this.getScrollerHeight()\r\n\r\n return pastTop || pastBottom\r\n },\r\n getScrollerPhysicalHeight () {\r\n return this.getViewportHeight()\r\n },\r\n // * Gets the height of the viewport\r\n // * @see http://andylangton.co.uk/blog/development/get-viewport-size-width-and-height-javascript\r\n // * @return {int} the height of the viewport in pixels\r\n getViewportHeight () {\r\n return window.innerHeight ||\r\n document.documentElement.clientHeight ||\r\n document.body.clientHeight\r\n },\r\n getScrollerHeight: function () {\r\n return this.getDocumentHeight()\r\n },\r\n // * Gets the height of the document\r\n // * @see http://james.padolsey.com/javascript/get-document-height-cross-browser/\r\n // * @return {int} the height of the document in pixels\r\n getDocumentHeight () {\r\n let body = document.body\r\n let documentElement = document.documentElement\r\n\r\n return Math.max(\r\n body.scrollHeight, documentElement.scrollHeight,\r\n body.offsetHeight, documentElement.offsetHeight,\r\n body.clientHeight, documentElement.clientHeight\r\n )\r\n },\r\n // * determines if the tolerance has been exceeded\r\n // * @param {int} currentScrollY the current scroll y position\r\n // * @return {bool} true if tolerance exceeded, false otherwise\r\n toleranceExceeded: function (currentScrollY, direction) {\r\n return Math.abs(currentScrollY - this.lastKnownScrollY) >= this.tolerance[direction]\r\n },\r\n checkToleranceAndDirection (currentScrollY) {\r\n let scrollDirection = currentScrollY > this.lastKnownScrollY ? 'down' : 'up'\r\n let toleranceExceeded = this.toleranceExceeded(currentScrollY, scrollDirection)\r\n let action\r\n\r\n if (this.shouldUnpin(currentScrollY, toleranceExceeded)) {\r\n action = 'unpinned'\r\n } else if (this.shouldPin(currentScrollY, toleranceExceeded)) {\r\n action = 'pinned'\r\n }\r\n return action\r\n },\r\n // * determine if it is appropriate to unpin\r\n // * @param {int} currentScrollY the current y scroll position\r\n // * @param {bool} toleranceExceeded has the tolerance been exceeded?\r\n // * @return {bool} true if should unpin, false otherwise\r\n shouldUnpin: function (currentScrollY, toleranceExceeded) {\r\n let scrollingDown = currentScrollY > this.lastKnownScrollY\r\n let pastOffset = currentScrollY >= this.offset\r\n\r\n return scrollingDown && pastOffset && toleranceExceeded\r\n },\r\n // * determine if it is appropriate to pin\r\n // * @param {int} currentScrollY the current y scroll position\r\n // * @param {bool} toleranceExceeded has the tolerance been exceeded?\r\n // * @return {bool} true if should pin, false otherwise\r\n shouldPin: function (currentScrollY, toleranceExceeded) {\r\n let scrollingUp = currentScrollY < this.lastKnownScrollY\r\n let pastOffset = currentScrollY >= this.offset\r\n\r\n return (scrollingUp && toleranceExceeded) && pastOffset\r\n },\r\n top () {\r\n if (!this.isTop) {\r\n this.isTop = true\r\n this.isNotTop = false\r\n }\r\n },\r\n notTop () {\r\n if (!this.isNotTop) {\r\n this.isTop = false\r\n this.isNotTop = true\r\n }\r\n },\r\n bottom () {\r\n if (!this.isBottom) {\r\n this.isBottom = true\r\n this.isNotBottom = false\r\n }\r\n },\r\n notBottom () {\r\n if (!this.isNotBottom) {\r\n this.isNotBottom = true\r\n this.isBottom = false\r\n }\r\n },\r\n pin () {\r\n if (!this.isPinned) {\r\n Vue.nextTick(() => {\r\n this.isUnpinned = false\r\n this.isPinned = true\r\n })\r\n // this.$emit('headroom-pin')\r\n }\r\n },\r\n unpin () {\r\n if (this.isPinned || !this.isUnpinned) {\r\n Vue.nextTick(() => {\r\n this.isPinned = false\r\n this.isUnpinned = true\r\n })\r\n // this.$emit('headroom-unpin')\r\n }\r\n }\r\n }\r\n}\r\n","import Vue from 'vue'\r\nimport { mapGetters } from 'vuex'\r\nimport axios from 'axios'\r\n\r\nexport default {\r\n data: {\r\n //assumes existence of keywordSearchModel variable, set from page app (site-overlay) or search landing mixin\r\n siteSearchTypeahead: [],\r\n timer: undefined,\r\n },\r\n mounted () {\r\n\r\n },\r\n computed: {\r\n\r\n showSiteSearchTypeahead() {\r\n return this.siteSearchTypeahead.length > 0;\r\n },\r\n },\r\n watch: {\r\n keywordSearchModel(newVal, oldVal) {\r\n //spec says 3 characters starts typeahead\r\n\r\n if(newVal && newVal.length > 2){\r\n this.startTypeaheadTimer();\r\n }\r\n else {\r\n this.siteSearchTypeahead = [];\r\n }\r\n }\r\n \r\n },\r\n methods: {\r\n\r\n doSearchForTypeahead(){\r\n axios.post('/api/sitecore/SiteSearchApi/Typeahead?keyword=' + this.keywordSearchModel)\r\n .then(this.onTypeAheadSuccess)\r\n .catch(this.onTypeAheadError)\r\n },\r\n\r\n startTypeaheadTimer(){\r\n console.log('timer restart');\r\n clearTimeout(this.timer)\r\n //wait for a bit for user to finish typing before triggering typeahead\r\n this.timer = setTimeout(this.typeAheadTimerComplete, 300);\r\n },\r\n\r\n typeAheadTimerComplete() {\r\n console.log('timer complete');\r\n this.doSearchForTypeahead()\r\n },\r\n\r\n onTypeAheadSuccess(response) {\r\n this.siteSearchTypeahead = response.data.Results\r\n },\r\n\r\n resetTypeahead(){\r\n this.siteSearchTypeahead = [];\r\n clearTimeout(this.timer)\r\n },\r\n\r\n onTypeAheadError (response) {\r\n console.error(response);\r\n },\r\n }\r\n}\r\n","import Vue from 'vue'\r\nimport {TweenLite} from 'gsap'\r\n\r\n//collapsible sections were shared across the app namespace in the template site\r\n//and initialized with json data in the window object\r\n//removed window.json dependency but kept the global namespace, so every section needs its own unique ID (sectionLabel)\r\n// see related insights, related-tabbed-content, etc\r\n\r\n//this is needed for any page app that has sections that turn into accordions on mobile, or any components that turn into accordions on mobile\r\n\r\nconst constructTweenObject = (givenObj) =>\r\n Object.keys(givenObj)\r\n .reduce((newObj, key) => {\r\n newObj[key] = {\r\n isExpanded: givenObj[key]\r\n }\r\n return newObj\r\n }, {})\r\n\r\n\r\nexport default {\r\n data: function () {\r\n return {\r\n collapsibleSections: {}\r\n }\r\n },\r\n methods: {\r\n // expandable accordions, sections\r\n isAccordionExpanded (sectionLabel) {\r\n\r\n //set initial data to remove window.json dependency\r\n //https://vuejs.org/v2/guide/reactivity.html#Change-Detection-Caveats !! \r\n if(!this.collapsibleSections[sectionLabel])\r\n this.$set(this.collapsibleSections, sectionLabel, {isExpanded: false})\r\n\r\n return this.collapsibleSections[sectionLabel].isExpanded === true\r\n },\r\n toggleMobileAccordion (sectionToExpand) {\r\n if (window.innerWidth > 767) {\r\n return\r\n }\r\n\r\n if (this.collapsibleSections[sectionToExpand].isExpanded) {\r\n this.collapsibleSections[sectionToExpand].isExpanded = false\r\n this.collapseAccordion(this.$refs[sectionToExpand])\r\n } else {\r\n this.collapsibleSections[sectionToExpand].isExpanded = true\r\n this.expandAccordion(this.$refs[sectionToExpand])\r\n }\r\n },\r\n expandAccordion (DOMRef) {\r\n var navToggleHeight = DOMRef.querySelector('.tabby-area__nav-toggle') != null ? DOMRef.querySelector('.tabby-area__nav-toggle').offsetHeight : 0;\r\n var navOptionsHeight = DOMRef.querySelector('.tabby-area__nav-options') != null ? DOMRef.querySelector('.tabby-area__nav-options').offsetHeight : 0;\r\n var calcHeight = navToggleHeight + navOptionsHeight;\r\n var contentHeight = DOMRef.querySelector('.tabby-area') != null ? DOMRef.querySelector('.tabby-area').offsetHeight + 16 : 0;\r\n var finalHeight = contentHeight > calcHeight ? contentHeight : calcHeight\r\n\r\n TweenLite.set(DOMRef, {height: finalHeight == 0 ? 'auto' : finalHeight})\r\n TweenLite.from(DOMRef, 0.35, {height: 0, ease: 'Power1.easeIn'})\r\n TweenLite.fromTo(DOMRef, 0.35, {opacity: 0}, {opacity: 1, ease: 'Power1.easeIn', delay: 0.35})\r\n },\r\n collapseAccordion (DOMRef) {\r\n TweenLite.to(DOMRef, 0.35, {opacity: 0, ease: 'Power1.easeIn'})\r\n TweenLite\r\n .to(DOMRef, 0.35, {height: 0, ease: 'Power1.easeIn', delay: 0.35})\r\n .eventCallback('onComplete', function () {\r\n TweenLite.set(DOMRef, {clearProps: 'all'})\r\n })\r\n }\r\n }\r\n}\r\n","// This mixin is used for site search, insights search, lawyer search, and staff search\r\n\r\n\r\nimport axios from 'axios'\r\nimport { TweenLite } from 'gsap'\r\nimport ScrollToPlugin from 'gsap/ScrollToPlugin'\r\n\r\nconst convertFiltersToString = (activeFilters) => {\r\n return activeFilters.map(filter => {\r\n return `${filter.key}=${encodeURIComponent(filter.value)}`\r\n })\r\n}\r\n\r\nvar scrollConfig = {\r\n duration: 1,\r\n offset: 85,\r\n locationID: 'search-updates'\r\n}\r\n\r\nexport default ({ apiEndpoint, transitionTime }) => ({\r\n data: function () {\r\n return {\r\n keywordSearchModel: window.json && window.json.keyword ? window.json.keyword: '',\r\n //the search needs needs to initialize the empty filters from this JSON data\r\n activeFilters: window.json? window.json.initialFiltersState : [],\r\n selectDropdowns: window.json? window.json.selectDropdownsModels: {},\r\n isAdvancedSearchExpanded: window.json && !!window.json.isAdvancedSearchExpanded? true : false,\r\n searchResults: [],\r\n totalResults : 0,\r\n page: window.json && window.json.page ? window.json.page : 0,\r\n //on refresh if we have filters applied and the page is non zero\r\n loadAllResultsUpToPage: window.json && window.json.page ? true : false,\r\n isSearchExecuted: false,\r\n }\r\n },\r\n mounted () {\r\n this.replaceWindowState()\r\n this.setupPopstateEvent()\r\n \r\n //set dropdown filter models and set label names\r\n this.setPopulatedDropdownsOnRender()\r\n\r\n //run a query if any filters were set from the query string\r\n if( this.hasFiltersApplied) {\r\n this.performSearchQuery(true); //use initial search callback\r\n //get all results only for the very first search \r\n this.loadAllResultsUpToPage = false;\r\n }\r\n else {\r\n //remove the initial class if there is no ajax search to wait for\r\n this.removeInitialClass();\r\n }\r\n\r\n }, \r\n created () {\r\n window.addEventListener('scroll', this.handleScroll);\r\n },\r\n destroyed () {\r\n window.removeEventListener('scroll', this.handleScroll);\r\n },\r\n computed: {\r\n hasAnyResults () {\r\n return this.searchResults.length > 0\r\n },\r\n showNoResultsMessage () {\r\n return this.isSearchExecuted && !this.hasAnyResults\r\n },\r\n hasFiltersApplied () {\r\n return this.activeFilters.some(this.checkAnyAppliedFilter)\r\n },\r\n hasKeywordFilter () {\r\n return this.isThisFilterApplied('keyword')\r\n },\r\n hasDropdownsFilters () {\r\n return (this.getAppliedDropdowns.length > 0)\r\n },\r\n getArrayofDropdownModels () {\r\n return Object.keys(this.selectDropdowns)\r\n },\r\n getAppliedDropdowns () {\r\n let activeFilters = this.getArrayofDropdownModels.reduce((accumulator, filterName) => {\r\n if (this.selectDropdowns[filterName] !== '') {\r\n accumulator.push({\r\n filterModel: filterName\r\n })\r\n }\r\n return accumulator\r\n }, [])\r\n return activeFilters\r\n },\r\n getQueryStringUrl () {\r\n if(!this.activeFilters)\r\n return this.getDefaultPageUrl();\r\n\r\n const filtersWithValues = this.activeFilters.filter((filterOption) => (filterOption.value !== undefined))\r\n\r\n //make the query string prettier by not including page if not necessary\r\n const pageString = this.page ? '&page=' + this.page : '';\r\n\r\n return (filtersWithValues.length > 0)\r\n ? '?' + convertFiltersToString(filtersWithValues).join('&') + pageString\r\n : this.getDefaultPageUrl()\r\n },\r\n apiUrl () {\r\n return [\r\n window.location.origin,\r\n apiEndpoint,\r\n this.getQueryStringUrl\r\n ].join('')\r\n },\r\n hasMoreResultsToLoad () {\r\n return (this.searchResults.length < this.totalResults)\r\n }\r\n },\r\n methods: {\r\n getDefaultPageUrl () {\r\n return window.location.pathname.slice(1)\r\n },\r\n checkAnyAppliedFilter (filterNode) {\r\n return filterNode.value !== undefined\r\n },\r\n isThisFilterApplied (filterName) {\r\n return this.activeFilters.filter((filterNode) => {\r\n return (filterNode.key === filterName)\r\n })[0].value !== undefined\r\n },\r\n getFilterLabel (filterName) {\r\n return this.activeFilters.filter((filterNode) => {\r\n return (filterNode.key === filterName)\r\n })[0].value\r\n },\r\n getFilter (filterName) {\r\n return this.activeFilters.filter((filterNode) => {\r\n return (filterNode.key === filterName)\r\n })[0]\r\n },\r\n setPopulatedDropdownsOnRender () {\r\n if (this.getAppliedDropdowns) {\r\n this.getAppliedDropdowns.map((value) => {\r\n this.setActiveDropdown(value.filterModel, false)\r\n })\r\n }\r\n },\r\n setKeywordSearch () {\r\n if (this.keywordSearchModel.length > 0) {\r\n\r\n //keyword always clears other filters in all cases\r\n this.resetOtherFiltersForNewQuery()\r\n\r\n this.setFilterState({\r\n 'key': 'keyword',\r\n 'value': this.keywordSearchModel\r\n })\r\n\r\n this.keywordSearchModel = ''\r\n this.performSearchQuery()\r\n }\r\n },\r\n setActiveDropdown (modelName, performSearchAfterChange) {\r\n if (this.selectDropdowns[modelName] === undefined) {\r\n console.log('Invalid Slug name')\r\n return\r\n }\r\n this.setFilterState({\r\n 'key': modelName,\r\n 'value': this.selectDropdowns[modelName]\r\n }, !performSearchAfterChange) //if not triggering a search, dont reset the page either\r\n\r\n\r\n if(performSearchAfterChange) {\r\n this.performSearchQuery()\r\n }\r\n },\r\n clearFilter (filterName, clearAllOptions = false) {\r\n this.page = 0;\r\n \r\n this.activeFilters = this.activeFilters.map((filterNode) => {\r\n return (filterNode.key === filterName)\r\n ? {'key': filterNode.key, 'value': undefined}\r\n : filterNode\r\n })\r\n\r\n if (!clearAllOptions) {\r\n (this.hasFiltersApplied)\r\n ? this.performSearchQuery()\r\n : this.resetSearchResults()\r\n }\r\n },\r\n clearDropdownModel (filterName) {\r\n this.selectDropdowns[filterName] = ''\r\n },\r\n clearDropdownFilter (filterModel, clearByAllFilters = false) {\r\n this.clearFilter(filterModel, clearByAllFilters)\r\n this.clearDropdownModel(filterModel)\r\n },\r\n clearAllFilters () {\r\n this.clearActiveFilters()\r\n\r\n if (this.hasDropdownsFilters) { this.clearDropdownFilters() }\r\n this.resetSearchResults()\r\n },\r\n clearActiveFilters () {\r\n let clearAllOptions = true\r\n this.activeFilters.map((filterOption) => {\r\n this.clearFilter(filterOption.key, clearAllOptions)\r\n })\r\n },\r\n clearDropdownFilters () {\r\n let clearByAllFilters = true\r\n this.getArrayofDropdownModels.map((option) => { this.clearDropdownFilter(option, clearByAllFilters) })\r\n },\r\n resetSearchResults () {\r\n setTimeout(() => {\r\n this.page = 0\r\n this.searchResults = []\r\n this.pushNewWindowLocation()\r\n this.replaceWindowState()\r\n }, transitionTime)\r\n },\r\n resetOtherFiltersForNewQuery () {\r\n //for keyword and other filters that clear the other filters before searching\r\n this.clearActiveFilters()\r\n if(this.hasDropdownsFilters) { this.clearDropdownFilters() }\r\n },\r\n getDropdownFilterLabel (modelName) {\r\n\r\n //check if its a special filter (like marquee story) with a manual prettyName\r\n if(this.$refs[modelName + '-prettyName']){\r\n return this.$refs[modelName + '-prettyName'].innerHTML;\r\n }\r\n\r\n let dropdown = this.$refs[modelName + '-dropdown']\r\n\r\n //this is done to handle a very specific use case per AM-12517\r\n if(dropdown && (this.selectDropdowns[modelName] === '462010fd-8d8e-4749-8f7b-60e1a4f861f2|1c3f9bfb-d540-4cb9-b49e-d95939d876a8'\r\n || this.selectDropdowns[modelName] === '1c3f9bfb-d540-4cb9-b49e-d95939d876a8|462010fd-8d8e-4749-8f7b-60e1a4f861f2')){\r\n return 'Los Angeles - All';\r\n }\r\n\r\n return (dropdown && this.selectDropdowns[modelName] !== '' )\r\n ? (dropdown.selectedIndex !== -1 && dropdown.selectedIndex !== undefined)\r\n ? dropdown.options[dropdown.selectedIndex].innerHTML\r\n : false\r\n : false\r\n },\r\n setFilterState (kvp, doNotResetPage) {\r\n //for initial page load, keep the current page when setting all the filters.\r\n //otherwise, any time we change a filter the page should return to 0\r\n if(!doNotResetPage) {\r\n this.page=0;\r\n }\r\n\r\n this.activeFilters = this.activeFilters.map((filterNode) => {\r\n return (filterNode.key === kvp.key)\r\n ? {'key': kvp.key, 'value': kvp.value}\r\n : filterNode\r\n })\r\n },\r\n shouldPageScroll () {\r\n let scrollPosition = window.pageYOffset\r\n let searchUpdatesOffset = document.getElementById('search-updates')\r\n .getBoundingClientRect()\r\n .top + scrollPosition\r\n\r\n return (scrollPosition < searchUpdatesOffset)\r\n },\r\n scrollToUpdates () {\r\n\r\n if (this.shouldPageScroll()) {\r\n //settimeout seems to make the autoscroll behave better\r\n setTimeout(function() {\r\n TweenLite.to(window, scrollConfig.duration, {\r\n scrollTo: {\r\n y: `#${scrollConfig.locationID}`,\r\n // offsetY: scrollConfig.offset,\r\n autoKill: false\r\n }\r\n })\r\n }, 100)\r\n }\r\n },\r\n getCachedState () {\r\n return this.$data;\r\n },\r\n handleWindowPopstate ({state}) {\r\n if (state !== undefined && state.activeFilters.length > 0) {\r\n //iterate through all data properties and set them all\r\n Object.assign(this.$data, state)\r\n }\r\n },\r\n setupPopstateEvent () {\r\n // this event fires on pageload in firefox and safari\r\n window.addEventListener('popstate', this.handleWindowPopstate)\r\n },\r\n replaceWindowState () {\r\n window.history.replaceState(this.getCachedState(), null, this.getQueryStringUrl)\r\n },\r\n pushNewWindowLocation () {\r\n window.history.pushState(this.getCachedState(), null, this.getQueryStringUrl)\r\n },\r\n\r\n performSearchQuery (isInitial) {\r\n this.isSearchExecuted = false;\r\n //keep loadAll out of query string (visible to user)\r\n const loadAllString = this.loadAllResultsUpToPage ? '&loadAll=' + this.loadAllResultsUpToPage : '';\r\n axios.post(this.apiUrl + loadAllString)\r\n .then(isInitial? this.onInitialSearchSuccess : this.onSearchSuccess)\r\n .catch(this.onSearchError)\r\n },\r\n\r\n //concatenate results\r\n performLoadMore () {\r\n axios.post(this.apiUrl)\r\n .then(this.onLoadMoreSuccess)\r\n .catch(this.onSearchError)\r\n },\r\n\r\n loadMore () {\r\n this.page++;\r\n this.performLoadMore();\r\n },\r\n \r\n //don't concatenate results, replace instead of push history entry \r\n onInitialSearchSuccess (response) {\r\n this.searchResults = response.data.Results\r\n this.totalResults = response.data.TotalSearchResults\r\n this.isSearchExecuted = true;\r\n //if this is the first search might need to remove the class that hides the regular panel\r\n this.removeInitialClass();\r\n this.replaceWindowState(); \r\n this.scrollToUpdates()\r\n },\r\n\r\n //dont concatenate results\r\n onSearchSuccess (response) {\r\n this.searchResults = response.data.Results\r\n this.totalResults = response.data.TotalSearchResults\r\n this.isSearchExecuted = true;\r\n //if this is the first search might need to remove the class that hides the regular panel\r\n this.removeInitialClass();\r\n this.pushNewWindowLocation()\r\n this.scrollToUpdates()\r\n },\r\n \r\n //concatenate results\r\n onLoadMoreSuccess (response) {\r\n this.searchResults = this.searchResults.concat(response.data.Results)\r\n this.totalResults = response.data.TotalSearchResults\r\n // this.isSearchExecuted = true;\r\n this.pushNewWindowLocation()\r\n this.scrollToUpdates()\r\n \r\n if(this.hasMoreResultsToLoad){\r\n window.addEventListener('scroll', this.handleScroll);\r\n }\r\n },\r\n handleScroll(event){\r\n let reloadPoint = document.getElementsByClassName(\"search-results__list\")[0];\r\n if(reloadPoint == null && document.getElementsByClassName('search-results__grid').length > 0){\r\n reloadPoint = document.getElementsByClassName('search-results__grid')[0];\r\n } \r\n else if(reloadPoint == null && document.getElementsByClassName('search-results').length > 0){\r\n reloadPoint = document.getElementsByClassName('search-results')[0];\r\n }\r\n if(reloadPoint){\r\n if(this.hasMoreResultsToLoad){\r\n if(event.currentTarget.scrollY > (reloadPoint.lastElementChild.offsetTop - 900) || event.currentTarget.pageYOffset > (reloadPoint.lastElementChild.offsetTop - 1100)){\r\n this.loadMoreScroll();\r\n window.removeEventListener('scroll', this.handleScroll);\r\n }\r\n }\r\n }\r\n },\r\n performLoadMoreScroll () {\r\n axios.post(this.apiUrl)\r\n .then(this.onScrollLoadMoreSuccess)\r\n .catch(this.onSearchError)\r\n },\r\n\r\n loadMoreScroll () {\r\n this.page++;\r\n this.performLoadMoreScroll();\r\n },\r\n onScrollLoadMoreSuccess (response) {\r\n this.searchResults = this.searchResults.concat(response.data.Results)\r\n this.totalResults = response.data.TotalSearchResults\r\n this.pushNewWindowLocation()\r\n setTimeout(() =>{\r\n if(this.hasMoreResultsToLoad){\r\n window.addEventListener('scroll', this.handleScroll);\r\n }\r\n }, 250);\r\n },\r\n onSearchError (response) {\r\n console.log(response)\r\n },\r\n\r\n //help with the glitching of the cards / initial page elements when a page loads then searches\r\n removeInitialClass(){\r\n var elements = document.getElementsByClassName('hide-elements-initial--trigger')\r\n for(var i=0; i ({\r\n mixins: [searchLanding({apiEndpoint, transitionTime})],\r\n \r\n data: function () {\r\n return {\r\n \r\n }\r\n },\r\n mounted () {\r\n console.log('people search using ' + apiEndpoint);\r\n },\r\n created () {\r\n window.addEventListener('scroll', this.handleScroll);\r\n },\r\n destroyed () {\r\n window.removeEventListener('scroll', this.handleScroll);\r\n },\r\n computed: {\r\n hasLetterFilter () {\r\n return this.isThisFilterApplied('letter')\r\n },\r\n activeLetterFiltered () {\r\n return this.activeFilters.filter(filter => {\r\n return filter.key === 'letter'\r\n })[0]\r\n }\r\n },\r\n\r\n methods: {\r\n isLetterDisabled (disabledState) {\r\n return disabledState === 'true'\r\n },\r\n isActiveLetter (letter) {\r\n return (this.activeLetterFiltered && this.activeLetterFiltered.value === letter)\r\n },\r\n setActiveLetter (letter, isDisabled) {\r\n if (!this.isLetterDisabled(isDisabled)) {\r\n //spec says setting the letter should clear the other filters \r\n this.resetOtherFiltersForNewQuery()\r\n window.removeEventListener('scroll', this.handleScroll)\r\n window.addEventListener('scroll', this.handleScroll)\r\n this.setFilterState({\r\n 'key': 'letter',\r\n 'value': letter\r\n })\r\n\r\n this.performSearchQuery()\r\n }\r\n },\r\n \r\n }\r\n})\r\n","import Vue from 'vue'\r\nimport peopleSearchMixin from './../mixins/peopleSearchMixin.vue'\r\n\r\n\r\nconst config = {\r\n apiEndpoint: '/api/sitecore/ProfessionalsApi/Lawyers',\r\n}\r\n\r\nexport default function () {\r\n if (!document.getElementById('people-search-app')) {\r\n return false\r\n }\r\n\r\n new Vue({ // eslint-disable-line\r\n el: '#people-search-app',\r\n mixins: [peopleSearchMixin(config)],\r\n computed: {\r\n \r\n },\r\n methods: {\r\n \r\n }\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport peopleSearchMixin from './../mixins/peopleSearchMixin.vue'\r\n\r\n\r\nconst config = {\r\n apiEndpoint: '/api/sitecore/ProfessionalsApi/Staff',\r\n}\r\n\r\nexport default function () {\r\n if (!document.getElementById('staff-search-app')) {\r\n return false\r\n }\r\n\r\n new Vue({ // eslint-disable-line\r\n el: '#staff-search-app',\r\n mixins: [peopleSearchMixin(config)],\r\n computed: {\r\n \r\n },\r\n methods: {\r\n \r\n }\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport axios from 'axios'\r\nimport searchLanding from './../mixins/searchLanding.vue'\r\nimport siteSearchTypeahead from './../mixins/siteSearchTypeahead.vue'\r\n\r\n\r\nconst config = {\r\n apiEndpoint: '/api/sitecore/SiteSearchApi/Search',\r\n transitionTime: 1000\r\n}\r\n\r\nexport default function () {\r\n if (!document.getElementById('site-search-app')) {\r\n return false\r\n }\r\n\r\n new Vue({ // eslint-disable-line\r\n el: '#site-search-app',\r\n mixins: [searchLanding(config), siteSearchTypeahead],\r\n data: {\r\n totalResults : 0,\r\n showSearchResults: false,\r\n //keywordSearchModel, page, filters, searchresults set from searchlanding mixin\r\n },\r\n created () {\r\n\r\n },\r\n mounted () {\r\n document.addEventListener(\"click\", this.resetTypeahead)\r\n this.$refs.typeaheadsafezone.addEventListener(\"click\", function(e){\r\n e.stopPropagation();\r\n })\r\n \r\n var that = this.resetTypeahead;\r\n document.onkeydown = function(evt) {\r\n evt = evt || window.event; \r\n //escape key\r\n if(evt.keyCode == 27){\r\n that();\r\n }\r\n }\r\n },\r\n computed: {\r\n activeSearchTerm(){\r\n return this.getFilter('keyword').value\r\n },\r\n\r\n },\r\n methods: {\r\n //override mixin \r\n shouldPageScroll(){\r\n return false;\r\n },\r\n\r\n //override mixin\r\n setKeywordSearch () {\r\n if (this.keywordSearchModel.length > 0) {\r\n \r\n //keyword always clears other filters in all cases\r\n this.resetOtherFiltersForNewQuery()\r\n \r\n this.setFilterState({\r\n 'key': 'keyword',\r\n 'value': this.keywordSearchModel\r\n })\r\n \r\n // this.keywordSearchModel = ''\r\n this.performSearchQuery()\r\n }\r\n },\r\n\r\n updateSegment(tag, label){\r\n this.setFilterState({'key': 'segment', 'value': tag});\r\n\r\n if(this.getFilter('keyword').value)\r\n this.performSearchQuery();\r\n },\r\n\r\n isActiveSegment(tag){\r\n if(tag === '')\r\n return this.getFilter('segment').value == undefined;\r\n\r\n return this.getFilter('segment').value === tag\r\n },\r\n\r\n },\r\n watch: {\r\n\r\n //reset the typeahead when the results come in\r\n searchResults(newVal, oldVal){\r\n this.resetTypeahead()\r\n },\r\n\r\n },\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport axios from 'axios'\r\nimport collapsibleSections from './../mixins/collapsibleSections.vue'\r\nimport searchLanding from './../mixins/searchLanding.vue'\r\n\r\nconst config = {\r\n apiEndpoint: '/api/sitecore/NewsInsightsApi/Insights',\r\n transitionTime: 1000\r\n}\r\n\r\n//originally the content subtype filter was its own very special thing in order to handle the label + guid\r\n//but now that all dropdown labels have been changed to pull from the markup instead of the vue state,\r\n//this.contentSubTypeFilter could probably be removed and only the filter state used instead\r\n\r\nexport default function () {\r\n if (!document.getElementById('insights-search-app')) {\r\n return false\r\n }\r\n\r\n new Vue({ // eslint-disable-line\r\n el: '#insights-search-app',\r\n mixins: [searchLanding(config), collapsibleSections],\r\n computed: {\r\n hasProfessionalFilter () {\r\n return this.isThisFilterApplied('professional')\r\n },\r\n showProfessionalTypeahead() {\r\n return this.professionalTypeahead.length > 0;\r\n }\r\n },\r\n mounted () {\r\n //check if subtype filter needs to be set on refresh\r\n if(this.isThisFilterApplied('subtype')) {\r\n\r\n var filterValue = this.getFilter('subtype').value;\r\n this.contentSubTypeFilter = filterValue;\r\n }\r\n },\r\n created () {\r\n window.addEventListener('scroll', this.handleScroll);\r\n },\r\n destroyed () {\r\n window.removeEventListener('scroll', this.handleScroll);\r\n },\r\n data: {\r\n contentSubTypeFilter: '',\r\n professionalTypeahead: [],\r\n professionalTypeaheadName : window.json.professionalName? window.json.professionalName : '',\r\n keywordProfessionalsSearchModel: '',\r\n },\r\n methods: {\r\n\r\n //kind of have to hack the name+ guid relationship in here, making the label another model property\r\n //professional filter should not reset other filters, according to spec\r\n typeaheadSearch(guid, name){\r\n console.log('searching for ' + guid + ' ' + name);\r\n this.professionalTypeaheadName = name;\r\n this.setFilterState({\r\n 'key': 'professional',\r\n 'value': guid\r\n })\r\n this.keywordProfessionalsSearchModel = ''\r\n this.performSearchQuery()\r\n },\r\n setContentSubType() {\r\n this.setFilterState({\r\n 'key' : 'subtype',\r\n 'value': this.contentSubTypeFilter\r\n })\r\n this.performSearchQuery()\r\n },\r\n\r\n //only show the options when the dependent filter is selected\r\n //for example, only show news subtypes when news is selected in the content type \r\n isValidOption(filterMatch, valueMatch){\r\n\r\n var filter = this.getFilter(filterMatch)\r\n\r\n if(filter && filter.key) {\r\n return filter.value === valueMatch\r\n }\r\n \r\n return false;\r\n },\r\n\r\n onTypeAheadSuccess(response) {\r\n this.professionalTypeahead = response.data.Results\r\n },\r\n\r\n onTypeAheadError (response) {\r\n console.error(response);\r\n },\r\n\r\n getContentSubtypeFilterLabel () {\r\n let dropdown = this.$refs['subtype-dropdown']\r\n \r\n return (dropdown && this.contentSubTypeFilter !== '' )\r\n ? (dropdown.selectedIndex !== -1 && dropdown.selectedIndex !== undefined)\r\n ? dropdown.options[dropdown.selectedIndex].innerHTML\r\n : false\r\n : false\r\n },\r\n\r\n },\r\n \r\n watch: {\r\n activeFilters(newVal, oldVal) {\r\n var oldContentType = oldVal.filter((filterNode) => {\r\n return (filterNode.key === 'type')\r\n })\r\n oldContentType = oldContentType.length? oldContentType[0].value : undefined\r\n\r\n var newContentType = newVal.filter((filterNode) => {\r\n return (filterNode.key === 'type')\r\n })\r\n newContentType = newContentType.length? newContentType[0].value : undefined\r\n\r\n\r\n //if content type was set and is now empty, clear the subtype\r\n //OR content type changes\r\n if((oldContentType && !newContentType) || (oldContentType !== newContentType) ){\r\n console.log('clearing sub type')\r\n this.clearFilter('subtype');\r\n this.contentSubTypeFilter = '';\r\n }\r\n\r\n\r\n },\r\n keywordProfessionalsSearchModel(newVal, oldVal) {\r\n //changing to 1, so that we can get hits for professionals with 2 letter last name\r\n if(newVal && newVal.length >= 2){\r\n axios.post('/api/sitecore/TypeaheadApi/ProfessionalTypeahead?keyword=' + newVal)\r\n .then(this.onTypeAheadSuccess)\r\n .catch(this.onSearchError)\r\n }\r\n else {\r\n this.professionalTypeahead = [];\r\n }\r\n }\r\n }\r\n })\r\n}\r\n","import Vue from 'vue'\r\n\r\nexport default {\r\n data: function () {\r\n return {\r\n showAudioElement: false\r\n }\r\n },\r\n created () {\r\n \r\n },\r\n methods: {\r\n\r\n playPodcast() {\r\n this.showAudioElement = true;\r\n this.$refs.podcast.load();\r\n this.$refs.podcast.play();\r\n }\r\n }\r\n\r\n}","import Vue from 'vue'\r\nimport vuexStore from './../store/vuex-store'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport headroomMixin from './../mixins/headroom.vue'\r\n\r\nvar pageConfig = {\r\n animationSlideTiming: 2000,\r\n animationDetailTiming: 1000\r\n}\r\n\r\nexport default function () {\r\n new Vue({\r\n mixins: [headroomMixin],\r\n el: '#site-header',\r\n store: vuexStore,\r\n mounted() {\r\n var self = this;\r\n window.addEventListener(\"keydown\", function(e){\r\n \r\n if (self.showMenu || self.showSiteSearch){\r\n if (e.type === \"keydown\" && e.keyCode === 27){\r\n if (self.showMenu){\r\n self.toggleMenu();\r\n }else{\r\n self.toggleSiteSearch();\r\n }\r\n }\r\n }\r\n });\r\n },\r\n computed: {\r\n ...mapGetters({\r\n showMenu: 'showMenu',\r\n showSiteSearch: 'showSiteSearch',\r\n isModalOpen: 'isModalOpen',\r\n showcaseDetailViewExpanded: 'showcase/showcaseDetailViewExpanded',\r\n isShowcaseDisabled: 'showcase/isShowcaseDisabled',\r\n performanceGridTransitionIn: 'showcase/performanceGridTransitionIn',\r\n performanceGridTransitionOut: 'showcase/performanceGridTransitionOut'\r\n }),\r\n showOverlay () {\r\n return (this.showMenu || this.showSiteSearch)\r\n }\r\n },\r\n methods: {\r\n ...mapMutations({\r\n toggleMenu: 'toggleMenu',\r\n toggleSiteSearch: 'toggleSiteSearch',\r\n setShowcaseDetailView: 'showcase/setShowcaseDetailView',\r\n setIsShowcaseDisabled: 'showcase/setIsShowcaseDisabled'\r\n })\r\n }\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport vuexStore from './../store/vuex-store'\r\nimport { mapGetters } from 'vuex'\r\nimport {TimelineLite} from 'gsap'\r\nimport siteSearchTypeahead from './../mixins/siteSearchTypeahead.vue'\r\n\r\nexport default function () {\r\n new Vue({ // eslint-disable-line\r\n el: '#site-overlay',\r\n mixins: [siteSearchTypeahead],\r\n store: vuexStore,\r\n data: {\r\n keywordSearchModel: '',\r\n siteNavTween: undefined\r\n },\r\n mounted () {\r\n this.setupTweens()\r\n },\r\n computed: {\r\n ...mapGetters([\r\n 'showMenu',\r\n 'showSiteSearch'\r\n ]),\r\n showOverlay () {\r\n return (this.showMenu || this.showSiteSearch)\r\n }\r\n },\r\n watch: {\r\n showMenu (isOpen) {\r\n (isOpen)\r\n ? this.animateInNavigation()\r\n : this.animateOutNavigation()\r\n },\r\n showOverlay(isOpen) {\r\n (isOpen)\r\n ? document.body.classList.add('page--no-scroll')\r\n : document.body.classList.remove('page--no-scroll')\r\n }\r\n },\r\n methods: {\r\n setupTweens () {\r\n let {nav, subnav, auxillary} = this.$refs\r\n\r\n nav = this.convertNodeListToArray(nav.querySelectorAll('.site-nav__item'))\r\n subnav = this.convertNodeListToArray(subnav.querySelectorAll('.site-nav__item'))\r\n\r\n this.siteNavTween = new TimelineLite()\r\n\r\n this.siteNavTween.staggerFromTo([...nav, ...subnav, auxillary], 0.5,\r\n {opacity: 0, y: 10, timeScale: 0.75},\r\n {opacity: 1, y: 0, ease: 'Power1.easeOut', timeScale: 1},\r\n 0.15)\r\n .pause()\r\n },\r\n animateInNavigation () {\r\n this.siteNavTween.play().delay(1)\r\n },\r\n animateOutNavigation () {\r\n this.siteNavTween.reverse().delay(0)\r\n },\r\n convertNodeListToArray (nodelist) {\r\n return Array.prototype.slice.call(nodelist)\r\n }\r\n }\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport vuexStore from './../store/vuex-store'\r\nimport { mapGetters } from 'vuex'\r\n\r\nexport default function () {\r\n if (!document.getElementById('homepage')) {\r\n return false\r\n }\r\n return new Vue({\r\n el: '#homepage-app',\r\n data: {\r\n collapseDetailView: false,\r\n collapsePerformanceGridView: false,\r\n tempForceScrollRemoval: false\r\n },\r\n mounted(){\r\n var self = this;\r\n window.addEventListener(\"keydown\", function(e){\r\n \r\n if (self.showcaseDetailViewExpanded || !self.collapsePerformanceGridView){\r\n if (e.type === \"keydown\" && e.keyCode === 27){\r\n if (self.showcaseDetailViewExpanded){\r\n self.toggleShowcaseDetailView();\r\n }else{\r\n self.collapsePerformanceGrid();\r\n }\r\n }\r\n }\r\n });\r\n },\r\n store: vuexStore,\r\n computed: {\r\n ...mapGetters({\r\n showcaseDetailViewExpanded: 'showcase/showcaseDetailViewExpanded',\r\n isShowcaseDisabled: 'showcase/isShowcaseDisabled',\r\n performanceGridTransitionIn: 'showcase/performanceGridTransitionIn',\r\n performanceGridTransitionOut: 'showcase/performanceGridTransitionOut',\r\n activeSlideContent: 'showcase/activeSlideContent',\r\n isVerticalView: 'showcase/isVerticalView',\r\n activeSlideIndex: 'showcase/activeSlideIndex',\r\n isModalOpen: 'isModalOpen'\r\n })\r\n },\r\n methods: {\r\n toggleShowcaseDetailView () {\r\n this.collapseDetailView = true\r\n this.$nextTick(() => { \r\n this.collapseDetailView = false;\r\n var homePageEl = document.getElementById('homepage');\r\n\r\n //Added to prevent browser from snapping back after scroll is removed after animation\r\n // Set Class to remove scroll before animation starts\r\n //homePageEl.classList.add('showcase-layout--force-no-scroll');\r\n this.tempForceScrollRemoval = true;\r\n // Set a Timeout to remove class after animation\r\n setTimeout(this.toggleOffForceScroll, 1000);\r\n })\r\n \r\n },\r\n toggleOffForceScroll () {\r\n this.tempForceScrollRemoval = false;\r\n },\r\n collapsePerformanceGrid () {\r\n this.collapsePerformanceGridView = true\r\n this.$nextTick(() => { this.collapsePerformanceGridView = false })\r\n }\r\n }\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport vuexStore from './../store/vuex-store'\r\nimport resizeMixin from './../mixins/window-resize.vue'\r\nimport { mapGetters } from 'vuex'\r\nimport { mapMutations } from 'vuex'\r\n\r\nexport default function () {\r\n if (!document.getElementById('marquee-story-app')) {\r\n return false\r\n }\r\n \r\n return new Vue({\r\n mixins: [resizeMixin],\r\n el: '#marquee-story-app',\r\n data: {\r\n },\r\n mounted() {\r\n this.setShowcaseDetailContentForMarqueeStoryDetail(window.json.activeSlideContent)\r\n this.windowResizeCallbackEvent()\r\n //setting this messes up the header classes more and it doesn't seem necessary for this view\r\n // this.setShowcaseDetailView({update: true})\r\n \r\n },\r\n store: vuexStore,\r\n computed: {\r\n ...mapGetters({\r\n // showcaseDetailViewExpanded: 'showcase/showcaseDetailViewExpanded',\r\n activeSlideContent: 'showcase/activeSlideContent',\r\n isVerticalView: 'showcase/isVerticalView',\r\n })\r\n },\r\n methods: {\r\n ...mapMutations({\r\n setShowcaseDetailContentForMarqueeStoryDetail: 'showcase/setShowcaseDetailContentForMarqueeStoryDetail',\r\n // setShowcaseDetailView: 'showcase/setShowcaseDetailView',\r\n setIsVerticalView: 'showcase/setIsVerticalView'\r\n }),\r\n\r\n windowResizeCallbackEvent () {\r\n (window.innerWidth >= 1000)\r\n ? this.setDesktopView()\r\n : this.setMobileView()\r\n },\r\n setDesktopView () {\r\n this.setIsVerticalView({update: false})\r\n },\r\n setMobileView () {\r\n this.setIsVerticalView({update: true})\r\n \r\n //do not collapse it on this detail view\r\n // if (this.showcaseDetailViewExpanded) {\r\n // this.collapseShowcaseDetailView()\r\n // }\r\n },\r\n }\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport {TweenLite} from 'gsap'\r\nimport collapsibleSections from './../mixins/collapsibleSections.vue'\r\n// import tabbyArea from './../mixins/tabbyArea.vue'\r\n\r\n\r\n//changed to use tabbyarea and collapsiblesections mixin instead of duplicated code code\r\n\r\n\r\n// var config = {\r\n// animationTiming: 350 // should be in line with animation.scss file\r\n// }\r\n\r\nexport default function () {\r\n if (!document.getElementById('people-detail-app')) {\r\n return false\r\n }\r\n\r\n new Vue({ // eslint-disable-line\r\n el: '#people-detail-app',\r\n mixins: [collapsibleSections],\r\n data: function () {\r\n return {\r\n activeSectionLabel: '',\r\n }\r\n },\r\n created () {\r\n\r\n },\r\n watch: {\r\n\r\n },\r\n methods: {\r\n sectionScrollWatch (message) {\r\n if (message.new === 'aboveMiddle') {\r\n this.activeSectionLabel = message.moduleName\r\n }\r\n },\r\n \r\n }\r\n })\r\n}\r\n","// Global Components\r\nimport siteHeader from './site-header.vue'\r\nimport siteOvelay from './site-overlay.vue'\r\n\r\nimport homepage from './homepage.vue'\r\nimport marqueeStoryDetail from './marquee-story.vue'\r\nimport peopleDetail from './people-detail.vue'\r\nimport servicesDetail from './services-detail.vue'\r\nimport peopleSearch from './people-search.vue'\r\nimport staffSearch from './staff-search.vue'\r\n\r\nimport siteSearchPage from './site-search-page.vue'\r\nimport insightsSearch from './insights-search.vue'\r\nimport servicesLanding from './services-landing.vue'\r\nimport articlesDetail from './articles-detail.vue'\r\nimport locationsDetail from './locations-detail.vue'\r\nimport locationsLanding from './locations-landing.vue'\r\nimport careersDetail from './careers-detail.vue'\r\nimport careersLanding from './careers-landing.vue'\r\nimport generalContent from './general-content.vue'\r\nimport languageIndex from './language-index.vue'\r\nimport testimonialDetail from './testimonial-detail.vue'\r\nimport testimonialLanding from './testimonial-landing.vue'\r\nimport topicLanding from './topic-landing.vue'\r\nimport scrollToTop from './back-to-top.vue'\r\n\r\nsiteHeader()\r\nsiteOvelay()\r\nhomepage()\r\nmarqueeStoryDetail()\r\npeopleDetail()\r\nservicesDetail()\r\npeopleSearch()\r\nstaffSearch()\r\nsiteSearchPage()\r\nservicesLanding()\r\narticlesDetail()\r\nlocationsDetail()\r\ninsightsSearch()\r\nlocationsLanding()\r\ncareersDetail()\r\ncareersLanding()\r\ngeneralContent()\r\nlanguageIndex()\r\ntestimonialDetail()\r\ntestimonialLanding()\r\ntopicLanding()\r\nscrollToTop()\r\n","import Vue from 'vue'\r\nimport collapsibleSections from './../mixins/collapsibleSections.vue'\r\n// import tabbyArea from './../mixins/tabbyArea.vue'\r\n\r\n\r\n//changed to use tabbyarea mixin instead of duplicated code code\r\n\r\n// var config = {\r\n// animationTiming: 350 // should be in line with animation.scss file\r\n// }\r\n\r\n\r\nexport default function () {\r\n if (!document.getElementById('services-detail-app')) {\r\n return false\r\n }\r\n\r\n new Vue({ // eslint-disable-line\r\n mixins: [collapsibleSections],\r\n el: '#services-detail-app',\r\n data: function () {\r\n return {\r\n \r\n }\r\n },\r\n \r\n created () {\r\n },\r\n watch: {\r\n \r\n },\r\n methods: {\r\n \r\n }\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport {TweenLite} from 'gsap'\r\nimport collapsibleSections from './../mixins/collapsibleSections.vue'\r\n// import tabbyArea from './../mixins/tabbyArea.vue'\r\n\r\n\r\n//changed to use tabbyarea and collapsiblesections mixin instead of duplicated code code\r\n\r\n// var config = {\r\n// animationTiming: 350 // should be in line with animation.scss file\r\n// }\r\n\r\n\r\nexport default function () {\r\n if (!document.getElementById('services-landing-app')) {\r\n return false\r\n }\r\n\r\n new Vue({ // eslint-disable-line\r\n el: '#services-landing-app',\r\n mixins: [collapsibleSections],\r\n data: function () {\r\n return {\r\n \r\n }\r\n },\r\n created () {\r\n \r\n },\r\n watch: {\r\n\r\n },\r\n methods: {\r\n \r\n }\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport {TweenLite} from 'gsap'\r\nimport Podcast from './../mixins/podcast.vue'\r\nimport collapsibleSections from './../mixins/collapsibleSections.vue'\r\n\r\nexport default function () {\r\n if (!document.getElementById('articles-detail-app')) {\r\n return false\r\n }\r\n\r\n const constructTweenObject = (givenObj) =>\r\n Object.keys(givenObj)\r\n .reduce((newObj, key) => {\r\n newObj[key] = {\r\n isExpanded: givenObj[key]\r\n }\r\n return newObj\r\n }, {})\r\n\r\n\r\n new Vue({\r\n el: '#articles-detail-app',\r\n mixins: [Podcast, collapsibleSections ],\r\n \r\n data: function () {\r\n return {\r\n }\r\n },\r\n methods: {\r\n \r\n }\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport collapsibleSections from './../mixins/collapsibleSections.vue'\r\n\r\nexport default function () {\r\n if (!document.getElementById('locations-detail-app')) {\r\n return false\r\n }\r\n\r\n new Vue({\r\n el: '#locations-detail-app',\r\n mixins: [collapsibleSections]\r\n })\r\n}\r\n","import Vue from 'vue'\r\n\r\nexport default function () {\r\n if (!document.getElementById('locations-landing-app')) {\r\n return false\r\n }\r\n\r\n new Vue({ // eslint-disable-line\r\n el: '#locations-landing-app',\r\n mounted () {\r\n var locationsList = document.getElementById('locations-list');\r\n var scrollingTimeout;\r\n window.addEventListener('scroll', function ( event ) {\r\n // Clear our timeout throughout the scroll\r\n window.clearTimeout( scrollingTimeout );\r\n locationsList.classList.add(\"locations-prominent-listing__list-scrolling\");\r\n // Set a timeout to run after scrolling ends\r\n scrollingTimeout = setTimeout(function() {\r\n locationsList.classList.remove(\"locations-prominent-listing__list-scrolling\");\r\n }, 500);\r\n\r\n }, false);\r\n }\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport {TweenLite} from 'gsap'\r\nimport collapsibleSections from './../mixins/collapsibleSections.vue'\r\n// import tabbyArea from './../mixins/tabbyArea.vue'\r\n\r\nexport default function () {\r\n if (!document.getElementById('careers-detail-app')) {\r\n return false\r\n }\r\n\r\n new Vue({ // eslint-disable-line\r\n el: '#careers-detail-app',\r\n mixins: [collapsibleSections],\r\n data: function () {\r\n return {\r\n ...window.json\r\n }\r\n },\r\n methods: {\r\n \r\n }\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport vuexStore from './../store/vuex-store'\r\n\r\nexport default function () {\r\n if (!document.getElementById('careers-landing-app')) {\r\n return false\r\n }\r\n\r\n new Vue({ // eslint-disable-line\r\n el: '#careers-landing-app',\r\n store: vuexStore\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport {TweenLite} from 'gsap'\r\nimport collapsibleSections from './../mixins/collapsibleSections.vue'\r\n// import tabbyArea from './../mixins/tabbyArea.vue'\r\n\r\nexport default function () {\r\n if (!document.getElementById('general-content-app')) {\r\n return false\r\n }\r\n\r\n new Vue({ // eslint-disable-line\r\n el: '#general-content-app',\r\n mixins: [collapsibleSections],\r\n data: function () {\r\n return {\r\n \r\n }\r\n },\r\n created () {\r\n \r\n },\r\n watch: {\r\n \r\n },\r\n methods: {\r\n \r\n }\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport {TweenLite} from 'gsap'\r\nimport collapsibleSections from './../mixins/collapsibleSections.vue'\r\n\r\nexport default function () {\r\n if (!document.getElementById('language-index-app')) {\r\n return false\r\n }\r\n\r\n new Vue({ // eslint-disable-line\r\n el: '#language-index-app',\r\n mixins: [collapsibleSections],\r\n data: function () {\r\n return {\r\n \r\n }\r\n },\r\n created () {\r\n },\r\n watch: {\r\n\r\n },\r\n methods: {\r\n \r\n }\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport collapsibleSections from './../mixins/collapsibleSections.vue'\r\n\r\nexport default function () {\r\n if (!document.getElementById('testimonial-detail-app')) {\r\n return false\r\n }\r\n\r\n new Vue({\r\n el: '#testimonial-detail-app',\r\n mixins: [collapsibleSections]\r\n })\r\n}\r\n","import Vue from 'vue'\r\n\r\nexport default function () {\r\n if (!document.getElementById('testimonial-landing-app')) {\r\n return false\r\n }\r\n\r\n new Vue({\r\n el: '#testimonial-landing-app'\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport collapsibleSections from './../mixins/collapsibleSections.vue'\r\n\r\nexport default function () {\r\n if (!document.getElementById('topic-landing-app')) {\r\n return false\r\n }\r\n\r\n new Vue({\r\n el: '#topic-landing-app',\r\n mixins: [collapsibleSections]\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport { TweenLite } from 'gsap'\r\nimport ScrollToPlugin from 'gsap/ScrollToPlugin'\r\n\r\nexport default function () {\r\n if (!document.getElementById('back-to-top')) {\r\n return false\r\n }\r\n\r\n new Vue({\r\n el: '#back-to-top',\r\n data: {\r\n visible: false,\r\n },\r\n mounted() {\r\n this.handleUserScroll();\r\n },\r\n computed: {\r\n },\r\n methods: {\r\n handleUserScroll () {\r\n var clientHeight = document.documentElement.clientHeight;\r\n var scrollHeight = document.documentElement.scrollHeight;\r\n var scrollTop = window.pageYOffset || (document.documentElement || document.body.parentNode || document.body).scrollTop;\r\n \r\n this.visible = clientHeight === scrollHeight ? false : scrollTop > (clientHeight * 0.25);\r\n },\r\n scrollToTop () {\r\n setTimeout(function() {\r\n TweenLite.to(window, 1, {\r\n scrollTo: {\r\n y: 0,\r\n autoKill: false\r\n }\r\n })\r\n }, 100);\r\n },\r\n }\r\n })\r\n}\r\n","// creates a global \"addWheelListener\" method\r\n// example: addWheelListener( elem, function( e ) { console.log( e.deltaY ); e.preventDefault(); } );\r\n(function (window, document) {\r\n\r\n var prefix = \"\",\r\n _addEventListener, support;\r\n\r\n // detect event model\r\n if (window.addEventListener) {\r\n _addEventListener = \"addEventListener\";\r\n } else {\r\n _addEventListener = \"attachEvent\";\r\n prefix = \"on\";\r\n }\r\n\r\n // detect available wheel event\r\n support = \"onwheel\" in document.createElement(\"div\") ? \"wheel\" : // Modern browsers support \"wheel\"\r\n document.onmousewheel !== undefined ? \"mousewheel\" : // Webkit and IE support at least \"mousewheel\"\r\n \"DOMMouseScroll\"; // let's assume that remaining browsers are older Firefox\r\n\r\n window.addWheelListener = function (elem, callback, useCapture) {\r\n _addWheelListener(elem, support, callback, useCapture);\r\n\r\n // handle MozMousePixelScroll in older Firefox\r\n if (support == \"DOMMouseScroll\") {\r\n _addWheelListener(elem, \"MozMousePixelScroll\", callback, useCapture);\r\n }\r\n };\r\n\r\n function _addWheelListener(elem, eventName, callback, useCapture) {\r\n elem[_addEventListener](prefix + eventName, support == \"wheel\" ? callback : function (originalEvent) {\r\n !originalEvent && (originalEvent = window.event);\r\n\r\n // create a normalized event object\r\n var event = {\r\n // keep a ref to the original event object\r\n originalEvent: originalEvent,\r\n target: originalEvent.target || originalEvent.srcElement,\r\n type: \"wheel\",\r\n deltaMode: originalEvent.type == \"MozMousePixelScroll\" ? 0 : 1,\r\n deltaX: 0,\r\n deltaY: 0,\r\n deltaZ: 0,\r\n preventDefault: function () {\r\n originalEvent.preventDefault ?\r\n originalEvent.preventDefault() :\r\n originalEvent.returnValue = false;\r\n }\r\n };\r\n\r\n // calculate deltaY (and deltaX) according to the event\r\n if (support == \"mousewheel\") {\r\n event.deltaY = -1 / 40 * originalEvent.wheelDelta;\r\n // Webkit also support wheelDeltaX\r\n originalEvent.wheelDeltaX && (event.deltaX = -1 / 40 * originalEvent.wheelDeltaX);\r\n } else {\r\n event.deltaY = originalEvent.deltaY || originalEvent.detail;\r\n }\r\n\r\n // it's time to fire the callback\r\n return callback(event);\r\n\r\n }, useCapture || false);\r\n }\r\n\r\n})(window, document);","if (!Array.from) {\r\n Array.from = (function() {\r\n var toStr = Object.prototype.toString\r\n var isCallable = function(fn) {\r\n return typeof fn === \"function\" || toStr.call(fn) === \"[object Function]\"\r\n }\r\n var toInteger = function(value) {\r\n var number = Number(value)\r\n if (isNaN(number)) {\r\n return 0\r\n }\r\n if (number === 0 || !isFinite(number)) {\r\n return number\r\n }\r\n return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number))\r\n }\r\n var maxSafeInteger = Math.pow(2, 53) - 1\r\n var toLength = function(value) {\r\n var len = toInteger(value)\r\n return Math.min(Math.max(len, 0), maxSafeInteger)\r\n }\r\n \r\n return function from(arrayLike) {\r\n var C = this\r\n var items = Object(arrayLike)\r\n if (arrayLike == null) {\r\n throw new TypeError(\r\n \"Array.from requires an array-like object - not null or undefined\"\r\n )\r\n }\r\n var mapFn = arguments.length > 1 ? arguments[1] : void undefined\r\n var T\r\n if (typeof mapFn !== \"undefined\") {\r\n if (!isCallable(mapFn)) {\r\n throw new TypeError(\r\n \"Array.from: when provided, the second argument must be a function\"\r\n )\r\n }\r\n if (arguments.length > 2) {\r\n T = arguments[2]\r\n }\r\n }\r\n var len = toLength(items.length)\r\n var A = isCallable(C) ? Object(new C(len)) : new Array(len)\r\n var k = 0\r\n var kValue\r\n while (k < len) {\r\n kValue = items[k]\r\n if (mapFn) {\r\n A[k] =\r\n typeof T === \"undefined\"\r\n ? mapFn(kValue, k)\r\n : mapFn.call(T, kValue, k)\r\n } else {\r\n A[k] = kValue\r\n }\r\n k += 1\r\n }\r\n A.length = len\r\n return A\r\n }\r\n })()\r\n }","(function () {\r\n\r\n if ( typeof window.CustomEvent === \"function\" ) return false;\r\n \r\n function CustomEvent ( event, params ) {\r\n params = params || { bubbles: false, cancelable: false, detail: null };\r\n var evt = document.createEvent( 'CustomEvent' );\r\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );\r\n return evt;\r\n }\r\n \r\n window.CustomEvent = CustomEvent;\r\n })();","if (!Array.prototype.findIndex) {\r\n Object.defineProperty(Array.prototype, 'findIndex', {\r\n value: function(predicate) {\r\n // 1. Let O be ? ToObject(this value).\r\n if (this == null) {\r\n throw new TypeError('\"this\" is null or not defined');\r\n }\r\n\r\n var o = Object(this);\r\n\r\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\r\n var len = o.length >>> 0;\r\n\r\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\r\n if (typeof predicate !== 'function') {\r\n throw new TypeError('predicate must be a function');\r\n }\r\n\r\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\r\n var thisArg = arguments[1];\r\n\r\n // 5. Let k be 0.\r\n var k = 0;\r\n\r\n // 6. Repeat, while k < len\r\n while (k < len) {\r\n // a. Let Pk be ! ToString(k).\r\n // b. Let kValue be ? Get(O, Pk).\r\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\r\n // d. If testResult is true, return k.\r\n var kValue = o[k];\r\n if (predicate.call(thisArg, kValue, k, o)) {\r\n return k;\r\n }\r\n // e. Increase k by 1.\r\n k++;\r\n }\r\n\r\n // 7. Return -1.\r\n return -1;\r\n }\r\n });\r\n}","if (typeof Object.assign != 'function') {\r\n Object.assign = function(target) {\r\n 'use strict';\r\n if (target == null) {\r\n throw new TypeError('Cannot convert undefined or null to object');\r\n }\r\n \r\n target = Object(target);\r\n for (var index = 1; index < arguments.length; index++) {\r\n var source = arguments[index];\r\n if (source != null) {\r\n for (var key in source) {\r\n if (Object.prototype.hasOwnProperty.call(source, key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n }\r\n return target;\r\n };\r\n }","// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\r\n// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\r\n\r\n// requestAnimationFrame polyfill by Erik Möller\r\n// fixes from Paul Irish and Tino Zijdel\r\n\r\n(function () {\r\n var lastTime = 0;\r\n var vendors = ['ms', 'moz', 'webkit', 'o'];\r\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n\r\n if (!window.requestAnimationFrame)\r\n window.requestAnimationFrame = function (callback, element) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = window.setTimeout(function () { callback(currTime + timeToCall); },\r\n timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n\r\n if (!window.cancelAnimationFrame)\r\n window.cancelAnimationFrame = function (id) {\r\n clearTimeout(id);\r\n };\r\n}());\r\n","import Vue from 'vue'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\nimport resizeMixin from './../mixins/window-resize.vue'\r\nimport {TweenLite} from 'gsap'\r\nimport ScrollToPlugin from 'gsap/ScrollToPlugin'\r\n\r\nconst Hammer = require('hammerjs')\r\n\r\nvar pageConfig = {\r\n animationSlideTiming: 2000,\r\n animationDetailTiming: 1000\r\n}\r\n\r\nvar scrollConfig = {\r\n duration: 1\r\n}\r\n\r\nVue.component('Showcase', {\r\n mixins: [resizeMixin],\r\n props: ['backButtonCollapse', 'performanceGridCollapse', 'videoData'],\r\n data: () => ({\r\n initShowcase: false,\r\n isAnimating: false,\r\n imagePanState: false,\r\n isImageHovered: false,\r\n headlineTransitionOut: false,\r\n // isVerticalView: false, //moved to vuex\r\n fauxPosition: 0,\r\n touchManager: undefined\r\n }),\r\n mounted () {\r\n this.updateShowcaseSlide(this.activeSlideIndex, true)\r\n\r\n // Add class to fade in content\r\n window.setTimeout(() => {\r\n this.initShowcase = true\r\n this.imagePanState = true\r\n }, 500)\r\n\r\n this.attachEvents()\r\n this.windowResizeCallbackEvent()\r\n\r\n this.setupTouchEvents()\r\n },\r\n computed: {\r\n ...mapGetters({\r\n showcaseDetailViewExpanded: 'showcase/showcaseDetailViewExpanded',\r\n performanceGridTransitionIn: 'showcase/performanceGridTransitionIn',\r\n performanceGridTransitionOut: 'showcase/performanceGridTransitionOut',\r\n isShowcaseDisabled: 'showcase/isShowcaseDisabled',\r\n slides: 'showcase/slides',\r\n activeSlideIndex: 'showcase/activeSlideIndex',\r\n isVerticalView: 'showcase/isVerticalView'\r\n }),\r\n performanceGridEnabled () {\r\n return this.performanceGridTransitionIn\r\n },\r\n slidesLength () {\r\n return this.slides.length\r\n }\r\n },\r\n watch: {\r\n fauxPosition (newVal, oldVal) {\r\n if (newVal === this.slidesLength) {\r\n return\r\n }\r\n\r\n this.updateShowcaseSlide(oldVal, false)\r\n this.headlineTransitionOut = true\r\n\r\n setTimeout(() => {\r\n this.updateShowcaseSlide(newVal, true)\r\n\r\n this.headlineTransitionOut = false\r\n }, pageConfig.animationDetailTiming / 2)\r\n\r\n setTimeout(() => {\r\n this.isAnimating = false\r\n }, pageConfig.animationDetailTiming)\r\n },\r\n backButtonCollapse (isCollapsedView) {\r\n if (isCollapsedView) {\r\n this.collapseShowcaseDetailView()\r\n }\r\n },\r\n performanceGridCollapse (isCollapsedView) {\r\n if (isCollapsedView) {\r\n this.collapsePerformanceGrid()\r\n }\r\n }\r\n },\r\n methods: {\r\n ...mapMutations({\r\n setPerformanceGridTransitionIn: 'showcase/setPerformanceGridTransitionIn',\r\n setPerformanceGridTransitionOut: 'showcase/setPerformanceGridTransitionOut',\r\n setActiveIndex: 'showcase/setActiveIndex',\r\n setShowcaseSlideActiveState: 'showcase/setShowcaseSlideActiveState',\r\n setShowcaseDetailView: 'showcase/setShowcaseDetailView',\r\n setIsShowcaseDisabled: 'showcase/setIsShowcaseDisabled',\r\n setShowcaseDetailContent: 'showcase/setShowcaseDetailContent',\r\n setIsVerticalView: 'showcase/setIsVerticalView'\r\n }),\r\n windowResizeCallbackEvent () {\r\n (window.innerWidth >= 1000)\r\n ? this.setDesktopView()\r\n : this.setMobileView()\r\n },\r\n setDesktopView () {\r\n // this.isVerticalView = false\r\n this.setIsVerticalView({update: false})\r\n },\r\n setMobileView () {\r\n // this.isVerticalView = true\r\n this.setIsVerticalView({update: true})\r\n\r\n if (this.showcaseDetailViewExpanded) {\r\n this.collapseShowcaseDetailView()\r\n }\r\n },\r\n isActiveSlide (givenIndex) {\r\n return givenIndex === this.activeSlideIndex\r\n },\r\n setSlideIndex (givenIndex) {\r\n this.fauxPosition = givenIndex\r\n },\r\n updateShowcaseSlide (givenIndex, state) {\r\n this.setShowcaseSlideActiveState({\r\n index: givenIndex,\r\n update: state\r\n })\r\n\r\n // Update active index\r\n if (state) {\r\n this.setActiveIndex({newIndex: givenIndex})\r\n\r\n this.$nextTick(() => this.setShowcaseDetailContent({index: givenIndex}))\r\n }\r\n },\r\n clickHeadline (url) {\r\n if (this.isVerticalView) {\r\n window.location = url\r\n } else {\r\n this.expandShowcaseDetailView()\r\n }\r\n },\r\n expandShowcaseDetailView () {\r\n this.setShowcaseDetailView({update: true})\r\n this.setIsShowcaseDisabled({update: true})\r\n },\r\n collapseShowcaseDetailView () {\r\n this.setShowcaseDetailView({update: false})\r\n\r\n setTimeout(() => {\r\n this.setIsShowcaseDisabled({update: false})\r\n }, pageConfig.animationDetailTiming)\r\n },\r\n // Desktop only - is available to be scrolled down on mobile\r\n togglePerformanceGrid () {\r\n if (this.isVerticalView) {\r\n this.expandPerformanceGrid()\r\n } else {\r\n (this.performanceGridEnabled)\r\n ? this.collapsePerformanceGrid()\r\n : this.expandPerformanceGrid()\r\n }\r\n },\r\n collapsePerformanceGrid () {\r\n this.setPerformanceGridTransitionIn({update: false})\r\n this.setPerformanceGridTransitionOut({update: true})\r\n this.setIsShowcaseDisabled({update: false})\r\n\r\n setTimeout(() => {\r\n this.setPerformanceGridTransitionOut({update: false})\r\n this.isAnimating = false\r\n }, pageConfig.animationDetailTiming)\r\n\r\n if (this.isVerticalView) {\r\n this.scrollToTop()\r\n }\r\n },\r\n expandPerformanceGrid () {\r\n this.setPerformanceGridTransitionIn({update: true})\r\n\r\n setTimeout(() => {\r\n this.setIsShowcaseDisabled({update: true})\r\n }, pageConfig.animationDetailTiming)\r\n },\r\n scrollToTop () {\r\n TweenLite.to(window, scrollConfig.duration, { scrollTo: { y: 0, autoKill: false } })\r\n },\r\n attachEvents () {\r\n this.setMouseWheelEvent()\r\n },\r\n setMouseWheelEvent () {\r\n window.addEventListener('wheel', (event) => {\r\n if (!this.isAnimating && !this.isShowcaseDisabled) {\r\n this.handleScroll(event)\r\n }\r\n })\r\n },\r\n handleScroll ({deltaY}) {\r\n if (this.isAnimating || this.isShowcaseDisabled || this.isVerticalView) {\r\n return\r\n }\r\n\r\n (deltaY > 0)\r\n ? this.moveUpPanel()\r\n : this.moveDownPanel()\r\n\r\n this.isAnimating = true\r\n },\r\n moveUpPanel () {\r\n this.fauxPosition = (this.fauxPosition + 1) % this.slidesLength\r\n },\r\n moveDownPanel () {\r\n this.fauxPosition = (this.fauxPosition - 1 < 0)\r\n ? this.slidesLength - 1\r\n : this.fauxPosition - 1\r\n },\r\n handleSwipe (swipeDirection) {\r\n if (this.isAnimating || this.isShowcaseDisabled) {\r\n return\r\n }\r\n\r\n if (swipeDirection === 'swipeUp') {\r\n this.moveUpPanel()\r\n } else if (swipeDirection === 'swipeDown') {\r\n // scroll up\r\n this.moveDownPanel()\r\n }\r\n\r\n this.isAnimating = true\r\n },\r\n setupTouchEvents () {\r\n this.touchManager = new Hammer.Manager(this.$refs.showcase, {\r\n recognizers: [[Hammer.Swipe, { direction: Hammer.DIRECTION_HORIZONTAL }]]\r\n })\r\n\r\n this.touchManager.on('swiperight', (ev) => this.handleSwipe('swipeDown'))\r\n this.touchManager.on('swipeleft', (ev) => this.handleSwipe('swipeUp'))\r\n },\r\n handleRightArrowClick () {\r\n this.moveUpPanel()\r\n },\r\n handleLeftArrowClick () {\r\n this.moveDownPanel()\r\n },\r\n // Close the performance grid popout view when the left gutter is clicked\r\n handleBackgroundClick () {\r\n if (this.performanceGridTransitionIn && !this.isVerticalView && !this.isAnimating) {\r\n console.log('close from background click')\r\n this.collapsePerformanceGrid()\r\n }\r\n }\r\n }\r\n})\r\n","import Vue from 'vue'\r\n\r\nVue.component('team-card', {\r\n template: '#team-card',\r\n props: ['card']\r\n})\r\n","import Vue from 'vue'\r\nimport resizeMixin from './../mixins/window-resize.vue'\r\nimport { mapGetters } from 'vuex'\r\n\r\n\r\nVue.component('team-carousel', {\r\n mixins: [resizeMixin],\r\n props: {\r\n viewallUrl: {\r\n type: String,\r\n default: '#0'\r\n },\r\n cardItems: {\r\n type: Array,\r\n default: () => []\r\n }\r\n },\r\n data: function () {\r\n return {\r\n viewallURL: '',\r\n currentIndex: 0,\r\n beltStyles: {},\r\n slidesPerViewport: 3\r\n }\r\n },\r\n watch: {\r\n cardItems (newVal, oldVal) {\r\n if (newVal.length > 0) {\r\n this.resetCarousel()\r\n }\r\n }\r\n },\r\n computed: {\r\n ...mapGetters({\r\n activeSlideContent: 'showcase/activeSlideContent',\r\n }),\r\n cardItemsLength () {\r\n return this.cardItems.length\r\n },\r\n orphanChildren () {\r\n return this.cardItemsLength % this.slidesPerViewport\r\n },\r\n carouselLength () {\r\n return Math.ceil(this.cardItemsLength / this.slidesPerViewport)\r\n },\r\n displayCarouselArrows (){\r\n return this.cardItemsLength > this.slidesPerViewport;\r\n },\r\n startOfCarousel () {\r\n return this.currentIndex === 0\r\n },\r\n endOfCarousel () {\r\n return this.currentIndex === this.carouselLength - 1\r\n },\r\n cardWidth () {\r\n if (this.slidesPerViewport) {\r\n return this.$refs.domBelt.children[0].clientWidth\r\n }\r\n }\r\n },\r\n mounted: function () {\r\n this.windowResizeCallbackEvent()\r\n },\r\n methods: {\r\n windowResizeCallbackEvent () {\r\n (window.innerWidth >= 1200)\r\n ? this.slidesPerViewport = 3\r\n : (window.innerWidth >= 600)\r\n ? this.slidesPerViewport = 2\r\n : this.slidesPerViewport = 1\r\n },\r\n nextSlide () {\r\n let cardIndex = this.currentIndex\r\n\r\n ++cardIndex;\r\n\r\n (cardIndex >= this.carouselLength)\r\n ? this.currentIndex = this.carouselLength - 1\r\n : this.currentIndex = cardIndex\r\n\r\n this.updateBeltStyles()\r\n },\r\n previousSlide () {\r\n let cardIndex = this.currentIndex\r\n\r\n --cardIndex;\r\n\r\n (cardIndex < 0)\r\n ? this.currentIndex = 0\r\n : this.currentIndex = cardIndex\r\n\r\n this.updateBeltStyles()\r\n },\r\n updateBeltStyles () {\r\n let carouselOffset\r\n\r\n carouselOffset = this.currentIndex * this.cardWidth * this.slidesPerViewport\r\n\r\n if(this.carouselLength === 1){\r\n //not sure why this case was happening, but it was getting weird values sometimes for carousels with only one item\r\n carouselOffset = 0;\r\n }\r\n else if (this.currentIndex === this.carouselLength - 1) {\r\n if (this.orphanChildren > 0) {\r\n carouselOffset = (this.currentIndex) * this.cardWidth * this.slidesPerViewport - ((this.slidesPerViewport - this.orphanChildren) * this.cardWidth)\r\n } else {\r\n carouselOffset = (this.currentIndex) * this.cardWidth * this.slidesPerViewport\r\n }\r\n } else {\r\n carouselOffset = this.currentIndex * this.cardWidth * this.slidesPerViewport\r\n }\r\n this.beltStyles = {\r\n transform: 'translateX(' + (carouselOffset * -1) + 'px)'\r\n }\r\n },\r\n resetCarousel () {\r\n this.currentIndex = 0\r\n this.updateBeltStyles()\r\n }\r\n }\r\n})\r\n","import Vue from 'vue'\r\n\r\nVue.component('ShowcaseQuote', {\r\n props: ['quoteData']\r\n})\r\n","import Vue from 'vue'\r\n\r\nVue.component('accordion', {\r\n props: ['expandAccordion'],\r\n data: function () {\r\n return {\r\n isExpanded: false,\r\n collapsedHeight: ''\r\n }\r\n },\r\n watch: {\r\n expandAccordion (isOpened) {\r\n this.isExpanded = isOpened\r\n },\r\n isExpanded: function (expandNode) {\r\n const el = this.$refs.bodyContent\r\n const sectionHeight = el.scrollHeight;\r\n\r\n (expandNode)\r\n ? this.expandContent(sectionHeight)\r\n : this.collapseContent(sectionHeight)\r\n\r\n this.removeListener(el, expandNode)\r\n }\r\n },\r\n methods: {\r\n toggleNode () {\r\n this.isExpanded = !this.isExpanded\r\n },\r\n expandContent (heightToExpand) {\r\n window.requestAnimationFrame(() => {\r\n this.collapsedHeight = heightToExpand + 'px'\r\n })\r\n },\r\n collapseContent (currentHeight) {\r\n window.requestAnimationFrame(() => {\r\n this.collapsedHeight = currentHeight + 'px'\r\n\r\n window.requestAnimationFrame(() => {\r\n this.collapsedHeight = 0 + 'px'\r\n })\r\n })\r\n },\r\n removeListener (element, expandState) {\r\n var expandedState = expandState\r\n\r\n element.addEventListener('transitionend', () => {\r\n // remove this event listener so it only gets triggered once\r\n element.removeEventListener('transitionend', void (0))\r\n\r\n Vue.nextTick(() => {\r\n if (expandedState) {\r\n // remove \"height\" from the element's inline styles, so it can return to its initial value\r\n this.collapsedHeight = 'auto'\r\n } else {\r\n this.collapsedHeight = 0 + 'px'\r\n }\r\n })\r\n })\r\n }\r\n }\r\n})\r\n","// Robert Penner's easeInOutQuad\n\n// find the rest of his easing functions here: http://robertpenner.com/easing/\n// find them exported for ES6 consumption here: https://github.com/jaxgeller/ez.js\n\nvar easeInOutQuad = function easeInOutQuad(t, b, c, d) {\n t /= d / 2;\n if (t < 1) return c / 2 * t * t + b;\n t--;\n return -c / 2 * (t * (t - 2) - 1) + b;\n};\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar jumper = function jumper() {\n // private variable cache\n // no variables are created during a jump, preventing memory leaks\n\n var element = void 0; // element to scroll to (node)\n\n var start = void 0; // where scroll starts (px)\n var stop = void 0; // where scroll stops (px)\n\n var offset = void 0; // adjustment from the stop position (px)\n var easing = void 0; // easing function (function)\n var a11y = void 0; // accessibility support flag (boolean)\n\n var distance = void 0; // distance of scroll (px)\n var duration = void 0; // scroll duration (ms)\n\n var timeStart = void 0; // time scroll started (ms)\n var timeElapsed = void 0; // time spent scrolling thus far (ms)\n\n var next = void 0; // next scroll position (px)\n\n var callback = void 0; // to call when done scrolling (function)\n\n // scroll position helper\n\n function location() {\n return window.scrollY || window.pageYOffset;\n }\n\n // element offset helper\n\n function top(element) {\n return element.getBoundingClientRect().top + start;\n }\n\n // rAF loop helper\n\n function loop(timeCurrent) {\n // store time scroll started, if not started already\n if (!timeStart) {\n timeStart = timeCurrent;\n }\n\n // determine time spent scrolling so far\n timeElapsed = timeCurrent - timeStart;\n\n // calculate next scroll position\n next = easing(timeElapsed, start, distance, duration);\n\n // scroll to it\n window.scrollTo(0, next);\n\n // check progress\n timeElapsed < duration ? window.requestAnimationFrame(loop) // continue scroll loop\n : done(); // scrolling is done\n }\n\n // scroll finished helper\n\n function done() {\n // account for rAF time rounding inaccuracies\n window.scrollTo(0, start + distance);\n\n // if scrolling to an element, and accessibility is enabled\n if (element && a11y) {\n // add tabindex indicating programmatic focus\n element.setAttribute('tabindex', '-1');\n\n // focus the element\n element.focus();\n }\n\n // if it exists, fire the callback\n if (typeof callback === 'function') {\n callback();\n }\n\n // reset time for next jump\n timeStart = false;\n }\n\n // API\n\n function jump(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // resolve options, or use defaults\n duration = options.duration || 1000;\n offset = options.offset || 0;\n callback = options.callback; // \"undefined\" is a suitable default, and won't be called\n easing = options.easing || easeInOutQuad;\n a11y = options.a11y || false;\n\n // cache starting position\n start = location();\n\n // resolve target\n switch (typeof target === 'undefined' ? 'undefined' : _typeof(target)) {\n // scroll from current position\n case 'number':\n element = undefined; // no element to scroll to\n a11y = false; // make sure accessibility is off\n stop = start + target;\n break;\n\n // scroll to element (node)\n // bounding rect is relative to the viewport\n case 'object':\n element = target;\n stop = top(element);\n break;\n\n // scroll to element (selector)\n // bounding rect is relative to the viewport\n case 'string':\n element = document.querySelector(target);\n stop = top(element);\n break;\n }\n\n // resolve scroll distance, accounting for offset\n distance = stop - start + offset;\n\n // resolve duration\n switch (_typeof(options.duration)) {\n // number in ms\n case 'number':\n duration = options.duration;\n break;\n\n // function passed the distance of the scroll\n case 'function':\n duration = options.duration(distance);\n break;\n }\n\n // start the loop\n window.requestAnimationFrame(loop);\n }\n\n // expose only the jump method\n return jump;\n};\n\n// export singleton\n\nvar singleton = jumper();\n\nexport default singleton;\n","import Vue from 'vue'\r\nimport jumpTo from 'jump.js'\r\n\r\nvar scrollConfig = {\r\n duration: 600,\r\n offset: -100\r\n}\r\n\r\nVue.component('profile-bar', {\r\n props: ['activeScrollSection'],\r\n data: () => ({\r\n isFixed: false,\r\n stickyOffset: 0,\r\n activeSectionName: '',\r\n toggleLabel: '',\r\n showNav: false\r\n }),\r\n watch: {\r\n activeScrollSection (newValue, oldValue) {\r\n this.activeSectionName = newValue\r\n }\r\n },\r\n mounted () {\r\n this.calculateTopStickyOffset()\r\n\r\n this.$nextTick(() => {\r\n this.handleScroll(window.pageYOffset)\r\n })\r\n },\r\n methods: {\r\n handleScroll (windowOffset) {\r\n var self = this\r\n\r\n if (this.stickyOffset > windowOffset) {\r\n self.isFixed = false\r\n } else {\r\n self.isFixed = true\r\n }\r\n },\r\n toggleNav () {\r\n this.showNav = !this.showNav\r\n },\r\n calculateTopStickyOffset () {\r\n var overview = document.querySelector('.overview-block');\r\n if(overview)\r\n this.stickyOffset = overview.getBoundingClientRect().top + window.pageYOffset - 100\r\n else\r\n this.stickyOffset = 200;\r\n },\r\n isActiveSection (sectionID, sectionLabel) {\r\n if (sectionID === this.activeSectionName) this.toggleLabel = sectionLabel\r\n return sectionID === this.activeSectionName\r\n },\r\n jumpToSection (sectionID) {\r\n (sectionID === 'overview')\r\n ? jumpTo('main', {duration: scrollConfig.duration})\r\n : jumpTo('[data-jump-name=\"' + sectionID + '\"]', scrollConfig)\r\n\r\n this.showNav = false\r\n },\r\n }\r\n})\r\n\r\nVue.component()\r\n","import Vue from 'vue'\r\n\r\n\r\nvar config = {\r\n animationTiming: 350 //should be in line with animation.scss file\r\n}\r\n\r\nVue.component('expandable-services', {\r\n data: function () {\r\n \treturn {\r\n isExpanded: false,\r\n cachedHeight: '',\r\n collapsedHeight: ''\r\n }\r\n },\r\n methods: {\r\n toggleNode () {\r\n \tthis.isExpanded = !this.isExpanded\r\n },\r\n expandContent (heightToExpand) {\r\n this.cachedHeight = this.$refs.collapsedContent.clientHeight\r\n \r\n requestAnimationFrame( () => {\r\n this.collapsedHeight = heightToExpand + 'px'\r\n })\r\n },\r\n collapseContent (currentHeight) {\r\n requestAnimationFrame( () => {\r\n this.collapsedHeight = currentHeight + 'px'\r\n\r\n requestAnimationFrame( () => {\r\n this.collapsedHeight = this.cachedHeight + 'px'\r\n });\r\n });\r\n },\r\n removeListener(element, expandState) {\r\n element.addEventListener('transitionend', () => {\r\n // remove this event listener so it only gets triggered once\r\n element.removeEventListener('transitionend', void(0))\r\n\r\n if (expandState) {\r\n // remove \"height\" from the element's inline styles, so it can return to its initial value\r\n this.collapsedHeight = 'auto'\r\n } else {\r\n // remove \"height\" from the element's inline styles, so it can return to its initial value\r\n this.collapsedHeight = this.cachedHeight + 'px'\r\n }\r\n })\r\n }\r\n },\r\n watch: {\r\n isExpanded: function(expandNode) {\r\n const el = this.$refs.collapsedContent;\r\n const sectionHeight = el.scrollHeight;\r\n\r\n (expandNode) \r\n ? this.expandContent(sectionHeight)\r\n : this.collapseContent(sectionHeight)\r\n \r\n this.removeListener(el, expandNode)\r\n }\r\n }\r\n});\r\n","import Vue from 'vue'\r\n\r\nvar config = {\r\n animationTiming: 350 // should be in line with animation.scss file\r\n}\r\n\r\nVue.component('services-areas', {\r\n data: function () {\r\n return {\r\n activeServiceArea: 'practices',\r\n // practicesListing: [],\r\n collapsedHeight: '',\r\n currentFilteredPractice: 'all' // Default category\r\n }\r\n },\r\n mounted () {\r\n // this.practicesListing = window.json.practicesListing\r\n\r\n this.setInitialState()\r\n },\r\n computed: {\r\n isFiltersDisabled () {\r\n return this.activeServiceArea.trim() !== 'practices'\r\n },\r\n // filteredPractices () {\r\n // if (this.currentFilteredPractice === 'all') {\r\n // return []\r\n // }\r\n\r\n // let parentService = {}\r\n\r\n // let filterList = this.practicesListing.filter((serviceItem) => {\r\n\r\n // // if (serviceItem.category === this.currentFilteredPractice && serviceItem.parentPractice === 'true') {\r\n // if (serviceItem.Guid === this.currentFilteredPractice && serviceItem.parentGuid == null) {\r\n // parentService = serviceItem\r\n\r\n // return false\r\n // }\r\n // return serviceItem.ParentGuid === this.currentFilteredPractice\r\n // })\r\n\r\n // if (parentService.parentPractice !== undefined) {\r\n // filterList.unshift(parentService)\r\n // }\r\n\r\n // return filterList\r\n // }\r\n },\r\n methods: {\r\n // Setting tab State\r\n isActiveArea (servicesCategory) {\r\n return this.activeServiceArea.trim() === servicesCategory.trim()\r\n },\r\n setActiveArea (servicesCategory) {\r\n this.activeServiceArea = servicesCategory\r\n },\r\n // Settings Filtered Practice Areas State\r\n filterPracticeAreaBy (parentPracticeGuid) {\r\n if (this.isFiltersDisabled) {\r\n return\r\n }\r\n this.currentFilteredPractice = parentPracticeGuid\r\n },\r\n\r\n isActiveFilter (slugLabel) {\r\n return slugLabel === this.currentFilteredPractice\r\n },\r\n \r\n setInitialState () {\r\n let renderedActiveTab = document.querySelector('.initial-active')\r\n\r\n this.activeServiceArea = renderedActiveTab.innerText.toLowerCase()\r\n },\r\n\r\n shouldShowPractice(parentGuid, isOverview, isServicePointer){\r\n if(this.isFiltersDisabled)\r\n return false;\r\n\r\n //don't show the \"overview\" ones or the duplicates from service pointers when filter is set to all\r\n if(this.currentFilteredPractice === 'all')\r\n return !isOverview && !isServicePointer;\r\n \r\n return this.currentFilteredPractice === parentGuid\r\n }\r\n }\r\n})\r\n","import Vue from 'vue'\r\n\r\nVue.component('person-result', {\r\n template: '#person-result',\r\n props: ['person']\r\n})\r\n","import Vue from 'vue'\r\n\r\nVue.component('InsightCardResult', {\r\n template: '#insight-card-result',\r\n props: ['insight']\r\n})\r\n\r\n","import Vue from 'vue'\r\n\r\nVue.component('InsightCardResultWithLi', {\r\n template: '#insight-card-result-with-li',\r\n props: ['insight']\r\n})\r\n","import Vue from 'vue'\r\n\r\nVue.component('ProminentCardResult', {\r\n template: '#prominent-card-result',\r\n props: ['insight']\r\n})\r\n","import Vue from 'vue'\r\n\r\nVue.component('SiteSearchResult', {\r\n template: '#site-search-result',\r\n props: ['result']\r\n})\r\n\r\n","import Vue from 'vue'\r\nimport { TweenLite } from 'gsap'\r\n\r\nvar scrollConfig = {\r\n duration: .5,\r\n offset: 150,\r\n}\r\n\r\nVue.component('read-more', {\r\n props: ['separateIntro'], //prop determines if we are dealing with two fields\r\n data: function () {\r\n return {\r\n isExpanded: false,\r\n cachedHeight: '',\r\n collapsedHeight: '',\r\n isContentExpandable: false,\r\n scrollID: ''\r\n }\r\n },\r\n mounted () {\r\n this.isContentExpandable = (this.separateIntro)\r\n ? true\r\n : (this.$refs.collapsedContent.scrollHeight > this.$refs.collapsedContent.dataset.readmoreheight)\r\n this.scrollID = 'readmore-' + this._uid;\r\n },\r\n \r\n computed: {\r\n shouldScrollOnCollapse () {\r\n var hiddenContentHeight = this.$refs.collapsedContent.scrollHeight;\r\n var deviceHeight = document.documentElement.clientHeight; \r\n\r\n if(!hiddenContentHeight || !deviceHeight)\r\n return false;\r\n\r\n //scroll if the hidden content is more than half the screen height\r\n return hiddenContentHeight > deviceHeight / 2;\r\n }\r\n },\r\n\r\n methods: {\r\n toggleReadMore () {\r\n\r\n const el = this.$refs.collapsedContent;\r\n const sectionHeight = el.scrollHeight;\r\n var shouldExpand = !this.isExpanded;\r\n var relatedExperience = el.closest('#relatedExperience');\r\n\r\n if (shouldExpand && relatedExperience != null) {\r\n relatedExperience.style.height = 'auto';\r\n }\r\n\r\n (shouldExpand)\r\n ? this.expandContent(sectionHeight)\r\n : this.collapseContent(sectionHeight)\r\n\r\n this.removeListener(el, shouldExpand)\r\n },\r\n expandContent (heightToExpand) {\r\n this.isExpanded = !this.isExpanded\r\n this.cachedHeight = this.$refs.collapsedContent.clientHeight\r\n\r\n window.requestAnimationFrame(() => {\r\n this.collapsedHeight = heightToExpand + 'px'\r\n })\r\n },\r\n collapseContent (currentHeight) {\r\n //scroll first, then collapse, otherwise it gets glitchy\r\n if(this.shouldScrollOnCollapse) {\r\n\r\n //for tabs (and maybe others) we want to scroll up to where we can see the tabs and not just the beginning of the read more\r\n var elementToScrollTo = this.scrollID;\r\n if(this.$parent.readMoreScrollOverride){\r\n elementToScrollTo = this.$parent.readMoreScrollOverride\r\n }\r\n\r\n TweenLite.to(window, scrollConfig.duration, {\r\n scrollTo: {\r\n y: `#${elementToScrollTo}`,\r\n offsetY: scrollConfig.offset,\r\n autoKill: false,\r\n },\r\n onComplete: this.collapseContentUpdateDOM,\r\n onCompleteParams: [currentHeight]\r\n })\r\n }\r\n else {\r\n this.collapseContentUpdateDOM(currentHeight);\r\n }\r\n },\r\n //post scroll, if we scroll\r\n collapseContentUpdateDOM (currentHeight) {\r\n window.requestAnimationFrame(() => {\r\n this.isExpanded = !this.isExpanded;\r\n \r\n window.requestAnimationFrame(() => {\r\n this.collapsedHeight = currentHeight + 'px'\r\n\r\n window.requestAnimationFrame(() => {\r\n this.collapsedHeight = this.cachedHeight + 'px'\r\n })\r\n })\r\n })\r\n },\r\n removeListener (element, expandState) {\r\n element.addEventListener('transitionend', () => {\r\n // remove this event listener so it only gets triggered once\r\n element.removeEventListener('transitionend', void (0))\r\n\r\n if (expandState) {\r\n // remove \"height\" from the element's inline styles, so it can return to its initial value\r\n this.collapsedHeight = 'auto'\r\n } else {\r\n // remove \"height\" from the element's inline styles, so it can return to its initial value\r\n this.collapsedHeight = this.cachedHeight + 'px'\r\n }\r\n })\r\n }\r\n }\r\n})\r\n","import Vue from 'vue'\r\n\r\nVue.component('LanguageDropdown', {\r\n data: function () {\r\n return {\r\n isExpanded: false,\r\n selectedLanguage: 'English'\r\n }\r\n },\r\n methods: {\r\n collapseDropdown () {\r\n this.isExpanded = false\r\n this.removeEventForClickingOutside()\r\n },\r\n toggleDropdown () {\r\n this.isExpanded = !this.isExpanded\r\n\r\n this.isExpanded\r\n ? this.addEventForClickingOutside()\r\n : this.removeEventForClickingOutside()\r\n },\r\n handleClickEvent (event) {\r\n var isClickInside = this.$el.contains(event.target)\r\n\r\n // The click was outside the specifiedElement, do something\r\n if (!isClickInside) {\r\n this.toggleDropdown()\r\n }\r\n },\r\n addEventForClickingOutside () {\r\n document.addEventListener('click', this.handleClickEvent, false)\r\n },\r\n removeEventForClickingOutside () {\r\n document.removeEventListener('click', this.handleClickEvent, false)\r\n }\r\n }\r\n})\r\n","import Vue from 'vue'\r\n\r\nVue.component('CarouselHighlights', {\r\n data: function () {\r\n return {\r\n initExplorer: false,\r\n engageButtonHover: false,\r\n slides: (window.json && window.json.carouselHighlights) ? window.json.carouselHighlights.slides : [],\r\n activeIndex: 0\r\n }\r\n },\r\n methods: {\r\n getSlideCount () {\r\n var slideCount = this.$el.dataset.slidecount;\r\n if (!!slideCount && slideCount > 0){\r\n return slideCount;\r\n }else{\r\n return this.slides.length;\r\n }\r\n },\r\n toggleDropdown () {\r\n this.isExpanded = !this.isExpanded\r\n },\r\n collapseDropdown () {\r\n this.isExpanded = false\r\n },\r\n engageWithCarousel () {\r\n this.initExplorer = true\r\n },\r\n mouseOverEvent () {\r\n this.engageButtonHover = true\r\n },\r\n mouseLeaveEvent () {\r\n this.engageButtonHover = false\r\n },\r\n moveToPrevious () {\r\n (this.activeIndex === 0) \r\n ? this.activeIndex = this.getSlideCount() - 1\r\n : --this.activeIndex \r\n },\r\n moveToNext () {\r\n (this.activeIndex === this.getSlideCount() - 1) \r\n ? this.activeIndex = 0\r\n : ++this.activeIndex \r\n }\r\n }\r\n})\r\n","import Vue from 'vue'\r\n\r\nVue.component('LocationCard', {\r\n data: function () {\r\n return {\r\n isHovered: false\r\n }\r\n },\r\n methods: {\r\n isMouseOver () {\r\n this.isHovered = true\r\n },\r\n isMouseOut () {\r\n this.isHovered = false\r\n }\r\n }\r\n})\r\n","import Vue from 'vue'\r\nimport { TweenLite } from 'gsap'\r\nimport ScrollToPlugin from 'gsap/ScrollToPlugin'\r\n\r\nvar scrollConfig = {\r\n duration: 1,\r\n offset: 85\r\n}\r\n\r\nVue.component('JumptoNav', {\r\n data: () => ({\r\n isHovered: false,\r\n isExpanded: false\r\n }),\r\n methods: {\r\n jumpToSection (locationId) {\r\n TweenLite.to(window, scrollConfig.duration, {\r\n scrollTo: {\r\n y: `#${locationId}`,\r\n // offsetY: scrollConfig.offset,\r\n autoKill: false\r\n }\r\n })\r\n this.isExpanded = false\r\n this.removeEventForClickingOutside()\r\n },\r\n toggleDropdown () {\r\n this.isExpanded = !this.isExpanded\r\n\r\n this.isExpanded\r\n ? this.addEventForClickingOutside()\r\n : this.removeEventForClickingOutside()\r\n },\r\n handleClickEvent (event) {\r\n var isClickInside = this.$el.contains(event.target)\r\n\r\n // The click was outside the specifiedElement, do something\r\n if (!isClickInside) {\r\n this.toggleDropdown()\r\n }\r\n },\r\n addEventForClickingOutside () {\r\n document.addEventListener('click', this.handleClickEvent, false)\r\n },\r\n removeEventForClickingOutside () {\r\n document.removeEventListener('click', this.handleClickEvent, false)\r\n }\r\n }\r\n})\r\n","import Vue from 'vue'\r\nimport { mapGetters } from 'vuex'\r\nimport { mapMutations } from 'vuex'\r\nimport { TweenLite } from 'gsap'\r\nimport ScrollToPlugin from 'gsap/ScrollToPlugin'\r\n\r\nvar scrollConfig = {\r\n duration: 0.75 // in seconds\r\n}\r\n\r\nVue.component('LandingShowcase', {\r\n data: () => ({\r\n initShowcase: false\r\n }),\r\n mounted () {\r\n // Add class to fade in content\r\n this.initShowcase = true\r\n\r\n var self = this;\r\n window.addEventListener(\"keydown\", function(e){\r\n if (self.showCareersBriefs){\r\n if (e.type === \"keydown\" && e.keyCode === 27){\r\n self.toggleCareersBriefs();\r\n }\r\n }\r\n });\r\n },\r\n computed: {\r\n ...mapGetters({\r\n 'showCareersBriefs': 'careersLanding/showCareersBriefs'\r\n })\r\n },\r\n methods: {\r\n ...mapMutations({\r\n 'toggleCareersBriefs': 'careersLanding/toggleBriefsView'\r\n }),\r\n actionForCareersBriefs () {\r\n\r\n if (window.innerWidth < 1000) {\r\n this.scrollToTopPage();\r\n }\r\n //$showcase-desktop--careers\r\n this.toggleCareersBriefs()\r\n },\r\n scrollToTopPage () {\r\n TweenLite.to(window, scrollConfig.duration, { scrollTo: { y: 0, autoKill: false } })\r\n \r\n }\r\n }\r\n})\r\n","import Vue from 'vue'\r\nimport { TimelineLite } from 'gsap'\r\n\r\nVue.component('LandingShowcaseNav', {\r\n props: {\r\n navigationLength: Number\r\n },\r\n data: function () {\r\n return {\r\n activeNode: -1,\r\n componentHeight: 'auto',\r\n timeline: undefined,\r\n timelineHeading: undefined,\r\n showChildrenClass: false,\r\n isVerticalView: false\r\n }\r\n },\r\n watch: {\r\n activeNode (newVal, oldVal) {\r\n (newVal > -1)\r\n ? this.showChildrenAnimation(newVal)\r\n : this.collapseChildrenAnimation(oldVal)\r\n },\r\n areAnyChildrenExpanded () {\r\n return this.activeNode > -1\r\n }\r\n },\r\n mounted () {\r\n this.windowResizeCallbackEvent()\r\n },\r\n computed: {\r\n slideLength () {\r\n return this.navigationLength - 1\r\n },\r\n emptyArrayLength () {\r\n return Array.apply(null, Array(this.navigationLength))\r\n }\r\n },\r\n methods: {\r\n windowResizeCallbackEvent () {\r\n (window.innerWidth >= 1000)\r\n ? this.isVerticalView = false\r\n : this.isVerticalView = true\r\n },\r\n expandChildren (nodeOption) {\r\n this.activeNode = nodeOption\r\n },\r\n collapseChildren () {\r\n this.activeNode = -1\r\n },\r\n isActiveItem (nodeOption) {\r\n return (nodeOption === this.activeNode)\r\n },\r\n showChildrenAnimation (indexToShow) {\r\n let { navWrapper } = this.$refs\r\n\r\n this.componentHeight = navWrapper.clientHeight\r\n\r\n let childrenNodes = this.emptyArrayLength.map((accu, index) => {\r\n return (indexToShow === index)\r\n ? accu\r\n : this.$refs[`navOption${index}`]\r\n }).filter((item) => item)\r\n\r\n this.animateOutChildren(childrenNodes)\r\n },\r\n handler (e){\r\n e.stopPropagation();\r\n e.preventDefault();\r\n },\r\n animateOutChildren (nodes) {\r\n this.timeline = new TimelineLite()\r\n document.addEventListener(\"click\", this.handler, true)\r\n this.timeline.staggerFromTo([...nodes], 0.5,\r\n { opacity: 1, x: 0, timeScale: 0.75 },\r\n { opacity: 0, x: 15, ease: 'Power1.easeOut', timeScale: 1 },\r\n 0.15)\r\n .eventCallback('onComplete', this.completeOutFunction)\r\n .eventCallback('onReverseComplete', this.reverseCompleteListing)\r\n },\r\n completeOutFunction () {\r\n let listDomNode = this.$refs[`navOption${this.activeNode}`]\r\n let positionForHeadingToMove = this.positionForHeadingToMove(listDomNode)\r\n this.showChildrenClass = true\r\n if (positionForHeadingToMove > 0) {\r\n this.timelineHeading = new TimelineLite()\r\n this.timelineHeading\r\n .to(listDomNode, 1, { y: positionForHeadingToMove * -1 })\r\n .eventCallback('onReverseComplete', this.reverseCompleteHeading)\r\n }\r\n document.removeEventListener(\"click\", this.handler, true)\r\n },\r\n positionForHeadingToMove (nodeToMove) {\r\n return nodeToMove.offsetTop\r\n },\r\n collapseChildrenAnimation (nodeToCollapse) {\r\n this.showChildrenClass = false\r\n document.addEventListener(\"click\", this.handler, true)\r\n if (this.timelineHeading !== undefined) {\r\n this.timelineHeading.reverse()\r\n } else {\r\n this.reverseCompleteHeading()\r\n }\r\n },\r\n reverseCompleteHeading () {\r\n document.addEventListener(\"click\", this.handler, true)\r\n this.timelineHeading = undefined\r\n this.timeline.reverse()\r\n },\r\n reverseCompleteListing () {\r\n document.removeEventListener(\"click\", this.handler, true)\r\n this.timeline = undefined\r\n },\r\n resizeCheck () {\r\n if ( this.isVerticalView && (window.innerWidth >= 1000)) {\r\n this.expandChildren()\r\n this.isVerticalView = false\r\n }\r\n\r\n if ( !this.isVerticalView && (window.innerWidth < 1000)) {\r\n this.expandChildren()\r\n this.isVerticalView = true\r\n }\r\n }\r\n },\r\n created: function () {\r\n window.addEventListener('resize', this.resizeCheck);\r\n },\r\n destroyed: function () {\r\n window.removeEventListener('resize', this.resizeCheck);\r\n }\r\n})\r\n","import Vue from 'vue'\r\nimport { mapGetters } from 'vuex'\r\nimport { mapMutations } from 'vuex'\r\n\r\nVue.component('CareersBriefs', {\r\n computed: {\r\n ...mapGetters({\r\n 'showCareersBriefs': 'careersLanding/showCareersBriefs'\r\n })\r\n},\r\nmethods: {\r\n ...mapMutations({\r\n 'toggleCareersBriefs': 'careersLanding/toggleBriefsView'\r\n }),\r\n actionForCareersBriefs () {\r\n //$showcase-desktop--careers\r\n this.toggleCareersBriefs()\r\n }\r\n}\r\n\r\n})\r\n","import Vue from 'vue'\r\n\r\nVue.component('PhotoGallery', {\r\n props: ['slides'],\r\n data: function () {\r\n return {\r\n initExplorer: false,\r\n engageButtonHover: false,\r\n activeIndex: 0\r\n }\r\n },\r\n methods: {\r\n toggleDropdown () {\r\n this.isExpanded = !this.isExpanded\r\n },\r\n collapseDropdown () {\r\n this.isExpanded = false\r\n },\r\n engageWithCarousel () {\r\n this.initExplorer = true\r\n },\r\n mouseOverEvent () {\r\n this.engageButtonHover = true\r\n },\r\n mouseLeaveEvent () {\r\n this.engageButtonHover = false\r\n },\r\n moveToPrevious () {\r\n (this.activeIndex === 0)\r\n ? this.activeIndex = this.slides.length - 1\r\n : --this.activeIndex\r\n },\r\n moveToNext () {\r\n (this.activeIndex === this.slides.length - 1)\r\n ? this.activeIndex = 0\r\n : ++this.activeIndex\r\n }\r\n }\r\n})\r\n","import Vue from 'vue'\r\nimport { TimelineLite } from 'gsap'\r\n\r\nVue.component('LawyerStories', {\r\n props: ['stories'],\r\n data: function () {\r\n return {\r\n initExplorer: false,\r\n engageButtonHover: false,\r\n activeIndex: 0,\r\n currentStory: {},\r\n isAnimating: false,\r\n timeline: undefined\r\n }\r\n },\r\n mounted () {\r\n this.updateCurrentStory()\r\n this.setupTimelineAnimation()\r\n },\r\n watch: {\r\n activeIndex (newVal, oldVal) {\r\n if (newVal !== undefined) this.startAnimationProcess()\r\n }\r\n },\r\n computed: {\r\n storiesLength () {\r\n return this.stories.length - 1\r\n },\r\n storiesClientLength () {\r\n return this.stories.length\r\n },\r\n currentSlideCount () {\r\n return this.activeIndex + 1\r\n }\r\n },\r\n methods: {\r\n updateCurrentStory () {\r\n this.currentStory = this.stories[this.activeIndex]\r\n },\r\n toggleDropdown () {\r\n this.isExpanded = !this.isExpanded\r\n },\r\n collapseDropdown () {\r\n this.isExpanded = false\r\n },\r\n engageWithCarousel () {\r\n this.initExplorer = true\r\n },\r\n mouseOverEvent () {\r\n this.engageButtonHover = true\r\n },\r\n mouseLeaveEvent () {\r\n this.engageButtonHover = false\r\n },\r\n movePreviousStory () {\r\n if (this.isAnimating) return\r\n\r\n (this.activeIndex === 0)\r\n ? this.activeIndex = this.storiesLength\r\n : --this.activeIndex\r\n },\r\n moveNextStory () {\r\n if (this.isAnimating) return\r\n\r\n (this.activeIndex === this.storiesLength)\r\n ? this.activeIndex = 0\r\n : ++this.activeIndex\r\n },\r\n setupTimelineAnimation () {\r\n let { heading, question, answer } = this.$refs\r\n\r\n this.timeline = new TimelineLite()\r\n\r\n this.timeline.staggerFromTo([heading, question, answer], 0.5,\r\n { opacity: 1, x: 0 },\r\n { opacity: 0, x: 10, ease: 'Power1.easeOut' },\r\n 0.15).pause()\r\n .eventCallback('onComplete', this.completeAnimation)\r\n .eventCallback('onReverseComplete', this.reverseCompleteAnimation)\r\n },\r\n startAnimationProcess () {\r\n this.isAnimating = true\r\n\r\n this.timeline.play()\r\n },\r\n completeAnimation () {\r\n this.updateCurrentStory()\r\n\r\n this.$nextTick(() => { this.timeline.reverse() })\r\n },\r\n reverseCompleteAnimation () {\r\n this.isAnimating = false\r\n }\r\n }\r\n})\r\n","import Vue from 'vue'\r\nimport axios from 'axios'\r\n\r\n\r\nVue.component('related-entities', {\r\n props: {\r\n //how many to take each time\r\n 'take': {\r\n type: Number,\r\n },\r\n //how many are on the page pre-ajax\r\n 'initialTake': {\r\n type: Number\r\n },\r\n //total results so we know when to show load more\r\n 'total': {\r\n type: Number\r\n },\r\n 'endpoint': {\r\n type: String\r\n // default: '/api/sitecore/NewsInsightsApi/RelatedInsights'\r\n },\r\n //related ID for the search query\r\n 'entity': {\r\n type: String\r\n }\r\n\r\n },\r\n data: function () {\r\n return {\r\n entityResults: [],\r\n skip: 0,\r\n }\r\n },\r\n mounted () {\r\n this.skip = this.initialTake;\r\n },\r\n \r\n computed: {\r\n hasMore () {\r\n return (this.skip < this.total)\r\n },\r\n\r\n apiUrl () {\r\n return [\r\n window.location.origin,\r\n this.endpoint,\r\n '?relatedID=',\r\n this.entity,\r\n '&skip=',\r\n this.skip,\r\n '&take=',\r\n this.take,\r\n ].join('')\r\n }\r\n },\r\n\r\n methods: {\r\n loadMore () {\r\n axios.post(this.apiUrl)\r\n .then(this.onSearchSuccess)\r\n .catch(this.onSearchError)\r\n },\r\n\r\n onSearchSuccess(response) {\r\n this.entityResults = this.entityResults.concat(response.data.Results)\r\n \r\n this.skip += this.take;\r\n },\r\n\r\n onSearchError() {\r\n //TODO: display friendly error?\r\n console.error('search error')\r\n },\r\n }\r\n})\r\n","import Vue from 'vue'\r\n\r\n//fake load more \r\n\r\nVue.component('ShowcaseInsights', {\r\n props: {\r\n //use this to track\r\n insightCards: {\r\n type: Array,\r\n default: () => []\r\n },\r\n //OR just a total number\r\n totalCount: {\r\n type: Number\r\n }\r\n },\r\n data: function () {\r\n return {\r\n innerCount: 5,\r\n }\r\n },\r\n methods: {\r\n shouldShow(index) {\r\n return index < this.innerCount\r\n },\r\n showMore() {\r\n this.innerCount += 6;\r\n }\r\n },\r\n computed: {\r\n hasMore () {\r\n if(this.insightCards.length)\r\n return this.innerCount < this.insightCards.length\r\n else\r\n return this.innerCount < this.totalCount\r\n },\r\n },\r\n\r\n //it seems to reset fine on its own without needing to watch when insightCards changes and reset the count \r\n // watch: {\r\n // insightCards(idk) {\r\n // console.log(idk);\r\n // }\r\n // }\r\n})\r\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar MicroModal = function () {\n\n var FOCUSABLE_ELEMENTS = ['a[href]', 'area[href]', 'input:not([disabled]):not([type=\"hidden\"]):not([aria-hidden])', 'select:not([disabled]):not([aria-hidden])', 'textarea:not([disabled]):not([aria-hidden])', 'button:not([disabled]):not([aria-hidden])', 'iframe', 'object', 'embed', '[contenteditable]', '[tabindex]:not([tabindex^=\"-\"])'];\n\n var Modal = /*#__PURE__*/function () {\n function Modal(_ref) {\n var targetModal = _ref.targetModal,\n _ref$triggers = _ref.triggers,\n triggers = _ref$triggers === void 0 ? [] : _ref$triggers,\n _ref$onShow = _ref.onShow,\n onShow = _ref$onShow === void 0 ? function () {} : _ref$onShow,\n _ref$onClose = _ref.onClose,\n onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose,\n _ref$openTrigger = _ref.openTrigger,\n openTrigger = _ref$openTrigger === void 0 ? 'data-micromodal-trigger' : _ref$openTrigger,\n _ref$closeTrigger = _ref.closeTrigger,\n closeTrigger = _ref$closeTrigger === void 0 ? 'data-micromodal-close' : _ref$closeTrigger,\n _ref$openClass = _ref.openClass,\n openClass = _ref$openClass === void 0 ? 'is-open' : _ref$openClass,\n _ref$disableScroll = _ref.disableScroll,\n disableScroll = _ref$disableScroll === void 0 ? false : _ref$disableScroll,\n _ref$disableFocus = _ref.disableFocus,\n disableFocus = _ref$disableFocus === void 0 ? false : _ref$disableFocus,\n _ref$awaitCloseAnimat = _ref.awaitCloseAnimation,\n awaitCloseAnimation = _ref$awaitCloseAnimat === void 0 ? false : _ref$awaitCloseAnimat,\n _ref$awaitOpenAnimati = _ref.awaitOpenAnimation,\n awaitOpenAnimation = _ref$awaitOpenAnimati === void 0 ? false : _ref$awaitOpenAnimati,\n _ref$debugMode = _ref.debugMode,\n debugMode = _ref$debugMode === void 0 ? false : _ref$debugMode;\n\n _classCallCheck(this, Modal);\n\n // Save a reference of the modal\n this.modal = document.getElementById(targetModal); // Save a reference to the passed config\n\n this.config = {\n debugMode: debugMode,\n disableScroll: disableScroll,\n openTrigger: openTrigger,\n closeTrigger: closeTrigger,\n openClass: openClass,\n onShow: onShow,\n onClose: onClose,\n awaitCloseAnimation: awaitCloseAnimation,\n awaitOpenAnimation: awaitOpenAnimation,\n disableFocus: disableFocus\n }; // Register click events only if pre binding eventListeners\n\n if (triggers.length > 0) this.registerTriggers.apply(this, _toConsumableArray(triggers)); // pre bind functions for event listeners\n\n this.onClick = this.onClick.bind(this);\n this.onKeydown = this.onKeydown.bind(this);\n }\n /**\n * Loops through all openTriggers and binds click event\n * @param {array} triggers [Array of node elements]\n * @return {void}\n */\n\n\n _createClass(Modal, [{\n key: \"registerTriggers\",\n value: function registerTriggers() {\n var _this = this;\n\n for (var _len = arguments.length, triggers = new Array(_len), _key = 0; _key < _len; _key++) {\n triggers[_key] = arguments[_key];\n }\n\n triggers.filter(Boolean).forEach(function (trigger) {\n trigger.addEventListener('click', function (event) {\n return _this.showModal(event);\n });\n });\n }\n }, {\n key: \"showModal\",\n value: function showModal() {\n var _this2 = this;\n\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n this.activeElement = document.activeElement;\n this.modal.setAttribute('aria-hidden', 'false');\n this.modal.classList.add(this.config.openClass);\n this.scrollBehaviour('disable');\n this.addEventListeners();\n\n if (this.config.awaitOpenAnimation) {\n var handler = function handler() {\n _this2.modal.removeEventListener('animationend', handler, false);\n\n _this2.setFocusToFirstNode();\n };\n\n this.modal.addEventListener('animationend', handler, false);\n } else {\n this.setFocusToFirstNode();\n }\n\n this.config.onShow(this.modal, this.activeElement, event);\n }\n }, {\n key: \"closeModal\",\n value: function closeModal() {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var modal = this.modal;\n this.modal.setAttribute('aria-hidden', 'true');\n this.removeEventListeners();\n this.scrollBehaviour('enable');\n\n if (this.activeElement && this.activeElement.focus) {\n this.activeElement.focus();\n }\n\n this.config.onClose(this.modal, this.activeElement, event);\n\n if (this.config.awaitCloseAnimation) {\n var openClass = this.config.openClass; // <- old school ftw\n\n this.modal.addEventListener('animationend', function handler() {\n modal.classList.remove(openClass);\n modal.removeEventListener('animationend', handler, false);\n }, false);\n } else {\n modal.classList.remove(this.config.openClass);\n }\n }\n }, {\n key: \"closeModalById\",\n value: function closeModalById(targetModal) {\n this.modal = document.getElementById(targetModal);\n if (this.modal) this.closeModal();\n }\n }, {\n key: \"scrollBehaviour\",\n value: function scrollBehaviour(toggle) {\n if (!this.config.disableScroll) return;\n var body = document.querySelector('body');\n\n switch (toggle) {\n case 'enable':\n Object.assign(body.style, {\n overflow: ''\n });\n break;\n\n case 'disable':\n Object.assign(body.style, {\n overflow: 'hidden'\n });\n break;\n }\n }\n }, {\n key: \"addEventListeners\",\n value: function addEventListeners() {\n this.modal.addEventListener('touchstart', this.onClick);\n this.modal.addEventListener('click', this.onClick);\n document.addEventListener('keydown', this.onKeydown);\n }\n }, {\n key: \"removeEventListeners\",\n value: function removeEventListeners() {\n this.modal.removeEventListener('touchstart', this.onClick);\n this.modal.removeEventListener('click', this.onClick);\n document.removeEventListener('keydown', this.onKeydown);\n }\n }, {\n key: \"onClick\",\n value: function onClick(event) {\n if (event.target.hasAttribute(this.config.closeTrigger)) {\n this.closeModal(event);\n }\n }\n }, {\n key: \"onKeydown\",\n value: function onKeydown(event) {\n if (event.keyCode === 27) this.closeModal(event); // esc\n\n if (event.keyCode === 9) this.retainFocus(event); // tab\n }\n }, {\n key: \"getFocusableNodes\",\n value: function getFocusableNodes() {\n var nodes = this.modal.querySelectorAll(FOCUSABLE_ELEMENTS);\n return Array.apply(void 0, _toConsumableArray(nodes));\n }\n /**\n * Tries to set focus on a node which is not a close trigger\n * if no other nodes exist then focuses on first close trigger\n */\n\n }, {\n key: \"setFocusToFirstNode\",\n value: function setFocusToFirstNode() {\n var _this3 = this;\n\n if (this.config.disableFocus) return;\n var focusableNodes = this.getFocusableNodes(); // no focusable nodes\n\n if (focusableNodes.length === 0) return; // remove nodes on whose click, the modal closes\n // could not think of a better name :(\n\n var nodesWhichAreNotCloseTargets = focusableNodes.filter(function (node) {\n return !node.hasAttribute(_this3.config.closeTrigger);\n });\n if (nodesWhichAreNotCloseTargets.length > 0) nodesWhichAreNotCloseTargets[0].focus();\n if (nodesWhichAreNotCloseTargets.length === 0) focusableNodes[0].focus();\n }\n }, {\n key: \"retainFocus\",\n value: function retainFocus(event) {\n var focusableNodes = this.getFocusableNodes(); // no focusable nodes\n\n if (focusableNodes.length === 0) return;\n /**\n * Filters nodes which are hidden to prevent\n * focus leak outside modal\n */\n\n focusableNodes = focusableNodes.filter(function (node) {\n return node.offsetParent !== null;\n }); // if disableFocus is true\n\n if (!this.modal.contains(document.activeElement)) {\n focusableNodes[0].focus();\n } else {\n var focusedItemIndex = focusableNodes.indexOf(document.activeElement);\n\n if (event.shiftKey && focusedItemIndex === 0) {\n focusableNodes[focusableNodes.length - 1].focus();\n event.preventDefault();\n }\n\n if (!event.shiftKey && focusableNodes.length > 0 && focusedItemIndex === focusableNodes.length - 1) {\n focusableNodes[0].focus();\n event.preventDefault();\n }\n }\n }\n }]);\n\n return Modal;\n }();\n /**\n * Modal prototype ends.\n * Here on code is responsible for detecting and\n * auto binding event handlers on modal triggers\n */\n // Keep a reference to the opened modal\n\n\n var activeModal = null;\n /**\n * Generates an associative array of modals and it's\n * respective triggers\n * @param {array} triggers An array of all triggers\n * @param {string} triggerAttr The data-attribute which triggers the module\n * @return {array}\n */\n\n var generateTriggerMap = function generateTriggerMap(triggers, triggerAttr) {\n var triggerMap = [];\n triggers.forEach(function (trigger) {\n var targetModal = trigger.attributes[triggerAttr].value;\n if (triggerMap[targetModal] === undefined) triggerMap[targetModal] = [];\n triggerMap[targetModal].push(trigger);\n });\n return triggerMap;\n };\n /**\n * Validates whether a modal of the given id exists\n * in the DOM\n * @param {number} id The id of the modal\n * @return {boolean}\n */\n\n\n var validateModalPresence = function validateModalPresence(id) {\n if (!document.getElementById(id)) {\n console.warn(\"MicroModal: \\u2757Seems like you have missed %c'\".concat(id, \"'\"), 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', 'ID somewhere in your code. Refer example below to resolve it.');\n console.warn(\"%cExample:\", 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', \"
\"));\n return false;\n }\n };\n /**\n * Validates if there are modal triggers present\n * in the DOM\n * @param {array} triggers An array of data-triggers\n * @return {boolean}\n */\n\n\n var validateTriggerPresence = function validateTriggerPresence(triggers) {\n if (triggers.length <= 0) {\n console.warn(\"MicroModal: \\u2757Please specify at least one %c'micromodal-trigger'\", 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', 'data attribute.');\n console.warn(\"%cExample:\", 'background-color: #f8f9fa;color: #50596c;font-weight: bold;', \"\");\n return false;\n }\n };\n /**\n * Checks if triggers and their corresponding modals\n * are present in the DOM\n * @param {array} triggers Array of DOM nodes which have data-triggers\n * @param {array} triggerMap Associative array of modals and their triggers\n * @return {boolean}\n */\n\n\n var validateArgs = function validateArgs(triggers, triggerMap) {\n validateTriggerPresence(triggers);\n if (!triggerMap) return true;\n\n for (var id in triggerMap) {\n validateModalPresence(id);\n }\n\n return true;\n };\n /**\n * Binds click handlers to all modal triggers\n * @param {object} config [description]\n * @return void\n */\n\n\n var init = function init(config) {\n // Create an config object with default openTrigger\n var options = Object.assign({}, {\n openTrigger: 'data-micromodal-trigger'\n }, config); // Collects all the nodes with the trigger\n\n var triggers = _toConsumableArray(document.querySelectorAll(\"[\".concat(options.openTrigger, \"]\"))); // Makes a mappings of modals with their trigger nodes\n\n\n var triggerMap = generateTriggerMap(triggers, options.openTrigger); // Checks if modals and triggers exist in dom\n\n if (options.debugMode === true && validateArgs(triggers, triggerMap) === false) return; // For every target modal creates a new instance\n\n for (var key in triggerMap) {\n var value = triggerMap[key];\n options.targetModal = key;\n options.triggers = _toConsumableArray(value);\n activeModal = new Modal(options); // eslint-disable-line no-new\n }\n };\n /**\n * Shows a particular modal\n * @param {string} targetModal [The id of the modal to display]\n * @param {object} config [The configuration object to pass]\n * @return {void}\n */\n\n\n var show = function show(targetModal, config) {\n var options = config || {};\n options.targetModal = targetModal; // Checks if modals and triggers exist in dom\n\n if (options.debugMode === true && validateModalPresence(targetModal) === false) return; // clear events in case previous modal wasn't close\n\n if (activeModal) activeModal.removeEventListeners(); // stores reference to active modal\n\n activeModal = new Modal(options); // eslint-disable-line no-new\n\n activeModal.showModal();\n };\n /**\n * Closes the active modal\n * @param {string} targetModal [The id of the modal to close]\n * @return {void}\n */\n\n\n var close = function close(targetModal) {\n targetModal ? activeModal.closeModalById(targetModal) : activeModal.closeModal();\n };\n\n return {\n init: init,\n show: show,\n close: close\n };\n}();\nwindow.MicroModal = MicroModal;\n\nexport default MicroModal;\n","import Vue from 'vue'\r\n//this requires the collapsible sections mixin to be included in any vue apps (pages) that include this component\r\n//changed from mixin to component to support multiple tabby areas on one page\r\n\r\nvar config = {\r\n animationTiming: 350 // should be in line with animation.scss file\r\n}\r\n\r\nVue.component('TabbyArea', {\r\n // mixins: [collapsibleSections],\r\n props: ['initialActiveTabLabel'],\r\n data: function () {\r\n return {\r\n isMobile: false,\r\n showMobileTabNav: false,\r\n activeTabIndex: 0,\r\n tabProcessingAnimation: false,\r\n tabFrameHeight: '',\r\n activeTabLabel: '',\r\n //when a read more is collapsed, scroll up to this element, and not the beginning of the read more \r\n //in order to see the tabs\r\n readMoreScrollOverride: '',\r\n }\r\n },\r\n \r\n created () {\r\n this.activeTabLabel = this.initialActiveTabLabel\r\n },\r\n\r\n watch: {\r\n activeTabIndex (newValue, oldValue) {\r\n var tabFrameChildren = this.$refs.tabframe.children\r\n\r\n this.tabProcessingAnimation = false\r\n\r\n window.requestAnimationFrame(() => {\r\n Vue.nextTick(() => {\r\n this.tabFrameHeight = tabFrameChildren[newValue].clientHeight + 'px'\r\n })\r\n })\r\n\r\n setTimeout(() => {\r\n this.tabFrameHeight = 'auto'\r\n }, config.animationTiming)\r\n }\r\n },\r\n mounted () {\r\n this.readMoreScrollOverride = 'tabs-' + this._uid;\r\n },\r\n methods: {\r\n isActiveTab (givenIndex) {\r\n return this.activeTabIndex === givenIndex\r\n },\r\n setActiveTab (newActiveIndex, buttonLabel) {\r\n console.log(this.$refs.tabframe);\r\n if (this.tabProcessingAnimation) { return }\r\n if (this.isActiveTab(newActiveIndex)) { return }\r\n\r\n (isNaN(newActiveIndex))\r\n ? console.log('please supply an integer')\r\n : this.startTabTransition(newActiveIndex, buttonLabel)\r\n\r\n this.showMobileTabNav = false\r\n },\r\n\r\n startTabTransition (newActiveIndex, buttonLabel) {\r\n\r\n var tabFrameChildren = this.$refs.tabframe.children\r\n\r\n this.tabProcessingAnimation = true\r\n\r\n window.requestAnimationFrame(() => {\r\n Vue.nextTick(() => {\r\n this.tabFrameHeight = tabFrameChildren[this.activeTabIndex].clientHeight + 'px'\r\n })\r\n })\r\n\r\n var calcHeight = this.$refs.tabframenav.querySelector('.tabby-area__nav-toggle').offsetHeight + this.$refs.tabframenav.querySelector('.tabby-area__nav-options').offsetHeight + 16 // offsetting margins\r\n var contentHeight = tabFrameChildren[newActiveIndex].querySelector('.read-more').offsetHeight + 56 // offsetting margins/line height of nav dropdown\r\n var finalHeight = contentHeight > calcHeight ? 'auto' : calcHeight + 'px'\r\n\r\n setTimeout(() => {\r\n Vue.nextTick(() => {\r\n this.activeTabIndex = newActiveIndex\r\n this.activeTabLabel = buttonLabel\r\n })\r\n }, config.animationTiming)\r\n\r\n document.getElementById('relatedExperience').style.height = finalHeight;\r\n },\r\n toggleTabDropdown () {\r\n this.showMobileTabNav = !this.showMobileTabNav\r\n },\r\n }\r\n})\r\n","import Vue from 'vue'\r\n\r\nVue.component('TestimonialResult', {\r\n template: '#testimonial-result',\r\n props: ['testimonial']\r\n})\r\n\r\n","import Vue from 'vue'\r\nimport MicroModal from 'micromodal'\r\nimport vuexStore from './../store/vuex-store'\r\nimport { mapGetters, mapMutations } from 'vuex'\r\n\r\nconst modalState = new CustomEvent('toggleModal');\r\n\r\nVue.component('video-card', {\r\n props: ['anchor', 'showing', 'cardData', 'modalId'],\r\n store: vuexStore,\r\n data: function () {\r\n return {\r\n shareOpen: false,\r\n copyUrl: undefined,\r\n accordionOpen: false,\r\n videoId: null,\r\n }\r\n },\r\n computed: {\r\n ...mapGetters({\r\n isModalOpen: 'isModalOpen'\r\n })\r\n }, \r\n watch: {\r\n shareOpen: function() {\r\n if (this.shareOpen) {\r\n document.addEventListener('click', this.handleShare);\r\n } else {\r\n document.removeEventListener('click', this.handleShare);\r\n }\r\n }\r\n }, \r\n mounted () {\r\n this.videoId = this.$el.querySelector('.video-card__iframe-container iframe') ? this.$el.querySelector('.video-card__iframe-container iframe').src : null;\r\n this.getCopyUrl();\r\n },\r\n methods: {\r\n ...mapMutations({\r\n toggleModalState: 'toggleModalState' \r\n }),\r\n toggleShare() {\r\n this.shareOpen = !this.shareOpen;\r\n },\r\n handleShare(e) {\r\n let shareBox = this.$el.querySelector('.video-card__share-content');\r\n let isInsideClick = shareBox.contains(e.target);\r\n this.shareOpen = isInsideClick;\r\n }, \r\n copy() {\r\n let text = this.$refs.copyInput;\r\n text.select();\r\n document.execCommand(\"copy\");\r\n },\r\n getCopyUrl() {\r\n this.copyUrl = `${window.location.hostname}${window.location.pathname}#${this.anchor}`;\r\n },\r\n toggleAccordion() {\r\n this.accordionOpen = !this.accordionOpen;\r\n },\r\n toggleModal() {\r\n // must pass config when using show method\r\n MicroModal.show(this.modalId, {\r\n onShow: modal => {\r\n modal.dataset.isOpen = true; \r\n modal.dispatchEvent(modalState); \r\n this.handleIframe('open'); \r\n this.toggleModalState('open');\r\n }, \r\n onClose: modal => {\r\n modal.dataset.isOpen = false;\r\n modal.dispatchEvent(modalState);\r\n this.handleIframe('close');\r\n this.toggleModalState('close');\r\n }, \r\n openClass: 'is-open', \r\n disableScroll: true, \r\n disableFocus: true, \r\n awaitOpenAnimation: true, \r\n awaitCloseAnimation: true,\r\n });\r\n },\r\n handleIframe(state) {\r\n //sets the iframe url only when video modal is open\r\n let iframe = document.getElementById(this.modalId).querySelector('.modal__content iframe');\r\n if (state == 'open') {\r\n iframe.src = this.videoId;\r\n } else {\r\n iframe.src = \"\";\r\n }\r\n }\r\n\r\n }\r\n})\r\n","import Vue from 'vue'\r\nimport MicroModal from 'micromodal'\r\n\r\nconst modalState = new CustomEvent('toggleModal');\r\n\r\nVue.component('video-modal', {\r\n props: ['id'],\r\n data: function () {\r\n return {\r\n isOpen: false\r\n }\r\n },\r\n template: `\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n `,\r\n computed: {\r\n }, \r\n mounted () {\r\n this.$nextTick(() => {\r\n this.init();\r\n })\r\n },\r\n methods: {\r\n init() {\r\n let self = this;\r\n this.$el.addEventListener('toggleModal', (e) => {\r\n if (e.target.id = this.id) {\r\n this.isOpen = e.target.dataset.isOpen == \"true\" ? true : false;\r\n }\r\n });\r\n },\r\n close() {\r\n MicroModal.close(this.id, {\r\n onClose: modal => this.isOpen = false, \r\n });\r\n }\r\n }\r\n})\r\n","import Vue from 'vue'\r\n\r\nVue.component('video-grid', {\r\n props: ['count', 'videoGridContent', 'sectionLabel', 'showingmobile', 'showingdesktop'],\r\n data: function () {\r\n return {\r\n showing: 4, //number of shown cards,\r\n isMobile: null,\r\n showingMobile: parseInt(this.showingmobile),\r\n showingDesktop: parseInt(this.showingdesktop)\r\n }\r\n },\r\n watch: {\r\n isMobile: function() {\r\n this.showing = this.isMobile ? this.showingMobile : this.showingDesktop; //reset shown cards on mobile state change\r\n }\r\n }, \r\n mounted () {\r\n this.checkIsMobile();\r\n window.addEventListener('resize', () => {\r\n this.checkIsMobile();\r\n });\r\n },\r\n methods: {\r\n loadMore() {\r\n if (this.isMobile) {\r\n this.showing = this.showing + this.showingMobile;\r\n } else {\r\n this.showing = this.showing + this.showingDesktop;\r\n }\r\n },\r\n checkIsMobile() {\r\n let mql = window.matchMedia('(max-width: 768px)');\r\n this.isMobile = mql.matches;\r\n }\r\n }\r\n})\r\n","import Vue from 'vue'\r\n\r\nlet rAFTicker = false\r\nlet callbacks = []\r\n\r\n// Request animation Frame\r\nfunction windowScrollCallbacks () {\r\n let pageOffset = window.pageYOffset\r\n\r\n callbacks.forEach(function (callback) {\r\n callback(pageOffset)\r\n })\r\n\r\n rAFTicker = false;\r\n}\r\n\r\nfunction requestTicker () {\r\n if (!rAFTicker) {\r\n rAFTicker = true;\r\n\r\n window.requestAnimationFrame(windowScrollCallbacks)\r\n }\r\n}\r\n\r\nfunction attachScrollEvent () {\r\n // only listen for scroll events\r\n window.addEventListener('scroll', requestTicker, false)\r\n}\r\n\r\nfunction removeScrollEvent () {\r\n // remove ScrollEvent\r\n window.removeEventListener('scroll', requestTicker, false)\r\n}\r\n\r\nfunction addScrollCallback (callback) {\r\n if (!callbacks.length) {\r\n attachScrollEvent()\r\n }\r\n\r\n if (typeof callback === 'function') {\r\n callbacks.push(callback)\r\n } else {\r\n console.log(callback,'was not a function')\r\n }\r\n}\r\n// End Request Animation Service\r\n\r\nVue.directive('scroll', {\r\n bind: (el, binding) => {\r\n const error = () => console.log('Error', value)\r\n\r\n addScrollCallback(binding.value)\r\n },\r\n unbind: (el) => {\r\n removeScrollEvent()\r\n }\r\n})\r\n","\r\nimport Vue from 'vue';\r\n\r\nVue.directive('scrollwatch', {\r\n data: {\r\n sections: [],\r\n states: {\r\n aboveScreen: 'aboveScreen',\r\n aboveMiddle: 'aboveMiddle',\r\n belowMiddle: 'belowMiddle',\r\n belowScreen: 'belowScreen'\r\n }\r\n },\r\n inserted (element, { name, value, arg }) {\r\n const self = Vue.directive(name)\r\n\r\n if (self.data.sections.length === 0) {\r\n self.addScrollListeners()\r\n }\r\n\r\n self.data.sections.push({\r\n element,\r\n onStateChange: value,\r\n state: undefined,\r\n moduleName: arg\r\n })\r\n\r\n self.onScroll()\r\n },\r\n unbind (element, { name }) {\r\n const self = Vue.directive(name)\r\n \r\n self.removeFromSections(element)\r\n \r\n if (self.sections.length === 0) {\r\n self.removeScrollListeners()\r\n }\r\n },\r\n // TODO: Passive scroll listeners\r\n addScrollListeners () {\r\n window.addEventListener(\r\n 'scroll',\r\n this.onScroll,\r\n this.supportsPassiveListening() ? { passive: true } : false\r\n )\r\n },\r\n removeScrollListeners () {\r\n window.removeEventListener(\r\n 'scroll',\r\n this.onScroll\r\n )\r\n },\r\n supportsPassiveListening () {\r\n try {\r\n window.addEventListener(\r\n 'test',\r\n null,\r\n Object.defineProperty({}, 'passive', { get: () => true })\r\n )\r\n return true\r\n } catch (ignore) {\r\n return false\r\n }\r\n },\r\n onScroll () {\r\n var self = Vue.directive('scrollwatch')\r\n\r\n self.data.sections.forEach(section => {\r\n const oldState = section.state\r\n section.state = self.getStateOf(section.element)\r\n\r\n if (section.state !== oldState ) {\r\n section.onStateChange({ \r\n old: oldState, \r\n new: section.state,\r\n moduleName: section.moduleName\r\n })\r\n }\r\n })\r\n },\r\n removeFromSections (element) {\r\n this.data.sections = this.data.sections.filter(this.notElement(element))\r\n },\r\n notElement: (element) => (section) => {\r\n return section.element !== element\r\n },\r\n getStateOf (element) {\r\n const elementY = this.getElementY(element)\r\n const windowTop = this.getWindowTop()\r\n const windowMiddle = this.getWindowMiddle()\r\n const windowBottom = this.getWindowBottom()\r\n \r\n if (elementY > windowBottom) {\r\n return this.data.states.belowScreen\r\n } else if (elementY > windowMiddle) {\r\n return this.data.states.belowMiddle\r\n } else if (elementY > windowTop) {\r\n return this.data.states.aboveMiddle\r\n } else {\r\n return this.data.states.aboveScreen\r\n }\r\n },\r\n getElementY (element) {\r\n return element.getBoundingClientRect().top + this.getWindowTop()\r\n },\r\n getWindowTop () {\r\n return window.pageYOffset\r\n },\r\n getWindowMiddle () {\r\n return this.getWindowTop() + (this.getWindowHeight() / 2)\r\n },\r\n getWindowBottom () {\r\n return this.getWindowTop() + this.getWindowHeight()\r\n },\r\n getWindowHeight () {\r\n return window.innerHeight\r\n }\r\n})","import Vue from 'vue'\r\n\r\n//do not animate on mobile or tablet\r\nvar minScreenWidth = 769;\r\nvar paperScript\r\nvar callbacks = []\r\n\r\n// Utility functions to create shapes\r\nfunction createPathsArray (pathsArray, lineCount, pathToClone) {\r\n for (let j = 0; j < lineCount - 1; j++) {\r\n pathsArray.push(pathToClone.clone())\r\n }\r\n\r\n return pathsArray\r\n}\r\n\r\nfunction populateConfig (configArray, lineCount, lineHeight) {\r\n for (let w = 0; w < lineCount; w++) {\r\n configArray.push(\r\n {\r\n speed: (Math.random().toFixed(1) * 1) + .2,\r\n height: (Math.random().toFixed(1) * 3 + 1) * lineHeight\r\n }\r\n )\r\n }\r\n\r\n return configArray\r\n}\r\n\r\nvar loadPaper = function (callback) {\r\n if (paperScript === undefined) {\r\n paperScript = document.createElement('script')\r\n paperScript.src = '//cdnjs.cloudflare.com/ajax/libs/paper.js/0.11.5/paper-full.min.js'\r\n paperScript.async = false;\r\n paperScript.onload = function() {\r\n paper.install(window);\r\n callbacks.forEach(cb => cb());\r\n }\r\n callbacks.push(callback)\r\n document.body.appendChild(paperScript)\r\n } else {\r\n if (window.paper === undefined) {\r\n callbacks.push(callback)\r\n } else {\r\n callback()\r\n }\r\n }\r\n}\r\n\r\nVue.directive('wave-card', {\r\n inserted: (el, binding) => {\r\n let {value} = binding\r\n\r\n // The amount of segment points per line we want to create :\r\n let amount = 12\r\n // The maximum height of the wave:\r\n let height = value.height || 20\r\n // Number of lines to create\r\n let lineCount = value.lineCount || 30\r\n\r\n let pathsArray = []\r\n let configArray = []\r\n\r\n loadPaper(function() {\r\n // Create an empty project and a view for the canvas:\r\n paper.setup(el)\r\n\r\n // Create First path and style it:\r\n let path = new paper.Path({\r\n strokeColor: value.color || 'rgba(255,255,255, 0.6)',\r\n strokeWidth: 1,\r\n strokeCap: 'square'\r\n })\r\n\r\n pathsArray.push(path)\r\n\r\n pathsArray = createPathsArray(pathsArray, lineCount, path)\r\n configArray = populateConfig(configArray, lineCount, height)\r\n\r\n pathsArray.map(({ index }) => {\r\n addSegments(index)\r\n })\r\n\r\n function addSegmentPoint (idx, pathToUpdate) {\r\n let newPoint = new paper.Point(idx / amount, 1)\r\n let { width, height } = paper.view.size\r\n pathToUpdate.add(newPoint.x * width, newPoint.y * height)\r\n }\r\n \r\n // Add segment points to the path spread out\r\n // over the width of the view:\r\n function addSegments (indexForPath) {\r\n for (var segPoint = 0; segPoint <= amount; segPoint++) {\r\n addSegmentPoint(segPoint, pathsArray[indexForPath])\r\n }\r\n }\r\n \r\n function movePathSegments ({ time }, pathIndex) {\r\n let offset = height * (pathIndex + 1)\r\n for (var i = 0; i <= amount; i++) {\r\n let segment = pathsArray[pathIndex].segments[i]\r\n\r\n // A cylic value between -1 and 1\r\n let sinus = Math.sin((time - timeOffset) * configArray[pathIndex].speed + i)\r\n\r\n // Change the y position of the segment point:\r\n segment.point.y = sinus * configArray[pathIndex].height + offset\r\n }\r\n }\r\n\r\n //need to update the X coordinate on all the points (that are inside segments inside paths) after a resize, \r\n //because they were calculated from the canvas width, which changes\r\n function updateAfterResize(view) {\r\n for (let i = 0; i < pathsArray.length; i++) {\r\n let path = pathsArray[i];\r\n\r\n for(let j = 0; j < path.segments.length; j++) {\r\n let segment = path.segments[j];\r\n segment.point.x = segment.index * view.size.width / amount;\r\n }\r\n }\r\n }\r\n\r\n let hoverElement = el.parentElement\r\n let view = paper.View._viewsById[el.id] // Get a reference to this specific View\r\n let timeOffset = 0\r\n let timeEnd\r\n\r\n // Setup default\r\n for (let i = 0; i < pathsArray.length; i++) {\r\n movePathSegments({ time: 0 }, i)\r\n }\r\n\r\n hoverElement.addEventListener(\"mouseenter\", function (e) {\r\n view._project.activate() // Animate on the correct Project (for this View)\r\n //console.log(\"start animating\", paper.view)\r\n if (window.innerWidth < minScreenWidth) {\r\n return // Disable animation at breakpoint\r\n }\r\n timeOffset += (Date.now() - (timeEnd || Date.now())) / 1000\r\n paper.view.onFrame = function(event) {\r\n for (let i = 0; i < pathsArray.length; i++) {\r\n movePathSegments(event, i)\r\n }\r\n }\r\n });\r\n\r\n paper.view.onResize = function(event) {\r\n updateAfterResize(view);\r\n }\r\n\r\n hoverElement.addEventListener(\"mouseleave\", function (e) {\r\n timeEnd = Date.now()\r\n //console.log(\"stop animating\", paper.view)\r\n paper.view.onFrame = undefined\r\n });\r\n })\r\n }\r\n})\r\n","//attempt to solve the initial state in HTML problem \r\n//https://github.com/vuejs/vue/issues/2597\r\n\r\n// copy your class in CSS (can't use the same class that is v-bound)\r\n// then this will remove it at the same time v-bind adds the other one \r\n// preventing the moment where the class is missing\r\n\r\nimport Vue from 'vue';\r\nVue.directive('RemoveInitialClass', (el, binding, vnode) => {\r\n\r\n if(el.classList.contains(binding.value)) {\r\n el.classList.remove(binding.value);\r\n }\r\n})","import Vue from 'vue'\r\n\r\nVue.directive('Expand', {\r\n inserted (el, { value }) {\r\n const config = normalize(value)\r\n el.style['overflow'] = 'hidden'\r\n handleDynamicHeight(el)\r\n setFullHeight(el, config)\r\n enableTransitions(el, config)\r\n },\r\n update (el, { value }) {\r\n const config = normalize(value)\r\n setFullHeight(el, config)\r\n }\r\n})\r\n\r\nconst normalize = (value) =>\r\n ( value &&\r\n typeof value.isExpanded === 'boolean' &&\r\n typeof value.duration === 'number'\r\n )\r\n ? value\r\n : { isExpanded: !!value, duration: 300 }\r\n\r\nconst setFullHeight = (el, config) => {\r\n if (config.isExpanded) {\r\n el.style['height'] = el.fullHeight\r\n setTimeout(_ => { el.style['height'] = '' }, config.duration + 10)\r\n } else {\r\n window.requestAnimationFrame(_ => {\r\n el.style['height'] = el.fullHeight\r\n setTimeout(_ => { el.style['height'] = 0 }, 0)\r\n })\r\n }\r\n}\r\n\r\nconst handleDynamicHeight = (el) => {\r\n const updateFullHeight = (el) => {\r\n const originalHeightStyle = el.style['height']\r\n el.style['height'] = ''\r\n el.fullHeight = el.offsetHeight + 'px'\r\n el.style['height'] = originalHeightStyle\r\n }\r\n\r\n updateFullHeight(el)\r\n window.addEventListener('resize', _ => updateFullHeight(el))\r\n}\r\n\r\nconst enableTransitions = (el, config) =>\r\n window.requestAnimationFrame(_ =>\r\n setTimeout(_ => {\r\n el.style['transition'] = `height ${config.duration}ms ease-in-out`\r\n }, 100)\r\n )","export default {\r\n data: function () {\r\n return {\r\n timeoutID: undefined\r\n }\r\n },\r\n mounted: function () {\r\n window.addEventListener('resize'\r\n , this.resizeThrottle\r\n , false)\r\n },\r\n methods: {\r\n windowResizeCallbackEvent () {\r\n console.log('size me')\r\n },\r\n resizeThrottle () {\r\n if (!this.timeoutID) {\r\n this.timeoutID = setTimeout(() => {\r\n this.timeoutID = undefined\r\n this.windowResizeCallbackEvent()\r\n }, 66)\r\n }\r\n }\r\n },\r\n beforeDestroy: function () {\r\n window.removeEventListener('resize'\r\n , this.resizeThrottle\r\n , false)\r\n }\r\n}\r\n","let setupJSON = (propName) =>\r\n (window.json && window.json.showcase && window.json.showcase[propName])\r\n ? window.json.showcase[propName]\r\n : undefined\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n // data and position\r\n slides: setupJSON('slides'),\r\n activeSlideIndex: 0,\r\n activeSlideContent: {},\r\n // State of component\r\n isAnimating: false,\r\n showcaseDetailViewExpanded: false,\r\n performanceGridTransitionIn: false,\r\n performanceGridTransitionOut: false,\r\n isShowcaseDisabled: false,\r\n isVerticalView: false,\r\n },\r\n getters: {\r\n activeSlideIndex: state => state.activeSlideIndex,\r\n activeSlideContent: state => state.activeSlideContent,\r\n isAnimating: state => state.isAnimating,\r\n slides: state => state.slides,\r\n showcaseDetailViewExpanded: state => state.showcaseDetailViewExpanded,\r\n performanceGridTransitionIn: state => state.performanceGridTransitionIn,\r\n performanceGridTransitionOut: state => state.performanceGridTransitionOut,\r\n isShowcaseDisabled: state => state.isShowcaseDisabled,\r\n isVerticalView: state => state.isVerticalView\r\n },\r\n mutations: {\r\n setActiveIndex (state, payload) {\r\n state.activeSlideIndex = payload.newIndex\r\n },\r\n setAnimationState (state, payload) {\r\n state.isAnimating = payload.update\r\n },\r\n setShowcaseDetailView (state, payload) {\r\n state.showcaseDetailViewExpanded = payload.update\r\n },\r\n setPerformanceGridTransitionIn (state, payload) {\r\n state.performanceGridTransitionIn = payload.update\r\n },\r\n setPerformanceGridTransitionOut (state, payload) {\r\n state.performanceGridTransitionOut = payload.update\r\n },\r\n setIsShowcaseDisabled (state, payload) {\r\n state.isShowcaseDisabled = payload.update\r\n },\r\n setShowcaseSlideActiveState (state, payload) {\r\n state.slides[payload.index].isActive = payload.update\r\n },\r\n setShowcaseDetailContent (state, payload) {\r\n state.activeSlideContent = state.slides[payload.index].detailContent\r\n },\r\n setShowcaseDetailContentForMarqueeStoryDetail (state, payload) {\r\n state.activeSlideContent = payload\r\n },\r\n setIsVerticalView (state, payload) {\r\n state.isVerticalView = payload.update\r\n }\r\n }\r\n}\r\n","import { polyfill } from 'es6-promise'\r\nimport Vue from 'vue'\r\nimport Vuex from 'vuex'\r\n\r\n// Import vuex modules\r\nimport showcase from './modules/showcase'\r\nimport careersLanding from './modules/careers-landing'\r\n\r\npolyfill() // initialize polyfill to fix IE bug\r\n\r\n// Install Vuex \r\nVue.use(Vuex)\r\n\r\nconst store = new Vuex.Store({\r\n state: {\r\n showMenu: false,\r\n siteSearch: {\r\n expanded: false\r\n },\r\n isModalOpen: false\r\n },\r\n getters: {\r\n showMenu: state => state.showMenu,\r\n showSiteSearch: state => state.siteSearch.expanded,\r\n isModalOpen: state => state.isModalOpen\r\n },\r\n mutations: {\r\n toggleModalState(state, payload) {\r\n state.isModalOpen = payload == \"open\" ? true : false;\r\n },\r\n toggleMenu (state) {\r\n if (state.showMenu) {\r\n state.showMenu = false\r\n } else {\r\n state.showMenu = true\r\n\r\n if (state.siteSearch.expanded) {\r\n state.siteSearch.expanded = false\r\n }\r\n }\r\n },\r\n toggleSiteSearch (state) {\r\n if (state.siteSearch.expanded) {\r\n state.siteSearch.expanded = false\r\n } else {\r\n state.siteSearch.expanded = true\r\n //focus on site search input\r\n document.getElementById('site-search-focus').focus();\r\n\r\n if (state.showMenu) {\r\n state.showMenu = false\r\n }\r\n }\r\n }\r\n },\r\n modules: {\r\n showcase,\r\n careersLanding\r\n }\r\n})\r\n\r\nexport default store\r\n","export default {\r\n namespaced: true,\r\n state: {\r\n showCareersBriefs: false\r\n },\r\n getters: {\r\n showCareersBriefs: state => state.showCareersBriefs\r\n },\r\n mutations: {\r\n toggleBriefsView (state, payload) {\r\n state.showCareersBriefs = !state.showCareersBriefs\r\n }\r\n }\r\n}\r\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.4+314e4831\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar TRY_CATCH_ERROR = { error: null };\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n TRY_CATCH_ERROR.error = error;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === TRY_CATCH_ERROR) {\n reject(promise, TRY_CATCH_ERROR.error);\n TRY_CATCH_ERROR.error = null;\n } else if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = void 0,\n failed = void 0;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = getThen(entry);\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n","/*!\n * VERSION: 1.9.0\n * DATE: 2018-02-15\n * UPDATES AND DOCS AT: http://greensock.com\n *\n * @license Copyright (c) 2008-2018, GreenSock. All rights reserved.\n * This work is subject to the terms at http://greensock.com/standard-license or for\n * Club GreenSock members, the software agreement that was issued with your membership.\n * \n * @author: Jack Doyle, jack@greensock.com\n **/\nvar _gsScope = (typeof(module) !== \"undefined\" && module.exports && typeof(global) !== \"undefined\") ? global : this || window; //helps ensure compatibility with AMD/RequireJS and CommonJS/Node\n(_gsScope._gsQueue || (_gsScope._gsQueue = [])).push( function() {\n\n\t\"use strict\";\n\n\tvar _doc = (_gsScope.document || {}).documentElement,\n\t\t_window = _gsScope,\n\t\t_max = function(element, axis) {\n\t\t\tvar dim = (axis === \"x\") ? \"Width\" : \"Height\",\n\t\t\t\tscroll = \"scroll\" + dim,\n\t\t\t\tclient = \"client\" + dim,\n\t\t\t\tbody = document.body;\n\t\t\treturn (element === _window || element === _doc || element === body) ? Math.max(_doc[scroll], body[scroll]) - (_window[\"inner\" + dim] || _doc[client] || body[client]) : element[scroll] - element[\"offset\" + dim];\n\t\t},\n\t\t_unwrapElement = function(value) {\n\t\t\tif (typeof(value) === \"string\") {\n\t\t\t\tvalue = TweenLite.selector(value);\n\t\t\t}\n\t\t\tif (value.length && value !== _window && value[0] && value[0].style && !value.nodeType) {\n\t\t\t\tvalue = value[0];\n\t\t\t}\n\t\t\treturn (value === _window || (value.nodeType && value.style)) ? value : null;\n\t\t},\n\t\t_buildGetter = function(e, axis) { //pass in an element and an axis (\"x\" or \"y\") and it'll return a getter function for the scroll position of that element (like scrollTop or scrollLeft, although if the element is the window, it'll use the pageXOffset/pageYOffset or the documentElement's scrollTop/scrollLeft or document.body's. Basically this streamlines things and makes a very fast getter across browsers.\n\t\t\tvar p = \"scroll\" + ((axis === \"x\") ? \"Left\" : \"Top\");\n\t\t\tif (e === _window) {\n\t\t\t\tif (e.pageXOffset != null) {\n\t\t\t\t\tp = \"page\" + axis.toUpperCase() + \"Offset\";\n\t\t\t\t} else if (_doc[p] != null) {\n\t\t\t\t\te = _doc;\n\t\t\t\t} else {\n\t\t\t\t\te = document.body;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn function() {\n\t\t\t\treturn e[p];\n\t\t\t};\n\t\t},\n\t\t_getOffset = function(element, container) {\n\t\t\tvar rect = _unwrapElement(element).getBoundingClientRect(),\n\t\t\t\tisRoot = (!container || container === _window || container === document.body),\n\t\t\t\tcRect = (isRoot ? _doc : container).getBoundingClientRect(),\n\t\t\t\toffsets = {x: rect.left - cRect.left, y: rect.top - cRect.top};\n\t\t\tif (!isRoot && container) { //only add the current scroll position if it's not the window/body.\n\t\t\t\toffsets.x += _buildGetter(container, \"x\")();\n\t\t\t\toffsets.y += _buildGetter(container, \"y\")();\n\t\t\t}\n\t\t\treturn offsets;\n\t\t},\n\t\t_parseVal = function(value, target, axis) {\n\t\t\tvar type = typeof(value);\n\t\t\treturn !isNaN(value) ? parseFloat(value) : (type === \"number\" || (type === \"string\" && value.charAt(1) === \"=\")) ? value : (value === \"max\") ? _max(target, axis) : Math.min(_max(target, axis), _getOffset(value, target)[axis]);\n\t\t},\n\n\t\tScrollToPlugin = _gsScope._gsDefine.plugin({\n\t\t\tpropName: \"scrollTo\",\n\t\t\tAPI: 2,\n\t\t\tglobal: true,\n\t\t\tversion:\"1.9.0\",\n\n\t\t\t//called when the tween renders for the first time. This is where initial values should be recorded and any setup routines should run.\n\t\t\tinit: function(target, value, tween) {\n\t\t\t\tthis._wdw = (target === _window);\n\t\t\t\tthis._target = target;\n\t\t\t\tthis._tween = tween;\n\t\t\t\tif (typeof(value) !== \"object\") {\n\t\t\t\t\tvalue = {y:value}; //if we don't receive an object as the parameter, assume the user intends \"y\".\n\t\t\t\t\tif (typeof(value.y) === \"string\" && value.y !== \"max\" && value.y.charAt(1) !== \"=\") {\n\t\t\t\t\t\tvalue.x = value.y;\n\t\t\t\t\t}\n\t\t\t\t} else if (value.nodeType) {\n\t\t\t\t\tvalue = {y:value, x:value};\n\t\t\t\t}\n\t\t\t\tthis.vars = value;\n\t\t\t\tthis._autoKill = (value.autoKill !== false);\n\t\t\t\tthis.getX = _buildGetter(target, \"x\");\n\t\t\t\tthis.getY = _buildGetter(target, \"y\");\n\t\t\t\tthis.x = this.xPrev = this.getX();\n\t\t\t\tthis.y = this.yPrev = this.getY();\n\t\t\t\tif (value.x != null) {\n\t\t\t\t\tthis._addTween(this, \"x\", this.x, _parseVal(value.x, target, \"x\") - (value.offsetX || 0), \"scrollTo_x\", true);\n\t\t\t\t\tthis._overwriteProps.push(\"scrollTo_x\");\n\t\t\t\t} else {\n\t\t\t\t\tthis.skipX = true;\n\t\t\t\t}\n\t\t\t\tif (value.y != null) {\n\t\t\t\t\tthis._addTween(this, \"y\", this.y, _parseVal(value.y, target, \"y\") - (value.offsetY || 0), \"scrollTo_y\", true);\n\t\t\t\t\tthis._overwriteProps.push(\"scrollTo_y\");\n\t\t\t\t} else {\n\t\t\t\t\tthis.skipY = true;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t//called each time the values should be updated, and the ratio gets passed as the only parameter (typically it's a value between 0 and 1, but it can exceed those when using an ease like Elastic.easeOut or Back.easeOut, etc.)\n\t\t\tset: function(v) {\n\t\t\t\tthis._super.setRatio.call(this, v);\n\n\t\t\t\tvar x = (this._wdw || !this.skipX) ? this.getX() : this.xPrev,\n\t\t\t\t\ty = (this._wdw || !this.skipY) ? this.getY() : this.yPrev,\n\t\t\t\t\tyDif = y - this.yPrev,\n\t\t\t\t\txDif = x - this.xPrev,\n\t\t\t\t\tthreshold = ScrollToPlugin.autoKillThreshold;\n\n\t\t\t\tif (this.x < 0) { //can't scroll to a position less than 0! Might happen if someone uses a Back.easeOut or Elastic.easeOut when scrolling back to the top of the page (for example)\n\t\t\t\t\tthis.x = 0;\n\t\t\t\t}\n\t\t\t\tif (this.y < 0) {\n\t\t\t\t\tthis.y = 0;\n\t\t\t\t}\n\t\t\t\tif (this._autoKill) {\n\t\t\t\t\t//note: iOS has a bug that throws off the scroll by several pixels, so we need to check if it's within 7 pixels of the previous one that we set instead of just looking for an exact match.\n\t\t\t\t\tif (!this.skipX && (xDif > threshold || xDif < -threshold) && x < _max(this._target, \"x\")) {\n\t\t\t\t\t\tthis.skipX = true; //if the user scrolls separately, we should stop tweening!\n\t\t\t\t\t}\n\t\t\t\t\tif (!this.skipY && (yDif > threshold || yDif < -threshold) && y < _max(this._target, \"y\")) {\n\t\t\t\t\t\tthis.skipY = true; //if the user scrolls separately, we should stop tweening!\n\t\t\t\t\t}\n\t\t\t\t\tif (this.skipX && this.skipY) {\n\t\t\t\t\t\tthis._tween.kill();\n\t\t\t\t\t\tif (this.vars.onAutoKill) {\n\t\t\t\t\t\t\tthis.vars.onAutoKill.apply(this.vars.onAutoKillScope || this._tween, this.vars.onAutoKillParams || []);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this._wdw) {\n\t\t\t\t\t_window.scrollTo((!this.skipX) ? this.x : x, (!this.skipY) ? this.y : y);\n\t\t\t\t} else {\n\t\t\t\t\tif (!this.skipY) {\n\t\t\t\t\t\tthis._target.scrollTop = this.y;\n\t\t\t\t\t}\n\t\t\t\t\tif (!this.skipX) {\n\t\t\t\t\t\tthis._target.scrollLeft = this.x;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.xPrev = this.x;\n\t\t\t\tthis.yPrev = this.y;\n\t\t\t}\n\n\t\t}),\n\t\tp = ScrollToPlugin.prototype;\n\n\tScrollToPlugin.max = _max;\n\tScrollToPlugin.getOffset = _getOffset;\n\tScrollToPlugin.buildGetter = _buildGetter;\n\tScrollToPlugin.autoKillThreshold = 7;\n\n\tp._kill = function(lookup) {\n\t\tif (lookup.scrollTo_x) {\n\t\t\tthis.skipX = true;\n\t\t}\n\t\tif (lookup.scrollTo_y) {\n\t\t\tthis.skipY = true;\n\t\t}\n\t\treturn this._super._kill.call(this, lookup);\n\t};\n\n}); if (_gsScope._gsDefine) { _gsScope._gsQueue.pop()(); }\n\n//export to AMD/RequireJS and CommonJS/Node (precursor to full modular build system coming at a later date)\n(function(name) {\n\t\"use strict\";\n\tvar getGlobal = function() {\n\t\treturn (_gsScope.GreenSockGlobals || _gsScope)[name];\n\t};\n\tif (typeof(module) !== \"undefined\" && module.exports) { //node\n\t\trequire(\"gsap/TweenLite\");\n\t\tmodule.exports = getGlobal();\n\t} else if (typeof(define) === \"function\" && define.amd) { //AMD\n\t\tdefine([\"gsap/TweenLite\"], getGlobal);\n\t}\n}(\"ScrollToPlugin\"));","/*!\n * VERSION: 1.20.4\n * DATE: 2018-02-15\n * UPDATES AND DOCS AT: http://greensock.com\n *\n * @license Copyright (c) 2008-2018, GreenSock. All rights reserved.\n * This work is subject to the terms at http://greensock.com/standard-license or for\n * Club GreenSock members, the software agreement that was issued with your membership.\n * \n * @author: Jack Doyle, jack@greensock.com\n */\n(function(window, moduleName) {\n\n\t\t\"use strict\";\n\t\tvar _exports = {},\n\t\t\t_doc = window.document,\n\t\t\t_globals = window.GreenSockGlobals = window.GreenSockGlobals || window;\n\t\tif (_globals.TweenLite) {\n\t\t\treturn; //in case the core set of classes is already loaded, don't instantiate twice.\n\t\t}\n\t\tvar _namespace = function(ns) {\n\t\t\t\tvar a = ns.split(\".\"),\n\t\t\t\t\tp = _globals, i;\n\t\t\t\tfor (i = 0; i < a.length; i++) {\n\t\t\t\t\tp[a[i]] = p = p[a[i]] || {};\n\t\t\t\t}\n\t\t\t\treturn p;\n\t\t\t},\n\t\t\tgs = _namespace(\"com.greensock\"),\n\t\t\t_tinyNum = 0.0000000001,\n\t\t\t_slice = function(a) { //don't use Array.prototype.slice.call(target, 0) because that doesn't work in IE8 with a NodeList that's returned by querySelectorAll()\n\t\t\t\tvar b = [],\n\t\t\t\t\tl = a.length,\n\t\t\t\t\ti;\n\t\t\t\tfor (i = 0; i !== l; b.push(a[i++])) {}\n\t\t\t\treturn b;\n\t\t\t},\n\t\t\t_emptyFunc = function() {},\n\t\t\t_isArray = (function() { //works around issues in iframe environments where the Array global isn't shared, thus if the object originates in a different window/iframe, \"(obj instanceof Array)\" will evaluate false. We added some speed optimizations to avoid Object.prototype.toString.call() unless it's absolutely necessary because it's VERY slow (like 20x slower)\n\t\t\t\tvar toString = Object.prototype.toString,\n\t\t\t\t\tarray = toString.call([]);\n\t\t\t\treturn function(obj) {\n\t\t\t\t\treturn obj != null && (obj instanceof Array || (typeof(obj) === \"object\" && !!obj.push && toString.call(obj) === array));\n\t\t\t\t};\n\t\t\t}()),\n\t\t\ta, i, p, _ticker, _tickerActive,\n\t\t\t_defLookup = {},\n\n\t\t\t/**\n\t\t\t * @constructor\n\t\t\t * Defines a GreenSock class, optionally with an array of dependencies that must be instantiated first and passed into the definition.\n\t\t\t * This allows users to load GreenSock JS files in any order even if they have interdependencies (like CSSPlugin extends TweenPlugin which is\n\t\t\t * inside TweenLite.js, but if CSSPlugin is loaded first, it should wait to run its code until TweenLite.js loads and instantiates TweenPlugin\n\t\t\t * and then pass TweenPlugin to CSSPlugin's definition). This is all done automatically and internally.\n\t\t\t *\n\t\t\t * Every definition will be added to a \"com.greensock\" global object (typically window, but if a window.GreenSockGlobals object is found,\n\t\t\t * it will go there as of v1.7). For example, TweenLite will be found at window.com.greensock.TweenLite and since it's a global class that should be available anywhere,\n\t\t\t * it is ALSO referenced at window.TweenLite. However some classes aren't considered global, like the base com.greensock.core.Animation class, so\n\t\t\t * those will only be at the package like window.com.greensock.core.Animation. Again, if you define a GreenSockGlobals object on the window, everything\n\t\t\t * gets tucked neatly inside there instead of on the window directly. This allows you to do advanced things like load multiple versions of GreenSock\n\t\t\t * files and put them into distinct objects (imagine a banner ad uses a newer version but the main site uses an older one). In that case, you could\n\t\t\t * sandbox the banner one like:\n\t\t\t *\n\t\t\t * \n\t\t\t * \n\t\t\t * \n\t\t\t * \n\t\t\t * \n\t\t\t *\n\t\t\t * @param {!string} ns The namespace of the class definition, leaving off \"com.greensock.\" as that's assumed. For example, \"TweenLite\" or \"plugins.CSSPlugin\" or \"easing.Back\".\n\t\t\t * @param {!Array.} dependencies An array of dependencies (described as their namespaces minus \"com.greensock.\" prefix). For example [\"TweenLite\",\"plugins.TweenPlugin\",\"core.Animation\"]\n\t\t\t * @param {!function():Object} func The function that should be called and passed the resolved dependencies which will return the actual class for this definition.\n\t\t\t * @param {boolean=} global If true, the class will be added to the global scope (typically window unless you define a window.GreenSockGlobals object)\n\t\t\t */\n\t\t\tDefinition = function(ns, dependencies, func, global) {\n\t\t\t\tthis.sc = (_defLookup[ns]) ? _defLookup[ns].sc : []; //subclasses\n\t\t\t\t_defLookup[ns] = this;\n\t\t\t\tthis.gsClass = null;\n\t\t\t\tthis.func = func;\n\t\t\t\tvar _classes = [];\n\t\t\t\tthis.check = function(init) {\n\t\t\t\t\tvar i = dependencies.length,\n\t\t\t\t\t\tmissing = i,\n\t\t\t\t\t\tcur, a, n, cl;\n\t\t\t\t\twhile (--i > -1) {\n\t\t\t\t\t\tif ((cur = _defLookup[dependencies[i]] || new Definition(dependencies[i], [])).gsClass) {\n\t\t\t\t\t\t\t_classes[i] = cur.gsClass;\n\t\t\t\t\t\t\tmissing--;\n\t\t\t\t\t\t} else if (init) {\n\t\t\t\t\t\t\tcur.sc.push(this);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (missing === 0 && func) {\n\t\t\t\t\t\ta = (\"com.greensock.\" + ns).split(\".\");\n\t\t\t\t\t\tn = a.pop();\n\t\t\t\t\t\tcl = _namespace(a.join(\".\"))[n] = this.gsClass = func.apply(func, _classes);\n\n\t\t\t\t\t\t//exports to multiple environments\n\t\t\t\t\t\tif (global) {\n\t\t\t\t\t\t\t_globals[n] = _exports[n] = cl; //provides a way to avoid global namespace pollution. By default, the main classes like TweenLite, Power1, Strong, etc. are added to window unless a GreenSockGlobals is defined. So if you want to have things added to a custom object instead, just do something like window.GreenSockGlobals = {} before loading any GreenSock files. You can even set up an alias like window.GreenSockGlobals = windows.gs = {} so that you can access everything like gs.TweenLite. Also remember that ALL classes are added to the window.com.greensock object (in their respective packages, like com.greensock.easing.Power1, com.greensock.TweenLite, etc.)\n\t\t\t\t\t\t\tif (typeof(module) !== \"undefined\" && module.exports) { //node\n\t\t\t\t\t\t\t\tif (ns === moduleName) {\n\t\t\t\t\t\t\t\t\tmodule.exports = _exports[moduleName] = cl;\n\t\t\t\t\t\t\t\t\tfor (i in _exports) {\n\t\t\t\t\t\t\t\t\t\tcl[i] = _exports[i];\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (_exports[moduleName]) {\n\t\t\t\t\t\t\t\t\t_exports[moduleName][n] = cl;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (typeof(define) === \"function\" && define.amd){ //AMD\n\t\t\t\t\t\t\t\tdefine((window.GreenSockAMDPath ? window.GreenSockAMDPath + \"/\" : \"\") + ns.split(\".\").pop(), [], function() { return cl; });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (i = 0; i < this.sc.length; i++) {\n\t\t\t\t\t\t\tthis.sc[i].check();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tthis.check(true);\n\t\t\t},\n\n\t\t\t//used to create Definition instances (which basically registers a class that has dependencies).\n\t\t\t_gsDefine = window._gsDefine = function(ns, dependencies, func, global) {\n\t\t\t\treturn new Definition(ns, dependencies, func, global);\n\t\t\t},\n\n\t\t\t//a quick way to create a class that doesn't have any dependencies. Returns the class, but first registers it in the GreenSock namespace so that other classes can grab it (other classes might be dependent on the class).\n\t\t\t_class = gs._class = function(ns, func, global) {\n\t\t\t\tfunc = func || function() {};\n\t\t\t\t_gsDefine(ns, [], function(){ return func; }, global);\n\t\t\t\treturn func;\n\t\t\t};\n\n\t\t_gsDefine.globals = _globals;\n\n\n\n/*\n * ----------------------------------------------------------------\n * Ease\n * ----------------------------------------------------------------\n */\n\t\tvar _baseParams = [0, 0, 1, 1],\n\t\t\tEase = _class(\"easing.Ease\", function(func, extraParams, type, power) {\n\t\t\t\tthis._func = func;\n\t\t\t\tthis._type = type || 0;\n\t\t\t\tthis._power = power || 0;\n\t\t\t\tthis._params = extraParams ? _baseParams.concat(extraParams) : _baseParams;\n\t\t\t}, true),\n\t\t\t_easeMap = Ease.map = {},\n\t\t\t_easeReg = Ease.register = function(ease, names, types, create) {\n\t\t\t\tvar na = names.split(\",\"),\n\t\t\t\t\ti = na.length,\n\t\t\t\t\tta = (types || \"easeIn,easeOut,easeInOut\").split(\",\"),\n\t\t\t\t\te, name, j, type;\n\t\t\t\twhile (--i > -1) {\n\t\t\t\t\tname = na[i];\n\t\t\t\t\te = create ? _class(\"easing.\"+name, null, true) : gs.easing[name] || {};\n\t\t\t\t\tj = ta.length;\n\t\t\t\t\twhile (--j > -1) {\n\t\t\t\t\t\ttype = ta[j];\n\t\t\t\t\t\t_easeMap[name + \".\" + type] = _easeMap[type + name] = e[type] = ease.getRatio ? ease : ease[type] || new ease();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\tp = Ease.prototype;\n\t\tp._calcEnd = false;\n\t\tp.getRatio = function(p) {\n\t\t\tif (this._func) {\n\t\t\t\tthis._params[0] = p;\n\t\t\t\treturn this._func.apply(null, this._params);\n\t\t\t}\n\t\t\tvar t = this._type,\n\t\t\t\tpw = this._power,\n\t\t\t\tr = (t === 1) ? 1 - p : (t === 2) ? p : (p < 0.5) ? p * 2 : (1 - p) * 2;\n\t\t\tif (pw === 1) {\n\t\t\t\tr *= r;\n\t\t\t} else if (pw === 2) {\n\t\t\t\tr *= r * r;\n\t\t\t} else if (pw === 3) {\n\t\t\t\tr *= r * r * r;\n\t\t\t} else if (pw === 4) {\n\t\t\t\tr *= r * r * r * r;\n\t\t\t}\n\t\t\treturn (t === 1) ? 1 - r : (t === 2) ? r : (p < 0.5) ? r / 2 : 1 - (r / 2);\n\t\t};\n\n\t\t//create all the standard eases like Linear, Quad, Cubic, Quart, Quint, Strong, Power0, Power1, Power2, Power3, and Power4 (each with easeIn, easeOut, and easeInOut)\n\t\ta = [\"Linear\",\"Quad\",\"Cubic\",\"Quart\",\"Quint,Strong\"];\n\t\ti = a.length;\n\t\twhile (--i > -1) {\n\t\t\tp = a[i]+\",Power\"+i;\n\t\t\t_easeReg(new Ease(null,null,1,i), p, \"easeOut\", true);\n\t\t\t_easeReg(new Ease(null,null,2,i), p, \"easeIn\" + ((i === 0) ? \",easeNone\" : \"\"));\n\t\t\t_easeReg(new Ease(null,null,3,i), p, \"easeInOut\");\n\t\t}\n\t\t_easeMap.linear = gs.easing.Linear.easeIn;\n\t\t_easeMap.swing = gs.easing.Quad.easeInOut; //for jQuery folks\n\n\n/*\n * ----------------------------------------------------------------\n * EventDispatcher\n * ----------------------------------------------------------------\n */\n\t\tvar EventDispatcher = _class(\"events.EventDispatcher\", function(target) {\n\t\t\tthis._listeners = {};\n\t\t\tthis._eventTarget = target || this;\n\t\t});\n\t\tp = EventDispatcher.prototype;\n\n\t\tp.addEventListener = function(type, callback, scope, useParam, priority) {\n\t\t\tpriority = priority || 0;\n\t\t\tvar list = this._listeners[type],\n\t\t\t\tindex = 0,\n\t\t\t\tlistener, i;\n\t\t\tif (this === _ticker && !_tickerActive) {\n\t\t\t\t_ticker.wake();\n\t\t\t}\n\t\t\tif (list == null) {\n\t\t\t\tthis._listeners[type] = list = [];\n\t\t\t}\n\t\t\ti = list.length;\n\t\t\twhile (--i > -1) {\n\t\t\t\tlistener = list[i];\n\t\t\t\tif (listener.c === callback && listener.s === scope) {\n\t\t\t\t\tlist.splice(i, 1);\n\t\t\t\t} else if (index === 0 && listener.pr < priority) {\n\t\t\t\t\tindex = i + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlist.splice(index, 0, {c:callback, s:scope, up:useParam, pr:priority});\n\t\t};\n\n\t\tp.removeEventListener = function(type, callback) {\n\t\t\tvar list = this._listeners[type], i;\n\t\t\tif (list) {\n\t\t\t\ti = list.length;\n\t\t\t\twhile (--i > -1) {\n\t\t\t\t\tif (list[i].c === callback) {\n\t\t\t\t\t\tlist.splice(i, 1);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tp.dispatchEvent = function(type) {\n\t\t\tvar list = this._listeners[type],\n\t\t\t\ti, t, listener;\n\t\t\tif (list) {\n\t\t\t\ti = list.length;\n\t\t\t\tif (i > 1) { \n\t\t\t\t\tlist = list.slice(0); //in case addEventListener() is called from within a listener/callback (otherwise the index could change, resulting in a skip)\n\t\t\t\t}\n\t\t\t\tt = this._eventTarget;\n\t\t\t\twhile (--i > -1) {\n\t\t\t\t\tlistener = list[i];\n\t\t\t\t\tif (listener) {\n\t\t\t\t\t\tif (listener.up) {\n\t\t\t\t\t\t\tlistener.c.call(listener.s || t, {type:type, target:t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tlistener.c.call(listener.s || t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\n/*\n * ----------------------------------------------------------------\n * Ticker\n * ----------------------------------------------------------------\n */\n \t\tvar _reqAnimFrame = window.requestAnimationFrame,\n\t\t\t_cancelAnimFrame = window.cancelAnimationFrame,\n\t\t\t_getTime = Date.now || function() {return new Date().getTime();},\n\t\t\t_lastUpdate = _getTime();\n\n\t\t//now try to determine the requestAnimationFrame and cancelAnimationFrame functions and if none are found, we'll use a setTimeout()/clearTimeout() polyfill.\n\t\ta = [\"ms\",\"moz\",\"webkit\",\"o\"];\n\t\ti = a.length;\n\t\twhile (--i > -1 && !_reqAnimFrame) {\n\t\t\t_reqAnimFrame = window[a[i] + \"RequestAnimationFrame\"];\n\t\t\t_cancelAnimFrame = window[a[i] + \"CancelAnimationFrame\"] || window[a[i] + \"CancelRequestAnimationFrame\"];\n\t\t}\n\n\t\t_class(\"Ticker\", function(fps, useRAF) {\n\t\t\tvar _self = this,\n\t\t\t\t_startTime = _getTime(),\n\t\t\t\t_useRAF = (useRAF !== false && _reqAnimFrame) ? \"auto\" : false,\n\t\t\t\t_lagThreshold = 500,\n\t\t\t\t_adjustedLag = 33,\n\t\t\t\t_tickWord = \"tick\", //helps reduce gc burden\n\t\t\t\t_fps, _req, _id, _gap, _nextTime,\n\t\t\t\t_tick = function(manual) {\n\t\t\t\t\tvar elapsed = _getTime() - _lastUpdate,\n\t\t\t\t\t\toverlap, dispatch;\n\t\t\t\t\tif (elapsed > _lagThreshold) {\n\t\t\t\t\t\t_startTime += elapsed - _adjustedLag;\n\t\t\t\t\t}\n\t\t\t\t\t_lastUpdate += elapsed;\n\t\t\t\t\t_self.time = (_lastUpdate - _startTime) / 1000;\n\t\t\t\t\toverlap = _self.time - _nextTime;\n\t\t\t\t\tif (!_fps || overlap > 0 || manual === true) {\n\t\t\t\t\t\t_self.frame++;\n\t\t\t\t\t\t_nextTime += overlap + (overlap >= _gap ? 0.004 : _gap - overlap);\n\t\t\t\t\t\tdispatch = true;\n\t\t\t\t\t}\n\t\t\t\t\tif (manual !== true) { //make sure the request is made before we dispatch the \"tick\" event so that timing is maintained. Otherwise, if processing the \"tick\" requires a bunch of time (like 15ms) and we're using a setTimeout() that's based on 16.7ms, it'd technically take 31.7ms between frames otherwise.\n\t\t\t\t\t\t_id = _req(_tick);\n\t\t\t\t\t}\n\t\t\t\t\tif (dispatch) {\n\t\t\t\t\t\t_self.dispatchEvent(_tickWord);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\tEventDispatcher.call(_self);\n\t\t\t_self.time = _self.frame = 0;\n\t\t\t_self.tick = function() {\n\t\t\t\t_tick(true);\n\t\t\t};\n\n\t\t\t_self.lagSmoothing = function(threshold, adjustedLag) {\n\t\t\t\tif (!arguments.length) { //if lagSmoothing() is called with no arguments, treat it like a getter that returns a boolean indicating if it's enabled or not. This is purposely undocumented and is for internal use.\n\t\t\t\t\treturn (_lagThreshold < 1 / _tinyNum);\n\t\t\t\t}\n\t\t\t\t_lagThreshold = threshold || (1 / _tinyNum); //zero should be interpreted as basically unlimited\n\t\t\t\t_adjustedLag = Math.min(adjustedLag, _lagThreshold, 0);\n\t\t\t};\n\n\t\t\t_self.sleep = function() {\n\t\t\t\tif (_id == null) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!_useRAF || !_cancelAnimFrame) {\n\t\t\t\t\tclearTimeout(_id);\n\t\t\t\t} else {\n\t\t\t\t\t_cancelAnimFrame(_id);\n\t\t\t\t}\n\t\t\t\t_req = _emptyFunc;\n\t\t\t\t_id = null;\n\t\t\t\tif (_self === _ticker) {\n\t\t\t\t\t_tickerActive = false;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t_self.wake = function(seamless) {\n\t\t\t\tif (_id !== null) {\n\t\t\t\t\t_self.sleep();\n\t\t\t\t} else if (seamless) {\n\t\t\t\t\t_startTime += -_lastUpdate + (_lastUpdate = _getTime());\n\t\t\t\t} else if (_self.frame > 10) { //don't trigger lagSmoothing if we're just waking up, and make sure that at least 10 frames have elapsed because of the iOS bug that we work around below with the 1.5-second setTimout().\n\t\t\t\t\t_lastUpdate = _getTime() - _lagThreshold + 5;\n\t\t\t\t}\n\t\t\t\t_req = (_fps === 0) ? _emptyFunc : (!_useRAF || !_reqAnimFrame) ? function(f) { return setTimeout(f, ((_nextTime - _self.time) * 1000 + 1) | 0); } : _reqAnimFrame;\n\t\t\t\tif (_self === _ticker) {\n\t\t\t\t\t_tickerActive = true;\n\t\t\t\t}\n\t\t\t\t_tick(2);\n\t\t\t};\n\n\t\t\t_self.fps = function(value) {\n\t\t\t\tif (!arguments.length) {\n\t\t\t\t\treturn _fps;\n\t\t\t\t}\n\t\t\t\t_fps = value;\n\t\t\t\t_gap = 1 / (_fps || 60);\n\t\t\t\t_nextTime = this.time + _gap;\n\t\t\t\t_self.wake();\n\t\t\t};\n\n\t\t\t_self.useRAF = function(value) {\n\t\t\t\tif (!arguments.length) {\n\t\t\t\t\treturn _useRAF;\n\t\t\t\t}\n\t\t\t\t_self.sleep();\n\t\t\t\t_useRAF = value;\n\t\t\t\t_self.fps(_fps);\n\t\t\t};\n\t\t\t_self.fps(fps);\n\n\t\t\t//a bug in iOS 6 Safari occasionally prevents the requestAnimationFrame from working initially, so we use a 1.5-second timeout that automatically falls back to setTimeout() if it senses this condition.\n\t\t\tsetTimeout(function() {\n\t\t\t\tif (_useRAF === \"auto\" && _self.frame < 5 && (_doc || {}).visibilityState !== \"hidden\") {\n\t\t\t\t\t_self.useRAF(false);\n\t\t\t\t}\n\t\t\t}, 1500);\n\t\t});\n\n\t\tp = gs.Ticker.prototype = new gs.events.EventDispatcher();\n\t\tp.constructor = gs.Ticker;\n\n\n/*\n * ----------------------------------------------------------------\n * Animation\n * ----------------------------------------------------------------\n */\n\t\tvar Animation = _class(\"core.Animation\", function(duration, vars) {\n\t\t\t\tthis.vars = vars = vars || {};\n\t\t\t\tthis._duration = this._totalDuration = duration || 0;\n\t\t\t\tthis._delay = Number(vars.delay) || 0;\n\t\t\t\tthis._timeScale = 1;\n\t\t\t\tthis._active = (vars.immediateRender === true);\n\t\t\t\tthis.data = vars.data;\n\t\t\t\tthis._reversed = (vars.reversed === true);\n\n\t\t\t\tif (!_rootTimeline) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (!_tickerActive) { //some browsers (like iOS 6 Safari) shut down JavaScript execution when the tab is disabled and they [occasionally] neglect to start up requestAnimationFrame again when returning - this code ensures that the engine starts up again properly.\n\t\t\t\t\t_ticker.wake();\n\t\t\t\t}\n\n\t\t\t\tvar tl = this.vars.useFrames ? _rootFramesTimeline : _rootTimeline;\n\t\t\t\ttl.add(this, tl._time);\n\n\t\t\t\tif (this.vars.paused) {\n\t\t\t\t\tthis.paused(true);\n\t\t\t\t}\n\t\t\t});\n\n\t\t_ticker = Animation.ticker = new gs.Ticker();\n\t\tp = Animation.prototype;\n\t\tp._dirty = p._gc = p._initted = p._paused = false;\n\t\tp._totalTime = p._time = 0;\n\t\tp._rawPrevTime = -1;\n\t\tp._next = p._last = p._onUpdate = p._timeline = p.timeline = null;\n\t\tp._paused = false;\n\n\n\t\t//some browsers (like iOS) occasionally drop the requestAnimationFrame event when the user switches to a different tab and then comes back again, so we use a 2-second setTimeout() to sense if/when that condition occurs and then wake() the ticker.\n\t\tvar _checkTimeout = function() {\n\t\t\t\tif (_tickerActive && _getTime() - _lastUpdate > 2000 && ((_doc || {}).visibilityState !== \"hidden\" || !_ticker.lagSmoothing())) { //note: if the tab is hidden, we should still wake if lagSmoothing has been disabled.\n\t\t\t\t\t_ticker.wake();\n\t\t\t\t}\n\t\t\t\tvar t = setTimeout(_checkTimeout, 2000);\n\t\t\t\tif (t.unref) {\n\t\t\t\t\t// allows a node process to exit even if the timeout’s callback hasn't been invoked. Without it, the node process could hang as this function is called every two seconds.\n\t\t\t\t\tt.unref();\n\t\t\t\t}\n\t\t\t};\n\t\t_checkTimeout();\n\n\n\t\tp.play = function(from, suppressEvents) {\n\t\t\tif (from != null) {\n\t\t\t\tthis.seek(from, suppressEvents);\n\t\t\t}\n\t\t\treturn this.reversed(false).paused(false);\n\t\t};\n\n\t\tp.pause = function(atTime, suppressEvents) {\n\t\t\tif (atTime != null) {\n\t\t\t\tthis.seek(atTime, suppressEvents);\n\t\t\t}\n\t\t\treturn this.paused(true);\n\t\t};\n\n\t\tp.resume = function(from, suppressEvents) {\n\t\t\tif (from != null) {\n\t\t\t\tthis.seek(from, suppressEvents);\n\t\t\t}\n\t\t\treturn this.paused(false);\n\t\t};\n\n\t\tp.seek = function(time, suppressEvents) {\n\t\t\treturn this.totalTime(Number(time), suppressEvents !== false);\n\t\t};\n\n\t\tp.restart = function(includeDelay, suppressEvents) {\n\t\t\treturn this.reversed(false).paused(false).totalTime(includeDelay ? -this._delay : 0, (suppressEvents !== false), true);\n\t\t};\n\n\t\tp.reverse = function(from, suppressEvents) {\n\t\t\tif (from != null) {\n\t\t\t\tthis.seek((from || this.totalDuration()), suppressEvents);\n\t\t\t}\n\t\t\treturn this.reversed(true).paused(false);\n\t\t};\n\n\t\tp.render = function(time, suppressEvents, force) {\n\t\t\t//stub - we override this method in subclasses.\n\t\t};\n\n\t\tp.invalidate = function() {\n\t\t\tthis._time = this._totalTime = 0;\n\t\t\tthis._initted = this._gc = false;\n\t\t\tthis._rawPrevTime = -1;\n\t\t\tif (this._gc || !this.timeline) {\n\t\t\t\tthis._enabled(true);\n\t\t\t}\n\t\t\treturn this;\n\t\t};\n\n\t\tp.isActive = function() {\n\t\t\tvar tl = this._timeline, //the 2 root timelines won't have a _timeline; they're always active.\n\t\t\t\tstartTime = this._startTime,\n\t\t\t\trawTime;\n\t\t\treturn (!tl || (!this._gc && !this._paused && tl.isActive() && (rawTime = tl.rawTime(true)) >= startTime && rawTime < startTime + this.totalDuration() / this._timeScale - 0.0000001));\n\t\t};\n\n\t\tp._enabled = function (enabled, ignoreTimeline) {\n\t\t\tif (!_tickerActive) {\n\t\t\t\t_ticker.wake();\n\t\t\t}\n\t\t\tthis._gc = !enabled;\n\t\t\tthis._active = this.isActive();\n\t\t\tif (ignoreTimeline !== true) {\n\t\t\t\tif (enabled && !this.timeline) {\n\t\t\t\t\tthis._timeline.add(this, this._startTime - this._delay);\n\t\t\t\t} else if (!enabled && this.timeline) {\n\t\t\t\t\tthis._timeline._remove(this, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\n\t\tp._kill = function(vars, target) {\n\t\t\treturn this._enabled(false, false);\n\t\t};\n\n\t\tp.kill = function(vars, target) {\n\t\t\tthis._kill(vars, target);\n\t\t\treturn this;\n\t\t};\n\n\t\tp._uncache = function(includeSelf) {\n\t\t\tvar tween = includeSelf ? this : this.timeline;\n\t\t\twhile (tween) {\n\t\t\t\ttween._dirty = true;\n\t\t\t\ttween = tween.timeline;\n\t\t\t}\n\t\t\treturn this;\n\t\t};\n\n\t\tp._swapSelfInParams = function(params) {\n\t\t\tvar i = params.length,\n\t\t\t\tcopy = params.concat();\n\t\t\twhile (--i > -1) {\n\t\t\t\tif (params[i] === \"{self}\") {\n\t\t\t\t\tcopy[i] = this;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn copy;\n\t\t};\n\n\t\tp._callback = function(type) {\n\t\t\tvar v = this.vars,\n\t\t\t\tcallback = v[type],\n\t\t\t\tparams = v[type + \"Params\"],\n\t\t\t\tscope = v[type + \"Scope\"] || v.callbackScope || this,\n\t\t\t\tl = params ? params.length : 0;\n\t\t\tswitch (l) { //speed optimization; call() is faster than apply() so use it when there are only a few parameters (which is by far most common). Previously we simply did var v = this.vars; v[type].apply(v[type + \"Scope\"] || v.callbackScope || this, v[type + \"Params\"] || _blankArray);\n\t\t\t\tcase 0: callback.call(scope); break;\n\t\t\t\tcase 1: callback.call(scope, params[0]); break;\n\t\t\t\tcase 2: callback.call(scope, params[0], params[1]); break;\n\t\t\t\tdefault: callback.apply(scope, params);\n\t\t\t}\n\t\t};\n\n//----Animation getters/setters --------------------------------------------------------\n\n\t\tp.eventCallback = function(type, callback, params, scope) {\n\t\t\tif ((type || \"\").substr(0,2) === \"on\") {\n\t\t\t\tvar v = this.vars;\n\t\t\t\tif (arguments.length === 1) {\n\t\t\t\t\treturn v[type];\n\t\t\t\t}\n\t\t\t\tif (callback == null) {\n\t\t\t\t\tdelete v[type];\n\t\t\t\t} else {\n\t\t\t\t\tv[type] = callback;\n\t\t\t\t\tv[type + \"Params\"] = (_isArray(params) && params.join(\"\").indexOf(\"{self}\") !== -1) ? this._swapSelfInParams(params) : params;\n\t\t\t\t\tv[type + \"Scope\"] = scope;\n\t\t\t\t}\n\t\t\t\tif (type === \"onUpdate\") {\n\t\t\t\t\tthis._onUpdate = callback;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this;\n\t\t};\n\n\t\tp.delay = function(value) {\n\t\t\tif (!arguments.length) {\n\t\t\t\treturn this._delay;\n\t\t\t}\n\t\t\tif (this._timeline.smoothChildTiming) {\n\t\t\t\tthis.startTime( this._startTime + value - this._delay );\n\t\t\t}\n\t\t\tthis._delay = value;\n\t\t\treturn this;\n\t\t};\n\n\t\tp.duration = function(value) {\n\t\t\tif (!arguments.length) {\n\t\t\t\tthis._dirty = false;\n\t\t\t\treturn this._duration;\n\t\t\t}\n\t\t\tthis._duration = this._totalDuration = value;\n\t\t\tthis._uncache(true); //true in case it's a TweenMax or TimelineMax that has a repeat - we'll need to refresh the totalDuration.\n\t\t\tif (this._timeline.smoothChildTiming) if (this._time > 0) if (this._time < this._duration) if (value !== 0) {\n\t\t\t\tthis.totalTime(this._totalTime * (value / this._duration), true);\n\t\t\t}\n\t\t\treturn this;\n\t\t};\n\n\t\tp.totalDuration = function(value) {\n\t\t\tthis._dirty = false;\n\t\t\treturn (!arguments.length) ? this._totalDuration : this.duration(value);\n\t\t};\n\n\t\tp.time = function(value, suppressEvents) {\n\t\t\tif (!arguments.length) {\n\t\t\t\treturn this._time;\n\t\t\t}\n\t\t\tif (this._dirty) {\n\t\t\t\tthis.totalDuration();\n\t\t\t}\n\t\t\treturn this.totalTime((value > this._duration) ? this._duration : value, suppressEvents);\n\t\t};\n\n\t\tp.totalTime = function(time, suppressEvents, uncapped) {\n\t\t\tif (!_tickerActive) {\n\t\t\t\t_ticker.wake();\n\t\t\t}\n\t\t\tif (!arguments.length) {\n\t\t\t\treturn this._totalTime;\n\t\t\t}\n\t\t\tif (this._timeline) {\n\t\t\t\tif (time < 0 && !uncapped) {\n\t\t\t\t\ttime += this.totalDuration();\n\t\t\t\t}\n\t\t\t\tif (this._timeline.smoothChildTiming) {\n\t\t\t\t\tif (this._dirty) {\n\t\t\t\t\t\tthis.totalDuration();\n\t\t\t\t\t}\n\t\t\t\t\tvar totalDuration = this._totalDuration,\n\t\t\t\t\t\ttl = this._timeline;\n\t\t\t\t\tif (time > totalDuration && !uncapped) {\n\t\t\t\t\t\ttime = totalDuration;\n\t\t\t\t\t}\n\t\t\t\t\tthis._startTime = (this._paused ? this._pauseTime : tl._time) - ((!this._reversed ? time : totalDuration - time) / this._timeScale);\n\t\t\t\t\tif (!tl._dirty) { //for performance improvement. If the parent's cache is already dirty, it already took care of marking the ancestors as dirty too, so skip the function call here.\n\t\t\t\t\t\tthis._uncache(false);\n\t\t\t\t\t}\n\t\t\t\t\t//in case any of the ancestor timelines had completed but should now be enabled, we should reset their totalTime() which will also ensure that they're lined up properly and enabled. Skip for animations that are on the root (wasteful). Example: a TimelineLite.exportRoot() is performed when there's a paused tween on the root, the export will not complete until that tween is unpaused, but imagine a child gets restarted later, after all [unpaused] tweens have completed. The startTime of that child would get pushed out, but one of the ancestors may have completed.\n\t\t\t\t\tif (tl._timeline) {\n\t\t\t\t\t\twhile (tl._timeline) {\n\t\t\t\t\t\t\tif (tl._timeline._time !== (tl._startTime + tl._totalTime) / tl._timeScale) {\n\t\t\t\t\t\t\t\ttl.totalTime(tl._totalTime, true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttl = tl._timeline;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this._gc) {\n\t\t\t\t\tthis._enabled(true, false);\n\t\t\t\t}\n\t\t\t\tif (this._totalTime !== time || this._duration === 0) {\n\t\t\t\t\tif (_lazyTweens.length) {\n\t\t\t\t\t\t_lazyRender();\n\t\t\t\t\t}\n\t\t\t\t\tthis.render(time, suppressEvents, false);\n\t\t\t\t\tif (_lazyTweens.length) { //in case rendering caused any tweens to lazy-init, we should render them because typically when someone calls seek() or time() or progress(), they expect an immediate render.\n\t\t\t\t\t\t_lazyRender();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this;\n\t\t};\n\n\t\tp.progress = p.totalProgress = function(value, suppressEvents) {\n\t\t\tvar duration = this.duration();\n\t\t\treturn (!arguments.length) ? (duration ? this._time / duration : this.ratio) : this.totalTime(duration * value, suppressEvents);\n\t\t};\n\n\t\tp.startTime = function(value) {\n\t\t\tif (!arguments.length) {\n\t\t\t\treturn this._startTime;\n\t\t\t}\n\t\t\tif (value !== this._startTime) {\n\t\t\t\tthis._startTime = value;\n\t\t\t\tif (this.timeline) if (this.timeline._sortChildren) {\n\t\t\t\t\tthis.timeline.add(this, value - this._delay); //ensures that any necessary re-sequencing of Animations in the timeline occurs to make sure the rendering order is correct.\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this;\n\t\t};\n\n\t\tp.endTime = function(includeRepeats) {\n\t\t\treturn this._startTime + ((includeRepeats != false) ? this.totalDuration() : this.duration()) / this._timeScale;\n\t\t};\n\n\t\tp.timeScale = function(value) {\n\t\t\tif (!arguments.length) {\n\t\t\t\treturn this._timeScale;\n\t\t\t}\n\t\t\tvar pauseTime, t;\n\t\t\tvalue = value || _tinyNum; //can't allow zero because it'll throw the math off\n\t\t\tif (this._timeline && this._timeline.smoothChildTiming) {\n\t\t\t\tpauseTime = this._pauseTime;\n\t\t\t\tt = (pauseTime || pauseTime === 0) ? pauseTime : this._timeline.totalTime();\n\t\t\t\tthis._startTime = t - ((t - this._startTime) * this._timeScale / value);\n\t\t\t}\n\t\t\tthis._timeScale = value;\n\t\t\tt = this.timeline;\n\t\t\twhile (t && t.timeline) { //must update the duration/totalDuration of all ancestor timelines immediately in case in the middle of a render loop, one tween alters another tween's timeScale which shoves its startTime before 0, forcing the parent timeline to shift around and shiftChildren() which could affect that next tween's render (startTime). Doesn't matter for the root timeline though.\n\t\t\t\tt._dirty = true;\n\t\t\t\tt.totalDuration();\n\t\t\t\tt = t.timeline;\n\t\t\t}\n\t\t\treturn this;\n\t\t};\n\n\t\tp.reversed = function(value) {\n\t\t\tif (!arguments.length) {\n\t\t\t\treturn this._reversed;\n\t\t\t}\n\t\t\tif (value != this._reversed) {\n\t\t\t\tthis._reversed = value;\n\t\t\t\tthis.totalTime(((this._timeline && !this._timeline.smoothChildTiming) ? this.totalDuration() - this._totalTime : this._totalTime), true);\n\t\t\t}\n\t\t\treturn this;\n\t\t};\n\n\t\tp.paused = function(value) {\n\t\t\tif (!arguments.length) {\n\t\t\t\treturn this._paused;\n\t\t\t}\n\t\t\tvar tl = this._timeline,\n\t\t\t\traw, elapsed;\n\t\t\tif (value != this._paused) if (tl) {\n\t\t\t\tif (!_tickerActive && !value) {\n\t\t\t\t\t_ticker.wake();\n\t\t\t\t}\n\t\t\t\traw = tl.rawTime();\n\t\t\t\telapsed = raw - this._pauseTime;\n\t\t\t\tif (!value && tl.smoothChildTiming) {\n\t\t\t\t\tthis._startTime += elapsed;\n\t\t\t\t\tthis._uncache(false);\n\t\t\t\t}\n\t\t\t\tthis._pauseTime = value ? raw : null;\n\t\t\t\tthis._paused = value;\n\t\t\t\tthis._active = this.isActive();\n\t\t\t\tif (!value && elapsed !== 0 && this._initted && this.duration()) {\n\t\t\t\t\traw = tl.smoothChildTiming ? this._totalTime : (raw - this._startTime) / this._timeScale;\n\t\t\t\t\tthis.render(raw, (raw === this._totalTime), true); //in case the target's properties changed via some other tween or manual update by the user, we should force a render.\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this._gc && !value) {\n\t\t\t\tthis._enabled(true, false);\n\t\t\t}\n\t\t\treturn this;\n\t\t};\n\n\n/*\n * ----------------------------------------------------------------\n * SimpleTimeline\n * ----------------------------------------------------------------\n */\n\t\tvar SimpleTimeline = _class(\"core.SimpleTimeline\", function(vars) {\n\t\t\tAnimation.call(this, 0, vars);\n\t\t\tthis.autoRemoveChildren = this.smoothChildTiming = true;\n\t\t});\n\n\t\tp = SimpleTimeline.prototype = new Animation();\n\t\tp.constructor = SimpleTimeline;\n\t\tp.kill()._gc = false;\n\t\tp._first = p._last = p._recent = null;\n\t\tp._sortChildren = false;\n\n\t\tp.add = p.insert = function(child, position, align, stagger) {\n\t\t\tvar prevTween, st;\n\t\t\tchild._startTime = Number(position || 0) + child._delay;\n\t\t\tif (child._paused) if (this !== child._timeline) { //we only adjust the _pauseTime if it wasn't in this timeline already. Remember, sometimes a tween will be inserted again into the same timeline when its startTime is changed so that the tweens in the TimelineLite/Max are re-ordered properly in the linked list (so everything renders in the proper order).\n\t\t\t\tchild._pauseTime = child._startTime + ((this.rawTime() - child._startTime) / child._timeScale);\n\t\t\t}\n\t\t\tif (child.timeline) {\n\t\t\t\tchild.timeline._remove(child, true); //removes from existing timeline so that it can be properly added to this one.\n\t\t\t}\n\t\t\tchild.timeline = child._timeline = this;\n\t\t\tif (child._gc) {\n\t\t\t\tchild._enabled(true, true);\n\t\t\t}\n\t\t\tprevTween = this._last;\n\t\t\tif (this._sortChildren) {\n\t\t\t\tst = child._startTime;\n\t\t\t\twhile (prevTween && prevTween._startTime > st) {\n\t\t\t\t\tprevTween = prevTween._prev;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (prevTween) {\n\t\t\t\tchild._next = prevTween._next;\n\t\t\t\tprevTween._next = child;\n\t\t\t} else {\n\t\t\t\tchild._next = this._first;\n\t\t\t\tthis._first = child;\n\t\t\t}\n\t\t\tif (child._next) {\n\t\t\t\tchild._next._prev = child;\n\t\t\t} else {\n\t\t\t\tthis._last = child;\n\t\t\t}\n\t\t\tchild._prev = prevTween;\n\t\t\tthis._recent = child;\n\t\t\tif (this._timeline) {\n\t\t\t\tthis._uncache(true);\n\t\t\t}\n\t\t\treturn this;\n\t\t};\n\n\t\tp._remove = function(tween, skipDisable) {\n\t\t\tif (tween.timeline === this) {\n\t\t\t\tif (!skipDisable) {\n\t\t\t\t\ttween._enabled(false, true);\n\t\t\t\t}\n\n\t\t\t\tif (tween._prev) {\n\t\t\t\t\ttween._prev._next = tween._next;\n\t\t\t\t} else if (this._first === tween) {\n\t\t\t\t\tthis._first = tween._next;\n\t\t\t\t}\n\t\t\t\tif (tween._next) {\n\t\t\t\t\ttween._next._prev = tween._prev;\n\t\t\t\t} else if (this._last === tween) {\n\t\t\t\t\tthis._last = tween._prev;\n\t\t\t\t}\n\t\t\t\ttween._next = tween._prev = tween.timeline = null;\n\t\t\t\tif (tween === this._recent) {\n\t\t\t\t\tthis._recent = this._last;\n\t\t\t\t}\n\n\t\t\t\tif (this._timeline) {\n\t\t\t\t\tthis._uncache(true);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn this;\n\t\t};\n\n\t\tp.render = function(time, suppressEvents, force) {\n\t\t\tvar tween = this._first,\n\t\t\t\tnext;\n\t\t\tthis._totalTime = this._time = this._rawPrevTime = time;\n\t\t\twhile (tween) {\n\t\t\t\tnext = tween._next; //record it here because the value could change after rendering...\n\t\t\t\tif (tween._active || (time >= tween._startTime && !tween._paused && !tween._gc)) {\n\t\t\t\t\tif (!tween._reversed) {\n\t\t\t\t\t\ttween.render((time - tween._startTime) * tween._timeScale, suppressEvents, force);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttween.render(((!tween._dirty) ? tween._totalDuration : tween.totalDuration()) - ((time - tween._startTime) * tween._timeScale), suppressEvents, force);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttween = next;\n\t\t\t}\n\t\t};\n\n\t\tp.rawTime = function() {\n\t\t\tif (!_tickerActive) {\n\t\t\t\t_ticker.wake();\n\t\t\t}\n\t\t\treturn this._totalTime;\n\t\t};\n\n/*\n * ----------------------------------------------------------------\n * TweenLite\n * ----------------------------------------------------------------\n */\n\t\tvar TweenLite = _class(\"TweenLite\", function(target, duration, vars) {\n\t\t\t\tAnimation.call(this, duration, vars);\n\t\t\t\tthis.render = TweenLite.prototype.render; //speed optimization (avoid prototype lookup on this \"hot\" method)\n\n\t\t\t\tif (target == null) {\n\t\t\t\t\tthrow \"Cannot tween a null target.\";\n\t\t\t\t}\n\n\t\t\t\tthis.target = target = (typeof(target) !== \"string\") ? target : TweenLite.selector(target) || target;\n\n\t\t\t\tvar isSelector = (target.jquery || (target.length && target !== window && target[0] && (target[0] === window || (target[0].nodeType && target[0].style && !target.nodeType)))),\n\t\t\t\t\toverwrite = this.vars.overwrite,\n\t\t\t\t\ti, targ, targets;\n\n\t\t\t\tthis._overwrite = overwrite = (overwrite == null) ? _overwriteLookup[TweenLite.defaultOverwrite] : (typeof(overwrite) === \"number\") ? overwrite >> 0 : _overwriteLookup[overwrite];\n\n\t\t\t\tif ((isSelector || target instanceof Array || (target.push && _isArray(target))) && typeof(target[0]) !== \"number\") {\n\t\t\t\t\tthis._targets = targets = _slice(target); //don't use Array.prototype.slice.call(target, 0) because that doesn't work in IE8 with a NodeList that's returned by querySelectorAll()\n\t\t\t\t\tthis._propLookup = [];\n\t\t\t\t\tthis._siblings = [];\n\t\t\t\t\tfor (i = 0; i < targets.length; i++) {\n\t\t\t\t\t\ttarg = targets[i];\n\t\t\t\t\t\tif (!targ) {\n\t\t\t\t\t\t\ttargets.splice(i--, 1);\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t} else if (typeof(targ) === \"string\") {\n\t\t\t\t\t\t\ttarg = targets[i--] = TweenLite.selector(targ); //in case it's an array of strings\n\t\t\t\t\t\t\tif (typeof(targ) === \"string\") {\n\t\t\t\t\t\t\t\ttargets.splice(i+1, 1); //to avoid an endless loop (can't imagine why the selector would return a string, but just in case)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t} else if (targ.length && targ !== window && targ[0] && (targ[0] === window || (targ[0].nodeType && targ[0].style && !targ.nodeType))) { //in case the user is passing in an array of selector objects (like jQuery objects), we need to check one more level and pull things out if necessary. Also note that elements pass all the criteria regarding length and the first child having style, so we must also check to ensure the target isn't an HTML node itself.\n\t\t\t\t\t\t\ttargets.splice(i--, 1);\n\t\t\t\t\t\t\tthis._targets = targets = targets.concat(_slice(targ));\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._siblings[i] = _register(targ, this, false);\n\t\t\t\t\t\tif (overwrite === 1) if (this._siblings[i].length > 1) {\n\t\t\t\t\t\t\t_applyOverwrite(targ, this, null, 1, this._siblings[i]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\t\t\t\t\tthis._propLookup = {};\n\t\t\t\t\tthis._siblings = _register(target, this, false);\n\t\t\t\t\tif (overwrite === 1) if (this._siblings.length > 1) {\n\t\t\t\t\t\t_applyOverwrite(target, this, null, 1, this._siblings);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.vars.immediateRender || (duration === 0 && this._delay === 0 && this.vars.immediateRender !== false)) {\n\t\t\t\t\tthis._time = -_tinyNum; //forces a render without having to set the render() \"force\" parameter to true because we want to allow lazying by default (using the \"force\" parameter always forces an immediate full render)\n\t\t\t\t\tthis.render(Math.min(0, -this._delay)); //in case delay is negative\n\t\t\t\t}\n\t\t\t}, true),\n\t\t\t_isSelector = function(v) {\n\t\t\t\treturn (v && v.length && v !== window && v[0] && (v[0] === window || (v[0].nodeType && v[0].style && !v.nodeType))); //we cannot check \"nodeType\" if the target is window from within an iframe, otherwise it will trigger a security error in some browsers like Firefox.\n\t\t\t},\n\t\t\t_autoCSS = function(vars, target) {\n\t\t\t\tvar css = {},\n\t\t\t\t\tp;\n\t\t\t\tfor (p in vars) {\n\t\t\t\t\tif (!_reservedProps[p] && (!(p in target) || p === \"transform\" || p === \"x\" || p === \"y\" || p === \"width\" || p === \"height\" || p === \"className\" || p === \"border\") && (!_plugins[p] || (_plugins[p] && _plugins[p]._autoCSS))) { //note: elements contain read-only \"x\" and \"y\" properties. We should also prioritize editing css width/height rather than the element's properties.\n\t\t\t\t\t\tcss[p] = vars[p];\n\t\t\t\t\t\tdelete vars[p];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tvars.css = css;\n\t\t\t};\n\n\t\tp = TweenLite.prototype = new Animation();\n\t\tp.constructor = TweenLite;\n\t\tp.kill()._gc = false;\n\n//----TweenLite defaults, overwrite management, and root updates ----------------------------------------------------\n\n\t\tp.ratio = 0;\n\t\tp._firstPT = p._targets = p._overwrittenProps = p._startAt = null;\n\t\tp._notifyPluginsOfEnabled = p._lazy = false;\n\n\t\tTweenLite.version = \"1.20.4\";\n\t\tTweenLite.defaultEase = p._ease = new Ease(null, null, 1, 1);\n\t\tTweenLite.defaultOverwrite = \"auto\";\n\t\tTweenLite.ticker = _ticker;\n\t\tTweenLite.autoSleep = 120;\n\t\tTweenLite.lagSmoothing = function(threshold, adjustedLag) {\n\t\t\t_ticker.lagSmoothing(threshold, adjustedLag);\n\t\t};\n\n\t\tTweenLite.selector = window.$ || window.jQuery || function(e) {\n\t\t\tvar selector = window.$ || window.jQuery;\n\t\t\tif (selector) {\n\t\t\t\tTweenLite.selector = selector;\n\t\t\t\treturn selector(e);\n\t\t\t}\n\t\t\treturn (typeof(_doc) === \"undefined\") ? e : (_doc.querySelectorAll ? _doc.querySelectorAll(e) : _doc.getElementById((e.charAt(0) === \"#\") ? e.substr(1) : e));\n\t\t};\n\n\t\tvar _lazyTweens = [],\n\t\t\t_lazyLookup = {},\n\t\t\t_numbersExp = /(?:(-|-=|\\+=)?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[0-9]/ig,\n\t\t\t_relExp = /[\\+-]=-?[\\.\\d]/,\n\t\t\t//_nonNumbersExp = /(?:([\\-+](?!(\\d|=)))|[^\\d\\-+=e]|(e(?![\\-+][\\d])))+/ig,\n\t\t\t_setRatio = function(v) {\n\t\t\t\tvar pt = this._firstPT,\n\t\t\t\t\tmin = 0.000001,\n\t\t\t\t\tval;\n\t\t\t\twhile (pt) {\n\t\t\t\t\tval = !pt.blob ? pt.c * v + pt.s : (v === 1 && this.end != null) ? this.end : v ? this.join(\"\") : this.start;\n\t\t\t\t\tif (pt.m) {\n\t\t\t\t\t\tval = pt.m(val, this._target || pt.t);\n\t\t\t\t\t} else if (val < min) if (val > -min && !pt.blob) { //prevents issues with converting very small numbers to strings in the browser\n\t\t\t\t\t\tval = 0;\n\t\t\t\t\t}\n\t\t\t\t\tif (!pt.f) {\n\t\t\t\t\t\tpt.t[pt.p] = val;\n\t\t\t\t\t} else if (pt.fp) {\n\t\t\t\t\t\tpt.t[pt.p](pt.fp, val);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpt.t[pt.p](val);\n\t\t\t\t\t}\n\t\t\t\t\tpt = pt._next;\n\t\t\t\t}\n\t\t\t},\n\t\t\t//compares two strings (start/end), finds the numbers that are different and spits back an array representing the whole value but with the changing values isolated as elements. For example, \"rgb(0,0,0)\" and \"rgb(100,50,0)\" would become [\"rgb(\", 0, \",\", 50, \",0)\"]. Notice it merges the parts that are identical (performance optimization). The array also has a linked list of PropTweens attached starting with _firstPT that contain the tweening data (t, p, s, c, f, etc.). It also stores the starting value as a \"start\" property so that we can revert to it if/when necessary, like when a tween rewinds fully. If the quantity of numbers differs between the start and end, it will always prioritize the end value(s). The pt parameter is optional - it's for a PropTween that will be appended to the end of the linked list and is typically for actually setting the value after all of the elements have been updated (with array.join(\"\")).\n\t\t\t_blobDif = function(start, end, filter, pt) {\n\t\t\t\tvar a = [],\n\t\t\t\t\tcharIndex = 0,\n\t\t\t\t\ts = \"\",\n\t\t\t\t\tcolor = 0,\n\t\t\t\t\tstartNums, endNums, num, i, l, nonNumbers, currentNum;\n\t\t\t\ta.start = start;\n\t\t\t\ta.end = end;\n\t\t\t\tstart = a[0] = start + \"\"; //ensure values are strings\n\t\t\t\tend = a[1] = end + \"\";\n\t\t\t\tif (filter) {\n\t\t\t\t\tfilter(a); //pass an array with the starting and ending values and let the filter do whatever it needs to the values.\n\t\t\t\t\tstart = a[0];\n\t\t\t\t\tend = a[1];\n\t\t\t\t}\n\t\t\t\ta.length = 0;\n\t\t\t\tstartNums = start.match(_numbersExp) || [];\n\t\t\t\tendNums = end.match(_numbersExp) || [];\n\t\t\t\tif (pt) {\n\t\t\t\t\tpt._next = null;\n\t\t\t\t\tpt.blob = 1;\n\t\t\t\t\ta._firstPT = a._applyPT = pt; //apply last in the linked list (which means inserting it first)\n\t\t\t\t}\n\t\t\t\tl = endNums.length;\n\t\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\t\tcurrentNum = endNums[i];\n\t\t\t\t\tnonNumbers = end.substr(charIndex, end.indexOf(currentNum, charIndex)-charIndex);\n\t\t\t\t\ts += (nonNumbers || !i) ? nonNumbers : \",\"; //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n\t\t\t\t\tcharIndex += nonNumbers.length;\n\t\t\t\t\tif (color) { //sense rgba() values and round them.\n\t\t\t\t\t\tcolor = (color + 1) % 5;\n\t\t\t\t\t} else if (nonNumbers.substr(-5) === \"rgba(\") {\n\t\t\t\t\t\tcolor = 1;\n\t\t\t\t\t}\n\t\t\t\t\tif (currentNum === startNums[i] || startNums.length <= i) {\n\t\t\t\t\t\ts += currentNum;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (s) {\n\t\t\t\t\t\t\ta.push(s);\n\t\t\t\t\t\t\ts = \"\";\n\t\t\t\t\t\t}\n\t\t\t\t\t\tnum = parseFloat(startNums[i]);\n\t\t\t\t\t\ta.push(num);\n\t\t\t\t\t\ta._firstPT = {_next: a._firstPT, t:a, p: a.length-1, s:num, c:((currentNum.charAt(1) === \"=\") ? parseInt(currentNum.charAt(0) + \"1\", 10) * parseFloat(currentNum.substr(2)) : (parseFloat(currentNum) - num)) || 0, f:0, m:(color && color < 4) ? Math.round : 0};\n\t\t\t\t\t\t//note: we don't set _prev because we'll never need to remove individual PropTweens from this list.\n\t\t\t\t\t}\n\t\t\t\t\tcharIndex += currentNum.length;\n\t\t\t\t}\n\t\t\t\ts += end.substr(charIndex);\n\t\t\t\tif (s) {\n\t\t\t\t\ta.push(s);\n\t\t\t\t}\n\t\t\t\ta.setRatio = _setRatio;\n\t\t\t\tif (_relExp.test(end)) { //if the end string contains relative values, delete it so that on the final render (in _setRatio()), we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n\t\t\t\t\ta.end = null;\n\t\t\t\t}\n\t\t\t\treturn a;\n\t\t\t},\n\t\t\t//note: \"funcParam\" is only necessary for function-based getters/setters that require an extra parameter like getAttribute(\"width\") and setAttribute(\"width\", value). In this example, funcParam would be \"width\". Used by AttrPlugin for example.\n\t\t\t_addPropTween = function(target, prop, start, end, overwriteProp, mod, funcParam, stringFilter, index) {\n\t\t\t\tif (typeof(end) === \"function\") {\n\t\t\t\t\tend = end(index || 0, target);\n\t\t\t\t}\n\t\t\t\tvar type = typeof(target[prop]),\n\t\t\t\t\tgetterName = (type !== \"function\") ? \"\" : ((prop.indexOf(\"set\") || typeof(target[\"get\" + prop.substr(3)]) !== \"function\") ? prop : \"get\" + prop.substr(3)),\n\t\t\t\t\ts = (start !== \"get\") ? start : !getterName ? target[prop] : funcParam ? target[getterName](funcParam) : target[getterName](),\n\t\t\t\t\tisRelative = (typeof(end) === \"string\" && end.charAt(1) === \"=\"),\n\t\t\t\t\tpt = {t:target, p:prop, s:s, f:(type === \"function\"), pg:0, n:overwriteProp || prop, m:(!mod ? 0 : (typeof(mod) === \"function\") ? mod : Math.round), pr:0, c:isRelative ? parseInt(end.charAt(0) + \"1\", 10) * parseFloat(end.substr(2)) : (parseFloat(end) - s) || 0},\n\t\t\t\t\tblob;\n\n\t\t\t\tif (typeof(s) !== \"number\" || (typeof(end) !== \"number\" && !isRelative)) {\n\t\t\t\t\tif (funcParam || isNaN(s) || (!isRelative && isNaN(end)) || typeof(s) === \"boolean\" || typeof(end) === \"boolean\") {\n\t\t\t\t\t\t//a blob (string that has multiple numbers in it)\n\t\t\t\t\t\tpt.fp = funcParam;\n\t\t\t\t\t\tblob = _blobDif(s, (isRelative ? (parseFloat(pt.s) + pt.c) + (pt.s + \"\").replace(/[0-9\\-\\.]/g, \"\") : end), stringFilter || TweenLite.defaultStringFilter, pt);\n\t\t\t\t\t\tpt = {t: blob, p: \"setRatio\", s: 0, c: 1, f: 2, pg: 0, n: overwriteProp || prop, pr: 0, m: 0}; //\"2\" indicates it's a Blob property tween. Needed for RoundPropsPlugin for example.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpt.s = parseFloat(s);\n\t\t\t\t\t\tif (!isRelative) {\n\t\t\t\t\t\t\tpt.c = (parseFloat(end) - pt.s) || 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pt.c) { //only add it to the linked list if there's a change.\n\t\t\t\t\tif ((pt._next = this._firstPT)) {\n\t\t\t\t\t\tpt._next._prev = pt;\n\t\t\t\t\t}\n\t\t\t\t\tthis._firstPT = pt;\n\t\t\t\t\treturn pt;\n\t\t\t\t}\n\t\t\t},\n\t\t\t_internals = TweenLite._internals = {isArray:_isArray, isSelector:_isSelector, lazyTweens:_lazyTweens, blobDif:_blobDif}, //gives us a way to expose certain private values to other GreenSock classes without contaminating tha main TweenLite object.\n\t\t\t_plugins = TweenLite._plugins = {},\n\t\t\t_tweenLookup = _internals.tweenLookup = {},\n\t\t\t_tweenLookupNum = 0,\n\t\t\t_reservedProps = _internals.reservedProps = {ease:1, delay:1, overwrite:1, onComplete:1, onCompleteParams:1, onCompleteScope:1, useFrames:1, runBackwards:1, startAt:1, onUpdate:1, onUpdateParams:1, onUpdateScope:1, onStart:1, onStartParams:1, onStartScope:1, onReverseComplete:1, onReverseCompleteParams:1, onReverseCompleteScope:1, onRepeat:1, onRepeatParams:1, onRepeatScope:1, easeParams:1, yoyo:1, immediateRender:1, repeat:1, repeatDelay:1, data:1, paused:1, reversed:1, autoCSS:1, lazy:1, onOverwrite:1, callbackScope:1, stringFilter:1, id:1, yoyoEase:1},\n\t\t\t_overwriteLookup = {none:0, all:1, auto:2, concurrent:3, allOnStart:4, preexisting:5, \"true\":1, \"false\":0},\n\t\t\t_rootFramesTimeline = Animation._rootFramesTimeline = new SimpleTimeline(),\n\t\t\t_rootTimeline = Animation._rootTimeline = new SimpleTimeline(),\n\t\t\t_nextGCFrame = 30,\n\t\t\t_lazyRender = _internals.lazyRender = function() {\n\t\t\t\tvar i = _lazyTweens.length,\n\t\t\t\t\ttween;\n\t\t\t\t_lazyLookup = {};\n\t\t\t\twhile (--i > -1) {\n\t\t\t\t\ttween = _lazyTweens[i];\n\t\t\t\t\tif (tween && tween._lazy !== false) {\n\t\t\t\t\t\ttween.render(tween._lazy[0], tween._lazy[1], true);\n\t\t\t\t\t\ttween._lazy = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t_lazyTweens.length = 0;\n\t\t\t};\n\n\t\t_rootTimeline._startTime = _ticker.time;\n\t\t_rootFramesTimeline._startTime = _ticker.frame;\n\t\t_rootTimeline._active = _rootFramesTimeline._active = true;\n\t\tsetTimeout(_lazyRender, 1); //on some mobile devices, there isn't a \"tick\" before code runs which means any lazy renders wouldn't run before the next official \"tick\".\n\n\t\tAnimation._updateRoot = TweenLite.render = function() {\n\t\t\t\tvar i, a, p;\n\t\t\t\tif (_lazyTweens.length) { //if code is run outside of the requestAnimationFrame loop, there may be tweens queued AFTER the engine refreshed, so we need to ensure any pending renders occur before we refresh again.\n\t\t\t\t\t_lazyRender();\n\t\t\t\t}\n\t\t\t\t_rootTimeline.render((_ticker.time - _rootTimeline._startTime) * _rootTimeline._timeScale, false, false);\n\t\t\t\t_rootFramesTimeline.render((_ticker.frame - _rootFramesTimeline._startTime) * _rootFramesTimeline._timeScale, false, false);\n\t\t\t\tif (_lazyTweens.length) {\n\t\t\t\t\t_lazyRender();\n\t\t\t\t}\n\t\t\t\tif (_ticker.frame >= _nextGCFrame) { //dump garbage every 120 frames or whatever the user sets TweenLite.autoSleep to\n\t\t\t\t\t_nextGCFrame = _ticker.frame + (parseInt(TweenLite.autoSleep, 10) || 120);\n\t\t\t\t\tfor (p in _tweenLookup) {\n\t\t\t\t\t\ta = _tweenLookup[p].tweens;\n\t\t\t\t\t\ti = a.length;\n\t\t\t\t\t\twhile (--i > -1) {\n\t\t\t\t\t\t\tif (a[i]._gc) {\n\t\t\t\t\t\t\t\ta.splice(i, 1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (a.length === 0) {\n\t\t\t\t\t\t\tdelete _tweenLookup[p];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t//if there are no more tweens in the root timelines, or if they're all paused, make the _timer sleep to reduce load on the CPU slightly\n\t\t\t\t\tp = _rootTimeline._first;\n\t\t\t\t\tif (!p || p._paused) if (TweenLite.autoSleep && !_rootFramesTimeline._first && _ticker._listeners.tick.length === 1) {\n\t\t\t\t\t\twhile (p && p._paused) {\n\t\t\t\t\t\t\tp = p._next;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!p) {\n\t\t\t\t\t\t\t_ticker.sleep();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t_ticker.addEventListener(\"tick\", Animation._updateRoot);\n\n\t\tvar _register = function(target, tween, scrub) {\n\t\t\t\tvar id = target._gsTweenID, a, i;\n\t\t\t\tif (!_tweenLookup[id || (target._gsTweenID = id = \"t\" + (_tweenLookupNum++))]) {\n\t\t\t\t\t_tweenLookup[id] = {target:target, tweens:[]};\n\t\t\t\t}\n\t\t\t\tif (tween) {\n\t\t\t\t\ta = _tweenLookup[id].tweens;\n\t\t\t\t\ta[(i = a.length)] = tween;\n\t\t\t\t\tif (scrub) {\n\t\t\t\t\t\twhile (--i > -1) {\n\t\t\t\t\t\t\tif (a[i] === tween) {\n\t\t\t\t\t\t\t\ta.splice(i, 1);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn _tweenLookup[id].tweens;\n\t\t\t},\n\t\t\t_onOverwrite = function(overwrittenTween, overwritingTween, target, killedProps) {\n\t\t\t\tvar func = overwrittenTween.vars.onOverwrite, r1, r2;\n\t\t\t\tif (func) {\n\t\t\t\t\tr1 = func(overwrittenTween, overwritingTween, target, killedProps);\n\t\t\t\t}\n\t\t\t\tfunc = TweenLite.onOverwrite;\n\t\t\t\tif (func) {\n\t\t\t\t\tr2 = func(overwrittenTween, overwritingTween, target, killedProps);\n\t\t\t\t}\n\t\t\t\treturn (r1 !== false && r2 !== false);\n\t\t\t},\n\t\t\t_applyOverwrite = function(target, tween, props, mode, siblings) {\n\t\t\t\tvar i, changed, curTween, l;\n\t\t\t\tif (mode === 1 || mode >= 4) {\n\t\t\t\t\tl = siblings.length;\n\t\t\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\t\t\tif ((curTween = siblings[i]) !== tween) {\n\t\t\t\t\t\t\tif (!curTween._gc) {\n\t\t\t\t\t\t\t\tif (curTween._kill(null, target, tween)) {\n\t\t\t\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (mode === 5) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn changed;\n\t\t\t\t}\n\t\t\t\t//NOTE: Add 0.0000000001 to overcome floating point errors that can cause the startTime to be VERY slightly off (when a tween's time() is set for example)\n\t\t\t\tvar startTime = tween._startTime + _tinyNum,\n\t\t\t\t\toverlaps = [],\n\t\t\t\t\toCount = 0,\n\t\t\t\t\tzeroDur = (tween._duration === 0),\n\t\t\t\t\tglobalStart;\n\t\t\t\ti = siblings.length;\n\t\t\t\twhile (--i > -1) {\n\t\t\t\t\tif ((curTween = siblings[i]) === tween || curTween._gc || curTween._paused) {\n\t\t\t\t\t\t//ignore\n\t\t\t\t\t} else if (curTween._timeline !== tween._timeline) {\n\t\t\t\t\t\tglobalStart = globalStart || _checkOverlap(tween, 0, zeroDur);\n\t\t\t\t\t\tif (_checkOverlap(curTween, globalStart, zeroDur) === 0) {\n\t\t\t\t\t\t\toverlaps[oCount++] = curTween;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (curTween._startTime <= startTime) if (curTween._startTime + curTween.totalDuration() / curTween._timeScale > startTime) if (!((zeroDur || !curTween._initted) && startTime - curTween._startTime <= 0.0000000002)) {\n\t\t\t\t\t\toverlaps[oCount++] = curTween;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\ti = oCount;\n\t\t\t\twhile (--i > -1) {\n\t\t\t\t\tcurTween = overlaps[i];\n\t\t\t\t\tif (mode === 2) if (curTween._kill(props, target, tween)) {\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t\tif (mode !== 2 || (!curTween._firstPT && curTween._initted)) {\n\t\t\t\t\t\tif (mode !== 2 && !_onOverwrite(curTween, tween)) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (curTween._enabled(false, false)) { //if all property tweens have been overwritten, kill the tween.\n\t\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn changed;\n\t\t\t},\n\t\t\t_checkOverlap = function(tween, reference, zeroDur) {\n\t\t\t\tvar tl = tween._timeline,\n\t\t\t\t\tts = tl._timeScale,\n\t\t\t\t\tt = tween._startTime;\n\t\t\t\twhile (tl._timeline) {\n\t\t\t\t\tt += tl._startTime;\n\t\t\t\t\tts *= tl._timeScale;\n\t\t\t\t\tif (tl._paused) {\n\t\t\t\t\t\treturn -100;\n\t\t\t\t\t}\n\t\t\t\t\ttl = tl._timeline;\n\t\t\t\t}\n\t\t\t\tt /= ts;\n\t\t\t\treturn (t > reference) ? t - reference : ((zeroDur && t === reference) || (!tween._initted && t - reference < 2 * _tinyNum)) ? _tinyNum : ((t += tween.totalDuration() / tween._timeScale / ts) > reference + _tinyNum) ? 0 : t - reference - _tinyNum;\n\t\t\t};\n\n\n//---- TweenLite instance methods -----------------------------------------------------------------------------\n\n\t\tp._init = function() {\n\t\t\tvar v = this.vars,\n\t\t\t\top = this._overwrittenProps,\n\t\t\t\tdur = this._duration,\n\t\t\t\timmediate = !!v.immediateRender,\n\t\t\t\tease = v.ease,\n\t\t\t\ti, initPlugins, pt, p, startVars, l;\n\t\t\tif (v.startAt) {\n\t\t\t\tif (this._startAt) {\n\t\t\t\t\tthis._startAt.render(-1, true); //if we've run a startAt previously (when the tween instantiated), we should revert it so that the values re-instantiate correctly particularly for relative tweens. Without this, a TweenLite.fromTo(obj, 1, {x:\"+=100\"}, {x:\"-=100\"}), for example, would actually jump to +=200 because the startAt would run twice, doubling the relative change.\n\t\t\t\t\tthis._startAt.kill();\n\t\t\t\t}\n\t\t\t\tstartVars = {};\n\t\t\t\tfor (p in v.startAt) { //copy the properties/values into a new object to avoid collisions, like var to = {x:0}, from = {x:500}; timeline.fromTo(e, 1, from, to).fromTo(e, 1, to, from);\n\t\t\t\t\tstartVars[p] = v.startAt[p];\n\t\t\t\t}\n\t\t\t\tstartVars.data = \"isStart\";\n\t\t\t\tstartVars.overwrite = false;\n\t\t\t\tstartVars.immediateRender = true;\n\t\t\t\tstartVars.lazy = (immediate && v.lazy !== false);\n\t\t\t\tstartVars.startAt = startVars.delay = null; //no nesting of startAt objects allowed (otherwise it could cause an infinite loop).\n\t\t\t\tstartVars.onUpdate = v.onUpdate;\n\t\t\t\tstartVars.onUpdateParams = v.onUpdateParams;\n\t\t\t\tstartVars.onUpdateScope = v.onUpdateScope || v.callbackScope || this;\n\t\t\t\tthis._startAt = TweenLite.to(this.target, 0, startVars);\n\t\t\t\tif (immediate) {\n\t\t\t\t\tif (this._time > 0) {\n\t\t\t\t\t\tthis._startAt = null; //tweens that render immediately (like most from() and fromTo() tweens) shouldn't revert when their parent timeline's playhead goes backward past the startTime because the initial render could have happened anytime and it shouldn't be directly correlated to this tween's startTime. Imagine setting up a complex animation where the beginning states of various objects are rendered immediately but the tween doesn't happen for quite some time - if we revert to the starting values as soon as the playhead goes backward past the tween's startTime, it will throw things off visually. Reversion should only happen in TimelineLite/Max instances where immediateRender was false (which is the default in the convenience methods like from()).\n\t\t\t\t\t} else if (dur !== 0) {\n\t\t\t\t\t\treturn; //we skip initialization here so that overwriting doesn't occur until the tween actually begins. Otherwise, if you create several immediateRender:true tweens of the same target/properties to drop into a TimelineLite or TimelineMax, the last one created would overwrite the first ones because they didn't get placed into the timeline yet before the first render occurs and kicks in overwriting.\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (v.runBackwards && dur !== 0) {\n\t\t\t\t//from() tweens must be handled uniquely: their beginning values must be rendered but we don't want overwriting to occur yet (when time is still 0). Wait until the tween actually begins before doing all the routines like overwriting. At that time, we should render at the END of the tween to ensure that things initialize correctly (remember, from() tweens go backwards)\n\t\t\t\tif (this._startAt) {\n\t\t\t\t\tthis._startAt.render(-1, true);\n\t\t\t\t\tthis._startAt.kill();\n\t\t\t\t\tthis._startAt = null;\n\t\t\t\t} else {\n\t\t\t\t\tif (this._time !== 0) { //in rare cases (like if a from() tween runs and then is invalidate()-ed), immediateRender could be true but the initial forced-render gets skipped, so there's no need to force the render in this context when the _time is greater than 0\n\t\t\t\t\t\timmediate = false;\n\t\t\t\t\t}\n\t\t\t\t\tpt = {};\n\t\t\t\t\tfor (p in v) { //copy props into a new object and skip any reserved props, otherwise onComplete or onUpdate or onStart could fire. We should, however, permit autoCSS to go through.\n\t\t\t\t\t\tif (!_reservedProps[p] || p === \"autoCSS\") {\n\t\t\t\t\t\t\tpt[p] = v[p];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpt.overwrite = 0;\n\t\t\t\t\tpt.data = \"isFromStart\"; //we tag the tween with as \"isFromStart\" so that if [inside a plugin] we need to only do something at the very END of a tween, we have a way of identifying this tween as merely the one that's setting the beginning values for a \"from()\" tween. For example, clearProps in CSSPlugin should only get applied at the very END of a tween and without this tag, from(...{height:100, clearProps:\"height\", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in.\n\t\t\t\t\tpt.lazy = (immediate && v.lazy !== false);\n\t\t\t\t\tpt.immediateRender = immediate; //zero-duration tweens render immediately by default, but if we're not specifically instructed to render this tween immediately, we should skip this and merely _init() to record the starting values (rendering them immediately would push them to completion which is wasteful in that case - we'd have to render(-1) immediately after)\n\t\t\t\t\tthis._startAt = TweenLite.to(this.target, 0, pt);\n\t\t\t\t\tif (!immediate) {\n\t\t\t\t\t\tthis._startAt._init(); //ensures that the initial values are recorded\n\t\t\t\t\t\tthis._startAt._enabled(false); //no need to have the tween render on the next cycle. Disable it because we'll always manually control the renders of the _startAt tween.\n\t\t\t\t\t\tif (this.vars.immediateRender) {\n\t\t\t\t\t\t\tthis._startAt = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (this._time === 0) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._ease = ease = (!ease) ? TweenLite.defaultEase : (ease instanceof Ease) ? ease : (typeof(ease) === \"function\") ? new Ease(ease, v.easeParams) : _easeMap[ease] || TweenLite.defaultEase;\n\t\t\tif (v.easeParams instanceof Array && ease.config) {\n\t\t\t\tthis._ease = ease.config.apply(ease, v.easeParams);\n\t\t\t}\n\t\t\tthis._easeType = this._ease._type;\n\t\t\tthis._easePower = this._ease._power;\n\t\t\tthis._firstPT = null;\n\n\t\t\tif (this._targets) {\n\t\t\t\tl = this._targets.length;\n\t\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\t\tif ( this._initProps( this._targets[i], (this._propLookup[i] = {}), this._siblings[i], (op ? op[i] : null), i) ) {\n\t\t\t\t\t\tinitPlugins = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tinitPlugins = this._initProps(this.target, this._propLookup, this._siblings, op, 0);\n\t\t\t}\n\n\t\t\tif (initPlugins) {\n\t\t\t\tTweenLite._onPluginEvent(\"_onInitAllProps\", this); //reorders the array in order of priority. Uses a static TweenPlugin method in order to minimize file size in TweenLite\n\t\t\t}\n\t\t\tif (op) if (!this._firstPT) if (typeof(this.target) !== \"function\") { //if all tweening properties have been overwritten, kill the tween. If the target is a function, it's probably a delayedCall so let it live.\n\t\t\t\tthis._enabled(false, false);\n\t\t\t}\n\t\t\tif (v.runBackwards) {\n\t\t\t\tpt = this._firstPT;\n\t\t\t\twhile (pt) {\n\t\t\t\t\tpt.s += pt.c;\n\t\t\t\t\tpt.c = -pt.c;\n\t\t\t\t\tpt = pt._next;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._onUpdate = v.onUpdate;\n\t\t\tthis._initted = true;\n\t\t};\n\n\t\tp._initProps = function(target, propLookup, siblings, overwrittenProps, index) {\n\t\t\tvar p, i, initPlugins, plugin, pt, v;\n\t\t\tif (target == null) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (_lazyLookup[target._gsTweenID]) {\n\t\t\t\t_lazyRender(); //if other tweens of the same target have recently initted but haven't rendered yet, we've got to force the render so that the starting values are correct (imagine populating a timeline with a bunch of sequential tweens and then jumping to the end)\n\t\t\t}\n\n\t\t\tif (!this.vars.css) if (target.style) if (target !== window && target.nodeType) if (_plugins.css) if (this.vars.autoCSS !== false) { //it's so common to use TweenLite/Max to animate the css of DOM elements, we assume that if the target is a DOM element, that's what is intended (a convenience so that users don't have to wrap things in css:{}, although we still recommend it for a slight performance boost and better specificity). Note: we cannot check \"nodeType\" on the window inside an iframe.\n\t\t\t\t_autoCSS(this.vars, target);\n\t\t\t}\n\t\t\tfor (p in this.vars) {\n\t\t\t\tv = this.vars[p];\n\t\t\t\tif (_reservedProps[p]) {\n\t\t\t\t\tif (v) if ((v instanceof Array) || (v.push && _isArray(v))) if (v.join(\"\").indexOf(\"{self}\") !== -1) {\n\t\t\t\t\t\tthis.vars[p] = v = this._swapSelfInParams(v, this);\n\t\t\t\t\t}\n\n\t\t\t\t} else if (_plugins[p] && (plugin = new _plugins[p]())._onInitTween(target, this.vars[p], this, index)) {\n\n\t\t\t\t\t//t - target \t\t[object]\n\t\t\t\t\t//p - property \t\t[string]\n\t\t\t\t\t//s - start\t\t\t[number]\n\t\t\t\t\t//c - change\t\t[number]\n\t\t\t\t\t//f - isFunction\t[boolean]\n\t\t\t\t\t//n - name\t\t\t[string]\n\t\t\t\t\t//pg - isPlugin \t[boolean]\n\t\t\t\t\t//pr - priority\t\t[number]\n\t\t\t\t\t//m - mod [function | 0]\n\t\t\t\t\tthis._firstPT = pt = {_next:this._firstPT, t:plugin, p:\"setRatio\", s:0, c:1, f:1, n:p, pg:1, pr:plugin._priority, m:0};\n\t\t\t\t\ti = plugin._overwriteProps.length;\n\t\t\t\t\twhile (--i > -1) {\n\t\t\t\t\t\tpropLookup[plugin._overwriteProps[i]] = this._firstPT;\n\t\t\t\t\t}\n\t\t\t\t\tif (plugin._priority || plugin._onInitAllProps) {\n\t\t\t\t\t\tinitPlugins = true;\n\t\t\t\t\t}\n\t\t\t\t\tif (plugin._onDisable || plugin._onEnable) {\n\t\t\t\t\t\tthis._notifyPluginsOfEnabled = true;\n\t\t\t\t\t}\n\t\t\t\t\tif (pt._next) {\n\t\t\t\t\t\tpt._next._prev = pt;\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\t\t\t\t\tpropLookup[p] = _addPropTween.call(this, target, p, \"get\", v, p, 0, null, this.vars.stringFilter, index);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (overwrittenProps) if (this._kill(overwrittenProps, target)) { //another tween may have tried to overwrite properties of this tween before init() was called (like if two tweens start at the same time, the one created second will run first)\n\t\t\t\treturn this._initProps(target, propLookup, siblings, overwrittenProps, index);\n\t\t\t}\n\t\t\tif (this._overwrite > 1) if (this._firstPT) if (siblings.length > 1) if (_applyOverwrite(target, this, propLookup, this._overwrite, siblings)) {\n\t\t\t\tthis._kill(propLookup, target);\n\t\t\t\treturn this._initProps(target, propLookup, siblings, overwrittenProps, index);\n\t\t\t}\n\t\t\tif (this._firstPT) if ((this.vars.lazy !== false && this._duration) || (this.vars.lazy && !this._duration)) { //zero duration tweens don't lazy render by default; everything else does.\n\t\t\t\t_lazyLookup[target._gsTweenID] = true;\n\t\t\t}\n\t\t\treturn initPlugins;\n\t\t};\n\n\t\tp.render = function(time, suppressEvents, force) {\n\t\t\tvar prevTime = this._time,\n\t\t\t\tduration = this._duration,\n\t\t\t\tprevRawPrevTime = this._rawPrevTime,\n\t\t\t\tisComplete, callback, pt, rawPrevTime;\n\t\t\tif (time >= duration - 0.0000001 && time >= 0) { //to work around occasional floating point math artifacts.\n\t\t\t\tthis._totalTime = this._time = duration;\n\t\t\t\tthis.ratio = this._ease._calcEnd ? this._ease.getRatio(1) : 1;\n\t\t\t\tif (!this._reversed ) {\n\t\t\t\t\tisComplete = true;\n\t\t\t\t\tcallback = \"onComplete\";\n\t\t\t\t\tforce = (force || this._timeline.autoRemoveChildren); //otherwise, if the animation is unpaused/activated after it's already finished, it doesn't get removed from the parent timeline.\n\t\t\t\t}\n\t\t\t\tif (duration === 0) if (this._initted || !this.vars.lazy || force) { //zero-duration tweens are tricky because we must discern the momentum/direction of time in order to determine whether the starting values should be rendered or the ending values. If the \"playhead\" of its timeline goes past the zero-duration tween in the forward direction or lands directly on it, the end values should be rendered, but if the timeline's \"playhead\" moves past it in the backward direction (from a postitive time to a negative time), the starting values must be rendered.\n\t\t\t\t\tif (this._startTime === this._timeline._duration) { //if a zero-duration tween is at the VERY end of a timeline and that timeline renders at its end, it will typically add a tiny bit of cushion to the render time to prevent rounding errors from getting in the way of tweens rendering their VERY end. If we then reverse() that timeline, the zero-duration tween will trigger its onReverseComplete even though technically the playhead didn't pass over it again. It's a very specific edge case we must accommodate.\n\t\t\t\t\t\ttime = 0;\n\t\t\t\t\t}\n\t\t\t\t\tif (prevRawPrevTime < 0 || (time <= 0 && time >= -0.0000001) || (prevRawPrevTime === _tinyNum && this.data !== \"isPause\")) if (prevRawPrevTime !== time) { //note: when this.data is \"isPause\", it's a callback added by addPause() on a timeline that we should not be triggered when LEAVING its exact start time. In other words, tl.addPause(1).play(1) shouldn't pause.\n\t\t\t\t\t\tforce = true;\n\t\t\t\t\t\tif (prevRawPrevTime > _tinyNum) {\n\t\t\t\t\t\t\tcallback = \"onReverseComplete\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis._rawPrevTime = rawPrevTime = (!suppressEvents || time || prevRawPrevTime === time) ? time : _tinyNum; //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect. We set the _rawPrevTime to be a precise tiny number to indicate this scenario rather than using another property/variable which would increase memory usage. This technique is less readable, but more efficient.\n\t\t\t\t}\n\n\t\t\t} else if (time < 0.0000001) { //to work around occasional floating point math artifacts, round super small values to 0.\n\t\t\t\tthis._totalTime = this._time = 0;\n\t\t\t\tthis.ratio = this._ease._calcEnd ? this._ease.getRatio(0) : 0;\n\t\t\t\tif (prevTime !== 0 || (duration === 0 && prevRawPrevTime > 0)) {\n\t\t\t\t\tcallback = \"onReverseComplete\";\n\t\t\t\t\tisComplete = this._reversed;\n\t\t\t\t}\n\t\t\t\tif (time < 0) {\n\t\t\t\t\tthis._active = false;\n\t\t\t\t\tif (duration === 0) if (this._initted || !this.vars.lazy || force) { //zero-duration tweens are tricky because we must discern the momentum/direction of time in order to determine whether the starting values should be rendered or the ending values. If the \"playhead\" of its timeline goes past the zero-duration tween in the forward direction or lands directly on it, the end values should be rendered, but if the timeline's \"playhead\" moves past it in the backward direction (from a postitive time to a negative time), the starting values must be rendered.\n\t\t\t\t\t\tif (prevRawPrevTime >= 0 && !(prevRawPrevTime === _tinyNum && this.data === \"isPause\")) {\n\t\t\t\t\t\t\tforce = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._rawPrevTime = rawPrevTime = (!suppressEvents || time || prevRawPrevTime === time) ? time : _tinyNum; //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect. We set the _rawPrevTime to be a precise tiny number to indicate this scenario rather than using another property/variable which would increase memory usage. This technique is less readable, but more efficient.\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!this._initted || (this._startAt && this._startAt.progress())) { //if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately. Also, we check progress() because if startAt has already rendered at its end, we should force a render at its beginning. Otherwise, if you put the playhead directly on top of where a fromTo({immediateRender:false}) starts, and then move it backwards, the from() won't revert its values.\n\t\t\t\t\tforce = true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis._totalTime = this._time = time;\n\n\t\t\t\tif (this._easeType) {\n\t\t\t\t\tvar r = time / duration, type = this._easeType, pow = this._easePower;\n\t\t\t\t\tif (type === 1 || (type === 3 && r >= 0.5)) {\n\t\t\t\t\t\tr = 1 - r;\n\t\t\t\t\t}\n\t\t\t\t\tif (type === 3) {\n\t\t\t\t\t\tr *= 2;\n\t\t\t\t\t}\n\t\t\t\t\tif (pow === 1) {\n\t\t\t\t\t\tr *= r;\n\t\t\t\t\t} else if (pow === 2) {\n\t\t\t\t\t\tr *= r * r;\n\t\t\t\t\t} else if (pow === 3) {\n\t\t\t\t\t\tr *= r * r * r;\n\t\t\t\t\t} else if (pow === 4) {\n\t\t\t\t\t\tr *= r * r * r * r;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (type === 1) {\n\t\t\t\t\t\tthis.ratio = 1 - r;\n\t\t\t\t\t} else if (type === 2) {\n\t\t\t\t\t\tthis.ratio = r;\n\t\t\t\t\t} else if (time / duration < 0.5) {\n\t\t\t\t\t\tthis.ratio = r / 2;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.ratio = 1 - (r / 2);\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\t\t\t\t\tthis.ratio = this._ease.getRatio(time / duration);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this._time === prevTime && !force) {\n\t\t\t\treturn;\n\t\t\t} else if (!this._initted) {\n\t\t\t\tthis._init();\n\t\t\t\tif (!this._initted || this._gc) { //immediateRender tweens typically won't initialize until the playhead advances (_time is greater than 0) in order to ensure that overwriting occurs properly. Also, if all of the tweening properties have been overwritten (which would cause _gc to be true, as set in _init()), we shouldn't continue otherwise an onStart callback could be called for example.\n\t\t\t\t\treturn;\n\t\t\t\t} else if (!force && this._firstPT && ((this.vars.lazy !== false && this._duration) || (this.vars.lazy && !this._duration))) {\n\t\t\t\t\tthis._time = this._totalTime = prevTime;\n\t\t\t\t\tthis._rawPrevTime = prevRawPrevTime;\n\t\t\t\t\t_lazyTweens.push(this);\n\t\t\t\t\tthis._lazy = [time, suppressEvents];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t//_ease is initially set to defaultEase, so now that init() has run, _ease is set properly and we need to recalculate the ratio. Overall this is faster than using conditional logic earlier in the method to avoid having to set ratio twice because we only init() once but renderTime() gets called VERY frequently.\n\t\t\t\tif (this._time && !isComplete) {\n\t\t\t\t\tthis.ratio = this._ease.getRatio(this._time / duration);\n\t\t\t\t} else if (isComplete && this._ease._calcEnd) {\n\t\t\t\t\tthis.ratio = this._ease.getRatio((this._time === 0) ? 0 : 1);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this._lazy !== false) { //in case a lazy render is pending, we should flush it because the new render is occurring now (imagine a lazy tween instantiating and then immediately the user calls tween.seek(tween.duration()), skipping to the end - the end render would be forced, and then if we didn't flush the lazy render, it'd fire AFTER the seek(), rendering it at the wrong time.\n\t\t\t\tthis._lazy = false;\n\t\t\t}\n\t\t\tif (!this._active) if (!this._paused && this._time !== prevTime && time >= 0) {\n\t\t\t\tthis._active = true; //so that if the user renders a tween (as opposed to the timeline rendering it), the timeline is forced to re-render and align it with the proper time/frame on the next rendering cycle. Maybe the tween already finished but the user manually re-renders it as halfway done.\n\t\t\t}\n\t\t\tif (prevTime === 0) {\n\t\t\t\tif (this._startAt) {\n\t\t\t\t\tif (time >= 0) {\n\t\t\t\t\t\tthis._startAt.render(time, true, force);\n\t\t\t\t\t} else if (!callback) {\n\t\t\t\t\t\tcallback = \"_dummyGS\"; //if no callback is defined, use a dummy value just so that the condition at the end evaluates as true because _startAt should render AFTER the normal render loop when the time is negative. We could handle this in a more intuitive way, of course, but the render loop is the MOST important thing to optimize, so this technique allows us to avoid adding extra conditional logic in a high-frequency area.\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.vars.onStart) if (this._time !== 0 || duration === 0) if (!suppressEvents) {\n\t\t\t\t\tthis._callback(\"onStart\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tpt = this._firstPT;\n\t\t\twhile (pt) {\n\t\t\t\tif (pt.f) {\n\t\t\t\t\tpt.t[pt.p](pt.c * this.ratio + pt.s);\n\t\t\t\t} else {\n\t\t\t\t\tpt.t[pt.p] = pt.c * this.ratio + pt.s;\n\t\t\t\t}\n\t\t\t\tpt = pt._next;\n\t\t\t}\n\n\t\t\tif (this._onUpdate) {\n\t\t\t\tif (time < 0) if (this._startAt && time !== -0.0001) { //if the tween is positioned at the VERY beginning (_startTime 0) of its parent timeline, it's illegal for the playhead to go back further, so we should not render the recorded startAt values.\n\t\t\t\t\tthis._startAt.render(time, true, force); //note: for performance reasons, we tuck this conditional logic inside less traveled areas (most tweens don't have an onUpdate). We'd just have it at the end before the onComplete, but the values should be updated before any onUpdate is called, so we ALSO put it here and then if it's not called, we do so later near the onComplete.\n\t\t\t\t}\n\t\t\t\tif (!suppressEvents) if (this._time !== prevTime || isComplete || force) {\n\t\t\t\t\tthis._callback(\"onUpdate\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (callback) if (!this._gc || force) { //check _gc because there's a chance that kill() could be called in an onUpdate\n\t\t\t\tif (time < 0 && this._startAt && !this._onUpdate && time !== -0.0001) { //-0.0001 is a special value that we use when looping back to the beginning of a repeated TimelineMax, in which case we shouldn't render the _startAt values.\n\t\t\t\t\tthis._startAt.render(time, true, force);\n\t\t\t\t}\n\t\t\t\tif (isComplete) {\n\t\t\t\t\tif (this._timeline.autoRemoveChildren) {\n\t\t\t\t\t\tthis._enabled(false, false);\n\t\t\t\t\t}\n\t\t\t\t\tthis._active = false;\n\t\t\t\t}\n\t\t\t\tif (!suppressEvents && this.vars[callback]) {\n\t\t\t\t\tthis._callback(callback);\n\t\t\t\t}\n\t\t\t\tif (duration === 0 && this._rawPrevTime === _tinyNum && rawPrevTime !== _tinyNum) { //the onComplete or onReverseComplete could trigger movement of the playhead and for zero-duration tweens (which must discern direction) that land directly back on their start time, we don't want to fire again on the next render. Think of several addPause()'s in a timeline that forces the playhead to a certain spot, but what if it's already paused and another tween is tweening the \"time\" of the timeline? Each time it moves [forward] past that spot, it would move back, and since suppressEvents is true, it'd reset _rawPrevTime to _tinyNum so that when it begins again, the callback would fire (so ultimately it could bounce back and forth during that tween). Again, this is a very uncommon scenario, but possible nonetheless.\n\t\t\t\t\tthis._rawPrevTime = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tp._kill = function(vars, target, overwritingTween) {\n\t\t\tif (vars === \"all\") {\n\t\t\t\tvars = null;\n\t\t\t}\n\t\t\tif (vars == null) if (target == null || target === this.target) {\n\t\t\t\tthis._lazy = false;\n\t\t\t\treturn this._enabled(false, false);\n\t\t\t}\n\t\t\ttarget = (typeof(target) !== \"string\") ? (target || this._targets || this.target) : TweenLite.selector(target) || target;\n\t\t\tvar simultaneousOverwrite = (overwritingTween && this._time && overwritingTween._startTime === this._startTime && this._timeline === overwritingTween._timeline),\n\t\t\t\ti, overwrittenProps, p, pt, propLookup, changed, killProps, record, killed;\n\t\t\tif ((_isArray(target) || _isSelector(target)) && typeof(target[0]) !== \"number\") {\n\t\t\t\ti = target.length;\n\t\t\t\twhile (--i > -1) {\n\t\t\t\t\tif (this._kill(vars, target[i], overwritingTween)) {\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this._targets) {\n\t\t\t\t\ti = this._targets.length;\n\t\t\t\t\twhile (--i > -1) {\n\t\t\t\t\t\tif (target === this._targets[i]) {\n\t\t\t\t\t\t\tpropLookup = this._propLookup[i] || {};\n\t\t\t\t\t\t\tthis._overwrittenProps = this._overwrittenProps || [];\n\t\t\t\t\t\t\toverwrittenProps = this._overwrittenProps[i] = vars ? this._overwrittenProps[i] || {} : \"all\";\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (target !== this.target) {\n\t\t\t\t\treturn false;\n\t\t\t\t} else {\n\t\t\t\t\tpropLookup = this._propLookup;\n\t\t\t\t\toverwrittenProps = this._overwrittenProps = vars ? this._overwrittenProps || {} : \"all\";\n\t\t\t\t}\n\n\t\t\t\tif (propLookup) {\n\t\t\t\t\tkillProps = vars || propLookup;\n\t\t\t\t\trecord = (vars !== overwrittenProps && overwrittenProps !== \"all\" && vars !== propLookup && (typeof(vars) !== \"object\" || !vars._tempKill)); //_tempKill is a super-secret way to delete a particular tweening property but NOT have it remembered as an official overwritten property (like in BezierPlugin)\n\t\t\t\t\tif (overwritingTween && (TweenLite.onOverwrite || this.vars.onOverwrite)) {\n\t\t\t\t\t\tfor (p in killProps) {\n\t\t\t\t\t\t\tif (propLookup[p]) {\n\t\t\t\t\t\t\t\tif (!killed) {\n\t\t\t\t\t\t\t\t\tkilled = [];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tkilled.push(p);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ((killed || !vars) && !_onOverwrite(this, overwritingTween, target, killed)) { //if the onOverwrite returned false, that means the user wants to override the overwriting (cancel it).\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (p in killProps) {\n\t\t\t\t\t\tif ((pt = propLookup[p])) {\n\t\t\t\t\t\t\tif (simultaneousOverwrite) { //if another tween overwrites this one and they both start at exactly the same time, yet this tween has already rendered once (for example, at 0.001) because it's first in the queue, we should revert the values to where they were at 0 so that the starting values aren't contaminated on the overwriting tween.\n\t\t\t\t\t\t\t\tif (pt.f) {\n\t\t\t\t\t\t\t\t\tpt.t[pt.p](pt.s);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tpt.t[pt.p] = pt.s;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (pt.pg && pt.t._kill(killProps)) {\n\t\t\t\t\t\t\t\tchanged = true; //some plugins need to be notified so they can perform cleanup tasks first\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!pt.pg || pt.t._overwriteProps.length === 0) {\n\t\t\t\t\t\t\t\tif (pt._prev) {\n\t\t\t\t\t\t\t\t\tpt._prev._next = pt._next;\n\t\t\t\t\t\t\t\t} else if (pt === this._firstPT) {\n\t\t\t\t\t\t\t\t\tthis._firstPT = pt._next;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (pt._next) {\n\t\t\t\t\t\t\t\t\tpt._next._prev = pt._prev;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tpt._next = pt._prev = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdelete propLookup[p];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (record) {\n\t\t\t\t\t\t\toverwrittenProps[p] = 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (!this._firstPT && this._initted) { //if all tweening properties are killed, kill the tween. Without this line, if there's a tween with multiple targets and then you killTweensOf() each target individually, the tween would technically still remain active and fire its onComplete even though there aren't any more properties tweening.\n\t\t\t\t\t\tthis._enabled(false, false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn changed;\n\t\t};\n\n\t\tp.invalidate = function() {\n\t\t\tif (this._notifyPluginsOfEnabled) {\n\t\t\t\tTweenLite._onPluginEvent(\"_onDisable\", this);\n\t\t\t}\n\t\t\tthis._firstPT = this._overwrittenProps = this._startAt = this._onUpdate = null;\n\t\t\tthis._notifyPluginsOfEnabled = this._active = this._lazy = false;\n\t\t\tthis._propLookup = (this._targets) ? {} : [];\n\t\t\tAnimation.prototype.invalidate.call(this);\n\t\t\tif (this.vars.immediateRender) {\n\t\t\t\tthis._time = -_tinyNum; //forces a render without having to set the render() \"force\" parameter to true because we want to allow lazying by default (using the \"force\" parameter always forces an immediate full render)\n\t\t\t\tthis.render(Math.min(0, -this._delay)); //in case delay is negative.\n\t\t\t}\n\t\t\treturn this;\n\t\t};\n\n\t\tp._enabled = function(enabled, ignoreTimeline) {\n\t\t\tif (!_tickerActive) {\n\t\t\t\t_ticker.wake();\n\t\t\t}\n\t\t\tif (enabled && this._gc) {\n\t\t\t\tvar targets = this._targets,\n\t\t\t\t\ti;\n\t\t\t\tif (targets) {\n\t\t\t\t\ti = targets.length;\n\t\t\t\t\twhile (--i > -1) {\n\t\t\t\t\t\tthis._siblings[i] = _register(targets[i], this, true);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis._siblings = _register(this.target, this, true);\n\t\t\t\t}\n\t\t\t}\n\t\t\tAnimation.prototype._enabled.call(this, enabled, ignoreTimeline);\n\t\t\tif (this._notifyPluginsOfEnabled) if (this._firstPT) {\n\t\t\t\treturn TweenLite._onPluginEvent((enabled ? \"_onEnable\" : \"_onDisable\"), this);\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\n//----TweenLite static methods -----------------------------------------------------\n\n\t\tTweenLite.to = function(target, duration, vars) {\n\t\t\treturn new TweenLite(target, duration, vars);\n\t\t};\n\n\t\tTweenLite.from = function(target, duration, vars) {\n\t\t\tvars.runBackwards = true;\n\t\t\tvars.immediateRender = (vars.immediateRender != false);\n\t\t\treturn new TweenLite(target, duration, vars);\n\t\t};\n\n\t\tTweenLite.fromTo = function(target, duration, fromVars, toVars) {\n\t\t\ttoVars.startAt = fromVars;\n\t\t\ttoVars.immediateRender = (toVars.immediateRender != false && fromVars.immediateRender != false);\n\t\t\treturn new TweenLite(target, duration, toVars);\n\t\t};\n\n\t\tTweenLite.delayedCall = function(delay, callback, params, scope, useFrames) {\n\t\t\treturn new TweenLite(callback, 0, {delay:delay, onComplete:callback, onCompleteParams:params, callbackScope:scope, onReverseComplete:callback, onReverseCompleteParams:params, immediateRender:false, lazy:false, useFrames:useFrames, overwrite:0});\n\t\t};\n\n\t\tTweenLite.set = function(target, vars) {\n\t\t\treturn new TweenLite(target, 0, vars);\n\t\t};\n\n\t\tTweenLite.getTweensOf = function(target, onlyActive) {\n\t\t\tif (target == null) { return []; }\n\t\t\ttarget = (typeof(target) !== \"string\") ? target : TweenLite.selector(target) || target;\n\t\t\tvar i, a, j, t;\n\t\t\tif ((_isArray(target) || _isSelector(target)) && typeof(target[0]) !== \"number\") {\n\t\t\t\ti = target.length;\n\t\t\t\ta = [];\n\t\t\t\twhile (--i > -1) {\n\t\t\t\t\ta = a.concat(TweenLite.getTweensOf(target[i], onlyActive));\n\t\t\t\t}\n\t\t\t\ti = a.length;\n\t\t\t\t//now get rid of any duplicates (tweens of arrays of objects could cause duplicates)\n\t\t\t\twhile (--i > -1) {\n\t\t\t\t\tt = a[i];\n\t\t\t\t\tj = i;\n\t\t\t\t\twhile (--j > -1) {\n\t\t\t\t\t\tif (t === a[j]) {\n\t\t\t\t\t\t\ta.splice(i, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (target._gsTweenID) {\n\t\t\t\ta = _register(target).concat();\n\t\t\t\ti = a.length;\n\t\t\t\twhile (--i > -1) {\n\t\t\t\t\tif (a[i]._gc || (onlyActive && !a[i].isActive())) {\n\t\t\t\t\t\ta.splice(i, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn a || [];\n\t\t};\n\n\t\tTweenLite.killTweensOf = TweenLite.killDelayedCallsTo = function(target, onlyActive, vars) {\n\t\t\tif (typeof(onlyActive) === \"object\") {\n\t\t\t\tvars = onlyActive; //for backwards compatibility (before \"onlyActive\" parameter was inserted)\n\t\t\t\tonlyActive = false;\n\t\t\t}\n\t\t\tvar a = TweenLite.getTweensOf(target, onlyActive),\n\t\t\t\ti = a.length;\n\t\t\twhile (--i > -1) {\n\t\t\t\ta[i]._kill(vars, target);\n\t\t\t}\n\t\t};\n\n\n\n/*\n * ----------------------------------------------------------------\n * TweenPlugin (could easily be split out as a separate file/class, but included for ease of use (so that people don't need to include another script call before loading plugins which is easy to forget)\n * ----------------------------------------------------------------\n */\n\t\tvar TweenPlugin = _class(\"plugins.TweenPlugin\", function(props, priority) {\n\t\t\t\t\tthis._overwriteProps = (props || \"\").split(\",\");\n\t\t\t\t\tthis._propName = this._overwriteProps[0];\n\t\t\t\t\tthis._priority = priority || 0;\n\t\t\t\t\tthis._super = TweenPlugin.prototype;\n\t\t\t\t}, true);\n\n\t\tp = TweenPlugin.prototype;\n\t\tTweenPlugin.version = \"1.19.0\";\n\t\tTweenPlugin.API = 2;\n\t\tp._firstPT = null;\n\t\tp._addTween = _addPropTween;\n\t\tp.setRatio = _setRatio;\n\n\t\tp._kill = function(lookup) {\n\t\t\tvar a = this._overwriteProps,\n\t\t\t\tpt = this._firstPT,\n\t\t\t\ti;\n\t\t\tif (lookup[this._propName] != null) {\n\t\t\t\tthis._overwriteProps = [];\n\t\t\t} else {\n\t\t\t\ti = a.length;\n\t\t\t\twhile (--i > -1) {\n\t\t\t\t\tif (lookup[a[i]] != null) {\n\t\t\t\t\t\ta.splice(i, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\twhile (pt) {\n\t\t\t\tif (lookup[pt.n] != null) {\n\t\t\t\t\tif (pt._next) {\n\t\t\t\t\t\tpt._next._prev = pt._prev;\n\t\t\t\t\t}\n\t\t\t\t\tif (pt._prev) {\n\t\t\t\t\t\tpt._prev._next = pt._next;\n\t\t\t\t\t\tpt._prev = null;\n\t\t\t\t\t} else if (this._firstPT === pt) {\n\t\t\t\t\t\tthis._firstPT = pt._next;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tpt = pt._next;\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t\tp._mod = p._roundProps = function(lookup) {\n\t\t\tvar pt = this._firstPT,\n\t\t\t\tval;\n\t\t\twhile (pt) {\n\t\t\t\tval = lookup[this._propName] || (pt.n != null && lookup[ pt.n.split(this._propName + \"_\").join(\"\") ]);\n\t\t\t\tif (val && typeof(val) === \"function\") { //some properties that are very plugin-specific add a prefix named after the _propName plus an underscore, so we need to ignore that extra stuff here.\n\t\t\t\t\tif (pt.f === 2) {\n\t\t\t\t\t\tpt.t._applyPT.m = val;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpt.m = val;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tpt = pt._next;\n\t\t\t}\n\t\t};\n\n\t\tTweenLite._onPluginEvent = function(type, tween) {\n\t\t\tvar pt = tween._firstPT,\n\t\t\t\tchanged, pt2, first, last, next;\n\t\t\tif (type === \"_onInitAllProps\") {\n\t\t\t\t//sorts the PropTween linked list in order of priority because some plugins need to render earlier/later than others, like MotionBlurPlugin applies its effects after all x/y/alpha tweens have rendered on each frame.\n\t\t\t\twhile (pt) {\n\t\t\t\t\tnext = pt._next;\n\t\t\t\t\tpt2 = first;\n\t\t\t\t\twhile (pt2 && pt2.pr > pt.pr) {\n\t\t\t\t\t\tpt2 = pt2._next;\n\t\t\t\t\t}\n\t\t\t\t\tif ((pt._prev = pt2 ? pt2._prev : last)) {\n\t\t\t\t\t\tpt._prev._next = pt;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfirst = pt;\n\t\t\t\t\t}\n\t\t\t\t\tif ((pt._next = pt2)) {\n\t\t\t\t\t\tpt2._prev = pt;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlast = pt;\n\t\t\t\t\t}\n\t\t\t\t\tpt = next;\n\t\t\t\t}\n\t\t\t\tpt = tween._firstPT = first;\n\t\t\t}\n\t\t\twhile (pt) {\n\t\t\t\tif (pt.pg) if (typeof(pt.t[type]) === \"function\") if (pt.t[type]()) {\n\t\t\t\t\tchanged = true;\n\t\t\t\t}\n\t\t\t\tpt = pt._next;\n\t\t\t}\n\t\t\treturn changed;\n\t\t};\n\n\t\tTweenPlugin.activate = function(plugins) {\n\t\t\tvar i = plugins.length;\n\t\t\twhile (--i > -1) {\n\t\t\t\tif (plugins[i].API === TweenPlugin.API) {\n\t\t\t\t\t_plugins[(new plugins[i]())._propName] = plugins[i];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t};\n\n\t\t//provides a more concise way to define plugins that have no dependencies besides TweenPlugin and TweenLite, wrapping common boilerplate stuff into one function (added in 1.9.0). You don't NEED to use this to define a plugin - the old way still works and can be useful in certain (rare) situations.\n\t\t_gsDefine.plugin = function(config) {\n\t\t\tif (!config || !config.propName || !config.init || !config.API) { throw \"illegal plugin definition.\"; }\n\t\t\tvar propName = config.propName,\n\t\t\t\tpriority = config.priority || 0,\n\t\t\t\toverwriteProps = config.overwriteProps,\n\t\t\t\tmap = {init:\"_onInitTween\", set:\"setRatio\", kill:\"_kill\", round:\"_mod\", mod:\"_mod\", initAll:\"_onInitAllProps\"},\n\t\t\t\tPlugin = _class(\"plugins.\" + propName.charAt(0).toUpperCase() + propName.substr(1) + \"Plugin\",\n\t\t\t\t\tfunction() {\n\t\t\t\t\t\tTweenPlugin.call(this, propName, priority);\n\t\t\t\t\t\tthis._overwriteProps = overwriteProps || [];\n\t\t\t\t\t}, (config.global === true)),\n\t\t\t\tp = Plugin.prototype = new TweenPlugin(propName),\n\t\t\t\tprop;\n\t\t\tp.constructor = Plugin;\n\t\t\tPlugin.API = config.API;\n\t\t\tfor (prop in map) {\n\t\t\t\tif (typeof(config[prop]) === \"function\") {\n\t\t\t\t\tp[map[prop]] = config[prop];\n\t\t\t\t}\n\t\t\t}\n\t\t\tPlugin.version = config.version;\n\t\t\tTweenPlugin.activate([Plugin]);\n\t\t\treturn Plugin;\n\t\t};\n\n\n\t\t//now run through all the dependencies discovered and if any are missing, log that to the console as a warning. This is why it's best to have TweenLite load last - it can check all the dependencies for you.\n\t\ta = window._gsQueue;\n\t\tif (a) {\n\t\t\tfor (i = 0; i < a.length; i++) {\n\t\t\t\ta[i]();\n\t\t\t}\n\t\t\tfor (p in _defLookup) {\n\t\t\t\tif (!_defLookup[p].func) {\n\t\t\t\t\twindow.console.log(\"GSAP encountered missing dependency: \" + p);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t_tickerActive = false; //ensures that the first official animation forces a ticker.tick() to update the time when it is instantiated\n\n})((typeof(module) !== \"undefined\" && module.exports && typeof(global) !== \"undefined\") ? global : this || window, \"TweenMax\");","/*! Hammer.JS - v2.0.7 - 2016-04-22\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n(function(window, document, exportName, undefined) {\n 'use strict';\n\nvar VENDOR_PREFIXES = ['', 'webkit', 'Moz', 'MS', 'ms', 'o'];\nvar TEST_ELEMENT = document.createElement('div');\n\nvar TYPE_FUNCTION = 'function';\n\nvar round = Math.round;\nvar abs = Math.abs;\nvar now = Date.now;\n\n/**\n * set a timeout with a given scope\n * @param {Function} fn\n * @param {Number} timeout\n * @param {Object} context\n * @returns {number}\n */\nfunction setTimeoutContext(fn, timeout, context) {\n return setTimeout(bindFn(fn, context), timeout);\n}\n\n/**\n * if the argument is an array, we want to execute the fn on each entry\n * if it aint an array we don't want to do a thing.\n * this is used by all the methods that accept a single and array argument.\n * @param {*|Array} arg\n * @param {String} fn\n * @param {Object} [context]\n * @returns {Boolean}\n */\nfunction invokeArrayArg(arg, fn, context) {\n if (Array.isArray(arg)) {\n each(arg, context[fn], context);\n return true;\n }\n return false;\n}\n\n/**\n * walk objects and arrays\n * @param {Object} obj\n * @param {Function} iterator\n * @param {Object} context\n */\nfunction each(obj, iterator, context) {\n var i;\n\n if (!obj) {\n return;\n }\n\n if (obj.forEach) {\n obj.forEach(iterator, context);\n } else if (obj.length !== undefined) {\n i = 0;\n while (i < obj.length) {\n iterator.call(context, obj[i], i, obj);\n i++;\n }\n } else {\n for (i in obj) {\n obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj);\n }\n }\n}\n\n/**\n * wrap a method with a deprecation warning and stack trace\n * @param {Function} method\n * @param {String} name\n * @param {String} message\n * @returns {Function} A new function wrapping the supplied method.\n */\nfunction deprecate(method, name, message) {\n var deprecationMessage = 'DEPRECATED METHOD: ' + name + '\\n' + message + ' AT \\n';\n return function() {\n var e = new Error('get-stack-trace');\n var stack = e && e.stack ? e.stack.replace(/^[^\\(]+?[\\n$]/gm, '')\n .replace(/^\\s+at\\s+/gm, '')\n .replace(/^Object.\\s*\\(/gm, '{anonymous}()@') : 'Unknown Stack Trace';\n\n var log = window.console && (window.console.warn || window.console.log);\n if (log) {\n log.call(window.console, deprecationMessage, stack);\n }\n return method.apply(this, arguments);\n };\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} target\n * @param {...Object} objects_to_assign\n * @returns {Object} target\n */\nvar assign;\nif (typeof Object.assign !== 'function') {\n assign = function assign(target) {\n if (target === undefined || target === null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n for (var index = 1; index < arguments.length; index++) {\n var source = arguments[index];\n if (source !== undefined && source !== null) {\n for (var nextKey in source) {\n if (source.hasOwnProperty(nextKey)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n }\n return output;\n };\n} else {\n assign = Object.assign;\n}\n\n/**\n * extend object.\n * means that properties in dest will be overwritten by the ones in src.\n * @param {Object} dest\n * @param {Object} src\n * @param {Boolean} [merge=false]\n * @returns {Object} dest\n */\nvar extend = deprecate(function extend(dest, src, merge) {\n var keys = Object.keys(src);\n var i = 0;\n while (i < keys.length) {\n if (!merge || (merge && dest[keys[i]] === undefined)) {\n dest[keys[i]] = src[keys[i]];\n }\n i++;\n }\n return dest;\n}, 'extend', 'Use `assign`.');\n\n/**\n * merge the values from src in the dest.\n * means that properties that exist in dest will not be overwritten by src\n * @param {Object} dest\n * @param {Object} src\n * @returns {Object} dest\n */\nvar merge = deprecate(function merge(dest, src) {\n return extend(dest, src, true);\n}, 'merge', 'Use `assign`.');\n\n/**\n * simple class inheritance\n * @param {Function} child\n * @param {Function} base\n * @param {Object} [properties]\n */\nfunction inherit(child, base, properties) {\n var baseP = base.prototype,\n childP;\n\n childP = child.prototype = Object.create(baseP);\n childP.constructor = child;\n childP._super = baseP;\n\n if (properties) {\n assign(childP, properties);\n }\n}\n\n/**\n * simple function bind\n * @param {Function} fn\n * @param {Object} context\n * @returns {Function}\n */\nfunction bindFn(fn, context) {\n return function boundFn() {\n return fn.apply(context, arguments);\n };\n}\n\n/**\n * let a boolean value also be a function that must return a boolean\n * this first item in args will be used as the context\n * @param {Boolean|Function} val\n * @param {Array} [args]\n * @returns {Boolean}\n */\nfunction boolOrFn(val, args) {\n if (typeof val == TYPE_FUNCTION) {\n return val.apply(args ? args[0] || undefined : undefined, args);\n }\n return val;\n}\n\n/**\n * use the val2 when val1 is undefined\n * @param {*} val1\n * @param {*} val2\n * @returns {*}\n */\nfunction ifUndefined(val1, val2) {\n return (val1 === undefined) ? val2 : val1;\n}\n\n/**\n * addEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction addEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.addEventListener(type, handler, false);\n });\n}\n\n/**\n * removeEventListener with multiple events at once\n * @param {EventTarget} target\n * @param {String} types\n * @param {Function} handler\n */\nfunction removeEventListeners(target, types, handler) {\n each(splitStr(types), function(type) {\n target.removeEventListener(type, handler, false);\n });\n}\n\n/**\n * find if a node is in the given parent\n * @method hasParent\n * @param {HTMLElement} node\n * @param {HTMLElement} parent\n * @return {Boolean} found\n */\nfunction hasParent(node, parent) {\n while (node) {\n if (node == parent) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\n/**\n * small indexOf wrapper\n * @param {String} str\n * @param {String} find\n * @returns {Boolean} found\n */\nfunction inStr(str, find) {\n return str.indexOf(find) > -1;\n}\n\n/**\n * split string on whitespace\n * @param {String} str\n * @returns {Array} words\n */\nfunction splitStr(str) {\n return str.trim().split(/\\s+/g);\n}\n\n/**\n * find if a array contains the object using indexOf or a simple polyFill\n * @param {Array} src\n * @param {String} find\n * @param {String} [findByKey]\n * @return {Boolean|Number} false when not found, or the index\n */\nfunction inArray(src, find, findByKey) {\n if (src.indexOf && !findByKey) {\n return src.indexOf(find);\n } else {\n var i = 0;\n while (i < src.length) {\n if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) {\n return i;\n }\n i++;\n }\n return -1;\n }\n}\n\n/**\n * convert array-like objects to real arrays\n * @param {Object} obj\n * @returns {Array}\n */\nfunction toArray(obj) {\n return Array.prototype.slice.call(obj, 0);\n}\n\n/**\n * unique array with objects based on a key (like 'id') or just by the array's value\n * @param {Array} src [{id:1},{id:2},{id:1}]\n * @param {String} [key]\n * @param {Boolean} [sort=False]\n * @returns {Array} [{id:1},{id:2}]\n */\nfunction uniqueArray(src, key, sort) {\n var results = [];\n var values = [];\n var i = 0;\n\n while (i < src.length) {\n var val = key ? src[i][key] : src[i];\n if (inArray(values, val) < 0) {\n results.push(src[i]);\n }\n values[i] = val;\n i++;\n }\n\n if (sort) {\n if (!key) {\n results = results.sort();\n } else {\n results = results.sort(function sortUniqueArray(a, b) {\n return a[key] > b[key];\n });\n }\n }\n\n return results;\n}\n\n/**\n * get the prefixed property\n * @param {Object} obj\n * @param {String} property\n * @returns {String|Undefined} prefixed\n */\nfunction prefixed(obj, property) {\n var prefix, prop;\n var camelProp = property[0].toUpperCase() + property.slice(1);\n\n var i = 0;\n while (i < VENDOR_PREFIXES.length) {\n prefix = VENDOR_PREFIXES[i];\n prop = (prefix) ? prefix + camelProp : property;\n\n if (prop in obj) {\n return prop;\n }\n i++;\n }\n return undefined;\n}\n\n/**\n * get a unique id\n * @returns {number} uniqueId\n */\nvar _uniqueId = 1;\nfunction uniqueId() {\n return _uniqueId++;\n}\n\n/**\n * get the window object of an element\n * @param {HTMLElement} element\n * @returns {DocumentView|Window}\n */\nfunction getWindowForElement(element) {\n var doc = element.ownerDocument || element;\n return (doc.defaultView || doc.parentWindow || window);\n}\n\nvar MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i;\n\nvar SUPPORT_TOUCH = ('ontouchstart' in window);\nvar SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined;\nvar SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent);\n\nvar INPUT_TYPE_TOUCH = 'touch';\nvar INPUT_TYPE_PEN = 'pen';\nvar INPUT_TYPE_MOUSE = 'mouse';\nvar INPUT_TYPE_KINECT = 'kinect';\n\nvar COMPUTE_INTERVAL = 25;\n\nvar INPUT_START = 1;\nvar INPUT_MOVE = 2;\nvar INPUT_END = 4;\nvar INPUT_CANCEL = 8;\n\nvar DIRECTION_NONE = 1;\nvar DIRECTION_LEFT = 2;\nvar DIRECTION_RIGHT = 4;\nvar DIRECTION_UP = 8;\nvar DIRECTION_DOWN = 16;\n\nvar DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT;\nvar DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN;\nvar DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL;\n\nvar PROPS_XY = ['x', 'y'];\nvar PROPS_CLIENT_XY = ['clientX', 'clientY'];\n\n/**\n * create new input type manager\n * @param {Manager} manager\n * @param {Function} callback\n * @returns {Input}\n * @constructor\n */\nfunction Input(manager, callback) {\n var self = this;\n this.manager = manager;\n this.callback = callback;\n this.element = manager.element;\n this.target = manager.options.inputTarget;\n\n // smaller wrapper around the handler, for the scope and the enabled state of the manager,\n // so when disabled the input events are completely bypassed.\n this.domHandler = function(ev) {\n if (boolOrFn(manager.options.enable, [manager])) {\n self.handler(ev);\n }\n };\n\n this.init();\n\n}\n\nInput.prototype = {\n /**\n * should handle the inputEvent data and trigger the callback\n * @virtual\n */\n handler: function() { },\n\n /**\n * bind the events\n */\n init: function() {\n this.evEl && addEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n },\n\n /**\n * unbind the events\n */\n destroy: function() {\n this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler);\n this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler);\n this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler);\n }\n};\n\n/**\n * create new input type manager\n * called by the Manager constructor\n * @param {Hammer} manager\n * @returns {Input}\n */\nfunction createInputInstance(manager) {\n var Type;\n var inputClass = manager.options.inputClass;\n\n if (inputClass) {\n Type = inputClass;\n } else if (SUPPORT_POINTER_EVENTS) {\n Type = PointerEventInput;\n } else if (SUPPORT_ONLY_TOUCH) {\n Type = TouchInput;\n } else if (!SUPPORT_TOUCH) {\n Type = MouseInput;\n } else {\n Type = TouchMouseInput;\n }\n return new (Type)(manager, inputHandler);\n}\n\n/**\n * handle input events\n * @param {Manager} manager\n * @param {String} eventType\n * @param {Object} input\n */\nfunction inputHandler(manager, eventType, input) {\n var pointersLen = input.pointers.length;\n var changedPointersLen = input.changedPointers.length;\n var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0));\n var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0));\n\n input.isFirst = !!isFirst;\n input.isFinal = !!isFinal;\n\n if (isFirst) {\n manager.session = {};\n }\n\n // source event is the normalized value of the domEvents\n // like 'touchstart, mouseup, pointerdown'\n input.eventType = eventType;\n\n // compute scale, rotation etc\n computeInputData(manager, input);\n\n // emit secret event\n manager.emit('hammer.input', input);\n\n manager.recognize(input);\n manager.session.prevInput = input;\n}\n\n/**\n * extend the data with some usable properties like scale, rotate, velocity etc\n * @param {Object} manager\n * @param {Object} input\n */\nfunction computeInputData(manager, input) {\n var session = manager.session;\n var pointers = input.pointers;\n var pointersLength = pointers.length;\n\n // store the first input to calculate the distance and direction\n if (!session.firstInput) {\n session.firstInput = simpleCloneInputData(input);\n }\n\n // to compute scale and rotation we need to store the multiple touches\n if (pointersLength > 1 && !session.firstMultiple) {\n session.firstMultiple = simpleCloneInputData(input);\n } else if (pointersLength === 1) {\n session.firstMultiple = false;\n }\n\n var firstInput = session.firstInput;\n var firstMultiple = session.firstMultiple;\n var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center;\n\n var center = input.center = getCenter(pointers);\n input.timeStamp = now();\n input.deltaTime = input.timeStamp - firstInput.timeStamp;\n\n input.angle = getAngle(offsetCenter, center);\n input.distance = getDistance(offsetCenter, center);\n\n computeDeltaXY(session, input);\n input.offsetDirection = getDirection(input.deltaX, input.deltaY);\n\n var overallVelocity = getVelocity(input.deltaTime, input.deltaX, input.deltaY);\n input.overallVelocityX = overallVelocity.x;\n input.overallVelocityY = overallVelocity.y;\n input.overallVelocity = (abs(overallVelocity.x) > abs(overallVelocity.y)) ? overallVelocity.x : overallVelocity.y;\n\n input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1;\n input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0;\n\n input.maxPointers = !session.prevInput ? input.pointers.length : ((input.pointers.length >\n session.prevInput.maxPointers) ? input.pointers.length : session.prevInput.maxPointers);\n\n computeIntervalInputData(session, input);\n\n // find the correct target\n var target = manager.element;\n if (hasParent(input.srcEvent.target, target)) {\n target = input.srcEvent.target;\n }\n input.target = target;\n}\n\nfunction computeDeltaXY(session, input) {\n var center = input.center;\n var offset = session.offsetDelta || {};\n var prevDelta = session.prevDelta || {};\n var prevInput = session.prevInput || {};\n\n if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) {\n prevDelta = session.prevDelta = {\n x: prevInput.deltaX || 0,\n y: prevInput.deltaY || 0\n };\n\n offset = session.offsetDelta = {\n x: center.x,\n y: center.y\n };\n }\n\n input.deltaX = prevDelta.x + (center.x - offset.x);\n input.deltaY = prevDelta.y + (center.y - offset.y);\n}\n\n/**\n * velocity is calculated every x ms\n * @param {Object} session\n * @param {Object} input\n */\nfunction computeIntervalInputData(session, input) {\n var last = session.lastInterval || input,\n deltaTime = input.timeStamp - last.timeStamp,\n velocity, velocityX, velocityY, direction;\n\n if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) {\n var deltaX = input.deltaX - last.deltaX;\n var deltaY = input.deltaY - last.deltaY;\n\n var v = getVelocity(deltaTime, deltaX, deltaY);\n velocityX = v.x;\n velocityY = v.y;\n velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y;\n direction = getDirection(deltaX, deltaY);\n\n session.lastInterval = input;\n } else {\n // use latest velocity info if it doesn't overtake a minimum period\n velocity = last.velocity;\n velocityX = last.velocityX;\n velocityY = last.velocityY;\n direction = last.direction;\n }\n\n input.velocity = velocity;\n input.velocityX = velocityX;\n input.velocityY = velocityY;\n input.direction = direction;\n}\n\n/**\n * create a simple clone from the input used for storage of firstInput and firstMultiple\n * @param {Object} input\n * @returns {Object} clonedInputData\n */\nfunction simpleCloneInputData(input) {\n // make a simple copy of the pointers because we will get a reference if we don't\n // we only need clientXY for the calculations\n var pointers = [];\n var i = 0;\n while (i < input.pointers.length) {\n pointers[i] = {\n clientX: round(input.pointers[i].clientX),\n clientY: round(input.pointers[i].clientY)\n };\n i++;\n }\n\n return {\n timeStamp: now(),\n pointers: pointers,\n center: getCenter(pointers),\n deltaX: input.deltaX,\n deltaY: input.deltaY\n };\n}\n\n/**\n * get the center of all the pointers\n * @param {Array} pointers\n * @return {Object} center contains `x` and `y` properties\n */\nfunction getCenter(pointers) {\n var pointersLength = pointers.length;\n\n // no need to loop when only one touch\n if (pointersLength === 1) {\n return {\n x: round(pointers[0].clientX),\n y: round(pointers[0].clientY)\n };\n }\n\n var x = 0, y = 0, i = 0;\n while (i < pointersLength) {\n x += pointers[i].clientX;\n y += pointers[i].clientY;\n i++;\n }\n\n return {\n x: round(x / pointersLength),\n y: round(y / pointersLength)\n };\n}\n\n/**\n * calculate the velocity between two points. unit is in px per ms.\n * @param {Number} deltaTime\n * @param {Number} x\n * @param {Number} y\n * @return {Object} velocity `x` and `y`\n */\nfunction getVelocity(deltaTime, x, y) {\n return {\n x: x / deltaTime || 0,\n y: y / deltaTime || 0\n };\n}\n\n/**\n * get the direction between two points\n * @param {Number} x\n * @param {Number} y\n * @return {Number} direction\n */\nfunction getDirection(x, y) {\n if (x === y) {\n return DIRECTION_NONE;\n }\n\n if (abs(x) >= abs(y)) {\n return x < 0 ? DIRECTION_LEFT : DIRECTION_RIGHT;\n }\n return y < 0 ? DIRECTION_UP : DIRECTION_DOWN;\n}\n\n/**\n * calculate the absolute distance between two points\n * @param {Object} p1 {x, y}\n * @param {Object} p2 {x, y}\n * @param {Array} [props] containing x and y keys\n * @return {Number} distance\n */\nfunction getDistance(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n\n return Math.sqrt((x * x) + (y * y));\n}\n\n/**\n * calculate the angle between two coordinates\n * @param {Object} p1\n * @param {Object} p2\n * @param {Array} [props] containing x and y keys\n * @return {Number} angle\n */\nfunction getAngle(p1, p2, props) {\n if (!props) {\n props = PROPS_XY;\n }\n var x = p2[props[0]] - p1[props[0]],\n y = p2[props[1]] - p1[props[1]];\n return Math.atan2(y, x) * 180 / Math.PI;\n}\n\n/**\n * calculate the rotation degrees between two pointersets\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} rotation\n */\nfunction getRotation(start, end) {\n return getAngle(end[1], end[0], PROPS_CLIENT_XY) + getAngle(start[1], start[0], PROPS_CLIENT_XY);\n}\n\n/**\n * calculate the scale factor between two pointersets\n * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out\n * @param {Array} start array of pointers\n * @param {Array} end array of pointers\n * @return {Number} scale\n */\nfunction getScale(start, end) {\n return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY);\n}\n\nvar MOUSE_INPUT_MAP = {\n mousedown: INPUT_START,\n mousemove: INPUT_MOVE,\n mouseup: INPUT_END\n};\n\nvar MOUSE_ELEMENT_EVENTS = 'mousedown';\nvar MOUSE_WINDOW_EVENTS = 'mousemove mouseup';\n\n/**\n * Mouse events input\n * @constructor\n * @extends Input\n */\nfunction MouseInput() {\n this.evEl = MOUSE_ELEMENT_EVENTS;\n this.evWin = MOUSE_WINDOW_EVENTS;\n\n this.pressed = false; // mousedown state\n\n Input.apply(this, arguments);\n}\n\ninherit(MouseInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function MEhandler(ev) {\n var eventType = MOUSE_INPUT_MAP[ev.type];\n\n // on start we want to have the left mouse button down\n if (eventType & INPUT_START && ev.button === 0) {\n this.pressed = true;\n }\n\n if (eventType & INPUT_MOVE && ev.which !== 1) {\n eventType = INPUT_END;\n }\n\n // mouse must be down\n if (!this.pressed) {\n return;\n }\n\n if (eventType & INPUT_END) {\n this.pressed = false;\n }\n\n this.callback(this.manager, eventType, {\n pointers: [ev],\n changedPointers: [ev],\n pointerType: INPUT_TYPE_MOUSE,\n srcEvent: ev\n });\n }\n});\n\nvar POINTER_INPUT_MAP = {\n pointerdown: INPUT_START,\n pointermove: INPUT_MOVE,\n pointerup: INPUT_END,\n pointercancel: INPUT_CANCEL,\n pointerout: INPUT_CANCEL\n};\n\n// in IE10 the pointer types is defined as an enum\nvar IE10_POINTER_TYPE_ENUM = {\n 2: INPUT_TYPE_TOUCH,\n 3: INPUT_TYPE_PEN,\n 4: INPUT_TYPE_MOUSE,\n 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816\n};\n\nvar POINTER_ELEMENT_EVENTS = 'pointerdown';\nvar POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel';\n\n// IE10 has prefixed support, and case-sensitive\nif (window.MSPointerEvent && !window.PointerEvent) {\n POINTER_ELEMENT_EVENTS = 'MSPointerDown';\n POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel';\n}\n\n/**\n * Pointer events input\n * @constructor\n * @extends Input\n */\nfunction PointerEventInput() {\n this.evEl = POINTER_ELEMENT_EVENTS;\n this.evWin = POINTER_WINDOW_EVENTS;\n\n Input.apply(this, arguments);\n\n this.store = (this.manager.session.pointerEvents = []);\n}\n\ninherit(PointerEventInput, Input, {\n /**\n * handle mouse events\n * @param {Object} ev\n */\n handler: function PEhandler(ev) {\n var store = this.store;\n var removePointer = false;\n\n var eventTypeNormalized = ev.type.toLowerCase().replace('ms', '');\n var eventType = POINTER_INPUT_MAP[eventTypeNormalized];\n var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType;\n\n var isTouch = (pointerType == INPUT_TYPE_TOUCH);\n\n // get index of the event in the store\n var storeIndex = inArray(store, ev.pointerId, 'pointerId');\n\n // start and mouse must be down\n if (eventType & INPUT_START && (ev.button === 0 || isTouch)) {\n if (storeIndex < 0) {\n store.push(ev);\n storeIndex = store.length - 1;\n }\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n removePointer = true;\n }\n\n // it not found, so the pointer hasn't been down (so it's probably a hover)\n if (storeIndex < 0) {\n return;\n }\n\n // update the event in the store\n store[storeIndex] = ev;\n\n this.callback(this.manager, eventType, {\n pointers: store,\n changedPointers: [ev],\n pointerType: pointerType,\n srcEvent: ev\n });\n\n if (removePointer) {\n // remove from the store\n store.splice(storeIndex, 1);\n }\n }\n});\n\nvar SINGLE_TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar SINGLE_TOUCH_TARGET_EVENTS = 'touchstart';\nvar SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Touch events input\n * @constructor\n * @extends Input\n */\nfunction SingleTouchInput() {\n this.evTarget = SINGLE_TOUCH_TARGET_EVENTS;\n this.evWin = SINGLE_TOUCH_WINDOW_EVENTS;\n this.started = false;\n\n Input.apply(this, arguments);\n}\n\ninherit(SingleTouchInput, Input, {\n handler: function TEhandler(ev) {\n var type = SINGLE_TOUCH_INPUT_MAP[ev.type];\n\n // should we handle the touch events?\n if (type === INPUT_START) {\n this.started = true;\n }\n\n if (!this.started) {\n return;\n }\n\n var touches = normalizeSingleTouches.call(this, ev, type);\n\n // when done, reset the started state\n if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) {\n this.started = false;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction normalizeSingleTouches(ev, type) {\n var all = toArray(ev.touches);\n var changed = toArray(ev.changedTouches);\n\n if (type & (INPUT_END | INPUT_CANCEL)) {\n all = uniqueArray(all.concat(changed), 'identifier', true);\n }\n\n return [all, changed];\n}\n\nvar TOUCH_INPUT_MAP = {\n touchstart: INPUT_START,\n touchmove: INPUT_MOVE,\n touchend: INPUT_END,\n touchcancel: INPUT_CANCEL\n};\n\nvar TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel';\n\n/**\n * Multi-user touch events input\n * @constructor\n * @extends Input\n */\nfunction TouchInput() {\n this.evTarget = TOUCH_TARGET_EVENTS;\n this.targetIds = {};\n\n Input.apply(this, arguments);\n}\n\ninherit(TouchInput, Input, {\n handler: function MTEhandler(ev) {\n var type = TOUCH_INPUT_MAP[ev.type];\n var touches = getTouches.call(this, ev, type);\n if (!touches) {\n return;\n }\n\n this.callback(this.manager, type, {\n pointers: touches[0],\n changedPointers: touches[1],\n pointerType: INPUT_TYPE_TOUCH,\n srcEvent: ev\n });\n }\n});\n\n/**\n * @this {TouchInput}\n * @param {Object} ev\n * @param {Number} type flag\n * @returns {undefined|Array} [all, changed]\n */\nfunction getTouches(ev, type) {\n var allTouches = toArray(ev.touches);\n var targetIds = this.targetIds;\n\n // when there is only one touch, the process can be simplified\n if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) {\n targetIds[allTouches[0].identifier] = true;\n return [allTouches, allTouches];\n }\n\n var i,\n targetTouches,\n changedTouches = toArray(ev.changedTouches),\n changedTargetTouches = [],\n target = this.target;\n\n // get target touches from touches\n targetTouches = allTouches.filter(function(touch) {\n return hasParent(touch.target, target);\n });\n\n // collect touches\n if (type === INPUT_START) {\n i = 0;\n while (i < targetTouches.length) {\n targetIds[targetTouches[i].identifier] = true;\n i++;\n }\n }\n\n // filter changed touches to only contain touches that exist in the collected target ids\n i = 0;\n while (i < changedTouches.length) {\n if (targetIds[changedTouches[i].identifier]) {\n changedTargetTouches.push(changedTouches[i]);\n }\n\n // cleanup removed touches\n if (type & (INPUT_END | INPUT_CANCEL)) {\n delete targetIds[changedTouches[i].identifier];\n }\n i++;\n }\n\n if (!changedTargetTouches.length) {\n return;\n }\n\n return [\n // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel'\n uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true),\n changedTargetTouches\n ];\n}\n\n/**\n * Combined touch and mouse input\n *\n * Touch has a higher priority then mouse, and while touching no mouse events are allowed.\n * This because touch devices also emit mouse events while doing a touch.\n *\n * @constructor\n * @extends Input\n */\n\nvar DEDUP_TIMEOUT = 2500;\nvar DEDUP_DISTANCE = 25;\n\nfunction TouchMouseInput() {\n Input.apply(this, arguments);\n\n var handler = bindFn(this.handler, this);\n this.touch = new TouchInput(this.manager, handler);\n this.mouse = new MouseInput(this.manager, handler);\n\n this.primaryTouch = null;\n this.lastTouches = [];\n}\n\ninherit(TouchMouseInput, Input, {\n /**\n * handle mouse and touch events\n * @param {Hammer} manager\n * @param {String} inputEvent\n * @param {Object} inputData\n */\n handler: function TMEhandler(manager, inputEvent, inputData) {\n var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH),\n isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE);\n\n if (isMouse && inputData.sourceCapabilities && inputData.sourceCapabilities.firesTouchEvents) {\n return;\n }\n\n // when we're in a touch event, record touches to de-dupe synthetic mouse event\n if (isTouch) {\n recordTouches.call(this, inputEvent, inputData);\n } else if (isMouse && isSyntheticEvent.call(this, inputData)) {\n return;\n }\n\n this.callback(manager, inputEvent, inputData);\n },\n\n /**\n * remove the event listeners\n */\n destroy: function destroy() {\n this.touch.destroy();\n this.mouse.destroy();\n }\n});\n\nfunction recordTouches(eventType, eventData) {\n if (eventType & INPUT_START) {\n this.primaryTouch = eventData.changedPointers[0].identifier;\n setLastTouch.call(this, eventData);\n } else if (eventType & (INPUT_END | INPUT_CANCEL)) {\n setLastTouch.call(this, eventData);\n }\n}\n\nfunction setLastTouch(eventData) {\n var touch = eventData.changedPointers[0];\n\n if (touch.identifier === this.primaryTouch) {\n var lastTouch = {x: touch.clientX, y: touch.clientY};\n this.lastTouches.push(lastTouch);\n var lts = this.lastTouches;\n var removeLastTouch = function() {\n var i = lts.indexOf(lastTouch);\n if (i > -1) {\n lts.splice(i, 1);\n }\n };\n setTimeout(removeLastTouch, DEDUP_TIMEOUT);\n }\n}\n\nfunction isSyntheticEvent(eventData) {\n var x = eventData.srcEvent.clientX, y = eventData.srcEvent.clientY;\n for (var i = 0; i < this.lastTouches.length; i++) {\n var t = this.lastTouches[i];\n var dx = Math.abs(x - t.x), dy = Math.abs(y - t.y);\n if (dx <= DEDUP_DISTANCE && dy <= DEDUP_DISTANCE) {\n return true;\n }\n }\n return false;\n}\n\nvar PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction');\nvar NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined;\n\n// magical touchAction value\nvar TOUCH_ACTION_COMPUTE = 'compute';\nvar TOUCH_ACTION_AUTO = 'auto';\nvar TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented\nvar TOUCH_ACTION_NONE = 'none';\nvar TOUCH_ACTION_PAN_X = 'pan-x';\nvar TOUCH_ACTION_PAN_Y = 'pan-y';\nvar TOUCH_ACTION_MAP = getTouchActionProps();\n\n/**\n * Touch Action\n * sets the touchAction property or uses the js alternative\n * @param {Manager} manager\n * @param {String} value\n * @constructor\n */\nfunction TouchAction(manager, value) {\n this.manager = manager;\n this.set(value);\n}\n\nTouchAction.prototype = {\n /**\n * set the touchAction value on the element or enable the polyfill\n * @param {String} value\n */\n set: function(value) {\n // find out the touch-action by the event handlers\n if (value == TOUCH_ACTION_COMPUTE) {\n value = this.compute();\n }\n\n if (NATIVE_TOUCH_ACTION && this.manager.element.style && TOUCH_ACTION_MAP[value]) {\n this.manager.element.style[PREFIXED_TOUCH_ACTION] = value;\n }\n this.actions = value.toLowerCase().trim();\n },\n\n /**\n * just re-set the touchAction value\n */\n update: function() {\n this.set(this.manager.options.touchAction);\n },\n\n /**\n * compute the value for the touchAction property based on the recognizer's settings\n * @returns {String} value\n */\n compute: function() {\n var actions = [];\n each(this.manager.recognizers, function(recognizer) {\n if (boolOrFn(recognizer.options.enable, [recognizer])) {\n actions = actions.concat(recognizer.getTouchAction());\n }\n });\n return cleanTouchActions(actions.join(' '));\n },\n\n /**\n * this method is called on each input cycle and provides the preventing of the browser behavior\n * @param {Object} input\n */\n preventDefaults: function(input) {\n var srcEvent = input.srcEvent;\n var direction = input.offsetDirection;\n\n // if the touch action did prevented once this session\n if (this.manager.session.prevented) {\n srcEvent.preventDefault();\n return;\n }\n\n var actions = this.actions;\n var hasNone = inStr(actions, TOUCH_ACTION_NONE) && !TOUCH_ACTION_MAP[TOUCH_ACTION_NONE];\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_Y];\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X) && !TOUCH_ACTION_MAP[TOUCH_ACTION_PAN_X];\n\n if (hasNone) {\n //do not prevent defaults if this is a tap gesture\n\n var isTapPointer = input.pointers.length === 1;\n var isTapMovement = input.distance < 2;\n var isTapTouchTime = input.deltaTime < 250;\n\n if (isTapPointer && isTapMovement && isTapTouchTime) {\n return;\n }\n }\n\n if (hasPanX && hasPanY) {\n // `pan-x pan-y` means browser handles all scrolling/panning, do not prevent\n return;\n }\n\n if (hasNone ||\n (hasPanY && direction & DIRECTION_HORIZONTAL) ||\n (hasPanX && direction & DIRECTION_VERTICAL)) {\n return this.preventSrc(srcEvent);\n }\n },\n\n /**\n * call preventDefault to prevent the browser's default behavior (scrolling in most cases)\n * @param {Object} srcEvent\n */\n preventSrc: function(srcEvent) {\n this.manager.session.prevented = true;\n srcEvent.preventDefault();\n }\n};\n\n/**\n * when the touchActions are collected they are not a valid value, so we need to clean things up. *\n * @param {String} actions\n * @returns {*}\n */\nfunction cleanTouchActions(actions) {\n // none\n if (inStr(actions, TOUCH_ACTION_NONE)) {\n return TOUCH_ACTION_NONE;\n }\n\n var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X);\n var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y);\n\n // if both pan-x and pan-y are set (different recognizers\n // for different directions, e.g. horizontal pan but vertical swipe?)\n // we need none (as otherwise with pan-x pan-y combined none of these\n // recognizers will work, since the browser would handle all panning\n if (hasPanX && hasPanY) {\n return TOUCH_ACTION_NONE;\n }\n\n // pan-x OR pan-y\n if (hasPanX || hasPanY) {\n return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y;\n }\n\n // manipulation\n if (inStr(actions, TOUCH_ACTION_MANIPULATION)) {\n return TOUCH_ACTION_MANIPULATION;\n }\n\n return TOUCH_ACTION_AUTO;\n}\n\nfunction getTouchActionProps() {\n if (!NATIVE_TOUCH_ACTION) {\n return false;\n }\n var touchMap = {};\n var cssSupports = window.CSS && window.CSS.supports;\n ['auto', 'manipulation', 'pan-y', 'pan-x', 'pan-x pan-y', 'none'].forEach(function(val) {\n\n // If css.supports is not supported but there is native touch-action assume it supports\n // all values. This is the case for IE 10 and 11.\n touchMap[val] = cssSupports ? window.CSS.supports('touch-action', val) : true;\n });\n return touchMap;\n}\n\n/**\n * Recognizer flow explained; *\n * All recognizers have the initial state of POSSIBLE when a input session starts.\n * The definition of a input session is from the first input until the last input, with all it's movement in it. *\n * Example session for mouse-input: mousedown -> mousemove -> mouseup\n *\n * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed\n * which determines with state it should be.\n *\n * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to\n * POSSIBLE to give it another change on the next cycle.\n *\n * Possible\n * |\n * +-----+---------------+\n * | |\n * +-----+-----+ |\n * | | |\n * Failed Cancelled |\n * +-------+------+\n * | |\n * Recognized Began\n * |\n * Changed\n * |\n * Ended/Recognized\n */\nvar STATE_POSSIBLE = 1;\nvar STATE_BEGAN = 2;\nvar STATE_CHANGED = 4;\nvar STATE_ENDED = 8;\nvar STATE_RECOGNIZED = STATE_ENDED;\nvar STATE_CANCELLED = 16;\nvar STATE_FAILED = 32;\n\n/**\n * Recognizer\n * Every recognizer needs to extend from this class.\n * @constructor\n * @param {Object} options\n */\nfunction Recognizer(options) {\n this.options = assign({}, this.defaults, options || {});\n\n this.id = uniqueId();\n\n this.manager = null;\n\n // default is enable true\n this.options.enable = ifUndefined(this.options.enable, true);\n\n this.state = STATE_POSSIBLE;\n\n this.simultaneous = {};\n this.requireFail = [];\n}\n\nRecognizer.prototype = {\n /**\n * @virtual\n * @type {Object}\n */\n defaults: {},\n\n /**\n * set options\n * @param {Object} options\n * @return {Recognizer}\n */\n set: function(options) {\n assign(this.options, options);\n\n // also update the touchAction, in case something changed about the directions/enabled state\n this.manager && this.manager.touchAction.update();\n return this;\n },\n\n /**\n * recognize simultaneous with an other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n recognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) {\n return this;\n }\n\n var simultaneous = this.simultaneous;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (!simultaneous[otherRecognizer.id]) {\n simultaneous[otherRecognizer.id] = otherRecognizer;\n otherRecognizer.recognizeWith(this);\n }\n return this;\n },\n\n /**\n * drop the simultaneous link. it doesnt remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRecognizeWith: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n delete this.simultaneous[otherRecognizer.id];\n return this;\n },\n\n /**\n * recognizer can only run when an other is failing\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n requireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) {\n return this;\n }\n\n var requireFail = this.requireFail;\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n if (inArray(requireFail, otherRecognizer) === -1) {\n requireFail.push(otherRecognizer);\n otherRecognizer.requireFailure(this);\n }\n return this;\n },\n\n /**\n * drop the requireFailure link. it does not remove the link on the other recognizer.\n * @param {Recognizer} otherRecognizer\n * @returns {Recognizer} this\n */\n dropRequireFailure: function(otherRecognizer) {\n if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) {\n return this;\n }\n\n otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this);\n var index = inArray(this.requireFail, otherRecognizer);\n if (index > -1) {\n this.requireFail.splice(index, 1);\n }\n return this;\n },\n\n /**\n * has require failures boolean\n * @returns {boolean}\n */\n hasRequireFailures: function() {\n return this.requireFail.length > 0;\n },\n\n /**\n * if the recognizer can recognize simultaneous with an other recognizer\n * @param {Recognizer} otherRecognizer\n * @returns {Boolean}\n */\n canRecognizeWith: function(otherRecognizer) {\n return !!this.simultaneous[otherRecognizer.id];\n },\n\n /**\n * You should use `tryEmit` instead of `emit` directly to check\n * that all the needed recognizers has failed before emitting.\n * @param {Object} input\n */\n emit: function(input) {\n var self = this;\n var state = this.state;\n\n function emit(event) {\n self.manager.emit(event, input);\n }\n\n // 'panstart' and 'panmove'\n if (state < STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n\n emit(self.options.event); // simple 'eventName' events\n\n if (input.additionalEvent) { // additional event(panleft, panright, pinchin, pinchout...)\n emit(input.additionalEvent);\n }\n\n // panend and pancancel\n if (state >= STATE_ENDED) {\n emit(self.options.event + stateStr(state));\n }\n },\n\n /**\n * Check that all the require failure recognizers has failed,\n * if true, it emits a gesture event,\n * otherwise, setup the state to FAILED.\n * @param {Object} input\n */\n tryEmit: function(input) {\n if (this.canEmit()) {\n return this.emit(input);\n }\n // it's failing anyway\n this.state = STATE_FAILED;\n },\n\n /**\n * can we emit?\n * @returns {boolean}\n */\n canEmit: function() {\n var i = 0;\n while (i < this.requireFail.length) {\n if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) {\n return false;\n }\n i++;\n }\n return true;\n },\n\n /**\n * update the recognizer\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n // make a new copy of the inputData\n // so we can change the inputData without messing up the other recognizers\n var inputDataClone = assign({}, inputData);\n\n // is is enabled and allow recognizing?\n if (!boolOrFn(this.options.enable, [this, inputDataClone])) {\n this.reset();\n this.state = STATE_FAILED;\n return;\n }\n\n // reset when we've reached the end\n if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) {\n this.state = STATE_POSSIBLE;\n }\n\n this.state = this.process(inputDataClone);\n\n // the recognizer has recognized a gesture\n // so trigger an event\n if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) {\n this.tryEmit(inputDataClone);\n }\n },\n\n /**\n * return the state of the recognizer\n * the actual recognizing happens in this method\n * @virtual\n * @param {Object} inputData\n * @returns {Const} STATE\n */\n process: function(inputData) { }, // jshint ignore:line\n\n /**\n * return the preferred touch-action\n * @virtual\n * @returns {Array}\n */\n getTouchAction: function() { },\n\n /**\n * called when the gesture isn't allowed to recognize\n * like when another is being recognized or it is disabled\n * @virtual\n */\n reset: function() { }\n};\n\n/**\n * get a usable string, used as event postfix\n * @param {Const} state\n * @returns {String} state\n */\nfunction stateStr(state) {\n if (state & STATE_CANCELLED) {\n return 'cancel';\n } else if (state & STATE_ENDED) {\n return 'end';\n } else if (state & STATE_CHANGED) {\n return 'move';\n } else if (state & STATE_BEGAN) {\n return 'start';\n }\n return '';\n}\n\n/**\n * direction cons to string\n * @param {Const} direction\n * @returns {String}\n */\nfunction directionStr(direction) {\n if (direction == DIRECTION_DOWN) {\n return 'down';\n } else if (direction == DIRECTION_UP) {\n return 'up';\n } else if (direction == DIRECTION_LEFT) {\n return 'left';\n } else if (direction == DIRECTION_RIGHT) {\n return 'right';\n }\n return '';\n}\n\n/**\n * get a recognizer by name if it is bound to a manager\n * @param {Recognizer|String} otherRecognizer\n * @param {Recognizer} recognizer\n * @returns {Recognizer}\n */\nfunction getRecognizerByNameIfManager(otherRecognizer, recognizer) {\n var manager = recognizer.manager;\n if (manager) {\n return manager.get(otherRecognizer);\n }\n return otherRecognizer;\n}\n\n/**\n * This recognizer is just used as a base for the simple attribute recognizers.\n * @constructor\n * @extends Recognizer\n */\nfunction AttrRecognizer() {\n Recognizer.apply(this, arguments);\n}\n\ninherit(AttrRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof AttrRecognizer\n */\n defaults: {\n /**\n * @type {Number}\n * @default 1\n */\n pointers: 1\n },\n\n /**\n * Used to check if it the recognizer receives valid input, like input.distance > 10.\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {Boolean} recognized\n */\n attrTest: function(input) {\n var optionPointers = this.options.pointers;\n return optionPointers === 0 || input.pointers.length === optionPointers;\n },\n\n /**\n * Process the input and return the state for the recognizer\n * @memberof AttrRecognizer\n * @param {Object} input\n * @returns {*} State\n */\n process: function(input) {\n var state = this.state;\n var eventType = input.eventType;\n\n var isRecognized = state & (STATE_BEGAN | STATE_CHANGED);\n var isValid = this.attrTest(input);\n\n // on cancel input and we've recognized before, return STATE_CANCELLED\n if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) {\n return state | STATE_CANCELLED;\n } else if (isRecognized || isValid) {\n if (eventType & INPUT_END) {\n return state | STATE_ENDED;\n } else if (!(state & STATE_BEGAN)) {\n return STATE_BEGAN;\n }\n return state | STATE_CHANGED;\n }\n return STATE_FAILED;\n }\n});\n\n/**\n * Pan\n * Recognized when the pointer is down and moved in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PanRecognizer() {\n AttrRecognizer.apply(this, arguments);\n\n this.pX = null;\n this.pY = null;\n}\n\ninherit(PanRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PanRecognizer\n */\n defaults: {\n event: 'pan',\n threshold: 10,\n pointers: 1,\n direction: DIRECTION_ALL\n },\n\n getTouchAction: function() {\n var direction = this.options.direction;\n var actions = [];\n if (direction & DIRECTION_HORIZONTAL) {\n actions.push(TOUCH_ACTION_PAN_Y);\n }\n if (direction & DIRECTION_VERTICAL) {\n actions.push(TOUCH_ACTION_PAN_X);\n }\n return actions;\n },\n\n directionTest: function(input) {\n var options = this.options;\n var hasMoved = true;\n var distance = input.distance;\n var direction = input.direction;\n var x = input.deltaX;\n var y = input.deltaY;\n\n // lock to axis?\n if (!(direction & options.direction)) {\n if (options.direction & DIRECTION_HORIZONTAL) {\n direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT;\n hasMoved = x != this.pX;\n distance = Math.abs(input.deltaX);\n } else {\n direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN;\n hasMoved = y != this.pY;\n distance = Math.abs(input.deltaY);\n }\n }\n input.direction = direction;\n return hasMoved && distance > options.threshold && direction & options.direction;\n },\n\n attrTest: function(input) {\n return AttrRecognizer.prototype.attrTest.call(this, input) &&\n (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input)));\n },\n\n emit: function(input) {\n\n this.pX = input.deltaX;\n this.pY = input.deltaY;\n\n var direction = directionStr(input.direction);\n\n if (direction) {\n input.additionalEvent = this.options.event + direction;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Pinch\n * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out).\n * @constructor\n * @extends AttrRecognizer\n */\nfunction PinchRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(PinchRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'pinch',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN);\n },\n\n emit: function(input) {\n if (input.scale !== 1) {\n var inOut = input.scale < 1 ? 'in' : 'out';\n input.additionalEvent = this.options.event + inOut;\n }\n this._super.emit.call(this, input);\n }\n});\n\n/**\n * Press\n * Recognized when the pointer is down for x ms without any movement.\n * @constructor\n * @extends Recognizer\n */\nfunction PressRecognizer() {\n Recognizer.apply(this, arguments);\n\n this._timer = null;\n this._input = null;\n}\n\ninherit(PressRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PressRecognizer\n */\n defaults: {\n event: 'press',\n pointers: 1,\n time: 251, // minimal time of the pointer to be pressed\n threshold: 9 // a minimal movement is ok, but keep it low\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_AUTO];\n },\n\n process: function(input) {\n var options = this.options;\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTime = input.deltaTime > options.time;\n\n this._input = input;\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) {\n this.reset();\n } else if (input.eventType & INPUT_START) {\n this.reset();\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.time, this);\n } else if (input.eventType & INPUT_END) {\n return STATE_RECOGNIZED;\n }\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function(input) {\n if (this.state !== STATE_RECOGNIZED) {\n return;\n }\n\n if (input && (input.eventType & INPUT_END)) {\n this.manager.emit(this.options.event + 'up', input);\n } else {\n this._input.timeStamp = now();\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Rotate\n * Recognized when two or more pointer are moving in a circular motion.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction RotateRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(RotateRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof RotateRecognizer\n */\n defaults: {\n event: 'rotate',\n threshold: 0,\n pointers: 2\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_NONE];\n },\n\n attrTest: function(input) {\n return this._super.attrTest.call(this, input) &&\n (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN);\n }\n});\n\n/**\n * Swipe\n * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction.\n * @constructor\n * @extends AttrRecognizer\n */\nfunction SwipeRecognizer() {\n AttrRecognizer.apply(this, arguments);\n}\n\ninherit(SwipeRecognizer, AttrRecognizer, {\n /**\n * @namespace\n * @memberof SwipeRecognizer\n */\n defaults: {\n event: 'swipe',\n threshold: 10,\n velocity: 0.3,\n direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL,\n pointers: 1\n },\n\n getTouchAction: function() {\n return PanRecognizer.prototype.getTouchAction.call(this);\n },\n\n attrTest: function(input) {\n var direction = this.options.direction;\n var velocity;\n\n if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) {\n velocity = input.overallVelocity;\n } else if (direction & DIRECTION_HORIZONTAL) {\n velocity = input.overallVelocityX;\n } else if (direction & DIRECTION_VERTICAL) {\n velocity = input.overallVelocityY;\n }\n\n return this._super.attrTest.call(this, input) &&\n direction & input.offsetDirection &&\n input.distance > this.options.threshold &&\n input.maxPointers == this.options.pointers &&\n abs(velocity) > this.options.velocity && input.eventType & INPUT_END;\n },\n\n emit: function(input) {\n var direction = directionStr(input.offsetDirection);\n if (direction) {\n this.manager.emit(this.options.event + direction, input);\n }\n\n this.manager.emit(this.options.event, input);\n }\n});\n\n/**\n * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur\n * between the given interval and position. The delay option can be used to recognize multi-taps without firing\n * a single tap.\n *\n * The eventData from the emitted event contains the property `tapCount`, which contains the amount of\n * multi-taps being recognized.\n * @constructor\n * @extends Recognizer\n */\nfunction TapRecognizer() {\n Recognizer.apply(this, arguments);\n\n // previous time and center,\n // used for tap counting\n this.pTime = false;\n this.pCenter = false;\n\n this._timer = null;\n this._input = null;\n this.count = 0;\n}\n\ninherit(TapRecognizer, Recognizer, {\n /**\n * @namespace\n * @memberof PinchRecognizer\n */\n defaults: {\n event: 'tap',\n pointers: 1,\n taps: 1,\n interval: 300, // max time between the multi-tap taps\n time: 250, // max time of the pointer to be down (like finger on the screen)\n threshold: 9, // a minimal movement is ok, but keep it low\n posThreshold: 10 // a multi-tap can be a bit off the initial position\n },\n\n getTouchAction: function() {\n return [TOUCH_ACTION_MANIPULATION];\n },\n\n process: function(input) {\n var options = this.options;\n\n var validPointers = input.pointers.length === options.pointers;\n var validMovement = input.distance < options.threshold;\n var validTouchTime = input.deltaTime < options.time;\n\n this.reset();\n\n if ((input.eventType & INPUT_START) && (this.count === 0)) {\n return this.failTimeout();\n }\n\n // we only allow little movement\n // and we've reached an end event, so a tap is possible\n if (validMovement && validTouchTime && validPointers) {\n if (input.eventType != INPUT_END) {\n return this.failTimeout();\n }\n\n var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true;\n var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold;\n\n this.pTime = input.timeStamp;\n this.pCenter = input.center;\n\n if (!validMultiTap || !validInterval) {\n this.count = 1;\n } else {\n this.count += 1;\n }\n\n this._input = input;\n\n // if tap count matches we have recognized it,\n // else it has began recognizing...\n var tapCount = this.count % options.taps;\n if (tapCount === 0) {\n // no failing requirements, immediately trigger the tap event\n // or wait as long as the multitap interval to trigger\n if (!this.hasRequireFailures()) {\n return STATE_RECOGNIZED;\n } else {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_RECOGNIZED;\n this.tryEmit();\n }, options.interval, this);\n return STATE_BEGAN;\n }\n }\n }\n return STATE_FAILED;\n },\n\n failTimeout: function() {\n this._timer = setTimeoutContext(function() {\n this.state = STATE_FAILED;\n }, this.options.interval, this);\n return STATE_FAILED;\n },\n\n reset: function() {\n clearTimeout(this._timer);\n },\n\n emit: function() {\n if (this.state == STATE_RECOGNIZED) {\n this._input.tapCount = this.count;\n this.manager.emit(this.options.event, this._input);\n }\n }\n});\n\n/**\n * Simple way to create a manager with a default set of recognizers.\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Hammer(element, options) {\n options = options || {};\n options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset);\n return new Manager(element, options);\n}\n\n/**\n * @const {string}\n */\nHammer.VERSION = '2.0.7';\n\n/**\n * default settings\n * @namespace\n */\nHammer.defaults = {\n /**\n * set if DOM events are being triggered.\n * But this is slower and unused by simple implementations, so disabled by default.\n * @type {Boolean}\n * @default false\n */\n domEvents: false,\n\n /**\n * The value for the touchAction property/fallback.\n * When set to `compute` it will magically set the correct value based on the added recognizers.\n * @type {String}\n * @default compute\n */\n touchAction: TOUCH_ACTION_COMPUTE,\n\n /**\n * @type {Boolean}\n * @default true\n */\n enable: true,\n\n /**\n * EXPERIMENTAL FEATURE -- can be removed/changed\n * Change the parent input target element.\n * If Null, then it is being set the to main element.\n * @type {Null|EventTarget}\n * @default null\n */\n inputTarget: null,\n\n /**\n * force an input class\n * @type {Null|Function}\n * @default null\n */\n inputClass: null,\n\n /**\n * Default recognizer setup when calling `Hammer()`\n * When creating a new Manager these will be skipped.\n * @type {Array}\n */\n preset: [\n // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...]\n [RotateRecognizer, {enable: false}],\n [PinchRecognizer, {enable: false}, ['rotate']],\n [SwipeRecognizer, {direction: DIRECTION_HORIZONTAL}],\n [PanRecognizer, {direction: DIRECTION_HORIZONTAL}, ['swipe']],\n [TapRecognizer],\n [TapRecognizer, {event: 'doubletap', taps: 2}, ['tap']],\n [PressRecognizer]\n ],\n\n /**\n * Some CSS properties can be used to improve the working of Hammer.\n * Add them to this method and they will be set when creating a new Manager.\n * @namespace\n */\n cssProps: {\n /**\n * Disables text selection to improve the dragging gesture. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userSelect: 'none',\n\n /**\n * Disable the Windows Phone grippers when pressing an element.\n * @type {String}\n * @default 'none'\n */\n touchSelect: 'none',\n\n /**\n * Disables the default callout shown when you touch and hold a touch target.\n * On iOS, when you touch and hold a touch target such as a link, Safari displays\n * a callout containing information about the link. This property allows you to disable that callout.\n * @type {String}\n * @default 'none'\n */\n touchCallout: 'none',\n\n /**\n * Specifies whether zooming is enabled. Used by IE10>\n * @type {String}\n * @default 'none'\n */\n contentZooming: 'none',\n\n /**\n * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers.\n * @type {String}\n * @default 'none'\n */\n userDrag: 'none',\n\n /**\n * Overrides the highlight color shown when the user taps a link or a JavaScript\n * clickable element in iOS. This property obeys the alpha value, if specified.\n * @type {String}\n * @default 'rgba(0,0,0,0)'\n */\n tapHighlightColor: 'rgba(0,0,0,0)'\n }\n};\n\nvar STOP = 1;\nvar FORCED_STOP = 2;\n\n/**\n * Manager\n * @param {HTMLElement} element\n * @param {Object} [options]\n * @constructor\n */\nfunction Manager(element, options) {\n this.options = assign({}, Hammer.defaults, options || {});\n\n this.options.inputTarget = this.options.inputTarget || element;\n\n this.handlers = {};\n this.session = {};\n this.recognizers = [];\n this.oldCssProps = {};\n\n this.element = element;\n this.input = createInputInstance(this);\n this.touchAction = new TouchAction(this, this.options.touchAction);\n\n toggleCssProps(this, true);\n\n each(this.options.recognizers, function(item) {\n var recognizer = this.add(new (item[0])(item[1]));\n item[2] && recognizer.recognizeWith(item[2]);\n item[3] && recognizer.requireFailure(item[3]);\n }, this);\n}\n\nManager.prototype = {\n /**\n * set options\n * @param {Object} options\n * @returns {Manager}\n */\n set: function(options) {\n assign(this.options, options);\n\n // Options that need a little more setup\n if (options.touchAction) {\n this.touchAction.update();\n }\n if (options.inputTarget) {\n // Clean up existing event listeners and reinitialize\n this.input.destroy();\n this.input.target = options.inputTarget;\n this.input.init();\n }\n return this;\n },\n\n /**\n * stop recognizing for this session.\n * This session will be discarded, when a new [input]start event is fired.\n * When forced, the recognizer cycle is stopped immediately.\n * @param {Boolean} [force]\n */\n stop: function(force) {\n this.session.stopped = force ? FORCED_STOP : STOP;\n },\n\n /**\n * run the recognizers!\n * called by the inputHandler function on every movement of the pointers (touches)\n * it walks through all the recognizers and tries to detect the gesture that is being made\n * @param {Object} inputData\n */\n recognize: function(inputData) {\n var session = this.session;\n if (session.stopped) {\n return;\n }\n\n // run the touch-action polyfill\n this.touchAction.preventDefaults(inputData);\n\n var recognizer;\n var recognizers = this.recognizers;\n\n // this holds the recognizer that is being recognized.\n // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED\n // if no recognizer is detecting a thing, it is set to `null`\n var curRecognizer = session.curRecognizer;\n\n // reset when the last recognizer is recognized\n // or when we're in a new session\n if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) {\n curRecognizer = session.curRecognizer = null;\n }\n\n var i = 0;\n while (i < recognizers.length) {\n recognizer = recognizers[i];\n\n // find out if we are allowed try to recognize the input for this one.\n // 1. allow if the session is NOT forced stopped (see the .stop() method)\n // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one\n // that is being recognized.\n // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer.\n // this can be setup with the `recognizeWith()` method on the recognizer.\n if (session.stopped !== FORCED_STOP && ( // 1\n !curRecognizer || recognizer == curRecognizer || // 2\n recognizer.canRecognizeWith(curRecognizer))) { // 3\n recognizer.recognize(inputData);\n } else {\n recognizer.reset();\n }\n\n // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the\n // current active recognizer. but only if we don't already have an active recognizer\n if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) {\n curRecognizer = session.curRecognizer = recognizer;\n }\n i++;\n }\n },\n\n /**\n * get a recognizer by its event name.\n * @param {Recognizer|String} recognizer\n * @returns {Recognizer|Null}\n */\n get: function(recognizer) {\n if (recognizer instanceof Recognizer) {\n return recognizer;\n }\n\n var recognizers = this.recognizers;\n for (var i = 0; i < recognizers.length; i++) {\n if (recognizers[i].options.event == recognizer) {\n return recognizers[i];\n }\n }\n return null;\n },\n\n /**\n * add a recognizer to the manager\n * existing recognizers with the same event name will be removed\n * @param {Recognizer} recognizer\n * @returns {Recognizer|Manager}\n */\n add: function(recognizer) {\n if (invokeArrayArg(recognizer, 'add', this)) {\n return this;\n }\n\n // remove existing\n var existing = this.get(recognizer.options.event);\n if (existing) {\n this.remove(existing);\n }\n\n this.recognizers.push(recognizer);\n recognizer.manager = this;\n\n this.touchAction.update();\n return recognizer;\n },\n\n /**\n * remove a recognizer by name or instance\n * @param {Recognizer|String} recognizer\n * @returns {Manager}\n */\n remove: function(recognizer) {\n if (invokeArrayArg(recognizer, 'remove', this)) {\n return this;\n }\n\n recognizer = this.get(recognizer);\n\n // let's make sure this recognizer exists\n if (recognizer) {\n var recognizers = this.recognizers;\n var index = inArray(recognizers, recognizer);\n\n if (index !== -1) {\n recognizers.splice(index, 1);\n this.touchAction.update();\n }\n }\n\n return this;\n },\n\n /**\n * bind event\n * @param {String} events\n * @param {Function} handler\n * @returns {EventEmitter} this\n */\n on: function(events, handler) {\n if (events === undefined) {\n return;\n }\n if (handler === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n handlers[event] = handlers[event] || [];\n handlers[event].push(handler);\n });\n return this;\n },\n\n /**\n * unbind event, leave emit blank to remove all handlers\n * @param {String} events\n * @param {Function} [handler]\n * @returns {EventEmitter} this\n */\n off: function(events, handler) {\n if (events === undefined) {\n return;\n }\n\n var handlers = this.handlers;\n each(splitStr(events), function(event) {\n if (!handler) {\n delete handlers[event];\n } else {\n handlers[event] && handlers[event].splice(inArray(handlers[event], handler), 1);\n }\n });\n return this;\n },\n\n /**\n * emit event to the listeners\n * @param {String} event\n * @param {Object} data\n */\n emit: function(event, data) {\n // we also want to trigger dom events\n if (this.options.domEvents) {\n triggerDomEvent(event, data);\n }\n\n // no handlers, so skip it all\n var handlers = this.handlers[event] && this.handlers[event].slice();\n if (!handlers || !handlers.length) {\n return;\n }\n\n data.type = event;\n data.preventDefault = function() {\n data.srcEvent.preventDefault();\n };\n\n var i = 0;\n while (i < handlers.length) {\n handlers[i](data);\n i++;\n }\n },\n\n /**\n * destroy the manager and unbinds all events\n * it doesn't unbind dom events, that is the user own responsibility\n */\n destroy: function() {\n this.element && toggleCssProps(this, false);\n\n this.handlers = {};\n this.session = {};\n this.input.destroy();\n this.element = null;\n }\n};\n\n/**\n * add/remove the css properties as defined in manager.options.cssProps\n * @param {Manager} manager\n * @param {Boolean} add\n */\nfunction toggleCssProps(manager, add) {\n var element = manager.element;\n if (!element.style) {\n return;\n }\n var prop;\n each(manager.options.cssProps, function(value, name) {\n prop = prefixed(element.style, name);\n if (add) {\n manager.oldCssProps[prop] = element.style[prop];\n element.style[prop] = value;\n } else {\n element.style[prop] = manager.oldCssProps[prop] || '';\n }\n });\n if (!add) {\n manager.oldCssProps = {};\n }\n}\n\n/**\n * trigger dom event\n * @param {String} event\n * @param {Object} data\n */\nfunction triggerDomEvent(event, data) {\n var gestureEvent = document.createEvent('Event');\n gestureEvent.initEvent(event, true, true);\n gestureEvent.gesture = data;\n data.target.dispatchEvent(gestureEvent);\n}\n\nassign(Hammer, {\n INPUT_START: INPUT_START,\n INPUT_MOVE: INPUT_MOVE,\n INPUT_END: INPUT_END,\n INPUT_CANCEL: INPUT_CANCEL,\n\n STATE_POSSIBLE: STATE_POSSIBLE,\n STATE_BEGAN: STATE_BEGAN,\n STATE_CHANGED: STATE_CHANGED,\n STATE_ENDED: STATE_ENDED,\n STATE_RECOGNIZED: STATE_RECOGNIZED,\n STATE_CANCELLED: STATE_CANCELLED,\n STATE_FAILED: STATE_FAILED,\n\n DIRECTION_NONE: DIRECTION_NONE,\n DIRECTION_LEFT: DIRECTION_LEFT,\n DIRECTION_RIGHT: DIRECTION_RIGHT,\n DIRECTION_UP: DIRECTION_UP,\n DIRECTION_DOWN: DIRECTION_DOWN,\n DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL,\n DIRECTION_VERTICAL: DIRECTION_VERTICAL,\n DIRECTION_ALL: DIRECTION_ALL,\n\n Manager: Manager,\n Input: Input,\n TouchAction: TouchAction,\n\n TouchInput: TouchInput,\n MouseInput: MouseInput,\n PointerEventInput: PointerEventInput,\n TouchMouseInput: TouchMouseInput,\n SingleTouchInput: SingleTouchInput,\n\n Recognizer: Recognizer,\n AttrRecognizer: AttrRecognizer,\n Tap: TapRecognizer,\n Pan: PanRecognizer,\n Swipe: SwipeRecognizer,\n Pinch: PinchRecognizer,\n Rotate: RotateRecognizer,\n Press: PressRecognizer,\n\n on: addEventListeners,\n off: removeEventListeners,\n each: each,\n merge: merge,\n extend: extend,\n assign: assign,\n inherit: inherit,\n bindFn: bindFn,\n prefixed: prefixed\n});\n\n// this prevents errors when Hammer is loaded in the presence of an AMD\n// style loader but by script tag, not by the loader.\nvar freeGlobal = (typeof window !== 'undefined' ? window : (typeof self !== 'undefined' ? self : {})); // jshint ignore:line\nfreeGlobal.Hammer = Hammer;\n\nif (typeof define === 'function' && define.amd) {\n define(function() {\n return Hammer;\n });\n} else if (typeof module != 'undefined' && module.exports) {\n module.exports = Hammer;\n} else {\n window[exportName] = Hammer;\n}\n\n})(window, document, 'Hammer');\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","/*!\n * Vue.js v2.5.16\n * (c) 2014-2018 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// these helpers produces better vm code in JS engines due to their\n// explicitness and function inlining\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value e.g. [object Object]\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert a input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if a attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether the object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it... e.g.\n * PhantomJS 1.x. Technically we don't need this anymore since native bind is\n * now more performant in most browsers, but removing it would be breaking for\n * code that was able to run in PhantomJS 1.x, so this must be kept for\n * backwards compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/**\n * Return same value\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a static keys string from compiler modules.\n */\nfunction genStaticKeys (modules) {\n return modules.reduce(function (keys, m) {\n return keys.concat(m.staticKeys || [])\n }, []).join(',')\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured'\n];\n\n/* */\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n})\n\n/* */\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = /[^\\w.$]/;\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = (function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm || {};\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// the current target watcher being evaluated.\n// this is globally unique because there could be only one\n// watcher being evaluated at any time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (_target) {\n if (Dep.target) { targetStack.push(Dep.target); }\n Dep.target = _target;\n}\n\nfunction popTarget () {\n Dep.target = targetStack.pop();\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n vnode.children,\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n var augment = hasProto\n ? protoAugment\n : copyAugment;\n augment(value, arrayMethods, arrayKeys);\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through each property and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment an target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src, keys) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment an target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n if (!getter && arguments.length === 2) {\n val = obj[key];\n }\n var setter = property && property.set;\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n var keys = Object.keys(from);\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n return childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!/^[a-zA-Z][\\w-]*$/.test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'can only contain alphanumeric characters and the hyphen, ' +\n 'and must start with a letter.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def = dirs[key];\n if (typeof def === 'function') {\n dirs[key] = { bind: def, update: def };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n var extendsFrom = child.extends;\n if (extendsFrom) {\n parent = mergeOptions(parent, extendsFrom, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false && isObject(value) && ('@binding' in value))\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n if (!valid) {\n warn(\n \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', ')) +\n \", got \" + (toRawType(value)) + \".\",\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n logError(e, null, 'config.errorHandler');\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n/* globals MessageChannel */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using both microtasks and (macro) tasks.\n// In < 2.4 we used microtasks everywhere, but there are some scenarios where\n// microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690) or even between bubbling of the same\n// event (#6566). However, using (macro) tasks everywhere also has subtle problems\n// when state is changed right before repaint (e.g. #6813, out-in transitions).\n// Here we use microtask by default, but expose a way to force (macro) task when\n// needed (e.g. in event handlers attached by v-on).\nvar microTimerFunc;\nvar macroTimerFunc;\nvar useMacroTask = false;\n\n// Determine (macro) task defer implementation.\n// Technically setImmediate should be the ideal choice, but it's only available\n// in IE. The only polyfill that consistently queues the callback after all DOM\n// events triggered in the same loop is by using MessageChannel.\n/* istanbul ignore if */\nif (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n macroTimerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else if (typeof MessageChannel !== 'undefined' && (\n isNative(MessageChannel) ||\n // PhantomJS\n MessageChannel.toString() === '[object MessageChannelConstructor]'\n)) {\n var channel = new MessageChannel();\n var port = channel.port2;\n channel.port1.onmessage = flushCallbacks;\n macroTimerFunc = function () {\n port.postMessage(1);\n };\n} else {\n /* istanbul ignore next */\n macroTimerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\n// Determine microtask defer implementation.\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n microTimerFunc = function () {\n p.then(flushCallbacks);\n // in problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n} else {\n // fallback to macro\n microTimerFunc = macroTimerFunc;\n}\n\n/**\n * Wrap a function so that if any code inside triggers state change,\n * the changes are queued using a (macro) task instead of a microtask.\n */\nfunction withMacroTask (fn) {\n return fn._withTask || (fn._withTask = function () {\n useMacroTask = true;\n var res = fn.apply(null, arguments);\n useMacroTask = false;\n return res\n })\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n if (useMacroTask) {\n macroTimerFunc();\n } else {\n microTimerFunc();\n }\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n perf.clearMeasures(name);\n };\n }\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';\n if (!has && !isAllowed) {\n warnNonPresent(target, key);\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n warnNonPresent(target, key);\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n cloned[i].apply(null, arguments$1);\n }\n } else {\n // return handler return value for single handlers\n return fns.apply(null, arguments)\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n vm\n) {\n var name, def, cur, old, event;\n for (name in on) {\n def = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n /* istanbul ignore if */\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur);\n }\n add(event.name, cur, event.once, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.