{"version":3,"file":"chunk-debounce-c61f709b-esm.js","sources":["src/modules/pushGTMCustomEvent.ts","node_modules/foundation-sites/js/foundation.core.js","src/modules/foundation.js","src/util/config.ts","src/util/helpers.js","src/modules/ConditionDisclaimers.ts","node_modules/lodash/isObject.js","node_modules/lodash/_freeGlobal.js","node_modules/lodash/_root.js","node_modules/lodash/now.js","node_modules/lodash/_trimmedEndIndex.js","node_modules/lodash/_baseTrim.js","node_modules/lodash/_Symbol.js","node_modules/lodash/_getRawTag.js","node_modules/lodash/_objectToString.js","node_modules/lodash/_baseGetTag.js","node_modules/lodash/isObjectLike.js","node_modules/lodash/isSymbol.js","node_modules/lodash/toNumber.js","node_modules/lodash/debounce.js"],"sourcesContent":["// @link https://github.com/DefinitelyTyped/DefinitelyTyped/blob/c4bd380cda7d82efbfa5777dd563ba9810f034a6/types/google.analytics/index.d.ts#L560\nexport interface EventPropertiesType {\n eventCategory: string;\n eventAction: string;\n eventLabel?: string | undefined;\n eventValue?: number | undefined;\n nonInteraction?: boolean | undefined;\n [key: string]: any;\n}\n\ninterface EventObjectType extends EventPropertiesType {\n event: string;\n}\n\nexport function pushGTMCustomEvent(eventName: string, eventProperties: EventPropertiesType): void {\n window.dataLayer = window.dataLayer || [];\n\n const eventObject: EventObjectType = {\n event: eventName,\n ...eventProperties,\n };\n\n window.dataLayer.push(eventObject);\n}\n","import $ from 'jquery';\nimport { GetYoDigits } from './foundation.core.utils';\nimport { MediaQuery } from './foundation.util.mediaQuery';\n\nvar FOUNDATION_VERSION = '6.7.5';\n\n// Global Foundation object\n// This is attached to the window, or used as a module for AMD/Browserify\nvar Foundation = {\n version: FOUNDATION_VERSION,\n\n /**\n * Stores initialized plugins.\n */\n _plugins: {},\n\n /**\n * Stores generated unique ids for plugin instances\n */\n _uuids: [],\n\n /**\n * Defines a Foundation plugin, adding it to the `Foundation` namespace and the list of plugins to initialize when reflowing.\n * @param {Object} plugin - The constructor of the plugin.\n */\n plugin: function(plugin, name) {\n // Object key to use when adding to global Foundation object\n // Examples: Foundation.Reveal, Foundation.OffCanvas\n var className = (name || functionName(plugin));\n // Object key to use when storing the plugin, also used to create the identifying data attribute for the plugin\n // Examples: data-reveal, data-off-canvas\n var attrName = hyphenate(className);\n\n // Add to the Foundation object and the plugins list (for reflowing)\n this._plugins[attrName] = this[className] = plugin;\n },\n /**\n * @function\n * Populates the _uuids array with pointers to each individual plugin instance.\n * Adds the `zfPlugin` data-attribute to programmatically created plugins to allow use of $(selector).foundation(method) calls.\n * Also fires the initialization event for each plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @param {String} name - the name of the plugin, passed as a camelCased string.\n * @fires Plugin#init\n */\n registerPlugin: function(plugin, name){\n var pluginName = name ? hyphenate(name) : functionName(plugin.constructor).toLowerCase();\n plugin.uuid = GetYoDigits(6, pluginName);\n\n if(!plugin.$element.attr(`data-${pluginName}`)){ plugin.$element.attr(`data-${pluginName}`, plugin.uuid); }\n if(!plugin.$element.data('zfPlugin')){ plugin.$element.data('zfPlugin', plugin); }\n /**\n * Fires when the plugin has initialized.\n * @event Plugin#init\n */\n plugin.$element.trigger(`init.zf.${pluginName}`);\n\n this._uuids.push(plugin.uuid);\n\n return;\n },\n /**\n * @function\n * Removes the plugins uuid from the _uuids array.\n * Removes the zfPlugin data attribute, as well as the data-plugin-name attribute.\n * Also fires the destroyed event for the plugin, consolidating repetitive code.\n * @param {Object} plugin - an instance of a plugin, usually `this` in context.\n * @fires Plugin#destroyed\n */\n unregisterPlugin: function(plugin){\n var pluginName = hyphenate(functionName(plugin.$element.data('zfPlugin').constructor));\n\n this._uuids.splice(this._uuids.indexOf(plugin.uuid), 1);\n plugin.$element.removeAttr(`data-${pluginName}`).removeData('zfPlugin')\n /**\n * Fires when the plugin has been destroyed.\n * @event Plugin#destroyed\n */\n .trigger(`destroyed.zf.${pluginName}`);\n for(var prop in plugin){\n if(typeof plugin[prop] === 'function'){\n plugin[prop] = null; //clean up script to prep for garbage collection.\n }\n }\n return;\n },\n\n /**\n * @function\n * Causes one or more active plugins to re-initialize, resetting event listeners, recalculating positions, etc.\n * @param {String} plugins - optional string of an individual plugin key, attained by calling `$(element).data('pluginName')`, or string of a plugin class i.e. `'dropdown'`\n * @default If no argument is passed, reflow all currently active plugins.\n */\n reInit: function(plugins){\n var isJQ = plugins instanceof $;\n try{\n if(isJQ){\n plugins.each(function(){\n $(this).data('zfPlugin')._init();\n });\n }else{\n var type = typeof plugins,\n _this = this,\n fns = {\n 'object': function(plgs){\n plgs.forEach(function(p){\n p = hyphenate(p);\n $('[data-'+ p +']').foundation('_init');\n });\n },\n 'string': function(){\n plugins = hyphenate(plugins);\n $('[data-'+ plugins +']').foundation('_init');\n },\n 'undefined': function(){\n this.object(Object.keys(_this._plugins));\n }\n };\n fns[type](plugins);\n }\n }catch(err){\n console.error(err);\n }finally{\n return plugins;\n }\n },\n\n /**\n * Initialize plugins on any elements within `elem` (and `elem` itself) that aren't already initialized.\n * @param {Object} elem - jQuery object containing the element to check inside. Also checks the element itself, unless it's the `document` object.\n * @param {String|Array} plugins - A list of plugins to initialize. Leave this out to initialize everything.\n */\n reflow: function(elem, plugins) {\n\n // If plugins is undefined, just grab everything\n if (typeof plugins === 'undefined') {\n plugins = Object.keys(this._plugins);\n }\n // If plugins is a string, convert it to an array with one item\n else if (typeof plugins === 'string') {\n plugins = [plugins];\n }\n\n var _this = this;\n\n // Iterate through each plugin\n $.each(plugins, function(i, name) {\n // Get the current plugin\n var plugin = _this._plugins[name];\n\n // Localize the search to all elements inside elem, as well as elem itself, unless elem === document\n var $elem = $(elem).find('[data-'+name+']').addBack('[data-'+name+']').filter(function () {\n return typeof $(this).data(\"zfPlugin\") === 'undefined';\n });\n\n // For each plugin found, initialize it\n $elem.each(function() {\n var $el = $(this),\n opts = { reflow: true };\n\n if($el.attr('data-options')){\n $el.attr('data-options').split(';').forEach(function(option){\n var opt = option.split(':').map(function(el){ return el.trim(); });\n if(opt[0]) opts[opt[0]] = parseValue(opt[1]);\n });\n }\n try{\n $el.data('zfPlugin', new plugin($(this), opts));\n }catch(er){\n console.error(er);\n }finally{\n return;\n }\n });\n });\n },\n getFnName: functionName,\n\n addToJquery: function() {\n // TODO: consider not making this a jQuery function\n // TODO: need way to reflow vs. re-initialize\n /**\n * The Foundation jQuery method.\n * @param {String|Array} method - An action to perform on the current jQuery object.\n */\n var foundation = function(method) {\n var type = typeof method,\n $noJS = $('.no-js');\n\n if($noJS.length){\n $noJS.removeClass('no-js');\n }\n\n if(type === 'undefined'){//needs to initialize the Foundation object, or an individual plugin.\n MediaQuery._init();\n Foundation.reflow(this);\n }else if(type === 'string'){//an individual method to invoke on a plugin or group of plugins\n var args = Array.prototype.slice.call(arguments, 1);//collect all the arguments, if necessary\n var plugClass = this.data('zfPlugin');//determine the class of plugin\n\n if(typeof plugClass !== 'undefined' && typeof plugClass[method] !== 'undefined'){//make sure both the class and method exist\n if(this.length === 1){//if there's only one, call it directly.\n plugClass[method].apply(plugClass, args);\n }else{\n this.each(function(i, el){//otherwise loop through the jQuery collection and invoke the method on each\n plugClass[method].apply($(el).data('zfPlugin'), args);\n });\n }\n }else{//error for no class or no method\n throw new ReferenceError(\"We're sorry, '\" + method + \"' is not an available method for \" + (plugClass ? functionName(plugClass) : 'this element') + '.');\n }\n }else{//error for invalid argument type\n throw new TypeError(`We're sorry, ${type} is not a valid parameter. You must use a string representing the method you wish to invoke.`);\n }\n return this;\n };\n $.fn.foundation = foundation;\n return $;\n }\n};\n\nFoundation.util = {\n /**\n * Function for applying a debounce effect to a function call.\n * @function\n * @param {Function} func - Function to be called at end of timeout.\n * @param {Number} delay - Time in ms to delay the call of `func`.\n * @returns function\n */\n throttle: function (func, delay) {\n var timer = null;\n\n return function () {\n var context = this, args = arguments;\n\n if (timer === null) {\n timer = setTimeout(function () {\n func.apply(context, args);\n timer = null;\n }, delay);\n }\n };\n }\n};\n\nwindow.Foundation = Foundation;\n\n// Polyfill for requestAnimationFrame\n(function() {\n if (!Date.now || !window.Date.now)\n window.Date.now = Date.now = function() { return new Date().getTime(); };\n\n var vendors = ['webkit', 'moz'];\n for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {\n var vp = vendors[i];\n window.requestAnimationFrame = window[vp+'RequestAnimationFrame'];\n window.cancelAnimationFrame = (window[vp+'CancelAnimationFrame']\n || window[vp+'CancelRequestAnimationFrame']);\n }\n if (/iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent)\n || !window.requestAnimationFrame || !window.cancelAnimationFrame) {\n var lastTime = 0;\n window.requestAnimationFrame = function(callback) {\n var now = Date.now();\n var nextTime = Math.max(lastTime + 16, now);\n return setTimeout(function() { callback(lastTime = nextTime); },\n nextTime - now);\n };\n window.cancelAnimationFrame = clearTimeout;\n }\n /**\n * Polyfill for performance.now, required by rAF\n */\n if(!window.performance || !window.performance.now){\n window.performance = {\n start: Date.now(),\n now: function(){ return Date.now() - this.start; }\n };\n }\n})();\nif (!Function.prototype.bind) {\n /* eslint-disable no-extend-native */\n Function.prototype.bind = function(oThis) {\n if (typeof this !== 'function') {\n // closest thing possible to the ECMAScript 5\n // internal IsCallable function\n throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable');\n }\n\n var aArgs = Array.prototype.slice.call(arguments, 1),\n fToBind = this,\n fNOP = function() {},\n fBound = function() {\n return fToBind.apply(this instanceof fNOP\n ? this\n : oThis,\n aArgs.concat(Array.prototype.slice.call(arguments)));\n };\n\n if (this.prototype) {\n // native functions don't have a prototype\n fNOP.prototype = this.prototype;\n }\n fBound.prototype = new fNOP();\n\n return fBound;\n };\n}\n// Polyfill to get the name of a function in IE9\nfunction functionName(fn) {\n if (typeof Function.prototype.name === 'undefined') {\n var funcNameRegex = /function\\s([^(]{1,})\\(/;\n var results = (funcNameRegex).exec((fn).toString());\n return (results && results.length > 1) ? results[1].trim() : \"\";\n }\n else if (typeof fn.prototype === 'undefined') {\n return fn.constructor.name;\n }\n else {\n return fn.prototype.constructor.name;\n }\n}\nfunction parseValue(str){\n if ('true' === str) return true;\n else if ('false' === str) return false;\n else if (!isNaN(str * 1)) return parseFloat(str);\n return str;\n}\n// Convert PascalCase to kebab-case\n// Thank you: http://stackoverflow.com/a/8955580\nfunction hyphenate(str) {\n return str.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\n\nexport {Foundation};\n","import { Foundation } from 'foundation-sites/js/foundation.core';\nimport { Touch } from 'foundation-sites/js/foundation.util.touch';\nimport { Triggers } from 'foundation-sites/js/foundation.util.triggers';\nimport jQuery from 'jquery';\n\nconst mapSelectorsWithPlugins = {\n '[data-accordion]': {\n register: async () => {\n const { Accordion } = await import('foundation-sites/js/foundation.accordion');\n Foundation.plugin(Accordion, 'Accordion');\n },\n },\n '[data-accordion-menu]': {\n register: async () => {\n const { AccordionMenu } = await import('foundation-sites/js/foundation.accordionMenu');\n Foundation.plugin(AccordionMenu, 'AccordionMenu');\n },\n },\n '[data-magellan]': {\n register: async () => {\n const { Magellan } = await import('foundation-sites/js/foundation.magellan');\n Foundation.plugin(Magellan, 'Magellan');\n },\n },\n '[data-off-canvas]': {\n register: async () => {\n const { OffCanvas } = await import('foundation-sites/js/foundation.offcanvas');\n Foundation.plugin(OffCanvas, 'OffCanvas');\n },\n },\n '[data-orbit]': {\n register: async () => {\n const { Orbit } = await import('foundation-sites/js/foundation.orbit');\n Foundation.plugin(Orbit, 'Orbit');\n },\n },\n '[data-ResponsiveAccordionTabs]': {\n register: async () => {\n const { ResponsiveAccordionTabs } = await import('foundation-sites/js/foundation.responsiveAccordionTabs');\n Foundation.plugin(ResponsiveAccordionTabs, 'ResponsiveAccordionTabs');\n },\n },\n '[data-reveal]': {\n register: async () => {\n const { Reveal } = await import('foundation-sites/js/foundation.reveal');\n Foundation.plugin(Reveal, 'Reveal');\n },\n },\n '[data-tabs]': {\n register: async () => {\n const { Tabs } = await import('foundation-sites/js/foundation.tabs');\n Foundation.plugin(Tabs, 'Tabs');\n },\n },\n};\n\nexport const setupPlugins = () => {\n Touch.init(jQuery);\n Triggers.init(jQuery, Foundation);\n\n function registerPlugin(selector) {\n return new Promise((resolve) => {\n if (!mapSelectorsWithPlugins.hasOwnProperty(selector) || !document.querySelector(selector)) {\n resolve();\n return;\n }\n\n const { register } = mapSelectorsWithPlugins[selector];\n register().then(resolve);\n });\n }\n\n return Promise.all(Object.keys(mapSelectorsWithPlugins).map(registerPlugin));\n};\n\nexport const setup = () => {\n // Add Foundation to the global jQuery object, then initialize it\n Foundation.addToJquery(jQuery);\n\n // setup Plugins\n setupPlugins()\n .then(() => {\n // Once all the required plugins are imported, init foundation\n jQuery(document).foundation();\n\n jQuery('#faqExpandAllLink').click((e) => {\n e.preventDefault();\n jQuery('.faq-list.show-for-small-only').foundation('down', jQuery('.accordion-content'));\n });\n })\n .catch((e) => {\n // eslint-disable-next-line no-console\n console.error(e);\n });\n};\n\nexport default Foundation;\n","export const EV_API_URL = 'https://my.embarkvet.com/api';\n","import { EV_API_URL } from './config';\n\n/**\n * Generate a URL to provided theme assets\n *\n * @param path\n * @return {string}\n */\nexport function assetUrl(path) {\n // remove slashes from the path\n path = path.replace(/^\\/+|\\/+$/, '');\n let assetsDirUri;\n\n if (typeof EmbarkSite !== 'undefined' && !!EmbarkSite.assets_path) {\n assetsDirUri = EmbarkSite.assets_path;\n } else {\n assetsDirUri = '/wp-content/themes/embarkvet-theme/dist';\n }\n\n return `${assetsDirUri}/${path}`;\n}\n\nexport function myevUrl(path) {\n path = path.replace(/^\\/+|\\/+$/, '');\n return `${EV_API_URL}/${path}`;\n}\n\n/**\n *\n * @param element {HTMLElement | null}\n * @param selector {string | null}\n */\nexport function getMatchingParent(element, selector = null) {\n let parent = element.parentElement;\n\n if (!selector) {\n return parent;\n }\n\n while (parent) {\n if (parent.matches(selector)) {\n return parent;\n }\n\n parent = parent.parentElement;\n }\n\n return parent;\n}\n","declare global {\n interface Window {\n embarkConditionDisclaimerStrings: string[] | undefined;\n }\n}\n\ntype HealthConditionDisclaimer = {\n [k: string]: {\n anchor_text: string;\n description_markup: string;\n };\n};\n\ntype HealthCondition = {\n health_id: string;\n is_linkage_test?: boolean;\n is_linkage_test_for_v5?: string;\n};\n\nfunction getDisclaimerTypeByCondition(healthCondition: HealthCondition): string {\n if (healthCondition?.is_linkage_test === true || healthCondition?.is_linkage_test_for_v5 === 'TRUE') {\n return 'linkageTest';\n }\n if (healthCondition?.health_id === '090400') {\n return 'sod1a';\n }\n return '';\n}\n\nfunction getDisclaimerAnchor(targetID: string, anchorText: string): JQuery {\n return jQuery(`\n
\n ${anchorText}*\n
\n `);\n}\n\nfunction getDisclaimerMarkup(targetID: string, descriptionMarkup: string): JQuery {\n return jQuery(`\n
\n ${descriptionMarkup.replace(/()/, '$1* ')}\n
\n `);\n}\n\nexport function maybeAddDisclaimer(\n condition: HealthCondition,\n attachElement: JQuery,\n disclaimerStringsGroup: HealthConditionDisclaimer,\n location = ''\n): void {\n const disclaimerType = getDisclaimerTypeByCondition(condition);\n if (!disclaimerType || !attachElement) {\n return;\n }\n\n if (\n (typeof disclaimerStringsGroup !== 'undefined' && !disclaimerStringsGroup.hasOwnProperty(disclaimerType)) ||\n (!disclaimerStringsGroup[disclaimerType].hasOwnProperty('anchor_text') &&\n !disclaimerStringsGroup[disclaimerType].hasOwnProperty('description_markup'))\n ) {\n return;\n }\n\n const disclaimerTargetID = `disclaimerDescripton-${condition.health_id}-${location}`;\n const disclaimerStrings = disclaimerStringsGroup[disclaimerType];\n\n const disclaimerLink = getDisclaimerAnchor(disclaimerTargetID, disclaimerStrings.anchor_text);\n const disclaimerText = getDisclaimerMarkup(disclaimerTargetID, disclaimerStrings.description_markup);\n\n attachElement.prepend(disclaimerLink);\n attachElement.append(disclaimerText);\n}\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n"],"names":["pushGTMCustomEvent","eventName","eventProperties","window","dataLayer","eventObject","event","push","FOUNDATION_VERSION","Foundation","version","_plugins","_uuids","plugin","name","className","functionName","attrName","hyphenate","registerPlugin","pluginName","constructor","toLowerCase","uuid","GetYoDigits","$element","attr","data","trigger","unregisterPlugin","splice","indexOf","removeAttr","removeData","prop","reInit","plugins","isJQ","$","each","_init","type","_this","fns","plgs","forEach","p","foundation","object","Object","keys","err","console","error","reflow","elem","i","$elem","find","addBack","filter","$el","opts","split","option","opt","map","el","trim","parseValue","er","getFnName","addToJquery","method","$noJS","length","removeClass","MediaQuery","args","Array","prototype","slice","call","arguments","plugClass","apply","ReferenceError","TypeError","fn","util","throttle","func","delay","timer","context","setTimeout","Date","now","getTime","vendors","requestAnimationFrame","vp","cancelAnimationFrame","test","navigator","userAgent","lastTime","callback","nextTime","Math","max","clearTimeout","performance","start","Function","bind","oThis","aArgs","fToBind","fNOP","fBound","concat","funcNameRegex","results","exec","toString","str","isNaN","parseFloat","replace","mapSelectorsWithPlugins","register","Accordion","AccordionMenu","Magellan","OffCanvas","Orbit","ResponsiveAccordionTabs","Reveal","Tabs","setupPlugins","Touch","init","jQuery","Triggers","selector","Promise","resolve","hasOwnProperty","document","querySelector","then","all","setup","click","e","preventDefault","catch","EV_API_URL","assetUrl","path","assetsDirUri","EmbarkSite","assets_path","myevUrl","getDisclaimerTypeByCondition","healthCondition","is_linkage_test","is_linkage_test_for_v5","health_id","getDisclaimerAnchor","targetID","anchorText","getDisclaimerMarkup","descriptionMarkup","maybeAddDisclaimer","condition","attachElement","disclaimerStringsGroup","location","disclaimerType","disclaimerTargetID","disclaimerStrings","disclaimerLink","anchor_text","disclaimerText","description_markup","prepend","append","isObject","value","freeGlobal","global","freeSelf","self","root","reWhitespace","trimmedEndIndex","string","index","charAt","reTrimStart","baseTrim","Symbol","objectProto","nativeObjectToString","symToStringTag","toStringTag","undefined","getRawTag","isOwn","tag","unmasked","result","objectToString","nullTag","undefinedTag","baseGetTag","isObjectLike","symbolTag","isSymbol","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","other","valueOf","isBinary","FUNC_ERROR_TEXT","nativeMax","nativeMin","min","debounce","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking"],"mappings":"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"}